/* Absolute Stays — guest marketplace */

/* Metric-matched fallback so Georgia does not look huge/bold before Cormorant swaps in. */
@font-face {
  font-family: "Cormorant Fallback";
  src: local("Georgia");
  size-adjust: 116%;
  ascent-override: 90%;
  descent-override: 22%;
  line-gap-override: 0%;
}

.hsm {
  --hsm-navy: #0c1b33;
  --hsm-navy-2: #16304f;
  --hsm-gold: #c9a962;
  --hsm-gold-2: #a8893f;
  --hsm-ink: #1a2332;
  --hsm-muted: #5a6578;
  --hsm-line: #ebe7e0;
  --hsm-bg: #fff;
  --hsm-soft: #f6f3ee;
  --hsm-ok: #1f7a4d;
  --hsm-radius: 16px;
  --hsm-radius-sm: 12px;
  --hsm-shadow: 0 8px 28px rgba(12, 27, 51, 0.08);
  --hsm-shadow-lg: 0 18px 50px rgba(12, 27, 51, 0.14);
  --hsm-font: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;
  --hsm-serif: "Cormorant Garamond", "Cormorant Fallback", Georgia, serif;
  --hsm-header: 76px;
  --hsm-continue: 0px;
  --hsm-pin: 68px;
  --hsm-mobile-dock: 0px;
  --hsm-max: 1180px;
  --hsm-gutter: 1rem;
  font-family: var(--hsm-font);
  color: var(--hsm-ink);
  background: var(--hsm-bg);
  min-height: 100vh;
  margin: 0;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
}

.hsm *,
.hsm *::before,
.hsm *::after { box-sizing: border-box; }
.hsm a { color: inherit; text-decoration: none; }
.hsm img { max-width: 100%; display: block; }
.hsm button { font: inherit; cursor: pointer; }
.hsm input, .hsm select, .hsm textarea { font: inherit; color: inherit; }

.hsm-wrap {
  width: min(var(--hsm-max), calc(100% - (2 * var(--hsm-gutter))));
  margin-inline: auto;
}

.hsm-sr {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.hsm-skip {
  position: absolute;
  left: 0.75rem;
  top: -4rem;
  z-index: 100;
  padding: 0.55rem 0.9rem;
  border-radius: 10px;
  background: var(--hsm-navy);
  color: #fff;
  font-size: 0.88rem;
  font-weight: 700;
  box-shadow: var(--hsm-shadow);
}
.hsm-skip:focus,
.hsm-skip:focus-visible {
  top: 0.75rem;
  outline: 2px solid var(--hsm-gold);
  outline-offset: 2px;
}

.hsm ::selection {
  background: rgba(201, 169, 98, 0.28);
}
.hsm a:focus-visible,
.hsm button:focus-visible,
.hsm input:focus-visible,
.hsm select:focus-visible,
.hsm textarea:focus-visible {
  outline: 2px solid var(--hsm-gold);
  outline-offset: 2px;
}
.hsm-card-media img,
.hsm-photos img,
.hsm-exp-card-media img {
  background-color: var(--hsm-soft);
}

/* Header */
.hsm-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: #fff;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--hsm-line);
  padding-inline: 1.5rem;
  overflow: visible;
  /* Smooth collapse like marketplace search headers — avoid layout thrash. */
  transition: box-shadow 0.28s cubic-bezier(0.2, 0, 0, 1);
}
.hsm.has-header-search.is-compact:not(.is-search-open) .hsm-header {
  box-shadow: 0 1px 0 rgba(12, 27, 51, 0.06), 0 8px 24px rgba(12, 27, 51, 0.04);
}

@media (prefers-reduced-motion: reduce) {
  .hsm-header,
  .has-header-search .hsm-header-inner,
  .has-header-search .hsm-header-search,
  .hsm-header-nav,
  .hsm-header .hsm-search-bar,
  .hsm-search-compact,
  .hsm-brand-text {
    transition: none !important;
    transform: none !important;
  }
}

.hsm-detail {
  overflow-x: visible;
}
/* Listing header scrolls away on desktop; mobile keeps its own overlay chrome. */
.hsm-detail .hsm-header {
  position: relative;
}
.hsm-detail.has-header-search.is-search-open .hsm-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 45;
  background: #fff;
}
.hsm.has-header-search { --hsm-header: 198px; }
.hsm.has-header-search.is-compact { --hsm-header: 80px; }
.hsm.has-header-search.is-compact.is-search-open { --hsm-header: 198px; }
.hsm.has-exp-filters.has-header-search { --hsm-header: 236px; }
.hsm.has-exp-filters.has-header-search.is-compact { --hsm-header: 140px; }
.hsm.has-exp-filters.has-header-search.is-search-open { --hsm-header: 198px; }
.hsm.has-exp-filters.has-header-search.is-compact.is-search-open { --hsm-header: 198px; }
/* Listing/detail: no sticky header offset on desktop — pin sticks to top. */
.hsm.has-header-search.hsm-detail { --hsm-header: 0px; }
.hsm.has-header-search.hsm-detail.is-search-open { --hsm-header: 198px; }
.hsm.has-header-search.hsm-detail.is-compact:not(.is-search-open) { --hsm-header: 0px; }

.hsm-search-scrim {
  position: fixed;
  inset: 0;
  z-index: 35;
  background: rgba(12, 27, 51, 0.42);
}
.hsm-search-scrim[hidden] { display: none; }
.hsm-search-lock { overflow: hidden; }

.hsm-header-inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  min-height: 76px;
  min-width: 0;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.45rem 0.7rem;
}
.has-header-search .hsm-header-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  grid-template-rows: auto auto;
  grid-template-areas:
    "lead nav actions"
    "search search search";
  align-items: center;
  column-gap: 1rem;
  row-gap: 1.15rem;
  padding: 0.9rem 0 1.35rem;
  position: relative;
  transition:
    padding 250ms cubic-bezier(0.2, 0, 0, 1),
    row-gap 250ms cubic-bezier(0.2, 0, 0, 1),
    min-height 250ms cubic-bezier(0.2, 0, 0, 1);
}
.has-header-search .hsm-brand { grid-area: lead; justify-self: start; }
.has-header-search .hsm-header-nav { grid-area: nav; justify-self: center; }
.has-header-search .hsm-header-actions { grid-area: actions; justify-self: end; margin-left: 0; }
.has-header-search .hsm-header-search {
  grid-area: search;
  width: min(880px, 100%);
  justify-self: center;
  min-width: 0;
  padding: 0;
  margin-top: 0;
  overflow: visible;
}
/* Compact (base): pills up & out; search settles center. Desktop refines below. */
.is-compact:not(.is-search-open) .hsm-header-inner {
  grid-template-areas: "lead nav actions";
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  grid-template-rows: auto;
  padding: 0.45rem 0;
  row-gap: 0;
  min-height: 64px;
}
.is-compact:not(.is-search-open) .hsm-header-nav {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-12px);
}
.is-compact:not(.is-search-open) .hsm-header-search {
  position: absolute;
  left: 50%;
  top: 50%;
  width: auto;
  max-width: calc(100% - 16rem);
  padding: 0;
  margin: 0;
  justify-self: center;
  transform: translate(-50%, -50%);
  z-index: 2;
}

/* Listing pages: logo + product tabs + actions. Search stays closed until a tab is clicked. */
.hsm-detail.has-header-search:not(.is-search-open) .hsm-header-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  grid-template-rows: auto;
  grid-template-areas: "lead nav actions";
  align-items: center;
  column-gap: 1rem;
  row-gap: 0;
  padding: 0.55rem 0;
  min-height: 76px;
}
.hsm-detail.has-header-search:not(.is-search-open) .hsm-header-nav {
  display: flex;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
  max-height: none;
  overflow: visible;
}
.hsm-detail.has-header-search:not(.is-search-open) .hsm-header-search {
  display: none !important;
}
.hsm-detail.has-header-search.is-search-open .hsm-header-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  grid-template-rows: auto auto;
  grid-template-areas:
    "lead nav actions"
    "search search search";
  padding: 0.9rem 0 1.35rem;
  row-gap: 1.15rem;
}
.hsm-detail.has-header-search.is-search-open .hsm-header-search {
  display: flex;
  position: relative;
  left: auto;
  top: auto;
  transform: none;
  width: min(880px, 100%);
  max-width: none;
  justify-self: center;
}
.hsm-detail.has-header-search.is-search-open .hsm-header .hsm-search-compact {
  display: none !important;
}
.hsm-detail.has-header-search.is-search-open .hsm-header .hsm-search-bar {
  position: relative;
  left: auto;
  top: auto;
  width: 100%;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}
.hsm-detail.has-header-search.is-search-open .hsm-header .hsm-search-close {
  display: grid;
  place-items: center;
  position: absolute;
  top: -0.15rem;
  right: -0.15rem;
  width: 32px;
  height: 32px;
  border: 1px solid var(--hsm-line);
  border-radius: 50%;
  background: #fff;
  font-size: 1.15rem;
  line-height: 1;
  z-index: 3;
}

.hsm-brand {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-width: 0;
  flex-shrink: 0;
}

.hsm-brand img {
  width: 38px;
  height: 38px;
  border-radius: 10px;
}

.hsm-brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
}

.hsm-brand-kicker {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--hsm-navy);
}

.hsm-brand-name {
  font-family: var(--hsm-serif);
  font-size: 1.28rem;
  font-weight: 600;
  font-style: italic;
  color: var(--hsm-gold-2);
  letter-spacing: 0.01em;
}

.hsm-header-search {
  flex: 1 1 14rem;
  min-width: 10rem;
  display: flex;
  justify-content: center;
  padding: 0;
}
.hsm-header-search .hsm-search {
  position: relative;
  width: 100%;
  max-width: 880px;
}
.is-compact:not(.is-search-open) .hsm-header-search .hsm-search {
  width: auto;
  max-width: 100%;
}
.hsm-search-close {
  display: none;
}
/* Compact chip + bar: soft crossfade (desktop overrides add motion). */
.hsm-search-compact {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  border: 1px solid var(--hsm-line);
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(12, 27, 51, 0.08);
  padding: 0.22rem 0.28rem 0.22rem 0.15rem;
  position: absolute;
  inset: 0;
  margin: auto;
  width: max-content;
  height: max-content;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 1;
  transition:
    opacity 200ms cubic-bezier(0.2, 0, 0, 1) 40ms,
    visibility 200ms linear 40ms;
}
.hsm-header .hsm-search-bar {
  width: 100%;
  transition:
    opacity 160ms cubic-bezier(0.2, 0, 0, 1),
    visibility 160ms;
}
.is-compact:not(.is-search-open) .hsm-header .hsm-search-compact {
  position: relative;
  inset: auto;
  margin: 0;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.is-compact:not(.is-search-open) .hsm-header .hsm-search-bar {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.is-compact:not(.is-search-open) .hsm-header .hsm-search-close,
.is-compact:not(.is-search-open) .hsm-header .hsm-pop { display: none; }
.hsm-hero-search .hsm-search-compact,
.hsm-hero-search .hsm-search-close { display: none !important; }
.hsm-search-compact-seg {
  border: 0;
  background: none;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--hsm-navy);
  padding: 0.42rem 0.85rem;
  white-space: nowrap;
  max-width: 9.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hsm-search-compact-seg[data-open-panel="where"] {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  max-width: 12.2rem;
  padding: 0.42rem 0.85rem 0.42rem 0.55rem;
}
.hsm-search-compact-ico {
  display: grid;
  place-items: center;
  flex: none;
  width: 1.15rem;
  height: 1.15rem;
  background: none;
  border: 0;
  box-shadow: none;
}
.hsm-search-compact-ico .hsm-nav-svg {
  width: 1.15rem;
  height: 1.15rem;
  display: block;
}
.hsm-search-compact-seg[data-open-panel="where"] > [data-compact-where] {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hsm-search-compact-seg + .hsm-search-compact-seg {
  border-left: 1px solid var(--hsm-line);
}
.hsm-search-compact-seg .is-ph { color: var(--hsm-muted); font-weight: 600; }
.hsm-search-compact-go {
  width: 32px;
  height: 32px;
  flex: none;
  border: 0;
  border-radius: 50%;
  background: var(--hsm-navy);
  color: var(--hsm-gold);
  display: grid;
  place-items: center;
}
.hsm-search-compact-go svg { width: 13px; height: 13px; }
.hsm-search-start {
  display: none;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 42px;
  height: 42px;
  padding: 0 1rem;
  border: 1px solid #dddddd;
  border-radius: 999px;
  background: #fff;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 3px 10px rgba(0, 0, 0, 0.08);
  color: #222222;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box;
}
.hsm-search-start svg {
  width: 12px;
  height: 12px;
  flex: none;
  display: block;
  color: #222222;
}
.hsm-search-foot { display: contents; }
.hsm-search-clear {
  display: none;
  border: 0;
  background: none;
  padding: 0.4rem 0.2rem;
  font: inherit;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--hsm-navy);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.hsm-header-nav {
  display: none;
  align-items: stretch;
  flex: none;
  gap: 1.35rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--hsm-navy);
  transform: translateY(0);
  opacity: 1;
  position: relative;
  z-index: 3;
  transition:
    opacity 200ms cubic-bezier(0.2, 0, 0, 1),
    transform 250ms cubic-bezier(0.2, 0, 0, 1),
    visibility 200ms;
}
.hsm-header-offset { display: none; }
.hsm-header-nav a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.28rem;
  padding: 0.1rem 0.35rem 0.2rem;
  border-bottom: 0;
  position: relative;
  color: var(--hsm-muted);
  white-space: nowrap;
}
.hsm-nav-ico {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  transition:
    background 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease,
    color 160ms ease,
    transform 160ms ease;
}
.hsm-header-nav .hsm-nav-ico {
  background: #fff;
  border: 1px solid rgba(12, 27, 51, 0.07);
  box-shadow:
    0 4px 12px rgba(12, 27, 51, 0.10),
    0 1px 3px rgba(12, 27, 51, 0.05);
}
.hsm-nav-ico .hsm-nav-svg,
.hsm-header-nav a svg,
.hsm-product-pills a svg {
  width: 1.55rem;
  height: 1.55rem;
  display: block;
}
.hsm-header-nav a[aria-current] {
  color: var(--hsm-navy);
  font-weight: 700;
}
.hsm-header-nav a[aria-current] .hsm-nav-ico {
  color: var(--hsm-gold);
  background: #fff;
  border-color: rgba(201, 169, 98, 0.5);
  box-shadow:
    0 6px 16px rgba(12, 27, 51, 0.12),
    0 1px 3px rgba(12, 27, 51, 0.05);
}
.hsm-header-nav a[aria-current]::after {
  display: none;
}
.hsm-header-nav a:hover { color: var(--hsm-navy); }
.hsm-header-nav a:hover .hsm-nav-ico {
  background: #fff;
  border-color: rgba(12, 27, 51, 0.10);
  box-shadow:
    0 7px 18px rgba(12, 27, 51, 0.13),
    0 1px 3px rgba(12, 27, 51, 0.06);
}
.hsm-header-nav a[aria-current]:hover .hsm-nav-ico {
  border-color: rgba(201, 169, 98, 0.65);
}

.hsm-header-actions {
  display: flex;
  align-items: center;
  margin-left: auto;
  gap: 0.45rem;
  flex-shrink: 0;
}
.hsm-header-tool {
  display: none;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  flex: none;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.94);
  color: var(--hsm-navy);
  box-shadow: 0 2px 10px rgba(12, 27, 51, 0.12);
  cursor: pointer;
}
.hsm-header-tool svg {
  width: 17px;
  height: 17px;
  display: block;
}
.hsm-header-tool.is-on {
  color: #c0392b;
}
.hsm-header-tool.is-on svg {
  fill: currentColor;
}

.hsm-host-link {
  display: none;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--hsm-navy);
  padding: 0.55rem 0.95rem;
  border-radius: 999px;
}
.hsm-host-link:hover { background: var(--hsm-soft); }

.hsm-lang {
  position: relative;
}
.hsm-lang-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-width: 42px;
  height: 42px;
  border: 1px solid var(--hsm-line);
  background: var(--hsm-soft);
  border-radius: 999px;
  padding: 0 0.7rem;
  font-weight: 800;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}
.hsm-lang-btn:hover { background: #efebe4; }
.hsm-lang-flag svg { width: 18px; height: 12px; display: block; border-radius: 2px; }
.hsm-lang-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  background: #fff;
  border: 1px solid var(--hsm-line);
  border-radius: 12px;
  box-shadow: var(--hsm-shadow);
  min-width: 9rem;
  padding: 0.35rem;
  z-index: 20;
}
.hsm-lang-menu[hidden] { display: none; }
.hsm-lang-menu a {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.55rem;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
}
.hsm-lang-menu a:hover,
.hsm-lang-menu a[aria-current="true"] { background: var(--hsm-soft); }

.hsm-menu-btn {
  width: 42px;
  height: 42px;
  border: 1px solid var(--hsm-line);
  border-radius: 50%;
  background: var(--hsm-soft);
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  flex-shrink: 0;
}
.hsm-menu-btn:hover { background: #efebe4; }
.hsm-menu-btn span {
  display: block;
  width: 16px;
  height: 1.6px;
  background: var(--hsm-navy);
}

.hsm-account { position: relative; }
.hsm-account-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  width: min(22.5rem, calc(100vw - 1.5rem));
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 12px 40px rgba(12, 27, 51, 0.16);
  padding: 0.45rem 0;
  z-index: 50;
}
.hsm-account-menu[hidden] { display: none; }
.hsm-account-menu a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.85rem 1.2rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--hsm-ink);
}
.hsm-account-menu a:hover { background: var(--hsm-soft); }
.hsm-account-feat {
  align-items: flex-start !important;
  border-bottom: 1px solid var(--hsm-line);
  margin-bottom: 0.25rem;
  padding-bottom: 1rem !important;
}
.hsm-account-feat svg { width: 44px; height: 44px; flex: none; }
.hsm-account-feat strong { display: block; font-size: 1rem; }
.hsm-account-feat em {
  display: block;
  margin-top: 0.2rem;
  font-style: normal;
  font-weight: 500;
  font-size: 0.86rem;
  color: var(--hsm-muted);
}
.hsm-account-mobile {
  display: none;
  border-top: 1px solid var(--hsm-line);
  margin-top: 0.25rem;
  padding-top: 0.25rem;
}
.hsm-account-lang {
  display: none;
  border-top: 1px solid var(--hsm-line);
  margin-top: 0.25rem;
  padding: 0.7rem 0 0.35rem;
}
.hsm-account-lang-label {
  margin: 0 1.2rem 0.45rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--hsm-muted);
}
.hsm-account-lang-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.hsm-account-lang-list a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem;
  padding: 0.75rem 1.2rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--hsm-ink);
}
.hsm-account-lang-list a:hover,
.hsm-account-lang-list a[aria-current="true"] {
  background: var(--hsm-soft);
}
.hsm-account-lang-list .hsm-lang-flag svg {
  width: 22px;
  height: 15px;
  display: block;
  border-radius: 2px;
}

/* Search pill */
.hsm-hero-search { position: relative; z-index: 25; }
.hsm-search {
  position: relative;
  max-width: 880px;
  overflow: visible;
}
.hsm-hero-search .hsm-search { margin-inline: auto; }
.hsm-search-bar {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1.1fr) minmax(0, 1fr) auto;
  align-items: stretch;
  background: #fff;
  border: 1px solid var(--hsm-line);
  border-radius: 999px;
  box-shadow: 0 6px 20px rgba(12, 27, 51, 0.08), 0 1px 2px rgba(12, 27, 51, 0.04);
  padding: 8px;
  min-height: 68px;
  text-align: left;
  overflow: visible;
}
.hsm-search-unit {
  min-width: 0;
  display: flex;
  align-items: stretch;
}
.hsm-search-unit .hsm-search-field {
  flex: 1 1 auto;
  width: 100%;
}
.hsm-search.is-picking .hsm-search-bar { background: var(--hsm-soft); }
.hsm-search-field {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.15s ease, box-shadow 0.15s ease;
}
.hsm-search-unit + .hsm-search-unit .hsm-search-field::before {
  content: "";
  position: absolute;
  left: 0;
  top: 22%;
  bottom: 22%;
  width: 1px;
  background: var(--hsm-line);
  pointer-events: none;
  transition: opacity 0.15s ease;
}
.hsm-search-field:hover,
.hsm-search.is-picking .hsm-search-field.is-open {
  background: #fff;
}
.hsm-search-field.is-open {
  background: #fff;
  box-shadow: 0 6px 22px rgba(12, 27, 51, 0.12);
  z-index: 1;
}
.hsm-search-unit:hover .hsm-search-field::before,
.hsm-search-unit.is-open .hsm-search-field::before,
.hsm-search-unit:hover + .hsm-search-unit .hsm-search-field::before,
.hsm-search-unit.is-open + .hsm-search-unit .hsm-search-field::before {
  opacity: 0;
}
.hsm-search-trigger {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.22rem;
  width: 100%;
  border: 0;
  background: transparent;
  padding: 0.55rem 1.55rem;
  text-align: left;
  border-radius: inherit;
}
.hsm-search-unit:first-child .hsm-search-trigger {
  padding-left: 1.85rem;
}
.hsm-search-label {
  font-size: 0.75rem;
  font-weight: 800;
  color: var(--hsm-navy);
  line-height: 1;
}
.hsm-search-value {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--hsm-ink);
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.hsm-search-value.is-ph {
  color: var(--hsm-muted);
  font-weight: 500;
}
.hsm-search-go {
  width: 48px;
  height: 48px;
  margin: auto 4px auto 8px;
  border: 0;
  border-radius: 50%;
  background: var(--hsm-navy);
  color: var(--hsm-gold);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(12, 27, 51, 0.22);
  transition: background 0.15s ease, transform 0.15s ease, width 0.15s ease, border-radius 0.15s ease;
}
.hsm-search-go svg { width: 18px; height: 18px; flex: none; }
.hsm-search-go span { display: none; font-weight: 700; }
.hsm-search.is-picking .hsm-search-go {
  width: auto;
  min-width: 48px;
  padding: 0 1.15rem;
  border-radius: 999px;
}
.hsm-search.is-picking .hsm-search-go span { display: inline; }
.hsm-search-go:hover,
.hsm-search-go:focus-visible {
  background: var(--hsm-navy-2);
  transform: scale(1.04);
}

.hsm-hero-search .hsm-search { margin-inline: auto; }

.hsm-pop {
  position: absolute;
  top: calc(100% + 12px);
  background: #fff;
  border-radius: 28px;
  box-shadow: 0 16px 48px rgba(12, 27, 51, 0.16);
  padding: 1.1rem 1.2rem 1.25rem;
  z-index: 30;
  text-align: left;
  overflow: visible;
}
.hsm-pop[hidden] { display: none; }
.hsm-pop-where {
  left: 0;
  width: min(24rem, calc(100vw - 2rem));
  max-height: min(70vh, 32rem);
  overflow: visible;
}
.hsm-pop-where .hsm-dest-list,
.hsm-pop-where [data-recent-list] {
  max-height: min(52vh, 22rem);
  overflow: auto;
}
.hsm-pop-when {
  left: 0;
  right: 0;
  width: auto;
  transform: none;
}
.hsm-pop-who {
  right: 0;
  width: min(24rem, calc(100vw - 2rem));
}
.hsm-where-type {
  width: 100%;
  border: 1px solid #d1d5db;
  border-radius: 16px;
  padding: 0.85rem 1rem 0.85rem 2.65rem;
  margin-bottom: 1rem;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23717171' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20 16.5 16.5'/%3E%3C/svg%3E") 0.95rem 50% / 16px no-repeat;
  outline: none;
  font-size: 0.98rem;
  color: var(--hsm-navy);
}
.hsm-where-type:focus { border-color: var(--hsm-navy); background-color: #fff; }
.hsm-pop-kicker {
  margin: 0.55rem 0 0.35rem;
  font-size: 0.88rem;
  font-weight: 650;
  letter-spacing: 0;
  text-transform: none;
  color: #6a7280;
}
.hsm-dest-item,
.hsm-recent-item {
  display: flex;
  align-items: center;
  gap: 0.95rem;
  width: 100%;
  border: 0;
  background: none;
  padding: 0.7rem 0.35rem;
  border-radius: 14px;
  text-align: left;
  cursor: pointer;
}
.hsm-dest-item:hover,
.hsm-recent-item:hover { background: var(--hsm-soft); }
.hsm-dest-ico {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  flex: none;
}
.hsm-dest-ico svg { width: 22px; height: 22px; }
.hsm-dest-ico.is-near { background: #e8eefc; color: #3b6bdb; }
.hsm-dest-ico.is-recent { background: #eceff3; color: #5b6575; }
.hsm-dest-item strong,
.hsm-recent-item strong {
  display: block;
  font-size: 0.98rem;
  font-weight: 750;
  color: var(--hsm-navy);
  line-height: 1.25;
}
.hsm-dest-item em,
.hsm-recent-item em {
  display: block;
  margin-top: 0.12rem;
  font-style: normal;
  font-size: 0.84rem;
  color: #6a7280;
  font-weight: 500;
  line-height: 1.3;
}

.hsm-when-tabs {
  display: flex;
  justify-content: center;
  background: var(--hsm-soft);
  border-radius: 999px;
  padding: 4px;
  width: fit-content;
  margin: 0 auto 1.1rem;
}
.hsm-when-tabs button {
  border: 0;
  background: transparent;
  padding: 0.5rem 1.15rem;
  border-radius: 999px;
  font-weight: 700;
  color: var(--hsm-muted);
}
.hsm-when-tabs button.is-on {
  background: #fff;
  color: var(--hsm-navy);
  box-shadow: 0 2px 10px rgba(12, 27, 51, 0.08);
}
.hsm-when-cal .hsm-cal-nav-row {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}
.hsm-when-cal .hsm-cal-months { flex: 1; min-width: 0; }
.hsm-when-flexdays,
.hsm-when-len {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  justify-content: center;
}
.hsm-when-flexdays { margin-top: 1rem; }
.hsm-when-len { margin: 0 0 1.5rem; }
.hsm-when-flexdays button,
.hsm-when-len button {
  border: 1px solid var(--hsm-line);
  background: #fff;
  border-radius: 999px;
  padding: 0.48rem 0.9rem;
  font-weight: 600;
  font-size: 0.88rem;
}
.hsm-when-flexdays button.is-on,
.hsm-when-len button.is-on,
.hsm-month-card.is-on {
  border-color: var(--hsm-navy);
  box-shadow: inset 0 0 0 1px var(--hsm-navy);
}
.hsm-when-q {
  text-align: center;
  font-weight: 800;
  font-size: 1.05rem;
  margin: 0.4rem 0 0.8rem;
  color: var(--hsm-navy);
}
.hsm-when-months {
  display: flex;
  gap: 0.7rem;
  overflow-x: auto;
  padding: 0.2rem 0 0.4rem;
  scrollbar-width: thin;
}
.hsm-month-card {
  flex: 0 0 7.2rem;
  border: 1px solid var(--hsm-line);
  background: #fff;
  border-radius: 16px;
  padding: 1rem 0.6rem 0.85rem;
  text-align: center;
}
.hsm-month-card svg {
  width: 28px;
  height: 28px;
  margin: 0 auto 0.55rem;
  color: var(--hsm-muted);
  display: block;
}
.hsm-month-card strong { display: block; font-size: 0.92rem; }
.hsm-month-card span { color: var(--hsm-muted); font-size: 0.82rem; }

.hsm-guest-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem 0.2rem;
  border-bottom: 1px solid var(--hsm-line);
}
.hsm-guest-row:last-child { border-bottom: 0; }
.hsm-guest-row strong { display: block; font-size: 1rem; }
.hsm-guest-row span { color: var(--hsm-muted); font-size: 0.86rem; }
.hsm-stepper {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}
.hsm-stepper button {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid var(--hsm-line);
  background: var(--hsm-soft);
  color: var(--hsm-navy);
  font-size: 1.1rem;
  line-height: 1;
}
.hsm-stepper button:disabled { opacity: 0.35; cursor: default; }
.hsm-stepper span { min-width: 1.1rem; text-align: center; font-weight: 700; }

/* Home */
.hsm-page-kicker {
  display: none;
}
.hsm-hero {
  padding: 0.35rem 0 0.05rem;
  text-align: center;
}
.hsm-hero h1 {
  font-family: var(--hsm-serif);
  font-size: clamp(1.55rem, 3vw, 2.2rem);
  font-weight: 600;
  font-synthesis: none;
  line-height: 1.18;
  letter-spacing: -0.02em;
  color: var(--hsm-navy);
  margin: 0 auto 0.55rem;
  max-width: 42rem;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
.hsm-hero p {
  color: var(--hsm-muted);
  max-width: 36rem;
  margin: 0 auto 1rem;
  font-size: 1.02rem;
}

.hsm-product-pills { display: none; }

.hsm-cats {
  display: flex;
  flex-wrap: nowrap;
  justify-content: safe center;
  align-items: center;
  gap: 0.38rem;
  padding: 0 0 0.95rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.hsm-cats::-webkit-scrollbar { display: none; }
.hsm-cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.34rem;
  flex: 0 0 auto;
  border: 1px solid #ddd7ce;
  background: #fff;
  border-radius: 999px;
  padding: 0.34rem 0.78rem 0.34rem 0.62rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--hsm-muted);
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.hsm-cat svg {
  width: 14px;
  height: 14px;
  flex: none;
  display: block;
}
.hsm-cat:hover {
  border-color: #cfc8bc;
  color: var(--hsm-navy);
  background: var(--hsm-soft);
}

.hsm-row-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin: 0.4rem 0 0.9rem;
}
.hsm-row-head h2 {
  font-size: 1.35rem;
  color: var(--hsm-navy);
}
.hsm-row-head a {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--hsm-navy);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.hsm-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.15rem 1rem;
}
.hsm-home-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  margin: 1.5rem 0 0.35rem;
  flex-wrap: wrap;
}
.hsm-home-pager[hidden] { display: none !important; }
.hsm-home-page-btn {
  border: 1px solid var(--hsm-ink);
  background: #fff;
  color: var(--hsm-ink);
  font: inherit;
  font-weight: 700;
  font-size: 0.9rem;
  border-radius: 999px;
  padding: 0.65rem 1.25rem;
  cursor: pointer;
  min-width: 7.5rem;
  transition: background 0.15s ease, color 0.15s ease, opacity 0.15s ease;
}
.hsm-home-page-btn.is-next,
.hsm-home-page-btn:hover:not(:disabled) {
  background: var(--hsm-navy);
  border-color: var(--hsm-navy);
  color: #fff;
}
.hsm-home-page-btn:disabled {
  opacity: 0.35;
  cursor: default;
}
.hsm-home-page-status {
  font-size: 0.88rem;
  font-weight: 650;
  color: var(--hsm-muted);
  min-width: 3.5rem;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.hsm-search-pager {
  margin: 1.25rem 0 0.5rem;
  grid-column: 1 / -1;
}

.hsm-exp-lead {
  color: var(--hsm-muted);
  margin: 0.35rem 0 0;
  max-width: 38rem;
}
.hsm-exp-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
.hsm-exp-grid-home,
.hsm-listing .hsm-exp-grid {
  grid-template-columns: 1fr 1fr;
}
.hsm-exp-card {
  display: grid;
  grid-template-columns: 8.5rem 1fr;
  gap: 0.9rem;
  border: 1px solid var(--hsm-line);
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  align-items: stretch;
}
.hsm-exp-card img {
  width: 100%;
  height: 100%;
  min-height: 8.5rem;
  object-fit: cover;
}
.hsm-exp-card-media {
  display: block;
  min-height: 8.5rem;
  overflow: hidden;
  background: var(--hsm-soft);
}
.hsm-exp-card-media img { height: 100%; }
.hsm-exp-body {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0.85rem 0.95rem 0.95rem 0;
}
.hsm-exp-kind {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--hsm-gold-2);
  margin: 0 0 0.25rem;
}
.hsm-exp-card h3 {
  font-size: 1.05rem;
  color: var(--hsm-navy);
  margin: 0 0 0.2rem;
}
.hsm-exp-tag { color: var(--hsm-muted); font-size: 0.9rem; margin: 0 0 0.45rem; }
.hsm-exp-card p { margin: 0 0 0.45rem; font-size: 0.92rem; }
.hsm-exp-rating,
a.hsm-exp-rating {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.28rem 0.4rem;
  margin: 0 0 0.4rem;
  color: var(--hsm-navy);
  font-size: 0.86rem;
  font-weight: 750;
  line-height: 1.2;
  text-decoration: none;
}
a.hsm-exp-rating:hover .hsm-exp-rating-count {
  text-decoration: underline;
  text-underline-offset: 2px;
}
.hsm-exp-rating-score {
  letter-spacing: -0.02em;
}
.hsm-exp-rating-dot { color: var(--hsm-muted); font-weight: 600; }
.hsm-exp-rating-count {
  font-weight: 550;
  color: var(--hsm-muted);
}
.hsm-exp-quote {
  margin: 0.05rem 0 0.5rem;
  padding: 0.45rem 0 0.45rem 0.7rem;
  border: 0;
  border-left: 2px solid var(--hsm-gold);
  background: transparent;
}
.hsm-exp-quote p {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.45;
  color: var(--hsm-ink);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.hsm-exp-quote cite {
  display: block;
  margin-top: 0.22rem;
  font-style: normal;
  font-size: 0.76rem;
  font-weight: 650;
  color: var(--hsm-muted);
}
.hsm-exp-meta { font-size: 0.9rem; margin: 0.15rem 0 0.55rem; }
.hsm-exp-meta span { color: var(--hsm-muted); }
.hsm-exp-gate { font-size: 0.82rem; color: var(--hsm-muted); }
.hsm-exp-card.is-preview:has(input:checked) {
  border-color: var(--hsm-navy);
  box-shadow: 0 0 0 1px var(--hsm-navy);
}
.hsm-exp-card.is-preview .hsm-exp-add { margin-top: auto; }
.hsm-exp-sub { font-size: 1.05rem; color: var(--hsm-navy); margin: 1.3rem 0 0.7rem; }
.hsm-exp-check {
  display: grid;
  gap: 0.85rem;
  margin-top: 0.35rem;
}
@media (min-width: 900px) {
  .hsm-bookpage .hsm-exp-check .hsm-exp-card {
    grid-template-columns: 12.75rem minmax(0, 1fr);
    gap: 1rem;
  }
  .hsm-bookpage .hsm-exp-check .hsm-exp-card-media {
    min-height: 100%;
  }
  .hsm-bookpage .hsm-exp-check .hsm-exp-card img {
    min-height: 13rem;
  }
  .hsm-bookpage .hsm-exp-check .hsm-exp-body {
    padding: 0.95rem 1.1rem 1rem 0;
  }
}
.hsm-checkout-step[data-hsm-step="addons"] .hsm-step + .hsm-step {
  margin-top: 1.85rem;
  padding-top: 0;
  border-top: 0;
}
.hsm-checkout-step[data-hsm-step="addons"] .hsm-step-lead {
  margin: 0 0 0.75rem;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--hsm-muted);
}
.hsm-exp-add {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-weight: 700;
  font-size: 0.88rem;
  cursor: pointer;
}
.hsm-exp-add input { accent-color: var(--hsm-navy); width: 1rem; height: 1rem; }
.hsm-exp-add-on { display: none; }
.hsm-exp-add:has(input:checked) .hsm-exp-add-off { display: none; }
.hsm-exp-add:has(input:checked) .hsm-exp-add-on { display: inline; }
.hsm-co-exp-added[hidden],
.hsm-co-exp-more[hidden] { display: none !important; }
.hsm-co-exp-added h2,
.hsm-co-exp-more h2 {
  margin: 0 0 0.55rem;
  font-size: 1.18rem;
  color: var(--hsm-navy);
}
.hsm-co-exp-added + .hsm-co-exp-more:not([hidden]) {
  margin-top: 1.85rem;
  padding-top: 0;
  border-top: 0;
}
.hsm-bookpage [data-hsm-exp-added-list] .hsm-exp-card.is-preview:has(input:checked) {
  border: 0;
  box-shadow: none;
}
.hsm-listing-exps-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}
.hsm-listing-exps {
  margin-top: 2.4rem;
  padding-top: 1.8rem;
  border-top: 1px solid var(--hsm-line);
}
.hsm-listing-exps-head h2 {
  margin-bottom: 0;
  font-size: 1.25rem;
  color: var(--hsm-navy);
}
.hsm-listing-exps-head a {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--hsm-navy);
  text-decoration: underline;
  text-underline-offset: 3px;
  white-space: nowrap;
}
.hsm-listing-exps .hsm-listing-exps-lead {
  margin: 0.5rem 0 0;
  color: var(--hsm-muted);
  max-width: 40rem;
}
.hsm-listing-exp-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.05rem;
}
.hsm-listing-exp {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border: 1px solid var(--hsm-line);
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
}
.hsm-listing-exp:hover { box-shadow: var(--hsm-shadow); }
.hsm-listing-exp:has(input:checked) {
  border-color: var(--hsm-navy);
  box-shadow: 0 0 0 1px var(--hsm-navy);
}
.hsm-listing-exp-media {
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--hsm-soft);
}
.hsm-listing-exp-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hsm-listing-exp-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 0.85rem 1rem 1rem;
  min-width: 0;
}
.hsm-listing-exp h3 {
  font-size: 1.08rem;
  line-height: 1.3;
  color: var(--hsm-navy);
  margin: 0 0 0.2rem;
}
.hsm-listing-exp h3 a { color: inherit; }
.hsm-listing-exp .hsm-exp-rating { margin: 0.1rem 0 0.35rem; }
.hsm-listing-exps .hsm-listing-exp-tag,
.hsm-listing-exps .hsm-listing-exp-meta {
  margin: 0 0 0.2rem;
  color: var(--hsm-muted);
  font-size: 0.9rem;
  line-height: 1.4;
}
.hsm-listing-exps .hsm-listing-exp-meta { font-size: 0.84rem; }
.hsm-listing-exp .hsm-exp-gate { margin: 0.15rem 0 0; }
.hsm-listing-exp-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
  margin-top: auto;
  padding-top: 0.8rem;
}
.hsm-listing-exp-price { font-size: 0.92rem; }
.hsm-listing-exp-add {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 5.6rem;
  padding: 0.42rem 0.9rem;
  border-radius: 999px;
  border: 1px solid var(--hsm-navy);
  background: #fff;
  color: var(--hsm-navy);
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  flex: none;
}
.hsm-listing-exp-add input {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.hsm-listing-exp-on { display: none; }
.hsm-listing-exp-add:has(input:checked) {
  background: var(--hsm-navy);
  color: #fff;
}
.hsm-listing-exp-add:has(input:checked) .hsm-listing-exp-off { display: none; }
.hsm-listing-exp-add:has(input:checked) .hsm-listing-exp-on { display: inline; }
@media (max-width: 520px) {
  .hsm-exp-grid-home,
  .hsm-listing .hsm-exp-grid,
  .hsm-exp-card { grid-template-columns: 1fr; }
  .hsm-exp-card img { min-height: 10rem; max-height: 12rem; }
  .hsm-exp-body { padding: 0.95rem 1.05rem 1.1rem; }
  .hsm-row-head {
    gap: 0.75rem;
    margin: 0.2rem 0 1rem;
  }
  .hsm-row-head h2 { font-size: 1.22rem; line-height: 1.25; }
  .hsm-row-head a {
    flex: none;
    white-space: nowrap;
  }
  .hsm-exp-lead {
    margin-top: 0.45rem;
    padding-right: 0.25rem;
    line-height: 1.5;
    font-size: 0.92rem;
  }
}

.hsm-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  color: inherit;
  outline: 2px solid transparent;
  outline-offset: 3px;
  border-radius: 18px;
  transition: outline-color 0.2s ease, box-shadow 0.2s ease;
}
.hsm-card-media {
  position: relative;
  aspect-ratio: 1 / 0.95;
  border-radius: var(--hsm-radius);
  overflow: hidden;
  background: var(--hsm-soft);
}
.hsm-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hsm-badge,
.hsm-badge-chip,
.hsm-host-badge {
  --badge-fg: var(--hsm-navy);
  --badge-bg: rgba(255, 255, 255, 0.96);
  --badge-line: rgba(12, 27, 51, 0.08);
  --badge-accent: var(--hsm-gold);
  display: inline-flex;
  align-items: center;
  gap: 0.34rem;
  max-width: calc(100% - 1rem);
  padding: 0.34rem 0.72rem 0.34rem 0.42rem;
  border: 1px solid var(--badge-line);
  border-radius: 999px;
  background: var(--badge-bg);
  color: var(--badge-fg);
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.01em;
  line-height: 1.1;
  box-shadow: 0 1px 2px rgba(12, 27, 51, 0.06), 0 6px 16px rgba(12, 27, 51, 0.08);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.hsm-badge .hsm-badge-mark,
.hsm-badge-chip .hsm-badge-mark,
.hsm-host-badge .hsm-badge-mark {
  width: 18px;
  height: 18px;
  flex: none;
  color: var(--badge-accent);
  display: block;
  border-radius: 50%;
  background: color-mix(in srgb, var(--badge-accent) 18%, transparent);
  padding: 3px;
  box-sizing: border-box;
}
.hsm-badge > span,
.hsm-badge-chip > span,
.hsm-host-badge > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.hsm-badge {
  position: absolute;
  left: 0.7rem;
  top: 0.7rem;
  z-index: 2;
}
.hsm-card-media > .hsm-badge,
.hsm-exp-tile-media > .hsm-badge {
  display: none;
}
/* Shared color variants — same shape, different accent */
.hsm-badge.is-guests_favourite,
.hsm-badge-chip.is-guests_favourite,
.hsm-host-badge.is-guests_favourite,
.hsm-stat-badge.is-guests_favourite {
  --badge-fg: #0c1b33;
  --badge-bg: rgba(255, 255, 255, 0.96);
  --badge-line: rgba(201, 169, 98, 0.45);
  --badge-accent: #c9a962;
}
.hsm-badge.is-absolute_lux,
.hsm-badge-chip.is-absolute_lux,
.hsm-host-badge.is-absolute_lux,
.hsm-stat-badge.is-absolute_lux {
  --badge-fg: #f4e8c8;
  --badge-bg: #0c1b33;
  --badge-line: rgba(201, 169, 98, 0.35);
  --badge-accent: #c9a962;
}
.hsm-badge.is-connoisseur,
.hsm-badge-chip.is-connoisseur,
.hsm-host-badge.is-connoisseur,
.hsm-stat-badge.is-connoisseur {
  --badge-fg: #f4e8c8;
  --badge-bg: #16304f;
  --badge-line: rgba(201, 169, 98, 0.28);
  --badge-accent: #d4b56e;
}
.hsm-badge.is-loved_by_guests,
.hsm-badge-chip.is-loved_by_guests,
.hsm-host-badge.is-loved_by_guests,
.hsm-stat-badge.is-loved_by_guests {
  --badge-fg: #6b3428;
  --badge-bg: #faf3ec;
  --badge-line: rgba(180, 100, 72, 0.28);
  --badge-accent: #c2674a;
}
.hsm-badge.is-eco,
.hsm-badge-chip.is-eco,
.hsm-host-badge.is-eco,
.hsm-stat-badge.is-eco,
.hsm-host-pin.is-eco {
  --badge-fg: #1a5c38;
  --badge-bg: #eef6f1;
  --badge-line: rgba(61, 139, 92, 0.3);
  --badge-accent: #2f8a55;
}
.hsm-badge.is-absolute_host,
.hsm-badge-chip.is-absolute_host,
.hsm-host-badge.is-absolute_host,
.hsm-host-pin.is-absolute_host {
  --badge-fg: #0c1b33;
  --badge-bg: #f7f1e4;
  --badge-line: rgba(201, 169, 98, 0.5);
  --badge-accent: #a8893f;
}
.hsm-badge.is-preferred_partner,
.hsm-badge-chip.is-preferred_partner,
.hsm-host-badge.is-preferred_partner,
.hsm-host-pin.is-preferred_partner {
  --badge-fg: #f4e8c8;
  --badge-bg: #0c1b33;
  --badge-line: rgba(201, 169, 98, 0.4);
  --badge-accent: #c9a962;
}
.hsm-badge.is-originals,
.hsm-badge-chip.is-originals,
.hsm-stat-badge.is-originals {
  --badge-fg: #0c1b33;
  --badge-bg: rgba(255, 255, 255, 0.96);
  --badge-line: rgba(201, 169, 98, 0.5);
  --badge-accent: #c9a962;
}
.hsm-badge.is-rare_experience,
.hsm-badge-chip.is-rare_experience,
.hsm-stat-badge.is-rare_experience {
  --badge-fg: #f4e8c8;
  --badge-bg: #4a2554;
  --badge-line: rgba(201, 169, 98, 0.35);
  --badge-accent: #d4b56a;
}
.hsm-badge.is-host_signature,
.hsm-badge-chip.is-host_signature,
.hsm-stat-badge.is-host_signature {
  --badge-fg: #f4e8c8;
  --badge-bg: #16304f;
  --badge-line: rgba(201, 169, 98, 0.32);
  --badge-accent: #d4b56e;
}
.hsm-badge.is-heritage_keeper,
.hsm-badge-chip.is-heritage_keeper,
.hsm-stat-badge.is-heritage_keeper {
  --badge-fg: #6b3428;
  --badge-bg: #faf3ec;
  --badge-line: rgba(180, 100, 72, 0.28);
  --badge-accent: #c2674a;
}
.hsm-badge.is-hidden_gem,
.hsm-badge-chip.is-hidden_gem,
.hsm-stat-badge.is-hidden_gem {
  --badge-fg: #1a5c38;
  --badge-bg: #eef6f1;
  --badge-line: rgba(61, 139, 92, 0.3);
  --badge-accent: #2f8a55;
}
.hsm-heart {
  position: absolute;
  right: 0.7rem;
  top: 0.65rem;
  z-index: 2;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  cursor: pointer;
  filter: drop-shadow(0 1px 4px rgba(0,0,0,.45));
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.hsm-heart svg { width: 20px; height: 20px; display: block; }
.hsm-heart.is-on {
  color: #c0392b;
}
.hsm-heart.is-on svg {
  fill: currentColor;
}
.hsm-heart.is-pop,
.hsm-ghost[data-hsm-save].is-pop,
.hsm-chrome-btn[data-hsm-save].is-pop {
  animation: hsm-heart-pop 0.42s ease;
}
@keyframes hsm-heart-pop {
  0% { transform: scale(1); }
  35% { transform: scale(1.28); }
  100% { transform: scale(1); }
}
.hsm-ghost[data-hsm-save].is-on {
  color: #c0392b;
}
.hsm-ghost[data-hsm-save].is-on svg {
  fill: currentColor;
  color: #c0392b;
}

.hsm-continue {
  margin: 0.2rem 0 1.25rem;
}
.hsm-continue[hidden] { display: none !important; }
.hsm-continue-kicker {
  margin: 0 0 0.75rem;
  font-size: 1.2rem;
  font-weight: 750;
  letter-spacing: -0.03em;
  color: var(--hsm-navy);
  line-height: 1.2;
}
.hsm-continue-rail {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}
.hsm-continue-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas: "thumb copy arrow";
  align-items: center;
  gap: 0.95rem;
  min-width: 0;
  padding: 0.85rem 1rem;
  border-radius: 24px;
  background: #fff;
  border: 1px solid var(--hsm-line);
  box-shadow: 0 8px 24px rgba(12, 27, 51, 0.07);
  text-decoration: none;
  color: inherit;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.hsm-continue-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(12, 27, 51, 0.1);
}
.hsm-continue-arrow {
  grid-area: arrow;
  flex: none;
  width: 0.42rem;
  height: 0.42rem;
  border-right: 1.7px solid currentColor;
  border-bottom: 1.7px solid currentColor;
  transform: rotate(-45deg);
  color: var(--hsm-ink);
  opacity: 0.78;
  margin-left: 0.15rem;
  order: 3;
}
.hsm-continue-card.is-return {
  grid-template-columns: auto auto minmax(0, 1fr);
  grid-template-areas: "arrow thumb copy";
}
.hsm-continue-card.is-return .hsm-continue-arrow {
  transform: rotate(135deg);
  margin-left: 0;
  margin-right: 0.15rem;
  order: 0;
}
.hsm-continue-copy {
  grid-area: copy;
  min-width: 0;
  order: 2;
}
.hsm-continue-copy strong {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  overflow-wrap: anywhere;
  font-size: 1rem;
  font-weight: 750;
  letter-spacing: -0.025em;
  color: var(--hsm-navy);
  line-height: 1.28;
}
.hsm-continue-copy em {
  display: block;
  font-style: normal;
  color: var(--hsm-muted);
  font-size: 0.86rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 0.18rem;
}
.hsm-continue-thumb {
  grid-area: thumb;
  width: 72px;
  height: 72px;
  border-radius: 14px;
  object-fit: cover;
  background: var(--hsm-soft);
  border: 1px solid rgba(12, 27, 51, 0.06);
  order: 1;
}
.hsm-continue-thumb.is-empty {
  display: block;
}
.hsm-continue.is-under-search {
  margin: 0;
  padding: 0;
  background: #fff;
}
.hsm-continue.is-under-search:not([hidden]) {
  border-bottom: 1px solid var(--hsm-line);
  padding: 0.65rem 1.25rem;
}
.hsm-continue.is-context {
  position: sticky;
  top: var(--hsm-header);
  z-index: 48;
  margin: 0;
  padding: 0.55rem 0 0.55rem;
  background: #fff;
}
.hsm-continue.is-context:not([hidden]) {
  border-bottom: 1px solid var(--hsm-line);
}
.hsm-continue.is-context .hsm-continue-inner {
  width: min(var(--hsm-max), calc(100% - (2 * var(--hsm-gutter))));
  margin-inline: auto;
}
.hsm-detail.is-search-open .hsm-continue.is-context {
  visibility: hidden;
  pointer-events: none;
}
.is-search-open .hsm-continue.is-under-search {
  display: none !important;
}
@media (min-width: 720px) {
  /* One rec on desktop: compact row. Two recs keep the card grid. */
  .hsm-continue.is-single .hsm-continue-kicker {
    display: none;
  }
  .hsm-continue.is-single .hsm-continue-inner {
    display: flex;
    justify-content: center;
  }
  .hsm-continue.is-single .hsm-continue-rail {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    width: auto;
    max-width: min(52rem, 100%);
  }
  .hsm-continue.is-single .hsm-continue-card {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    width: auto;
    max-width: 100%;
    padding: 0.15rem 0.1rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  .hsm-continue.is-single .hsm-continue-card:hover {
    transform: none;
    box-shadow: none;
  }
  .hsm-continue.is-single .hsm-continue-thumb {
    width: 40px;
    height: 40px;
    border-radius: 8px;
  }
  .hsm-continue.is-single .hsm-continue-copy {
    display: flex;
    flex: 0 1 auto;
    width: auto;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.15rem 0.5rem;
  }
  .hsm-continue.is-single .hsm-continue-copy em {
    display: inline;
    margin-top: 0;
    font-size: 0.9rem;
    font-weight: 500;
    white-space: nowrap;
  }
  .hsm-continue.is-single .hsm-continue-copy strong {
    display: inline;
    -webkit-box-orient: unset;
    -webkit-line-clamp: unset;
    overflow: visible;
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: -0.015em;
    line-height: 1.35;
  }
  .hsm-continue.is-under-search.is-single:not([hidden]) {
    /* Keep compact single chrome; match pair’s breathing room before filters. */
    padding: 0.7rem 1.5rem 1.85rem;
    border-bottom: 0;
    /* Header offset is taller than the measured bar; kiss the search hairline. */
    margin-top: -1.35rem;
  }
  .hsm.has-header-search.is-compact:not(.is-search-open) .hsm-continue.is-under-search.is-single:not([hidden]),
  .hsm.has-exp-filters .hsm-continue.is-under-search.is-single:not([hidden]) {
    margin-top: 0;
  }
  .hsm-continue.is-under-search.is-pair:not([hidden]) {
    padding: 1.25rem 0 2.15rem;
    border-bottom: 0;
    margin-top: 0;
  }
  /* No hint cards: keep filters clear of the search bar. */
  .hsm.has-header-search:has(> .hsm-continue.is-under-search[hidden]) #hsm-main > .hsm-section:first-of-type .hsm-cats {
    padding-top: 1.35rem;
  }
  .hsm-continue.is-under-search.is-pair .hsm-continue-kicker {
    margin-bottom: 0.9rem;
  }
  .hsm-continue.is-under-search.is-pair .hsm-continue-inner {
    width: min(var(--hsm-max), calc(100% - (2 * var(--hsm-gutter))));
    margin-inline: auto;
  }
  .hsm-continue.is-context.is-single {
    padding: 0.55rem 0;
  }
  .hsm-listing:has(> .hsm-continue.is-context:not([hidden])) {
    padding-top: 0;
  }
}
@media (max-width: 719px) {
  .hsm-continue-kicker {
    font-size: 1.08rem;
    margin-bottom: 0.65rem;
  }
  .hsm-continue-rail {
    display: flex;
    grid-template-columns: none;
    gap: 0.7rem;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    margin-inline: calc(-1 * var(--hsm-gutter));
    padding-inline: var(--hsm-gutter);
  }
  .hsm-continue-rail::-webkit-scrollbar { display: none; }
  .hsm-continue-card {
    flex: 0 0 min(84%, 22.5rem);
    scroll-snap-align: start;
    padding: 0.9rem 0.95rem;
    border-radius: 22px;
  }
  /* Mobile always uses cards. Width must be definite (vw/rem) so titles wrap;
     percentage flex-basis is indefinite inside the overflow rail. */
  .hsm-continue.is-single .hsm-continue-card,
  .hsm-continue.is-context .hsm-continue-card {
    flex: 0 0 min(40rem, calc(100vw - (2 * var(--hsm-gutter))));
    width: min(40rem, calc(100vw - (2 * var(--hsm-gutter))));
    max-width: min(40rem, calc(100vw - (2 * var(--hsm-gutter))));
  }
  .hsm-continue.is-under-search.is-pair:not([hidden]) {
    padding: 0.85rem var(--hsm-gutter) 0.15rem;
    border-bottom: 0;
  }
  .hsm-continue.is-under-search.is-single:not([hidden]) {
    padding: 0.85rem var(--hsm-gutter) 1.05rem;
    border-bottom: 0;
  }
  .hsm.has-header-search:has(> .hsm-continue.is-under-search[hidden]) #hsm-main > .hsm-section:first-of-type .hsm-cats {
    padding-top: 0.95rem;
  }
  .hsm-continue.is-context {
    top: 0;
    z-index: 57;
    padding: max(0.55rem, env(safe-area-inset-top)) var(--hsm-gutter) 0.7rem;
  }
  .hsm-detail.is-from-exp .hsm-listing-chrome,
  .hsm-detail.is-from-book .hsm-listing-chrome {
    display: none !important;
  }
  .hsm-detail.is-from-exp .hsm-listing-kicker .hsm-sharebar,
  .hsm-detail.is-from-book .hsm-listing-kicker .hsm-sharebar,
  .hsm-detail.is-from-exp .hsm-exp-share,
  .hsm-detail.is-from-book .hsm-exp-share {
    display: flex;
  }
}

html:has(.hsm-auth-page) {
  margin: 0;
  background: #f4efe6;
}
.hsm-auth-page {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  background: #f4efe6;
  overflow: hidden;
}
.hsm-auth-scene {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.hsm-auth-scene::before,
.hsm-auth-scene::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.hsm-auth-scene::before {
  z-index: 2;
  background:
    radial-gradient(ellipse 52% 46% at 50% 46%, rgba(244, 239, 230, 0.22), transparent 64%),
    linear-gradient(180deg, rgba(244, 239, 230, 0.52) 0%, transparent 16%, transparent 80%, rgba(244, 239, 230, 0.62) 100%),
    linear-gradient(90deg, rgba(244, 239, 230, 0.42) 0%, transparent 14%, transparent 86%, rgba(244, 239, 230, 0.42) 100%);
}
.hsm-auth-scene::after {
  z-index: 3;
  opacity: 0.2;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hsm-auth-mosaic {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-auto-rows: minmax(14.5vw, 17vw);
  gap: 0.65rem;
  width: 104%;
  min-height: 108%;
  margin-left: -2%;
  padding: 0.7rem;
  animation: hsm-mosaic-drift 48s ease-in-out infinite alternate;
}
.hsm-auth-mosaic figure {
  position: relative;
  margin: 0;
  border-radius: 1.15rem;
  overflow: hidden;
  background: #d8cfc0;
  box-shadow: 0 10px 24px rgba(28, 18, 8, 0.12);
}
.hsm-auth-mosaic figure.is-wide {
  grid-column: span 2;
}
.hsm-auth-mosaic figure::before,
.hsm-auth-mosaic figure::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: 1;
}
.hsm-auth-mosaic figure::before {
  box-shadow: inset 0 0 0 1px rgba(255, 246, 230, 0.28);
}
.hsm-auth-mosaic figure::after {
  background: linear-gradient(165deg, rgba(255, 232, 196, 0.28), rgba(58, 34, 16, 0.2));
  mix-blend-mode: soft-light;
}
.hsm-auth-mosaic img {
  width: 100%;
  height: 100%;
  min-height: 13.5vw;
  object-fit: cover;
  display: block;
  filter: saturate(0.78) contrast(1.07) brightness(0.96) sepia(0.2);
  transform: scale(1.08);
  animation: hsm-tile-ken 30s ease-in-out infinite alternate;
}
.hsm-auth-mosaic figure:nth-child(even) img {
  animation-direction: alternate-reverse;
  animation-duration: 36s;
}
.hsm-auth-mosaic figure:nth-child(3n) img { animation-duration: 40s; }
.hsm-auth-mosaic figure:nth-child(5n) img { animation-delay: -8s; }
@keyframes hsm-mosaic-drift {
  from { transform: translate3d(-1.5%, -2%, 0); }
  to { transform: translate3d(-7%, 1%, 0); }
}
@keyframes hsm-tile-ken {
  from { transform: scale(1.06) translate3d(0, 0, 0); }
  to { transform: scale(1.16) translate3d(-2%, -1.4%, 0); }
}
.hsm-auth-bar {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 4.4rem;
  padding: 0.65rem 1.35rem;
  background: transparent;
  border-bottom: 0;
}
.hsm-auth-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: #0c1b33;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.hsm-auth-brand img { width: 2rem; height: 2rem; }
.hsm-auth-brand em { font-style: normal; font-weight: 650; }
.hsm-auth-bar-actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.hsm-auth-host {
  margin-right: 0.35rem;
  padding: 0.55rem 0.85rem;
  border-radius: 999px;
  color: #0c1b33;
  font-weight: 650;
  font-size: 0.92rem;
  text-decoration: none;
}
.hsm-auth-host:hover { background: rgba(255, 255, 255, 0.55); }
.hsm-auth-icon {
  width: 2.35rem;
  height: 2.35rem;
  border: 0;
  border-radius: 999px;
  background: none;
  color: #0c1b33;
  display: grid;
  place-items: center;
  cursor: pointer;
  padding: 0;
}
.hsm-auth-icon:hover { background: rgba(255, 255, 255, 0.55); }
.hsm-auth-icon svg { width: 1.15rem; height: 1.15rem; }
.hsm-auth-burger {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
}
.hsm-auth-burger span {
  display: block;
  width: 16px;
  height: 1.6px;
  margin: 0;
  background: #0c1b33;
  border-radius: 1px;
}
.hsm-auth-page .hsm-lang,
.hsm-auth-page .hsm-account { position: relative; }
.hsm-auth-page .hsm-lang-menu,
.hsm-auth-page .hsm-account-menu {
  right: 0;
  left: auto;
}

/* Login / signup account menu — desktop dropdown */
.hsm-auth-menu {
  width: min(17.5rem, calc(100vw - 1.5rem));
  padding: 0.55rem;
  border-radius: 18px;
  border: 1px solid rgba(12, 27, 51, 0.08);
  box-shadow: 0 16px 40px rgba(12, 27, 51, 0.14);
}
.hsm-auth-menu-top {
  display: none;
}
.hsm-auth-menu-links {
  display: grid;
  gap: 0.15rem;
}
.hsm-auth-menu-links a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.55rem;
  padding: 0.7rem 0.8rem;
  border-radius: 12px;
  font-size: 0.92rem;
  font-weight: 650;
  color: #0c1b33;
  text-decoration: none;
}
.hsm-auth-menu-links a:hover {
  background: #f4efe6;
}
.hsm-auth-menu-links a:first-child {
  font-weight: 750;
}
.hsm-auth-menu-links a:nth-child(4) {
  margin-bottom: 0.35rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid rgba(12, 27, 51, 0.08);
  border-radius: 12px 12px 0 0;
}
.hsm-auth-menu-lang {
  display: none;
  margin-top: 0.45rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(12, 27, 51, 0.08);
}
.hsm-auth-menu-lang-label {
  margin: 0 0.8rem 0.4rem;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--hsm-muted);
}
.hsm-auth-menu-lang-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.3rem;
}
.hsm-auth-menu-lang-list a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  min-height: 2.25rem;
  padding: 0.4rem 0.25rem;
  border: 1px solid rgba(12, 27, 51, 0.1);
  border-radius: 10px;
  background: #f7f4ef;
  font-size: 0.78rem;
  font-weight: 800;
  color: #0c1b33;
  text-decoration: none;
}
.hsm-auth-menu-lang-list a:hover {
  background: #fff;
  border-color: rgba(201, 169, 98, 0.7);
}
.hsm-auth-menu-lang-list a[aria-current="true"] {
  border-color: #0c1b33;
  background: rgba(12, 27, 51, 0.06);
}
.hsm-auth-menu-lang-list .hsm-lang-flag {
  width: 15px;
  height: 10px;
  flex-shrink: 0;
  line-height: 0;
}
.hsm-auth-menu-lang-list .hsm-lang-flag svg {
  display: block;
  width: 100%;
  height: 100%;
}
.hsm-auth {
  position: relative;
  z-index: 2;
  min-height: calc(100vh - 4.4rem);
  min-height: calc(100dvh - 4.4rem);
  display: grid;
  place-items: center;
  padding: 1.4rem 1rem 2.6rem;
}
.hsm-auth-card {
  width: min(24.5rem, 100%);
  background: #fff;
  border-radius: 40px;
  padding: 2.15rem 1.7rem 1.85rem;
  box-shadow: 0 18px 50px rgba(12, 27, 51, 0.16);
  text-align: center;
}
.hsm-auth-mark {
  display: block;
  margin: 0 auto 0.95rem;
}
.hsm-auth-card h1 {
  margin: 0 0 1.35rem;
  font-size: 1.45rem;
  color: #111;
  letter-spacing: -0.03em;
  font-weight: 750;
}
.hsm-auth-lead {
  margin: 0 0 1.15rem;
  color: var(--hsm-muted);
  line-height: 1.5;
}
.hsm-auth-form {
  display: grid;
  gap: 0.85rem;
  text-align: left;
}
.hsm-auth-field {
  display: grid;
  gap: 0.35rem;
  font-size: 0.86rem;
  font-weight: 650;
  color: var(--hsm-navy);
}
.hsm-auth-field input {
  width: 100%;
  border: 1px solid #d5cfc4;
  border-radius: 999px;
  padding: 0.95rem 1.15rem;
  font: inherit;
  background: #fff;
}
.hsm-auth-field input:focus {
  outline: none;
  border-color: #111;
  box-shadow: 0 0 0 1px #111;
}
.hsm-auth-go,
a.hsm-auth-go,
.hsm a.hsm-auth-go {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 3.05rem;
  border: 0;
  border-radius: 999px;
  background: #111;
  color: #fff;
  font: inherit;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}
.hsm-auth-go[hidden] {
  display: none !important;
}
.hsm-auth-note {
  margin: 0.95rem 0 0;
  color: var(--hsm-muted);
  font-size: 0.82rem;
  line-height: 1.45;
  text-align: center;
}
.hsm-auth-note[hidden] { display: none; }
.hsm-auth-note a,
.hsm a.hsm-auth-note a {
  color: inherit;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.hsm-auth-card[data-login-panel="verify"] {
  position: relative;
  padding-top: 1.35rem;
  min-height: 28rem;
}
.hsm-auth-back {
  position: absolute;
  top: 1.15rem;
  left: 1.15rem;
  width: 2.2rem;
  height: 2.2rem;
  border: 0;
  background: none;
  color: #111;
  cursor: pointer;
  padding: 0;
  display: grid;
  place-items: center;
}
.hsm-auth-card[data-login-panel="verify"] h1 {
  margin-top: 2.4rem;
}
.hsm-auth-verify {
  margin-top: 1.4rem;
}
.hsm-auth-verify input[data-verify-code] {
  min-height: 3.5rem;
  border: 2px solid #111;
  border-radius: 999px;
  letter-spacing: 0.55em;
  text-align: center;
  font-size: 1.25rem;
  font-weight: 650;
}
.hsm-auth-err {
  margin: 0;
  color: #9b2c2c;
  font-size: 0.84rem;
  line-height: 1.4;
}
.hsm-auth-resend {
  margin: 1.35rem 0 0;
  color: var(--hsm-muted);
  font-size: 0.92rem;
}
.hsm-auth-resend-btn {
  border: 0;
  background: none;
  color: #111;
  font: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  padding: 0;
}
.hsm-auth-resend-btn[disabled] {
  opacity: 0.45;
  cursor: wait;
}
.hsm-auth-logout {
  margin-top: 0.85rem;
  border: 0;
  background: none;
  color: var(--hsm-navy);
  font: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  padding: 0;
}
@media (prefers-reduced-motion: reduce) {
  .hsm-auth-mosaic,
  .hsm-auth-mosaic img { animation: none; }
}
@media (max-width: 719px) {
  .hsm-auth-bar {
    min-height: 3.15rem;
    padding: 0.35rem 0.75rem;
    gap: 0.5rem;
  }
  .hsm-auth-brand img {
    width: 1.7rem;
    height: 1.7rem;
  }
  .hsm-auth-icon {
    width: 2.15rem;
    height: 2.15rem;
  }
  .hsm-auth {
    min-height: calc(100vh - 3.15rem);
    min-height: calc(100dvh - 3.15rem);
    padding: 1rem 0.85rem 2rem;
  }
  .hsm-auth-mosaic {
    grid-template-columns: repeat(4, minmax(26vw, 1fr));
    grid-auto-rows: minmax(22vw, 26vw);
  }
  .hsm-auth-mosaic img { min-height: 22vw; }
  .hsm-auth-host { display: none; }
  .hsm-auth-brand span { display: none; }
  .hsm-auth-card { border-radius: 32px; padding: 1.8rem 1.25rem 1.55rem; }

  body.is-auth-menu-open {
    overflow: hidden;
  }
  body.is-auth-menu-open::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 90;
    background: rgba(12, 27, 51, 0.42);
  }

  /* Right-edge drawer */
  .hsm-auth-page .hsm-account-menu.hsm-auth-menu:not([hidden]) {
    display: flex !important;
    flex-direction: column;
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    bottom: 0 !important;
    width: min(20.5rem, 88vw) !important;
    max-width: 88vw;
    height: 100vh;
    height: 100dvh;
    max-height: none !important;
    margin: 0;
    padding:
      max(0.85rem, env(safe-area-inset-top, 0px))
      0.85rem
      max(1rem, env(safe-area-inset-bottom, 0px));
    border: 0;
    border-left: 1px solid rgba(12, 27, 51, 0.08);
    border-radius: 0;
    box-shadow: -18px 0 40px rgba(12, 27, 51, 0.18);
    z-index: 100;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }
  .hsm-auth-page .hsm-account-menu.hsm-auth-menu[hidden] { display: none !important; }

  .hsm-auth-menu-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0 0 0.65rem;
    padding: 0 0.15rem 0.7rem;
    border-bottom: 1px solid rgba(12, 27, 51, 0.08);
    flex: 0 0 auto;
  }
  .hsm-auth-menu-top p {
    margin: 0;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--hsm-muted);
  }
  .hsm-auth-menu-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(12, 27, 51, 0.12);
    border-radius: 8px;
    background: #fff;
    color: #0c1b33;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
  }
  .hsm-auth-menu-links {
    flex: 1 1 auto;
    gap: 0.2rem;
    min-height: 0;
  }
  .hsm-auth-menu-links a {
    padding: 0.8rem 0.85rem;
    font-size: 0.98rem;
  }
  .hsm-auth-menu-lang {
    display: block;
    flex: 0 0 auto;
    margin-top: 0.75rem;
    padding-top: 0.75rem;
  }
}
.hsm-wish {
  padding: 1.2rem 0 5.5rem;
}
.hsm-wish-empty {
  color: var(--hsm-muted);
  line-height: 1.55;
  margin: 0 0 1rem;
}
.hsm-wish-empty[hidden] { display: none !important; }
.hsm-wish .hsm-row-head h1 {
  margin: 0;
  font-size: clamp(1.85rem, 4.5vw, 2.35rem);
  color: #111;
  letter-spacing: -0.04em;
  font-weight: 750;
}
.hsm-wish-gate {
  max-width: 28rem;
  padding: 1.35rem 0 0.4rem;
}
.hsm-wish-gate[hidden] { display: none !important; }
.hsm-wish-gate h2 {
  margin: 0 0 0.45rem;
  font-size: clamp(1.2rem, 3vw, 1.45rem);
  color: #111;
  letter-spacing: -0.03em;
  font-weight: 750;
}
.hsm-wish-gate p {
  margin: 0 0 1.25rem;
  color: var(--hsm-muted);
  line-height: 1.5;
}
.hsm-wish-login {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0 1.35rem;
  border-radius: 999px;
  background: #111;
  color: #fff;
  font-weight: 800;
  text-decoration: none;
}
.hsm a.hsm-wish-login { color: #fff; }
.hsm-wish-nux[hidden] { display: none !important; }
.hsm-wish-nux {
  position: fixed;
  inset: 0;
  z-index: 260;
  display: grid;
  place-items: end stretch;
  padding: 0;
}
.hsm-wish-nux-scrim {
  position: absolute;
  inset: 0;
  background: rgba(12, 27, 51, 0.38);
  opacity: 0;
  transition: opacity 0.28s ease;
}
.hsm-wish-nux.is-open .hsm-wish-nux-scrim { opacity: 1; }
.hsm-wish-nux-sheet {
  position: relative;
  z-index: 1;
  width: min(26.5rem, 100%);
  background: #fff;
  border-radius: 28px 28px 0 0;
  padding: 1.15rem 1.35rem calc(1.35rem + env(safe-area-inset-bottom));
  text-align: center;
  transform: translate3d(0, 18%, 0);
  opacity: 0;
  transition: transform 0.38s ease, opacity 0.28s ease;
}
.hsm-wish-nux.is-open .hsm-wish-nux-sheet {
  transform: translate3d(0, 0, 0);
  opacity: 1;
}
.hsm-wish-nux-x {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  width: 2.2rem;
  height: 2.2rem;
  border: 0;
  background: none;
  color: #111;
  display: grid;
  place-items: center;
  cursor: pointer;
  padding: 0;
}
.hsm-wish-nux-stage {
  display: grid;
  place-items: center;
  min-height: 13.5rem;
  margin: 0.4rem 0 1.15rem;
}
.hsm-wish-nux-card {
  position: relative;
  margin: 0;
  width: 10.5rem;
  height: 10.5rem;
  border-radius: 1.35rem;
  overflow: hidden;
  background: #eee;
  box-shadow: 0 18px 40px rgba(12, 27, 51, 0.18);
  transform: scale(0.82) rotate(-4deg);
  opacity: 0;
}
.hsm-wish-nux.is-open .hsm-wish-nux-card {
  animation: hsm-wish-card-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.12s forwards;
}
.hsm-wish-nux-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hsm-wish-nux-heart {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 2rem;
  height: 2rem;
  color: #fff;
  filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.35));
}
.hsm-wish-nux-heart svg {
  width: 100%;
  height: 100%;
  display: block;
}
.hsm-wish-nux.is-open .hsm-wish-nux-heart {
  animation: hsm-wish-heart-in 0.55s ease 0.55s forwards;
}
.hsm-wish-nux-sheet h2 {
  margin: 0 0 0.55rem;
  font-size: 1.45rem;
  letter-spacing: -0.04em;
  color: #111;
  font-weight: 750;
}
.hsm-wish-nux-sheet p {
  margin: 0 0 1.25rem;
  color: var(--hsm-muted);
  line-height: 1.5;
}
.hsm-wish-nux-ok {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 3.05rem;
  border: 0;
  border-radius: 999px;
  background: #111;
  color: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
@keyframes hsm-wish-card-in {
  0% { transform: scale(0.78) rotate(-8deg); opacity: 0; }
  55% { transform: scale(1.04) rotate(1.5deg); opacity: 1; }
  100% { transform: scale(1) rotate(0deg); opacity: 1; }
}
@keyframes hsm-wish-heart-in {
  0% { transform: scale(0.4); color: #fff; }
  55% { transform: scale(1.28); color: #c0392b; }
  100% { transform: scale(1); color: #c0392b; }
}
.hsm-wish-nux.is-open .hsm-wish-nux-heart svg {
  fill: currentColor;
}
@media (prefers-reduced-motion: reduce) {
  .hsm-wish-nux-scrim,
  .hsm-wish-nux-sheet,
  .hsm-wish-nux-card,
  .hsm-wish-nux-heart { animation: none; transition: none; }
  .hsm-wish-nux.is-open .hsm-wish-nux-card,
  .hsm-wish-nux.is-open .hsm-wish-nux-heart {
    transform: none;
    opacity: 1;
  }
}
@media (min-width: 720px) {
  .hsm-wish-nux { place-items: center; padding: 1.5rem; }
  .hsm-wish-nux-sheet {
    width: min(26.5rem, 100%);
    justify-self: center;
    border-radius: 28px;
    padding: 1.45rem 1.55rem 1.5rem;
  }
}
.hsm-card-body { padding: 0.7rem 0.1rem 0.2rem; }

.hsm-card-note {
  display: none;
}

.hsm-card-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem;
  margin: 0 0 0.38rem;
}
.hsm-card-badges .hsm-badge-chip {
  font-size: 0.66rem;
  font-weight: 750;
  letter-spacing: 0.01em;
  padding: 0.18rem 0.5rem 0.18rem 0.3rem;
  max-width: 100%;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.hsm-card-badges .hsm-badge-chip .hsm-badge-mark {
  width: 13px;
  height: 13px;
  padding: 2px;
}
.hsm-exp-tile-body .hsm-card-badges,
.hsm-exp-body .hsm-card-badges,
.hsm-listing-exp-body .hsm-card-badges {
  margin: 0 0 0.42rem;
}

.hsm-card-top {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: baseline;
}
.hsm-card-title {
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.3;
}
.hsm-card-rating {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font-size: 0.82rem;
  font-weight: 700;
  white-space: nowrap;
}
.hsm-card-meta, .hsm-card-dates {
  color: var(--hsm-muted);
  font-size: 0.86rem;
  margin-top: 0.12rem;
}
.hsm-card-price {
  margin-top: 0.28rem;
  font-size: 0.92rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.4rem;
}
.hsm-card-price strong { font-weight: 800; }

.hsm-section { padding: 0.25rem 0 2.2rem; }

.hsm-footer {
  border-top: 1px solid var(--hsm-line);
  background: var(--hsm-soft);
  padding: 2.4rem 0 1.2rem;
  font-size: 0.9rem;
  /* Long AZ/RU link labels must wrap, never widen the page. */
  overflow-wrap: break-word;
}
.hsm-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}
.hsm-footer h4 {
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 0.7rem;
  color: var(--hsm-navy);
}
.hsm-footer-grid > div > h4:not(:first-child) {
  margin-top: 1.15rem;
}
.hsm-footer ul { list-style: none; padding: 0; margin: 0; }
.hsm-footer li { margin: 0.35rem 0; }
.hsm-footer a:hover { text-decoration: underline; }
.hsm-footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1.8rem;
  padding-top: 1rem;
  border-top: 1px solid var(--hsm-line);
  color: var(--hsm-muted);
  font-size: 0.82rem;
}
.hsm-footer-credit {
  margin: 0.85rem 0 0;
  text-align: center;
  font-size: 0.72rem;
  color: var(--hsm-muted);
}
.hsm-footer-credit a {
  color: inherit;
  text-decoration: none;
}
.hsm-footer-credit a:hover {
  text-decoration: underline;
  color: var(--hsm-ink, #111);
}

/* Search + map */
.hsm-results-bar { display: none; }
.hsm-header-summary { display: none; }
.hsm.has-header-filters { --hsm-header: 132px; }
.hsm-header-filters {
  border-top: 0;
  background: #fff;
  padding: 0.7rem 1.5rem 0.85rem;
}
.hsm-filters-rail {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  max-width: 1440px;
  margin: 0 auto;
  min-width: 0;
}
.hsm-chip-filters {
  position: relative;
  flex: 0 0 auto;
  z-index: 2;
  gap: 0.4rem;
  border-color: rgba(201, 169, 98, 0.88);
  background: rgba(201, 169, 98, 0.12);
  color: var(--hsm-navy);
  font-weight: 700;
  box-shadow:
    0 1px 0 rgba(201, 169, 98, 0.16),
    0 2px 10px rgba(201, 169, 98, 0.12);
}
.hsm-chip-filters:hover {
  background: rgba(201, 169, 98, 0.2);
  border-color: var(--hsm-gold, #c9a962);
}
.hsm-chip-filters svg {
  width: 15px;
  height: 15px;
  flex: none;
  color: var(--hsm-gold, #c9a962);
}
.hsm-chip-filters .hsm-filter-badge {
  position: static;
  margin-left: 0.1rem;
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: var(--hsm-navy);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 800;
  display: inline-grid;
  place-items: center;
  line-height: 1;
}
.hsm-chip-filters .hsm-filter-badge[hidden] { display: none !important; }
.hsm-header-filters .hsm-filters {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  max-width: none;
  flex: 1 1 auto;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  mask-image: linear-gradient(to right, #000 92%, transparent);
  -webkit-mask-image: linear-gradient(to right, #000 92%, transparent);
}
.hsm-header-filters .hsm-filters::-webkit-scrollbar { display: none; }

/* Desktop filters dialog (mobile bottom-sheet overrides below) */
.hsm-filters-sheet:not([hidden]) {
  position: fixed;
  inset: 0;
  z-index: 140;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(12, 27, 51, 0.45);
}
.hsm-filters-panel {
  width: min(720px, 100%);
  max-height: min(86vh, 820px);
  background: #fff;
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(12, 27, 51, 0.22);
}
.hsm-filters-head {
  display: grid;
  grid-template-columns: 40px 1fr 40px;
  align-items: center;
  padding: 1rem 1.15rem;
  border-bottom: 1px solid var(--hsm-line);
  flex: none;
}
.hsm-filters-head h2 {
  margin: 0;
  text-align: center;
  font-size: 1.08rem;
  font-weight: 750;
  color: var(--hsm-navy);
}
.hsm-filters-head-spacer { display: block; width: 40px; height: 40px; }
.hsm-filters-close {
  width: 40px;
  height: 40px;
  border: 1px solid var(--hsm-line);
  border-radius: 50%;
  background: #fff;
  font-size: 1.35rem;
  line-height: 1;
  color: var(--hsm-navy);
  display: grid;
  place-items: center;
  cursor: pointer;
}
.hsm-filters-body {
  overflow: auto;
  padding: 1.15rem 1.25rem 1.5rem;
  -webkit-overflow-scrolling: touch;
}
.hsm-filters-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  flex: none;
  padding: 1rem 1.25rem;
  border-top: 1px solid var(--hsm-line);
  background: #fff;
}
.hsm-filters-foot .hsm-search-clear {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  white-space: nowrap;
  min-height: 48px;
  padding: 0 0.25rem;
  line-height: 1.15;
}
.hsm-filters-foot .hsm-btn {
  width: auto;
  min-width: 11rem;
  height: 48px;
  min-height: 48px;
  padding: 0 1.4rem;
  border-radius: 999px;
  flex: 0 0 auto;
  margin-left: auto;
  line-height: 1;
  box-sizing: border-box;
}
.hsm-btn-navy {
  background: var(--hsm-navy);
  color: #fff;
  border: 0;
  font-weight: 700;
}
.hsm-filters-search {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  border: 1px solid var(--hsm-line);
  border-radius: 999px;
  padding: 0.7rem 1rem;
  margin-bottom: 1.2rem;
  background: #faf9f6;
}
.hsm-filters-search svg { width: 16px; height: 16px; color: var(--hsm-muted); flex: none; }
.hsm-filters-search input {
  border: 0; outline: none; width: 100%; font: inherit; background: transparent;
  color: var(--hsm-navy);
}
.hsm-filters-sec { margin-bottom: 1.45rem; }
.hsm-filters-sec[hidden] { display: none !important; }
.hsm-filters-sec h3 { margin: 0 0 0.75rem; font-size: 1.05rem; color: var(--hsm-navy); }
.hsm-filters-lead {
  margin: 0 0 0.75rem;
  color: var(--hsm-muted);
  font-size: 0.86rem;
}
.hsm-filters-sec > h3 + .hsm-filters-lead { margin-top: -0.35rem; }
.hsm-filters-sub {
  margin: 1rem 0 0.55rem;
  font-size: 0.82rem;
  font-weight: 650;
  color: var(--hsm-muted);
}
.hsm-filters-sec > h3 + .hsm-filters-sub { margin-top: 0; }
.hsm-filters-selected[hidden] { display: none !important; }
.hsm-selected-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.hsm-selected-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 0.7rem 0.55rem 0.9rem;
  border: 1.5px solid var(--hsm-navy);
  border-radius: 999px;
  background: #fff;
  font: inherit;
  font-size: 0.88rem;
  font-weight: 650;
  color: var(--hsm-navy);
  cursor: pointer;
}
.hsm-selected-chip .hsm-selected-x {
  width: 1.35rem;
  height: 1.35rem;
  display: grid;
  place-items: center;
  font-size: 1.05rem;
  line-height: 1;
}
.hsm-filter-tiles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
}
.hsm-filter-tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 0.85rem 0.7rem;
  border: 1px solid var(--hsm-line);
  border-radius: 16px;
  background: #fff;
  text-align: left;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 650;
  color: var(--hsm-navy);
  cursor: pointer;
}
.hsm-filter-tile[hidden],
.hsm-filter-pill[hidden],
.hsm-standout-card[hidden] { display: none !important; }
.hsm-filter-tile.is-on,
.hsm-filter-pill.is-on,
.hsm-standout-card.is-on {
  border-color: var(--hsm-navy);
  box-shadow: inset 0 0 0 1px var(--hsm-navy);
}
.hsm-filter-tile-ico {
  width: 2.35rem; height: 2.35rem;
  display: grid; place-items: center;
  border-radius: 50%;
  background: #eef1f6;
  color: var(--hsm-navy);
}
.hsm-filter-tile-ico svg { width: 1.2rem; height: 1.2rem; }
.hsm-filter-tile[data-filter-tone="blue"] .hsm-filter-tile-ico { color: #2f6fed; background: #e8f0fe; }
.hsm-filter-tile[data-filter-tone="gold"] .hsm-filter-tile-ico { color: #b0892f; background: #f7efd9; }
.hsm-filter-tile[data-filter-tone="coral"] .hsm-filter-tile-ico { color: #d9654a; background: #fdeee9; }
.hsm-filter-tile[data-filter-tone="rose"] .hsm-filter-tile-ico { color: #d94874; background: #fce7ef; }
.hsm-filter-tile[data-filter-tone="teal"] .hsm-filter-tile-ico { color: #0e9a93; background: #e6f7f6; }
.hsm-filter-tile[data-filter-tone="violet"] .hsm-filter-tile-ico { color: #6f57c2; background: #f0ebfa; }
.hsm-filter-tile[data-filter-tone="sky"] .hsm-filter-tile-ico { color: #2f8fdb; background: #e7f4fc; }
.hsm-filter-tile[data-filter-tone="amber"] .hsm-filter-tile-ico { color: #c2811a; background: #f8efd8; }
.hsm-filter-tile[data-filter-tone="slate"] .hsm-filter-tile-ico { color: #4b5c78; background: #eef1f5; }
.hsm-filter-tile[data-filter-tone="cyan"] .hsm-filter-tile-ico { color: #1a9bb5; background: #e5f6fa; }
.hsm-filter-tile[data-filter-tone="sea"] .hsm-filter-tile-ico { color: #1d7a70; background: #e5f4f1; }
.hsm-filter-tile[data-filter-tone="green"] .hsm-filter-tile-ico { color: #2f8a4c; background: #e8f5ec; }
.hsm-place-seg {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--hsm-line);
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
}
.hsm-place-seg button {
  border: 0;
  border-right: 1px solid var(--hsm-line);
  background: #fff;
  padding: 0.85rem 0.2rem;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--hsm-navy);
  cursor: pointer;
  position: relative;
  z-index: 0;
}
.hsm-place-seg button:first-child {
  border-radius: 13px 0 0 13px;
}
.hsm-place-seg button:last-child {
  border-right: 0;
  border-radius: 0 13px 13px 0;
}
.hsm-place-seg button.is-on {
  z-index: 1;
  outline: none;
  background: #f3f5f8;
  box-shadow: inset 0 0 0 2px var(--hsm-navy);
}
.hsm-price-bars {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 4.5rem;
  margin-bottom: 0.85rem;
}
.hsm-price-bars i {
  flex: 1;
  display: block;
  border-radius: 3px 3px 0 0;
  background: linear-gradient(180deg, #dfc588 0%, #c9a962 55%, #a8883f 100%);
  height: 40%;
}
.hsm-price-bars i:nth-child(odd) { height: 35%; }
.hsm-price-bars i:nth-child(3n) { height: 62%; }
.hsm-price-bars i:nth-child(4n) { height: 88%; }
.hsm-price-bars i:nth-child(5n) { height: 48%; }
.hsm-price-inputs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.7rem;
}
.hsm-price-inputs label {
  display: flex; flex-direction: column; gap: 0.3rem;
  font-size: 0.72rem; font-weight: 650; color: var(--hsm-muted);
}
.hsm-price-inputs input {
  border: 1px solid var(--hsm-line);
  border-radius: 999px;
  padding: 0.7rem 0.9rem;
  font: inherit;
  font-weight: 650;
  color: var(--hsm-navy);
}
.hsm-room-rows { display: flex; flex-direction: column; gap: 0.9rem; }
.hsm-room-row {
  display: flex; align-items: center; justify-content: space-between;
  font-weight: 650; color: var(--hsm-navy);
}
.hsm-room-row .hsm-stepper {
  display: inline-flex; align-items: center; gap: 0.65rem;
}
.hsm-room-row .hsm-stepper button {
  width: 2rem; height: 2rem; border-radius: 50%;
  border: 1px solid var(--hsm-line); background: #fff; font-size: 1.1rem;
}
.hsm-room-row .hsm-stepper em { font-style: normal; min-width: 2.2rem; text-align: center; }
.hsm-filter-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.hsm-filter-pill {
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 0.72rem 0.95rem 0.72rem 0.78rem;
  border: 1px solid var(--hsm-line);
  border-radius: 999px;
  background: #fff;
  font: inherit; font-size: 0.88rem; font-weight: 650;
  color: var(--hsm-navy);
  cursor: pointer;
}
.hsm-filter-pill-ico {
  width: 1.55rem; height: 1.55rem;
  display: grid; place-items: center; flex: none;
}
.hsm-filter-pill-ico svg { width: 1.2rem; height: 1.2rem; display: block; }
.hsm-filter-pill.is-badge .hsm-filter-pill-ico {
  width: 1.9rem; height: 1.9rem; background: transparent;
}
.hsm-filter-pill-ico img { width: 1.8rem; height: 1.8rem; object-fit: contain; display: block; }
.hsm-standout { display: grid; gap: 0.65rem; }
.hsm-standout-card {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  text-align: left;
  padding: 1rem 1.05rem;
  border: 1px solid var(--hsm-line);
  border-radius: 16px;
  background: #fff;
  font: inherit;
  cursor: pointer;
}
.hsm-standout-ico {
  width: 2.55rem; height: 2.55rem;
  border-radius: 50%;
  display: grid; place-items: center; flex: none;
  background: #eef1f6; color: var(--hsm-navy);
}
.hsm-standout-ico svg { width: 1.35rem; height: 1.35rem; display: block; }
.hsm-standout-card[data-filter-tone="rose"] .hsm-standout-ico { color: #d94874; background: #fce7ef; }
.hsm-standout-card[data-filter-tone="gold"] .hsm-standout-ico { color: #b0892f; background: #f7efd9; }
.hsm-standout-copy { min-width: 0; }
.hsm-standout-card strong { display: block; color: var(--hsm-navy); margin-bottom: 0.2rem; font-size: 0.98rem; }
.hsm-standout-card em { color: var(--hsm-muted); font-style: normal; font-size: 0.86rem; line-height: 1.35; }

.hsm-searchpage.is-map-searching [data-hsm-count] {
  opacity: 0.55;
}
.hsm-searchpage.is-map-searching .hsm-map-col::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 0.85rem;
  transform: translateX(-50%);
  width: 1.1rem;
  height: 1.1rem;
  border: 2px solid rgba(12, 27, 51, 0.15);
  border-top-color: var(--hsm-navy);
  border-radius: 50%;
  animation: hsm-map-spin 0.7s linear infinite;
  z-index: 6;
  pointer-events: none;
  background: #fff;
  box-shadow: 0 2px 10px rgba(12, 27, 51, 0.12);
}
@keyframes hsm-map-spin {
  to { transform: translateX(-50%) rotate(360deg); }
}

.hsm-searchpage {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 42%);
  grid-template-areas: "list map";
  min-height: calc(100vh - var(--hsm-header));
}
.hsm-search-sheet {
  grid-area: list;
  min-width: 0;
}

/* Desktop search: list scrolls inside its column; map stays put so zoom
   controls never scroll away with the results. */
@media (min-width: 901px) {
  .hsm:has([data-hsm-searchpage]) {
    overflow: hidden;
    height: 100dvh;
  }
  .hsm:has([data-hsm-searchpage]) > .hsm-footer,
  .hsm:has([data-hsm-searchpage]) > .hsm-tabbar {
    display: none;
  }
  .hsm-searchpage {
    height: calc(100dvh - var(--hsm-header));
    min-height: calc(100dvh - var(--hsm-header));
    max-height: calc(100dvh - var(--hsm-header));
    overflow: hidden;
    align-items: stretch;
  }
  .hsm-search-sheet {
    height: 100%;
    max-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .hsm-map-col {
    position: relative;
    top: auto;
    align-self: stretch;
    height: 100%;
    max-height: 100%;
  }
}
.hsm-sheet-handle { display: none; }
.hsm-search-col {
  padding: 1rem 1.25rem 8rem;
  min-width: 0;
}
.hsm-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0.7rem 0 1rem;
}
.hsm-chip {
  flex: none;
  white-space: nowrap;
  border: 1px solid var(--hsm-line);
  background: #fff;
  border-radius: 999px;
  padding: 0.45rem 0.9rem;
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--hsm-ink);
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.hsm-chip:hover {
  border-color: #cfc8bc;
  background: var(--hsm-soft);
}
.hsm-chip.is-on {
  border-color: #d4cec4;
  background: var(--hsm-soft);
  color: var(--hsm-navy);
}
.hsm-count {
  font-size: 0.95rem;
  font-weight: 700;
  margin-bottom: 0.85rem;
}
.hsm-empty-search {
  margin: 0 0 0.55rem;
}
.hsm-empty-search[hidden] { display: none !important; }
.hsm-empty-banner {
  border: 1px solid var(--hsm-line);
  border-radius: 12px;
  background: var(--hsm-soft);
  padding: 0.55rem 0.75rem 0.5rem;
}
.hsm-empty-banner-line {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
  color: var(--hsm-muted);
  font-size: 0.8rem;
  line-height: 1.35;
}
.hsm-empty-banner-line strong {
  color: var(--hsm-navy);
  font-size: 0.82rem;
  font-weight: 800;
}
.hsm-empty-chips {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0;
  vertical-align: middle;
}
.hsm-empty-chips .hsm-chip {
  font-size: 0.72rem;
  padding: 0.2rem 0.55rem;
}
.hsm-empty-clear {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0;
  width: auto;
  min-width: 0;
  border: 0;
  background: none;
  color: var(--hsm-navy);
  font: inherit;
  font-size: 0.8rem;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}
.hsm-empty-clear:visited,
.hsm-empty-clear:hover,
.hsm-empty-clear:active,
.hsm-empty-clear:focus-visible {
  color: var(--hsm-navy);
  background: none;
  outline: none;
}
.hsm-empty-clear:hover {
  color: var(--hsm-navy-2, #1a2f52);
}
.hsm-empty-similar {
  margin: 0.45rem 0 0 !important;
  font-size: 0.72rem !important;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--hsm-muted) !important;
}
/* legacy class kept inert if old markup cached */
.hsm-empty-card {
  border: 0;
  background: transparent;
  padding: 0;
}
.hsm-map-note {
  position: absolute;
  left: 50%;
  top: 0.85rem;
  transform: translateX(-50%);
  z-index: 7;
  max-width: min(92%, 22rem);
  padding: 0.55rem 0.85rem;
  border-radius: 999px;
  background: #fff;
  color: var(--hsm-navy);
  border: 1px solid var(--hsm-line);
  box-shadow: 0 8px 24px rgba(12, 27, 51, 0.12);
  font-size: 0.82rem;
  font-weight: 700;
  text-align: center;
  pointer-events: none;
}
.hsm-map-note[hidden] { display: none !important; }
.hsm-results {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.1rem 0.9rem;
}

.hsm-results.is-sparse {
  grid-template-columns: 1fr 1fr;
}
.hsm-results.is-sparse .hsm-card.is-featured {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
  padding: 0.85rem;
  border: 1px solid var(--hsm-line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(12, 27, 51, 0.07);
  color: inherit;
  text-decoration: none;
}
.hsm-results.is-sparse .hsm-card.is-featured .hsm-card-gallery {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(9.5rem, 0.78fr);
  gap: 0.45rem;
  min-height: 0;
}
.hsm-results.is-sparse .hsm-card.is-featured .hsm-card-media {
  aspect-ratio: 16 / 11;
  border-radius: 14px;
  overflow: hidden;
  min-height: 0;
}
.hsm-results.is-sparse .hsm-card.is-featured .hsm-card-thumbs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 0.45rem;
  min-height: 0;
  height: 100%;
}
.hsm-card-thumb {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  background: var(--hsm-soft);
  min-height: 0;
}
.hsm-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hsm-card-thumb-more {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: rgba(12, 27, 51, 0.42);
  color: #fff;
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.hsm-results.is-sparse .hsm-card.is-featured .hsm-card-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem 1.25rem;
  align-items: end;
  padding: 0.1rem 0.15rem 0.15rem;
}
.hsm-results.is-sparse .hsm-card.is-featured .hsm-card-title {
  font-size: 1.18rem;
  letter-spacing: -0.02em;
}
.hsm-results.is-sparse .hsm-card.is-featured .hsm-card-rating {
  font-size: 0.9rem;
}
.hsm-card-reviews {
  font-weight: 650;
  color: var(--hsm-muted);
}
.hsm-card-capacity {
  margin-top: 0.28rem;
  color: var(--hsm-ink);
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.35;
}
.hsm-card-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.65rem;
}
.hsm-card-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.65rem;
  border: 1px solid var(--hsm-line);
  border-radius: 999px;
  background: var(--hsm-soft);
  color: var(--hsm-navy);
  font-size: 0.74rem;
  font-weight: 650;
  white-space: nowrap;
}
.hsm-card-feat-side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.45rem;
  text-align: right;
  min-width: 8.5rem;
}
.hsm-results.is-sparse .hsm-card.is-featured .hsm-card-feat-side .hsm-card-price {
  margin-top: 0;
  justify-content: flex-end;
  font-size: 1rem;
}
.hsm-card-cta {
  font-size: 0.88rem;
  font-weight: 750;
  color: var(--hsm-navy);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.hsm-results.is-sparse .hsm-more-stays {
  grid-column: 1 / -1;
  margin: 0.55rem 0 0.05rem;
  font-size: 1.02rem;
  font-weight: 800;
  color: var(--hsm-navy);
  letter-spacing: -0.02em;
}
@media (max-width: 900px) {
  .hsm-results.is-sparse .hsm-card.is-featured {
    padding: 0.7rem;
    gap: 0.7rem;
  }
  .hsm-results.is-sparse .hsm-card.is-featured .hsm-card-gallery {
    grid-template-columns: 1.35fr 0.85fr;
  }
  .hsm-results.is-sparse .hsm-card.is-featured .hsm-card-body {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 0.55rem;
  }
  .hsm-card-feat-side {
    align-items: flex-start;
    text-align: left;
    min-width: 0;
  }
  .hsm-results.is-sparse .hsm-card.is-featured .hsm-card-feat-side .hsm-card-price {
    justify-content: flex-start;
  }
}
@media (max-width: 620px) {
  .hsm-results.is-sparse .hsm-card.is-featured .hsm-card-gallery {
    grid-template-columns: 1fr;
  }
  .hsm-results.is-sparse .hsm-card.is-featured .hsm-card-thumbs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: none;
    height: auto;
  }
  .hsm-card-thumb {
    aspect-ratio: 1;
  }
}

.hsm-map-col {
  grid-area: map;
  position: sticky;
  top: var(--hsm-header);
  height: calc(100vh - var(--hsm-header));
  background: #d9e4d4;
}
.hsm-map-fab,
.hsm-list-fab {
  display: none;
}
.hsm-map { width: 100%; height: 100%; }
.hsm-map-pin {
  background: #fff;
  border: 1px solid var(--hsm-line);
  border-radius: 999px;
  padding: 0.28rem 0.5rem;
  font-size: 0.78rem;
  font-weight: 800;
  cursor: pointer;
  transition: background-color 0.16s ease, color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
  /* White ring first so pins that land on top of each other at country zoom
     still read as separate chips instead of one grey smear. */
  box-shadow:
    0 0 0 2px #fff,
    0 2px 6px rgba(12, 27, 51, 0.18),
    var(--hsm-shadow);
  color: var(--hsm-navy);
  white-space: nowrap;
}
.hsm-map-pin:hover,
.hsm-map-pin:focus-visible {
  z-index: 700;
}
.hsm-map-pin.is-on {
  background: var(--hsm-navy);
  color: #fff;
  border-color: var(--hsm-navy);
  box-shadow:
    0 0 0 2px #fff,
    0 4px 14px rgba(12, 27, 51, 0.28);
}
.leaflet-marker-icon.is-hsm-hover {
  z-index: 700 !important;
}
.hsm-card.is-map-hover {
  outline-color: rgba(12, 27, 51, 0.34);
  box-shadow: 0 10px 28px rgba(12, 27, 51, 0.08);
}

/* Listing */
.hsm-listing { padding: 1.3rem 0 3.5rem; }
.hsm-listing-kicker {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  align-items: flex-start;
  flex-wrap: nowrap;
  margin-bottom: 0.85rem;
  padding-inline: 0;
  min-width: 0;
}
.hsm-listing-kicker > div:first-child {
  min-width: 0;
  flex: 1 1 auto;
}
.hsm-listing h1 {
  font-size: clamp(1.45rem, 2.6vw, 1.9rem);
  line-height: 1.2;
  color: var(--hsm-navy);
  margin: 0 0 0.35rem;
}
.hsm-listing-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.8rem;
  color: var(--hsm-ink);
  font-size: 0.92rem;
}
.hsm-listing-meta a { text-decoration: underline; text-underline-offset: 2px; }
.hsm-sharebar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.25rem;
  flex: none;
  margin-left: auto;
}
.hsm-ghost {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  border: 0;
  background: none;
  color: var(--hsm-navy);
  font: inherit;
  font-weight: 650;
  font-size: 0.88rem;
  padding: 0.45rem 0.7rem;
  border-radius: 999px;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.hsm-ghost svg {
  width: 16px;
  height: 16px;
  flex: none;
}
.hsm-ghost:hover { background: var(--hsm-soft); }

.hsm-photos-shell {
  position: relative;
}
.hsm-photos-stage {
  position: relative;
}
.hsm-photos-thumbs {
  display: none;
}
.hsm-photos {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  grid-auto-rows: 0;
  gap: 8px;
  height: min(58vh, 480px);
  border-radius: 18px;
  overflow: hidden;
  background: var(--hsm-soft);
}
.hsm-photos a:first-child {
  grid-row: 1 / span 2;
  grid-column: 1;
}
.hsm-photos a:nth-child(4):last-child {
  grid-column: 2 / span 2;
}
/* Mosaic is a 5-up. Extra shots stay in the DOM for lightbox / mobile. */
.hsm-photos a:nth-child(n + 6) {
  display: none;
}
.hsm-photos a {
  position: relative;
  display: block;
  overflow: hidden;
  background: var(--hsm-soft);
}
.hsm-photos img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hsm-photos-more {
  position: absolute;
  right: 0.8rem;
  bottom: 0.8rem;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 999px;
  padding: 0.48rem 0.95rem;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--hsm-navy);
  cursor: pointer;
  z-index: 3;
  white-space: nowrap;
  box-shadow: 0 2px 14px rgba(12, 27, 51, 0.14);
  backdrop-filter: blur(12px) saturate(1.3);
  -webkit-backdrop-filter: blur(12px) saturate(1.3);
}
.hsm-photos-count {
  display: none;
}
.hsm-photos-item.is-selected {
  box-shadow: inset 0 0 0 2px var(--hsm-navy);
}

.hsm-listing-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 3rem;
  margin-top: 1rem;
}
.hsm-split {
  padding: 1.35rem 0;
  border-bottom: 1px solid var(--hsm-line);
}
.hsm-travel-note {
  background: var(--hsm-soft);
  border: 1px solid var(--hsm-line);
  border-radius: 14px;
  padding: 0.95rem 1.1rem;
  margin: 0.85rem 0 0;
}
.hsm-travel-note h2 {
  margin: 0 0 0.35rem;
  font-size: 0.92rem;
}
.hsm-travel-note p {
  margin: 0;
  font-size: 0.92rem;
}
/* Next full-width block (.hsm-listing-exps / .hsm-meet) owns the divider. */
.hsm-listing-grid > div > .hsm-split:last-child {
  border-bottom: 0;
  padding-bottom: 0.55rem;
}
.hsm-split h2 { font-size: 1.25rem; margin-bottom: 0.55rem; color: var(--hsm-navy); }
.hsm-split p, .hsm-split li { color: var(--hsm-ink); line-height: 1.65; }
.hsm-split a.hsm-inline {
  font-weight: 700;
  color: var(--hsm-navy);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.hsm-transport-mini {
  margin: 0.45rem 0 0;
  text-align: center;
  color: var(--hsm-muted);
  font-size: 0.8rem;
  line-height: 1.4;
  overflow-wrap: break-word;
}
.hsm-step-lead {
  margin: 0 0 0.85rem;
  color: var(--hsm-muted);
  font-size: 0.92rem;
  line-height: 1.55;
}
[data-pickup][hidden],
[data-pickup-hint][hidden] { display: none; }
.hsm-hostline {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
}

/* Listing overview — rating | badge | reviews + host + highlights */
.hsm-listing-intro {
  padding-top: 0.35rem;
}
.hsm-listing-place {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 650;
  color: var(--hsm-navy);
  line-height: 1.35;
}
.hsm-listing-capacity {
  margin: 0.25rem 0 0;
  color: var(--hsm-muted);
  font-size: 0.92rem;
}
.hsm-listing-stats {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(7.5rem, 1.15fr) minmax(0, 1fr);
  align-items: center;
  gap: 0.5rem;
  margin: 1.15rem 0 0;
  padding: 0.95rem 0;
  border-top: 1px solid var(--hsm-line);
  border-bottom: 1px solid var(--hsm-line);
}
.hsm-listing-stats.is-one {
  grid-template-columns: minmax(0, 1fr) minmax(7.5rem, 1.15fr) minmax(0, 1fr);
}
.hsm-listing-stats.is-duo {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.35rem;
}
.hsm-listing-stats.is-plain {
  grid-template-columns: 1fr 1fr;
  gap: 0;
  max-width: 22rem;
}
.hsm-listing-stats.is-plain .hsm-stat {
  padding: 0.15rem 1rem;
}
.hsm-listing-stats.is-plain .hsm-stat:first-child {
  border-right: 1px solid var(--hsm-line);
}
.hsm-listing-stats.is-duo .hsm-stat-badge {
  border-right: 0;
  padding-inline: 0.25rem;
}
.hsm-listing-stats.is-duo .hsm-stat-badge + .hsm-stat-badge {
  border-left: 1px solid var(--hsm-line);
}
.hsm-listing-stats.is-duo .hsm-stat-badge:last-of-type {
  border-right: 1px solid var(--hsm-line);
}
.hsm-listing-stats.is-duo .hsm-crest.is-stat {
  width: 4.65rem;
}
.hsm-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.12rem;
  text-align: center;
  color: inherit;
  text-decoration: none;
  min-width: 0;
}
.hsm-stat strong {
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--hsm-navy);
  line-height: 1.1;
}
.hsm-stat span,
.hsm-stat-stars {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--hsm-ink);
}
.hsm-stat-stars {
  letter-spacing: 0.04em;
  font-size: 0.72rem;
}
.hsm-stat-badge {
  --badge-fg: var(--hsm-navy);
  --badge-accent: var(--hsm-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  text-align: center;
  padding: 0.35rem 0.55rem;
  border-left: 1px solid var(--hsm-line);
  border-right: 1px solid var(--hsm-line);
  min-height: 3.4rem;
  color: var(--badge-fg);
}
.hsm-stat-badge span {
  font-size: 0.9rem;
  font-weight: 750;
  color: inherit;
  line-height: 1.15;
  max-width: 7.5rem;
}
.hsm-stat-badge.is-empty {
  display: none;
}
.hsm-cover-note.hsm-split {
  border-bottom: 0;
}
.hsm-cover-note + .hsm-more {
  margin-top: 0;
}
.hsm-stat-badge .hsm-badge-mark {
  width: 22px;
  height: 22px;
  flex: none;
  color: var(--badge-accent);
}
/* Guest favourite — locked SVG frame + HTML type */
.hsm-gf {
  --gf-ink: #0c1b33;
  position: relative;
  display: grid;
  place-items: center;
  flex: none;
  width: 5.5rem;
  aspect-ratio: 1000 / 860;
  background: url("/assets/img/homestays/laurel-badge.svg?v=20260920f") center / contain no-repeat;
}
.hsm-gf-text {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.08rem;
  text-align: center;
  line-height: 1.05;
  margin-top: -0.1rem;
}
.hsm-gf-text strong,
.hsm-gf-text em {
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-style: normal;
  color: var(--gf-ink);
}
.hsm-gf-text strong {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.01em;
}
.hsm-gf-text em {
  font-size: 0.48rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  opacity: 0.78;
}
.hsm-gf.is-stat { width: 5.75rem; }
.hsm-gf.is-stat .hsm-gf-text strong { font-size: 0.76rem; }
.hsm-gf.is-stat .hsm-gf-text em { font-size: 0.5rem; }
.hsm-gf.is-card { width: 2.95rem; }
.hsm-gf.is-card .hsm-gf-text { gap: 0.02rem; margin-top: -0.02rem; }
.hsm-gf.is-card .hsm-gf-text strong { font-size: 0.42rem; letter-spacing: 0; }
.hsm-gf.is-card .hsm-gf-text em { font-size: 0.3rem; opacity: 0.86; }
/* Absolute Lux / Connoisseur — raster crest images */
.hsm-crest {
  position: relative;
  flex: none;
  width: 5.5rem;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: transparent;
}
.hsm-crest img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  /* Strong white halo so dark / gold type stays readable on photos */
  filter:
    drop-shadow(0 0 0.5px #fff)
    drop-shadow(0 0 1px #fff)
    drop-shadow(0 0 2px rgba(255, 255, 255, 1))
    drop-shadow(0 0 4px rgba(255, 255, 255, 1))
    drop-shadow(0 0 8px rgba(255, 255, 255, 0.95))
    drop-shadow(0 1px 10px rgba(255, 255, 255, 0.85))
    drop-shadow(0 0 16px rgba(255, 255, 255, 0.7));
}
.hsm-crest.is-stat { width: 5.75rem; }
.hsm-crest.is-card { width: 3.35rem; }
.hsm-stat-badge.is-crest {
  border-left: 1px solid var(--hsm-line);
  border-right: 1px solid var(--hsm-line);
  padding: 0.15rem 0.4rem;
  min-height: 4.4rem;
  background: transparent;
  display: grid;
  place-items: center;
}
.hsm-badge.is-crest,
.hsm-badge-chip.is-crest,
.hsm-host-badge.is-crest {
  background: transparent;
  border: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  padding: 0;
  gap: 0;
  max-width: none;
}
/* Card: no white box — soft halo keeps crest readable on photos */
.hsm-card-media .hsm-badge.is-crest {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.hsm-card-media .hsm-gf.is-card {
  filter:
    drop-shadow(0 0 1.5px rgba(255, 255, 255, 0.95))
    drop-shadow(0 1px 2px rgba(255, 255, 255, 0.85))
    drop-shadow(0 1px 3px rgba(12, 27, 51, 0.28));
}
.hsm-card-media .hsm-crest.is-card {
  filter: none;
}
.hsm-card-media .hsm-crest.is-card img {
  filter:
    drop-shadow(0 0 0.5px #fff)
    drop-shadow(0 0 1px #fff)
    drop-shadow(0 0 2px rgba(255, 255, 255, 1))
    drop-shadow(0 0 4px rgba(255, 255, 255, 1))
    drop-shadow(0 0 8px rgba(255, 255, 255, 1))
    drop-shadow(0 1px 12px rgba(255, 255, 255, 0.95))
    drop-shadow(0 0 18px rgba(255, 255, 255, 0.8));
}
.hsm-laurel {
  width: 22px;
  height: 34px;
  flex: none;
  color: var(--badge-accent);
}
.hsm-laurel path { fill: currentColor; }
.hsm-laurel.is-flip {
  transform: scaleX(-1);
}
.hsm-badge-mark {
  width: 22px;
  height: 22px;
  flex: none;
}
.hsm-badge-chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.45rem;
  margin-top: 0.85rem;
}
.hsm-badge-chip {
  position: static;
  font-size: 0.78rem;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.hsm-badge-chip .hsm-badge-mark {
  width: 15px;
  height: 15px;
}
.hsm-listing-hostrow {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin-top: 1.15rem;
}
.hsm-listing-host-avatar {
  position: relative;
  flex: none;
}
.hsm-listing-host-avatar .hsm-avatar {
  width: 56px;
  height: 56px;
}
.hsm-host-pin {
  --badge-fg: #0c1b33;
  --badge-bg: #fff;
  --badge-accent: var(--hsm-gold);
  position: absolute;
  right: -3px;
  bottom: -3px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--badge-bg);
  color: var(--badge-accent);
  border: 2px solid #fff;
  box-shadow: 0 2px 6px rgba(12, 27, 51, 0.18);
  display: grid;
  place-items: center;
}
.hsm-host-pin svg,
.hsm-host-pin .hsm-badge-mark {
  width: 14px;
  height: 14px;
  display: block;
  color: inherit;
}
.hsm-host-pin.is-preferred_partner {
  background: var(--badge-bg);
  color: var(--badge-accent);
}
.hsm-host-pin.is-absolute_host {
  background: #0c1b33;
  color: #c9a962;
  border-color: #fff;
}
.hsm-host-pin.is-eco {
  background: var(--badge-bg);
  color: var(--badge-accent);
}
.hsm-listing-host-copy {
  min-width: 0;
  display: grid;
  gap: 0.15rem;
}
.hsm-listing-host-copy strong {
  font-size: 1rem;
  color: var(--hsm-navy);
}
.hsm-listing-host-copy span {
  font-size: 0.88rem;
  color: var(--hsm-muted);
}
.hsm-highlights {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 1.15rem 0 0;
  border-top: 1px solid var(--hsm-line);
  display: grid;
  gap: 1.05rem;
}
.hsm-highlight {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
}
.hsm-highlight-ico {
  width: 32px;
  height: 32px;
  flex: none;
  color: var(--hsm-navy);
  margin-top: 0.1rem;
}
.hsm-highlight-ico svg {
  width: 100%;
  height: 100%;
  display: block;
}
.hsm-highlight strong {
  display: block;
  font-size: 0.98rem;
  color: var(--hsm-navy);
  margin-bottom: 0.15rem;
}
.hsm-highlight p {
  margin: 0;
  color: var(--hsm-muted);
  font-size: 0.9rem;
  line-height: 1.45;
}

.hsm-cover-note h2 {
  font-size: 1.15rem;
  margin: 0 0 0.4rem;
}
.hsm-cover-note {
  scroll-margin-top: calc(var(--hsm-header) + var(--hsm-pin, 0px) + 0.75rem);
}
.hsm-cover-note .hsm-cover-mark.is-inline {
  margin: 0 0 0.15rem;
  font-size: clamp(1.55rem, 4vw, 2.1rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--hsm-navy);
}
.hsm-cover-note .hsm-cover-mark.is-inline em {
  font-style: normal;
  color: var(--hsm-gold);
}
.hsm-cover-note .hsm-cover-for {
  margin: 0 0 0.65rem;
  font-size: 0.95rem;
  font-weight: 650;
  color: var(--hsm-muted);
}
.hsm-cover-note p {
  margin: 0;
  color: var(--hsm-muted);
  line-height: 1.5;
}
.hsm-cover-note .hsm-inline {
  display: inline-block;
  margin-top: 0.55rem;
  font-weight: 700;
  color: var(--hsm-navy);
}
.hsm-cover-note .hsm-cover-cta {
  margin-top: 0.85rem;
  width: auto !important;
  min-width: 0;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  background: var(--hsm-gold);
  color: var(--hsm-navy) !important;
  border: 1px solid rgba(12, 27, 51, 0.08);
  border-radius: 999px;
  padding: 0.55rem 1rem;
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.2;
  box-shadow: none;
  transition:
    background 0.16s ease,
    color 0.16s ease,
    box-shadow 0.16s ease,
    transform 0.16s ease,
    border-color 0.16s ease;
}
.hsm-cover-note .hsm-cover-cta:hover,
.hsm-cover-note .hsm-cover-cta:focus-visible {
  background: #d8bc78;
  color: var(--hsm-navy) !important;
  border-color: rgba(12, 27, 51, 0.14);
  box-shadow: 0 4px 12px rgba(12, 27, 51, 0.12);
  transform: none;
}
.hsm-cover-note .hsm-cover-cta:active {
  background: var(--hsm-gold-2, #b8954a);
  color: #fff !important;
  box-shadow: none;
  transform: scale(0.985);
}
.hsm-cover-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0.95rem 0 0;
  padding: 0.55rem 0.75rem 0.55rem 0.85rem;
  border: 1px solid rgba(201, 169, 98, 0.42);
  border-radius: 999px;
  background: linear-gradient(180deg, #fffdf8, #faf6ec);
  color: inherit;
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(12, 27, 51, 0.04);
  max-width: 100%;
}
.hsm-cover-badge:hover {
  border-color: rgba(201, 169, 98, 0.7);
}
.hsm-cover-badge-mark {
  font-size: 0.98rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--hsm-navy);
  white-space: nowrap;
}
.hsm-cover-badge-mark em {
  font-style: normal;
  color: var(--hsm-gold);
}
.hsm-cover-badge-more {
  flex: none;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  background: var(--hsm-navy);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}
.hsm-cover-book {
  text-align: center;
  margin: 0.55rem 0 0;
  font-size: 0.82rem;
  font-weight: 700;
}
.hsm-cover-book a {
  color: var(--hsm-navy);
  text-decoration: none;
}
.hsm-cover-book a:hover {
  text-decoration: underline;
}
.hsm-avatar {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--hsm-navy);
  color: var(--hsm-gold);
  display: grid;
  place-items: center;
  font-weight: 800;
  object-fit: cover;
  flex-shrink: 0;
}
img.hsm-avatar {
  padding: 0;
  background: var(--hsm-soft);
}
.hsm-amen-groups {
  display: grid;
  gap: 1.55rem;
}
.hsm-amen-group h3 {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  font-weight: 750;
  letter-spacing: -0.015em;
  color: var(--hsm-navy);
}
.hsm-amen-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.7rem 1.2rem;
}
.hsm-amen {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  font-size: 0.95rem;
}
.hsm-amen-more {
  display: none;
  margin-top: 1.25rem;
  width: 100%;
  min-height: 3rem;
  border: 1px solid var(--hsm-ink);
  border-radius: 12px;
  background: #fff;
  color: var(--hsm-ink);
  font: inherit;
  font-size: 0.95rem;
  font-weight: 650;
  cursor: pointer;
}
.hsm-amen-more:hover {
  background: var(--hsm-soft);
}
.hsm-amen strong {
  display: block;
  font-weight: 500;
}
.hsm-amen-hint {
  display: block;
  margin-top: 0.12rem;
  font-style: normal;
  font-size: 0.82rem;
  color: #717171;
}
.hsm-amen svg {
  width: 22px;
  height: 22px;
  padding: 7px;
  box-sizing: content-box;
  flex: none;
  border-radius: 10px;
  background: var(--hsm-soft);
  color: var(--hsm-navy);
  margin-top: 0.05rem;
}

.hsm-cal-panel { width: 100%; }
.hsm-cal {
  user-select: none;
  position: relative;
  background: #fff;
  border: 1px solid var(--hsm-line);
  border-radius: 28px;
  box-shadow: var(--hsm-shadow-lg);
  padding: 1.15rem 1.35rem 1rem;
  outline: none;
}
.hsm-cal-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  margin-bottom: 1rem;
}
.hsm-cal-summary {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
  padding-top: 0.15rem;
}
.hsm-cal-summary strong {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--hsm-ink);
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.hsm-cal-summary span {
  font-size: 0.92rem;
  color: var(--hsm-muted);
  font-weight: 500;
}
.hsm-cal-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-width: min(20rem, 100%);
  border: 1px solid var(--hsm-line);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  flex: none;
}
.hsm-cal-field {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  padding: 0.7rem 2rem 0.7rem 0.85rem;
  border: 0;
  background: #fff;
  text-align: left;
  cursor: pointer;
  font: inherit;
  min-height: 4.1rem;
}
.hsm-cal-field + .hsm-cal-field { border-left: 1px solid var(--hsm-line); }
.hsm-cal-field.is-active {
  outline: 2px solid var(--hsm-ink);
  outline-offset: -2px;
  border-radius: 12px;
  z-index: 1;
}
.hsm-cal-field > span:first-child {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--hsm-ink);
}
.hsm-cal-field em {
  font-style: normal;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--hsm-ink);
}
.hsm-cal-field-x {
  position: absolute;
  right: 0.55rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  line-height: 1;
  color: var(--hsm-muted);
}
.hsm-cal-field-x:hover { background: var(--hsm-soft); color: var(--hsm-ink); }
.hsm-cal-body { position: relative; }
.hsm-cal-months {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.35rem 1.75rem;
  min-width: 0;
  width: 100%;
}
.hsm-cal-nav-row {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) 32px;
  align-items: start;
  gap: 0.45rem;
}
.hsm-cal-nav-row > .hsm-cal-nav {
  margin-top: 0.05rem;
}
.hsm-cal-nav:disabled {
  opacity: 0.28;
  cursor: default;
  pointer-events: none;
}
.hsm-cal-month {
  min-width: 0;
  width: 100%;
}
.hsm-cal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.55rem;
  font-weight: 800;
}
.hsm-cal-panel .hsm-cal-head {
  display: flex;
  justify-content: center;
}
.hsm-cal-title {
  text-align: center;
  font-size: 0.98rem;
  color: var(--hsm-ink);
}
.hsm-cal-nav {
  border: 1px solid var(--hsm-line);
  background: #fff;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 1.25rem;
  line-height: 1;
  color: var(--hsm-ink);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.hsm-cal-nav:hover { background: var(--hsm-soft); }
.hsm-cal-nav-spacer { width: 32px; height: 32px; }
.hsm-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0;
  width: 100%;
  min-width: 0;
  text-align: center;
}
.hsm-cal-dow {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--hsm-muted);
  padding: 0.35rem 0 0.55rem;
}
.hsm-cal-empty { min-height: 2.6rem; }
.hsm-day {
  border: 0;
  background: none;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: none;
  aspect-ratio: 1;
  margin: 0;
  border-radius: 50%;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--hsm-ink);
  cursor: pointer;
  position: relative;
  z-index: 1;
}
.hsm-day:hover:not(:disabled):not(.is-in):not(.is-out) { background: var(--hsm-soft); }
.hsm-day.is-range {
  background: #ebebeb;
  border-radius: 0;
  max-width: none;
  width: 100%;
}
.hsm-day.is-in,
.hsm-day.is-out {
  background: var(--hsm-ink);
  color: #fff;
  border-radius: 50%;
}
.hsm-day.is-in.is-range,
.hsm-day.is-out.is-range { background: var(--hsm-ink); }
.hsm-day.is-focus:not(.is-in):not(.is-out) {
  box-shadow: inset 0 0 0 1px var(--hsm-ink);
}
.hsm-day.is-blocked,
.hsm-day:disabled {
  color: #c5c9d1;
  cursor: default;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}
.hsm-cal-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.85rem;
  padding-top: 0.35rem;
}
.hsm-cal-kb {
  width: 2.1rem;
  height: 2.1rem;
  border: 1px solid var(--hsm-line);
  border-radius: 8px;
  background: #fff;
  color: var(--hsm-ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
.hsm-cal-kb:hover { background: var(--hsm-soft); }
.hsm-cal-foot-actions {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.hsm-cal-clear {
  border: 0;
  background: none;
  font: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.18em;
  color: var(--hsm-ink);
  cursor: pointer;
  padding: 0.55rem 0.4rem;
}
.hsm-cal-close {
  border: 0;
  background: var(--hsm-ink);
  color: #fff;
  font: inherit;
  font-weight: 700;
  border-radius: 999px;
  padding: 0.7rem 1.25rem;
  cursor: pointer;
}
.hsm-cal-close:hover { background: var(--hsm-navy); }
.hsm-cal-help {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0.5rem;
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(1px);
  z-index: 5;
}
.hsm-cal-help[hidden] { display: none !important; }
.hsm-cal-help-card {
  width: min(22rem, 100%);
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 12px 40px rgba(15, 23, 42, 0.18);
  border: 1px solid var(--hsm-line);
  padding: 1.15rem 1.2rem 1rem;
}
.hsm-cal-help-card h3 {
  margin: 0 0 0.85rem;
  font-size: 1.05rem;
  color: var(--hsm-ink);
}
.hsm-cal-help-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.7rem;
}
.hsm-cal-help-list li {
  display: grid;
  grid-template-columns: 7.2rem 1fr;
  gap: 0.75rem;
  align-items: center;
  color: var(--hsm-muted);
  font-size: 0.92rem;
}
.hsm-cal-kbd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.7rem;
  padding: 0.2rem 0.45rem;
  border-radius: 8px;
  background: #f3f3f3;
  border: 1px solid #e5e5e5;
  color: var(--hsm-ink);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.hsm-cal-help-back {
  display: block;
  width: 100%;
  margin-top: 1rem;
  border: 0;
  background: none;
  font: inherit;
  font-weight: 800;
  color: var(--hsm-ink);
  text-decoration: underline;
  text-underline-offset: 0.18em;
  cursor: pointer;
  text-align: right;
  padding: 0.35rem 0;
}
.hsm-listing-grid > aside,
.hsm-book-stack {
  overflow: visible;
}
.hsm-cal-flyout {
  position: fixed;
  z-index: 70;
  width: min(44rem, calc(100vw - 2rem));
  max-width: 44rem;
  /* left/top set in JS so the panel sits over the reserve card */
  left: auto;
  right: auto;
  top: auto;
}
.hsm-cal-flyout[hidden] { display: none !important; }
.hsm-cal-flyout .hsm-cal {
  box-shadow: 0 16px 48px rgba(15, 23, 42, 0.22);
}
.hsm-cal.is-inline {
  box-shadow: none;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
}
.hsm-cal.is-inline .hsm-cal-top {
  margin-bottom: 0.85rem;
}
/* The inline calendar repeats the section title verbatim in its empty state
   ("Select dates" under "Select dates"). The section h2 already heads the
   block, so only keep the calendar's range line, which is the part that
   actually changes once dates are picked. */
.hsm-cal.is-inline .hsm-cal-summary strong {
  display: none;
}
.hsm-cal.is-inline .hsm-cal-summary:empty,
.hsm-cal.is-inline .hsm-cal-summary:not(:has(span)) {
  display: none;
}
.hsm-cal.is-inline .hsm-cal-foot {
  padding-top: 0.75rem;
}
body.is-listing-cal-open .hsm-book-cell.is-active {
  outline: 2px solid var(--hsm-ink);
  outline-offset: -2px;
  z-index: 1;
}
body.is-listing-cal-open::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 65;
  background: rgba(255, 255, 255, 0.62);
  pointer-events: none;
}
/* Page dates block stays under the wash — flyout is the only interactive panel. */
body.is-listing-cal-open .hsm-cal-section {
  visibility: hidden;
}

@media (max-width: 1100px) {
  .hsm-cal-flyout {
    width: auto;
    max-width: none;
    max-height: calc(100vh - var(--hsm-header) - 1.5rem);
    overflow: auto;
    z-index: 80;
  }
  .hsm-cal-top { flex-direction: column; }
  .hsm-cal-fields { width: 100%; min-width: 0; }
}
@media (max-width: 719px) {
  body.is-listing-cal-open::before { display: none; }
  body.is-listing-cal-open .hsm-cal-section { visibility: hidden; }
  .hsm-cal-summary strong { font-size: 1.2rem; }
  .hsm-cal-help-list li { grid-template-columns: 6.2rem 1fr; }
}


.hsm-book-stack {
  position: sticky;
  top: calc(var(--hsm-header) + var(--hsm-continue) + var(--hsm-pin));
  z-index: 4;
  display: grid;
  gap: 0.65rem;
}
.hsm-detail.is-review-pin .hsm-book-stack {
  position: static;
}
/* Shared tip + cart card chrome (rare, save, reserve) */
.hsm-book-tip {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  width: 100%;
  margin: 0;
  box-sizing: border-box;
  border: 1px solid var(--hsm-line);
  border-radius: var(--hsm-radius);
  padding: 0.8rem 1rem;
  background: #fff;
  box-shadow: var(--hsm-shadow);
  color: var(--hsm-navy);
}
.hsm-book-stack > .hsm-rare.hsm-book-tip {
  align-items: center;
  padding: 0.85rem 1rem;
}
.hsm-book-stack > .hsm-rare .hsm-rare-gem {
  margin-top: 0;
}
.hsm-book-stack > .hsm-rare-stack {
  margin: 0;
}
.hsm-book {
  border: 1px solid var(--hsm-line);
  border-radius: var(--hsm-radius);
  box-shadow: var(--hsm-shadow-lg);
  padding: 1.25rem 1.25rem 1.15rem;
  background: #fff;
}
.hsm-book-save {
  justify-content: center;
  font-weight: 700;
  color: var(--hsm-navy);
}
.hsm-book-save[hidden] { display: none; }
.hsm-book-save svg { width: 22px; height: 22px; flex: none; }
.hsm-book-price {
  font-size: 1.45rem;
  font-weight: 800;
  color: var(--hsm-navy);
  letter-spacing: -0.02em;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.45rem;
}
.hsm-book-price span,
.hsm-book-price [data-book-unit] { font-size: 0.95rem; font-weight: 550; color: var(--hsm-muted); }
.hsm-book-was,
.hsm-pin-was,
.hsm-pin-price s,
.hsm-card-was {
  text-decoration: line-through;
  color: #9aa3b2;
  font-weight: 650;
  font-size: 0.92em;
}
.hsm-pin-now {
  text-decoration: underline;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
}
.hsm-pin-dates {
  font-weight: 550;
  color: var(--hsm-muted);
  font-size: 0.92rem;
  white-space: nowrap;
}
.hsm-pin-dates[hidden] { display: none !important; }
.hsm-pin-meta { text-align: left; }
.hsm-pin-price {
  font-size: 0.98rem;
  font-weight: 800;
  color: var(--hsm-navy);
  display: flex;
  justify-content: flex-start;
  align-items: baseline;
  gap: 0.4rem 0.55rem;
  flex-wrap: wrap;
}
.hsm-pin-unit { font-weight: 550; color: var(--hsm-muted); }
.hsm-book-box {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--hsm-line);
  border-radius: 12px;
  margin: 1rem 0;
  overflow: visible; /* allow guests popover to escape */
  background: #fff;
  position: relative;
  z-index: 2;
}
.hsm-book-box > .hsm-book-cell:first-child {
  border-radius: 11px 0 0 0;
}
.hsm-book-box > .hsm-book-cell:nth-child(2) {
  border-radius: 0 11px 0 0;
}
.hsm-book-box > .hsm-book-guests {
  border-radius: 0 0 11px 11px;
}
.hsm-book-row { display: contents; }
.hsm-book-cell,
.hsm-book-guests {
  padding: 0.65rem 0.8rem 0.7rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.2rem;
  min-height: 4.35rem;
  min-width: 0;
  background: #fff;
}
button.hsm-book-cell {
  border: 0;
  width: 100%;
  text-align: left;
  font: inherit;
  cursor: pointer;
  color: inherit;
}
.hsm-book-cell strong {
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--hsm-ink);
}
.hsm-book-cell + .hsm-book-cell { border-left: 1px solid var(--hsm-line); }
.hsm-book-row input[type="hidden"] { display: none; }
.hsm-book-guests {
  grid-column: 1 / -1;
  border-top: 1px solid var(--hsm-line);
  min-height: 3.6rem;
}
.hsm-book-cell > span,
.hsm-book-guests > span {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--hsm-navy);
}
.hsm-book-cell input,
.hsm-book-guests select {
  border: 0;
  background: transparent;
  outline: none;
  width: 100%;
  min-width: 0;
  font: inherit;
  font-size: 0.92rem;
  line-height: 1.3;
  color: var(--hsm-ink);
  min-height: 1.35rem;
}
.hsm-book-cell input[type="date"] {
  -webkit-appearance: none;
  appearance: none;
  display: block;
}
.hsm-book-cell input[type="date"]::-webkit-datetime-edit {
  padding: 0;
}
.hsm-book-cell input[type="date"]::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}
.hsm-book-cell input[type="date"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: 0.55;
  margin: 0;
}
.hsm-book-guests select {
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%231a2332' stroke-width='1.6'><path d='M1 1.5 6 6.5 11 1.5'/></svg>");
  background-repeat: no-repeat;
  background-position: right 0.1rem center;
  padding-right: 1.1rem;
}
.hsm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border: 0;
  border-radius: 12px;
  padding: 0.85rem 1rem;
  font-weight: 800;
  background: var(--hsm-navy);
  color: #fff;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.hsm-btn:hover {
  background: var(--hsm-navy-2);
}
.hsm-btn:focus-visible {
  outline: 2px solid var(--hsm-gold);
  outline-offset: 3px;
}
.hsm-btn:active {
  transform: scale(0.985);
}
.hsm-btn-gold {
  background: var(--hsm-gold);
  color: var(--hsm-navy);
  box-shadow: 0 4px 14px rgba(12, 27, 51, 0.12);
}
.hsm-btn.hsm-btn-gold:hover,
.hsm-btn.hsm-btn-gold:focus-visible {
  background: #d8bc78;
  color: var(--hsm-navy);
  box-shadow: 0 6px 18px rgba(12, 27, 51, 0.16);
}
.hsm-btn.hsm-btn-gold:active {
  background: var(--hsm-gold-2);
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(12, 27, 51, 0.12);
  transform: scale(0.985);
}
.hsm-btn-pill {
  border-radius: 999px;
  padding: 0.95rem 1.1rem;
  font-size: 1.02rem;
}
.hsm-book-note {
  text-align: center;
  margin-top: 0.75rem;
}
.hsm-report {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  width: 100%;
  margin-top: 1rem;
  padding-top: 0.15rem;
  color: var(--hsm-muted);
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.hsm-report svg { width: 16px; height: 16px; flex: none; }
.hsm-report:hover { color: var(--hsm-navy); }
.hsm-breakdown { margin-top: 1rem; font-size: 0.92rem; }
.hsm-breakdown-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.28rem 0;
}
.hsm-breakdown-row.is-total {
  border-top: 1px solid var(--hsm-line);
  margin-top: 0.4rem;
  padding-top: 0.7rem;
  font-weight: 800;
}
.hsm-breakdown-row.is-save span:last-child {
  /* #1d9a6c only reached 3.6:1 on white; --hsm-ok is the same hue at ~5:1. */
  color: var(--hsm-ok);
}

.hsm-pin {
  position: sticky;
  top: var(--hsm-header);
  z-index: 50;
  width: 100%;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--hsm-line);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
@media (min-width: 720px) {
  .hsm-pin {
    top: calc(var(--hsm-header) + var(--hsm-continue));
  }
}
/* Secondary listing nav must not float above the search scrim like the main header */
body.is-search-open .hsm-pin {
  z-index: 20;
  pointer-events: none;
  background: transparent;
  border-bottom-color: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
}
body.is-search-open .hsm-header {
  z-index: 45;
}
.hsm-pin-inner {
  width: min(var(--hsm-max), calc(100% - 2rem));
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: var(--hsm-pin);
}
.hsm-subnav {
  display: flex;
  gap: 1.15rem;
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 0.85rem 0;
  margin: 0;
  border: 0;
  font-size: 0.92rem;
  font-weight: 600;
  background: none;
  position: static;
  min-width: 0;
  flex: 1 1 auto;
}
.hsm-subnav::-webkit-scrollbar { display: none; }
.hsm-subnav a {
  color: var(--hsm-muted);
  white-space: nowrap;
  padding: 0.35rem 0 0.55rem;
  border-bottom: 3px solid transparent;
}
.hsm-subnav a:hover,
.hsm-subnav a.is-on {
  color: var(--hsm-navy);
}
.hsm-subnav a.is-on { border-bottom-color: var(--hsm-navy); }
.hsm-pin-cta {
  display: none;
  align-items: center;
  gap: 1rem;
  flex: none;
}
.hsm-detail.is-review-pin .hsm-pin-cta { display: flex; }
.hsm-pin-rate { font-size: 0.8rem; color: var(--hsm-ink); margin-top: 0.12rem; }
.hsm-pin-cta .hsm-btn { width: auto; min-width: 8.2rem; padding-inline: 1.4rem; }

@media (max-width: 820px) {
  .hsm-pin-rate { display: none; }
  .hsm-pin-cta .hsm-btn { min-width: 6.6rem; padding-inline: 1rem; }
}

.hsm-rev-board {
  display: grid;
  grid-template-columns: 1.15fr repeat(6, 1fr);
  gap: 0.6rem 0.8rem;
  padding: 1rem 0 1.2rem;
  border-bottom: 1px solid var(--hsm-line);
  margin-bottom: 1.2rem;
}
.hsm-rev-board.is-exp {
  grid-template-columns: 1.15fr repeat(4, 1fr);
}
.hsm-score {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding-left: 0.8rem;
  border-left: 1px solid var(--hsm-line);
  font-size: 0.82rem;
}
.hsm-score-overall {
  padding-left: 0;
  border-left: 0;
}
.hsm-score strong { font-size: 1.05rem; color: var(--hsm-navy); }
.hsm-score svg {
  width: 26px;
  height: 26px;
  margin-top: 0.35rem;
  color: var(--hsm-navy);
}
.hsm-bars { display: grid; gap: 0.18rem; }
.hsm-bar-row {
  display: grid;
  grid-template-columns: 0.7rem 1fr;
  gap: 0.35rem;
  align-items: center;
  font-size: 0.68rem;
  color: var(--hsm-muted);
}
.hsm-bar-row i {
  display: block;
  height: 4px;
  background: #ece8e1;
  border-radius: 4px;
  overflow: hidden;
}
.hsm-bar-row b {
  display: block;
  height: 100%;
  background: var(--hsm-navy);
}
.hsm-mention-label { font-weight: 700; margin: 0 0 0.65rem; }
.hsm-mentions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.4rem; }
.hsm-mention {
  border: 1px solid var(--hsm-line);
  border-radius: 999px;
  padding: 0.42rem 0.8rem;
  font-size: 0.86rem;
  font-weight: 600;
  box-shadow: 0 4px 14px rgba(12,27,51,0.04);
}
.hsm-rev-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.4rem 2rem;
}
.hsm-rev-who { display: flex; gap: 0.7rem; align-items: center; margin-bottom: 0.45rem; }
.hsm-rev-who span:last-child { color: var(--hsm-muted); font-size: 0.82rem; display: block; font-weight: 500; }
.hsm-rev-meta { color: var(--hsm-muted); font-size: 0.82rem; margin-bottom: 0.45rem; }
.hsm-stars { letter-spacing: 0.06em; color: var(--hsm-navy); }
.hsm-rev-text { margin: 0; line-height: 1.6; }
.hsm-rev-text.is-long {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.hsm-rev-more {
  border: 0;
  background: none;
  padding: 0.35rem 0 0;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  color: var(--hsm-navy);
}
.hsm-host-grid {
  display: grid;
  grid-template-columns: minmax(210px, 250px) minmax(0, 1fr);
  gap: 2rem 2.4rem;
  align-items: start;
}

/* Meet your host — full content width */
.hsm-meet {
  margin-top: 0;
  padding: 1.5rem 0 0.5rem;
  border-top: 1px solid var(--hsm-line);
}
.hsm-meet > h2 {
  margin: 0 0 1.35rem;
  font-size: clamp(1.4rem, 2.4vw, 1.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--hsm-navy);
}
.hsm-meet-grid {
  display: grid;
  grid-template-columns: minmax(420px, 1.15fr) minmax(0, 1fr);
  gap: 2.25rem 3.5rem;
  align-items: start;
}
.hsm-meet-side {
  display: contents;
}
.hsm-host-card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  justify-items: stretch;
  border: 1px solid var(--hsm-line);
  border-radius: 28px;
  padding: 1.75rem 1.85rem 1.55rem;
  background: #fff;
  box-shadow: 0 16px 44px rgba(12, 27, 51, 0.1), 0 2px 10px rgba(12, 27, 51, 0.04);
  text-align: left;
  width: 100%;
  max-width: none;
}
.hsm-host-visual {
  --hsm-host-mark: 7.5rem;
  --hsm-host-gap: 0.9rem;
  display: grid;
  justify-items: center;
  gap: 0.85rem;
  min-width: 0;
  width: 100%;
}
.hsm-host-identity {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--hsm-host-gap);
  min-width: 0;
  width: max-content;
  max-width: 100%;
  margin-inline: auto;
}
/* 1 badge + avatar, or plain avatar — equal size, even gap */
.hsm-host-identity.is-one,
.hsm-host-identity.is-plain {
  gap: var(--hsm-host-gap);
}
/* 2 badges + avatar: three equal slots on one line */
.hsm-host-identity.is-duo {
  display: grid;
  grid-template-columns: repeat(3, var(--hsm-host-mark));
  align-items: center;
  justify-items: center;
  gap: var(--hsm-host-gap);
  width: max-content;
  max-width: 100%;
}
.hsm-host-avatar-wrap {
  position: relative;
  box-sizing: border-box;
  flex: 0 0 var(--hsm-host-mark);
  width: var(--hsm-host-mark);
  height: var(--hsm-host-mark);
}
.hsm-host-avatar-wrap .hsm-avatar-lg,
.hsm-host-avatar-wrap img.hsm-avatar-lg {
  width: 100%;
  height: 100%;
  font-size: 1.85rem;
  object-fit: cover;
  border-radius: 50%;
}
.hsm-host-verified {
  position: absolute;
  right: -0.05rem;
  bottom: 0.05rem;
  width: 1.85rem;
  height: 1.85rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: #fff;
  color: var(--hsm-gold-2, #a8893f);
  box-shadow: 0 2px 8px rgba(12, 27, 51, 0.16);
}
.hsm-host-verified svg { width: 1.1rem; height: 1.1rem; display: block; }
.hsm-host-id {
  text-align: center;
  min-width: 0;
  width: 100%;
}
.hsm-host-id strong {
  display: block;
  font-size: 1.65rem;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: var(--hsm-navy);
}
.hsm-host-badge {
  position: static;
  flex: 0 0 auto;
  max-width: 100%;
  margin: 0;
  font-size: 0.7rem;
  box-shadow: none;
}
.hsm-host-badge .hsm-badge-mark {
  width: 13px;
  height: 13px;
}
/* Crest slot = avatar slot (1 or 2 badges) */
.hsm-host-identity .hsm-host-badge.is-crest {
  box-sizing: border-box;
  width: var(--hsm-host-mark);
  height: var(--hsm-host-mark);
  display: grid;
  place-items: center;
  flex: 0 0 var(--hsm-host-mark);
  max-width: var(--hsm-host-mark);
  overflow: hidden;
  justify-self: center;
}
.hsm-host-identity.is-duo .hsm-host-badge.is-crest {
  width: var(--hsm-host-mark);
  height: var(--hsm-host-mark);
  max-width: var(--hsm-host-mark);
  justify-self: center;
}
.hsm-host-identity .hsm-crest.is-card,
.hsm-host-identity.is-duo .hsm-crest.is-card,
.hsm-host-identity.is-one .hsm-crest.is-card {
  width: 100%;
  height: 100%;
  max-width: 100%;
  aspect-ratio: 1;
}
.hsm-host-identity .hsm-crest.is-card img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  filter:
    drop-shadow(0 0 0.5px #fff)
    drop-shadow(0 0 1.5px rgba(255, 255, 255, 0.95))
    drop-shadow(0 1px 3px rgba(12, 27, 51, 0.12));
}
/* Horizontal stats strip — Airbnb-style, readable on wide cards */
.hsm-host-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  min-width: 0;
  width: 100%;
  padding: 0.15rem 0 0;
  border-top: 1px solid var(--hsm-line);
}
.hsm-host-stats div {
  border-top: 0;
  border-left: 1px solid var(--hsm-line);
  text-align: center;
  padding: 1rem 0.65rem 0.15rem;
}
.hsm-host-stats div:first-child {
  border-left: 0;
  padding-top: 1rem;
}
.hsm-host-stats div:last-child {
  padding-bottom: 0.15rem;
}
.hsm-host-stats dt,
.hsm-host-stats dd { margin: 0; }
.hsm-host-stats dt {
  font-weight: 800;
  font-size: 1.15rem;
  color: var(--hsm-navy);
  line-height: 1.2;
}
.hsm-host-stats dd {
  color: var(--hsm-muted);
  font-size: 0.84rem;
  margin-top: 0.28rem;
  line-height: 1.3;
}
.hsm-host-traits {
  list-style: none;
  margin: 0;
  padding: 1rem 0 0;
  border-top: 1px solid var(--hsm-line);
  display: grid;
  gap: 0.85rem;
}
.hsm-host-traits li {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  font-size: 0.98rem;
  line-height: 1.45;
  color: var(--hsm-ink);
}
.hsm-host-traits strong { font-weight: 700; }
.hsm-host-trait-ico {
  flex: none;
  width: 1.4rem;
  height: 1.4rem;
  margin-top: 0.1rem;
  color: var(--hsm-navy);
}
.hsm-host-trait-ico svg { width: 100%; height: 100%; display: block; }
.hsm-host-copy {
  min-width: 0;
  padding-top: 0.35rem;
  overflow-wrap: break-word;
  max-width: 36rem;
}
.hsm-host-featured {
  margin: 0 0 1.45rem;
}
.hsm-host-featured h3,
.hsm-host-copy > h3 {
  font-size: 1.12rem;
  margin: 0 0 0.6rem;
  color: var(--hsm-navy);
  letter-spacing: 0;
  word-spacing: normal;
}
.hsm-host-featured p,
.hsm-host-copy .hsm-host-about {
  margin: 0;
  max-width: none;
  color: var(--hsm-ink);
  line-height: 1.6;
  font-size: 1.02rem;
}
.hsm-host-copy .hsm-host-about { margin: 0 0 1.85rem; }
.hsm-host-facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}
.hsm-host-facts li {
  font-size: 1rem;
  line-height: 1.5;
  color: var(--hsm-ink);
  word-spacing: normal;
}
.hsm-btn-soft {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 1.5rem;
  min-height: 3.15rem;
  padding: 0.85rem 1.55rem;
  border: 0;
  border-radius: 999px;
  background: var(--hsm-navy);
  color: #fff;
  font: inherit;
  font-weight: 800;
  font-size: 1rem;
  letter-spacing: 0;
  word-spacing: normal;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
}
/* .hsm a { color: inherit } is more specific than .hsm-btn-soft and hid the label. */
a.hsm-btn-soft,
.hsm a.hsm-btn-soft {
  color: #fff;
}
a.hsm-btn-soft:hover,
.hsm a.hsm-btn-soft:hover {
  color: #fff;
}
.hsm-btn-soft[hidden] {
  display: none !important;
}
.hsm-btn-soft:hover {
  background: var(--hsm-navy-2, #163057);
}
.hsm-btn-soft:focus-visible {
  outline: 2px solid var(--hsm-gold);
  outline-offset: 3px;
}

@media (min-width: 720px) and (max-width: 1099px) {
  .hsm-meet-grid {
    grid-template-columns: minmax(340px, 1fr) minmax(0, 1fr);
    gap: 1.75rem 2rem;
  }
  .hsm-host-card { padding: 1.45rem 1.35rem 1.3rem; }
  .hsm-host-visual {
    --hsm-host-mark: 6.6rem;
    --hsm-host-gap: 0.75rem;
  }
}
.hsm-meet-foot {
  margin-top: 2rem;
  padding-top: 1.35rem;
  border-top: 1px solid var(--hsm-line);
}
.hsm-meet-foot p {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  margin: 0;
  max-width: 44rem;
  color: var(--hsm-ink);
  font-size: 0.92rem;
  line-height: 1.5;
}
.hsm-meet-safe {
  flex: none;
  width: 1.35rem;
  height: 1.35rem;
  margin-top: 0.1rem;
  color: var(--hsm-gold-2, #a8893f);
}
.hsm-meet-safe svg { width: 100%; height: 100%; display: block; }
.hsm-btn-outline {
  display: inline-flex;
  margin-top: 0.9rem;
  border: 1px solid var(--hsm-navy);
  border-radius: 10px;
  padding: 0.55rem 0.9rem;
  font-weight: 700;
}
.hsm-more { padding: 2.2rem 0 0.4rem; border-top: 1px solid var(--hsm-line); margin-top: 0.5rem; }
#photos, #amenities, #reviews, #map, #host, #experiences { scroll-margin-top: calc(var(--hsm-header) + var(--hsm-continue) + var(--hsm-pin)); }

.hsm-reviews { display: grid; gap: 1.1rem; }
.hsm-review {
  border: 1px solid var(--hsm-line);
  border-radius: 14px;
  padding: 1rem 1.1rem;
}
.hsm-review strong { display: block; }
.hsm-review span { color: var(--hsm-muted); font-size: 0.82rem; }
.hsm-review p { margin: 0.45rem 0 0; }

/* Listing location — full content width (not sidebar column) */
.hsm-where {
  margin-top: 1.5rem;
  padding: 2.4rem 0 0.5rem;
  border-top: 1px solid var(--hsm-line);
}
.hsm-where h2 {
  margin: 0 0 0.35rem;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--hsm-navy);
}
.hsm-where-loc {
  margin: 0 0 1.15rem;
  font-size: 1rem;
  font-weight: 500;
  color: var(--hsm-ink);
  line-height: 1.45;
}
.hsm-where-map {
  position: relative;
  z-index: 0;
  isolation: isolate; /* trap Leaflet panes (z-index 200–1000) under sticky pin/header */
  width: 100%;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--hsm-line);
  background: var(--hsm-soft, #f4f1ea);
}
.hsm-mini-map {
  width: 100%;
  height: min(52vh, 480px);
  min-height: 320px;
  border: 0;
  border-radius: 0;
  z-index: 0;
}
.hsm-mini-map.leaflet-container {
  z-index: 0;
}
.hsm-where.is-open .hsm-mini-map {
  height: min(70vh, 640px);
}
.hsm-where-more {
  margin: 1rem 0 0;
  max-width: 40rem;
}
.hsm-where-more p {
  margin: 0;
  color: var(--hsm-ink);
  line-height: 1.55;
}
.hsm-where-more[hidden] { display: none; }
.hsm-where-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 1.05rem;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: 0.95rem;
  font-weight: 650;
  color: var(--hsm-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.hsm-where-toggle::after {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  border-right: 1.7px solid currentColor;
  border-bottom: 1.7px solid currentColor;
  transform: rotate(-45deg);
  margin-top: 0.05rem;
}
.hsm-where.is-open .hsm-where-toggle::after {
  transform: rotate(45deg);
  margin-top: -0.1rem;
}
.hsm-map-home {
  width: 2.65rem;
  height: 2.65rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: #222222;
  color: #fff;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.28);
  border: 2px solid #fff;
}
.hsm-map-home svg {
  width: 1.05rem;
  height: 1.05rem;
  display: block;
}

/* Checkout */
.hsm-bookpage {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 2rem;
  padding: 1.35rem 0 3rem;
  align-items: start;
}
.hsm-bookpage h1,
.hsm-checkout-title {
  font-size: 1.55rem;
  margin-bottom: 0.85rem;
  color: var(--hsm-navy);
}
.hsm-checkout-flow { min-width: 0; }
.hsm-checkout-step { min-width: 0; }
.hsm-checkout-review {
  border: 1px solid var(--hsm-line);
  border-radius: 14px;
  padding: 0.85rem 0.95rem 0.9rem;
  background: #fff;
  margin-bottom: 0.7rem;
}
.hsm-checkout-review .hsm-summary-top {
  grid-template-columns: 72px 1fr;
  gap: 0.65rem;
  margin-bottom: 0.2rem;
  align-items: center;
}
.hsm-checkout-review .hsm-summary-top img {
  width: 72px;
  height: 62px;
  border-radius: 8px;
}
.hsm-checkout-review .hsm-summary-top strong {
  display: block;
  font-size: 0.95rem;
  line-height: 1.25;
}
.hsm-checkout-review .hsm-summary-top div div {
  margin-top: 0.15rem;
  font-size: 0.82rem;
  color: var(--hsm-muted);
}
.hsm-checkout-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.55rem 0;
  border-top: 1px solid var(--hsm-line);
}
.hsm-checkout-row:first-of-type,
.hsm-checkout-review .hsm-summary-top + .hsm-checkout-row {
  border-top: 1px solid var(--hsm-line);
}
.hsm-checkout-row > div {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.2rem 0.65rem;
  align-items: baseline;
  min-width: 0;
}
.hsm-checkout-row.is-total > div {
  grid-template-columns: auto minmax(0, 1fr);
}
.hsm-checkout-row strong {
  display: block;
  margin: 0;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--hsm-navy);
}
.hsm-checkout-row p {
  margin: 0;
  color: var(--hsm-ink);
  font-size: 0.95rem;
  font-weight: 650;
  line-height: 1.3;
}
.hsm-checkout-row .hsm-checkout-total {
  font-size: 1rem;
}
.hsm-checkout-review .hsm-breakdown {
  margin-top: 0.35rem;
  padding: 0.35rem 0 0.15rem;
  border-top: 0;
  font-size: 0.88rem;
}
.hsm-checkout-review .hsm-breakdown-row {
  padding: 0.18rem 0;
}
.hsm-checkout-review .hsm-breakdown-row.is-total {
  margin-top: 0.25rem;
  padding-top: 0.45rem;
}
.hsm-checkout-review > .hsm-ok {
  margin: 0.45rem 0 0;
  font-size: 0.82rem;
  line-height: 1.35;
}
.hsm-checkout-change,
button.hsm-checkout-change,
button.hsm-checkout-change[data-checkout-price-toggle],
button.hsm-checkout-change[data-checkout-price-toggle][aria-expanded="true"] {
  flex: none;
  box-sizing: border-box;
  border: 0;
  border-radius: 999px;
  background: #f2f2f2;
  color: var(--hsm-ink);
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 650;
  line-height: 1.2;
  padding: 0.4rem 0.85rem;
  text-decoration: none;
  cursor: pointer;
}
button.hsm-checkout-change:focus {
  outline: none;
}
button.hsm-checkout-change:focus-visible {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(12, 27, 51, 0.22);
}
.hsm-checkout-fav {
  display: inline-block;
  margin-left: 0.25rem;
  font-size: 0.78rem;
  font-weight: 650;
  color: var(--hsm-navy);
}
.hsm-checkout-total {
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 700;
  color: var(--hsm-navy);
}
button.hsm-checkout-total {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  cursor: pointer;
  text-align: left;
}
.hsm-checkout-pay-review .hsm-co-pay-quote {
  margin-top: 0.15rem;
  padding: 0.2rem 0 0.35rem;
  font-size: 0.88rem;
}
.hsm-checkout-pay-review .hsm-breakdown-row {
  padding: 0.18rem 0;
}
.hsm-checkout-pay-review .hsm-breakdown-row.is-total {
  margin-top: 0.25rem;
  padding-top: 0.45rem;
}
.hsm-checkout-close,
.hsm-checkout-back {
  display: none;
}
.hsm-checkout-bar {
  display: none;
}
.hsm-checkout-link {
  display: inline-block;
  border: 0;
  border-bottom: 1.5px solid currentColor;
  border-radius: 0;
  background: none;
  padding: 0.1rem 0 0.12rem;
  margin: 0 auto;
  font: inherit;
  font-weight: 700;
  font-size: 0.92rem;
  line-height: 1.25;
  color: var(--hsm-navy);
  text-decoration: none;
  cursor: pointer;
  text-align: center;
  width: fit-content;
  max-width: 100%;
  -webkit-appearance: none;
  appearance: none;
}
.hsm-checkout-link.is-nudge {
  transform-origin: center center;
  animation: hsmAddonsNudge 0.85s cubic-bezier(0.34, 1.45, 0.64, 1) 3;
  color: var(--hsm-navy);
  border-bottom-color: var(--hsm-gold);
  text-shadow: 0 0 0 transparent;
}
@keyframes hsmAddonsNudge {
  0%, 100% { transform: scale(1); opacity: 1; }
  40% { transform: scale(0.88); opacity: 0.92; }
  70% { transform: scale(1.08); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .hsm-checkout-link.is-nudge {
    animation: none;
    outline: 2px solid var(--hsm-gold);
    outline-offset: 4px;
  }
}
.hsm-creator-applied {
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--hsm-line);
}
.hsm-creator-applied[hidden] { display: none !important; }
.hsm-creator-applied-id {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  color: var(--hsm-navy);
}
.hsm-creator-applied-id strong { margin-right: 0.35rem; }
.hsm-creator-applied .hsm-ok { margin: 0; }
.hsm-checkout-submit { margin-top: 1rem; width: 100%; }
.hsm-checkout-pay-review .hsm-summary-top {
  margin-bottom: 0.15rem;
}
.hsm-checkout-pay-meta {
  margin-top: 0.2rem;
  font-size: 0.86rem;
  color: var(--hsm-ink);
}
.hsm-checkout-pay-loc {
  margin-top: 0.18rem;
  font-size: 0.86rem;
  color: var(--hsm-muted);
  line-height: 1.35;
}
.hsm-checkout-pay-notes {
  display: grid;
  gap: 0.35rem;
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--hsm-line);
}
.hsm-checkout-pay-notes .hsm-ok { margin: 0; }
.hsm-checkout-pay-review a.hsm-inline {
  font-weight: 700;
  color: var(--hsm-navy);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.hsm-checkout-pay-review .hsm-checkout-submit {
  margin-top: 1.1rem;
}

/* Desktop: hide mobile-only addons detour; review + pay stay open */
.hsm-bookpage [data-hsm-step="addons"] { display: none !important; }
.hsm-summary-desktop { display: block; }
/* Desktop sidebar already shows price + cancel — keep left card lean */
@media (min-width: 720px) {
  .hsm-checkout-pay-review .hsm-co-pay-price-toggle,
  .hsm-checkout-pay-review .hsm-co-pay-quote {
    display: none !important;
  }
  .hsm-checkout-pay-review .hsm-checkout-total {
    text-decoration: none;
    cursor: default;
    pointer-events: none;
  }
}
@media (min-width: 901px) {
  .hsm-checkout-review [data-hsm-quote],
  .hsm-checkout-review > .hsm-ok {
    display: none !important;
  }
  .hsm-checkout-review [data-checkout-price-toggle] {
    display: none !important;
  }
  .hsm-checkout-review .hsm-checkout-total {
    text-decoration: none;
  }
}
.hsm-step {
  border: 1px solid var(--hsm-line);
  border-radius: 14px;
  padding: 0.9rem 1rem;
  margin-bottom: 0.7rem;
  background: #fff;
}
.hsm-step h2 { font-size: 1rem; margin-bottom: 0.65rem; }
.hsm-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem;
}
.hsm-field { display: flex; flex-direction: column; gap: 0.22rem; }
.hsm-field.span2 { grid-column: 1 / -1; }
.hsm-field label { font-size: 0.78rem; font-weight: 700; }
.hsm-field input, .hsm-field select {
  border: 1px solid var(--hsm-line);
  border-radius: 10px;
  padding: 0.62rem 0.7rem;
  background: #fff;
}
.hsm-payopts { display: grid; gap: 0.45rem; }
.hsm-payopts[data-wallets="both"] {
  grid-template-columns: 1fr 1fr;
}
.hsm-payopts[data-wallets="both"] .hsm-payopt:not(.hsm-payopt-wallet) {
  grid-column: 1 / -1;
}
.hsm-payopt {
  display: flex;
  gap: 0.7rem;
  align-items: center;
  border: 1px solid var(--hsm-line);
  border-radius: 12px;
  padding: 0.8rem;
  cursor: pointer;
}
.hsm-payopt[hidden] { display: none !important; }
.hsm-payopt input {
  margin-top: 0.1rem;
  flex: none;
}
.hsm-payopt.is-on { border-color: var(--hsm-navy); box-shadow: 0 0 0 1px var(--hsm-navy); }
.hsm-payopt > span:not(.hsm-payopt-price) {
  flex: 1;
  min-width: 0;
}
.hsm-payopt em {
  display: block;
  margin-top: 0.18rem;
  color: var(--hsm-muted);
  font-style: normal;
  font-size: 0.86rem;
  font-weight: 500;
  line-height: 1.35;
}
.hsm-payopt-price {
  margin-left: auto;
  flex: none;
  font-weight: 750;
  color: var(--hsm-navy);
  white-space: nowrap;
}
.hsm-co-pickup {
  margin-top: 0.75rem;
}
.hsm-co-pickup[hidden] { display: none !important; }
.hsm-co-included-transfer .hsm-co-pickup {
  margin-top: 0.15rem;
}
.hsm-payopt-wallet {
  position: relative;
  height: 2.7rem;
  min-height: 0;
  padding: 0;
  overflow: visible;
  border: none;
  box-shadow: none;
  align-items: stretch;
}
.hsm-payopt-wallet input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.hsm-payopt-wallet-ui {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.48rem;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0 0.95rem;
  border-radius: 12px;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1;
}
.hsm-payopt-wallet-ui strong {
  display: block;
  margin: 0;
  padding: 0;
  font: inherit;
  font-weight: 700;
  line-height: 1;
}
.hsm-payopt-wallet.is-apple .hsm-payopt-wallet-ui {
  background: #000;
  color: #fff;
}
.hsm-payopt-wallet.is-google .hsm-payopt-wallet-ui {
  background: #fff;
  color: #1f1f1f;
  border: 1px solid #dadce0;
}
.hsm-payopt-wallet.is-on {
  box-shadow: none;
  border: none;
}
.hsm-payopt-wallet.is-apple.is-on .hsm-payopt-wallet-ui {
  outline: 2px solid var(--hsm-navy);
  outline-offset: 2px;
}
.hsm-payopt-wallet.is-google.is-on .hsm-payopt-wallet-ui {
  outline: 2px solid var(--hsm-navy);
  outline-offset: 2px;
  border-color: transparent;
}
.hsm-pay-mark {
  display: block;
  width: 1.2rem;
  height: 1.2rem;
  flex: none;
  overflow: visible;
}
/* Apple glyph is leaf-heavy at the top — optical nudge to sit with the label */
.hsm-payopt-wallet.is-apple .hsm-pay-mark {
  width: 1.15rem;
  height: 1.15rem;
  transform: translateY(0.06em);
}
.hsm-pay-mark.is-google {
  width: 1.15rem;
  height: 1.15rem;
}
@media (max-width: 719px) {
  .hsm-payopts[data-wallets="both"] {
    grid-template-columns: 1fr;
  }
  .hsm-payopts[data-wallets="both"] .hsm-payopt:not(.hsm-payopt-wallet) {
    grid-column: auto;
  }
  .hsm-payopt-wallet {
    height: 2.85rem;
  }
  .hsm-payopt-wallet-ui {
    font-size: 0.95rem;
  }
}
.hsm-summary {
  border: 1px solid var(--hsm-line);
  border-radius: var(--hsm-radius);
  box-shadow: var(--hsm-shadow-lg);
  background: #fff;
  padding: 0.95rem;
  position: sticky;
  top: calc(var(--hsm-header) + 1rem);
}
.hsm-summary-top {
  display: grid;
  grid-template-columns: 84px 1fr;
  gap: 0.7rem;
  margin-bottom: 0.7rem;
}
.hsm-summary-top img {
  width: 84px; height: 72px;
  object-fit: cover;
  border-radius: 10px;
}
.hsm-summary .hsm-ok {
  margin: 0 0 0.35rem;
  font-size: 0.82rem;
  line-height: 1.35;
}
.hsm-summary .hsm-breakdown {
  margin-top: 0.55rem;
  font-size: 0.88rem;
}
.hsm-summary .hsm-breakdown-row {
  padding: 0.2rem 0;
}
.hsm-summary .hsm-breakdown-row.is-total {
  margin-top: 0.3rem;
  padding-top: 0.5rem;
}
.hsm-ok {
  color: var(--hsm-ok);
  font-size: 0.88rem;
  font-weight: 600;
}

.hsm-success {
  text-align: center;
  padding: 3rem 1rem 4rem;
  max-width: 36rem;
  margin-inline: auto;
}
.hsm-postpay-addons {
  text-align: left;
  margin: 2rem auto 0;
  max-width: 36rem;
}
.hsm-postpay-lead {
  margin: 0 0 1rem;
  color: var(--hsm-muted);
  font-size: 0.95rem;
}
.hsm-postpay-addons .hsm-btn {
  width: 100%;
  margin-top: 0.5rem;
}
.hsm-success h1 { font-family: var(--hsm-serif); font-size: 2.4rem; color: var(--hsm-navy); }
.hsm-code {
  font-weight: 800;
  letter-spacing: 0.08em;
  background: var(--hsm-soft);
  display: inline-block;
  padding: 0.4rem 0.8rem;
  border-radius: 8px;
  margin: 0.6rem 0 1.2rem;
}

.hsm-lightbox {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(10, 16, 28, 0.92);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
  display: grid;
  place-items: center;
  padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
}
.hsm-lightbox[hidden] { display: none; }
.html.hsm-lb-open,
html.hsm-lb-open,
.hsm-lb-open body {
  overflow: hidden;
}
html.hsm-lb-open .hsm-header,
html.hsm-lb-open .hsm-listing-chrome,
html.hsm-lb-open .hsm-tabbar {
  visibility: hidden;
  pointer-events: none;
}
.hsm-lightbox-stage {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  touch-action: pan-y;
}
.hsm-lightbox img {
  width: 100%;
  height: 100%;
  max-width: calc(100vw - 8rem);
  max-height: calc(100dvh - 5.5rem);
  object-fit: contain;
  object-position: center;
  border-radius: 8px;
  user-select: none;
  -webkit-user-drag: none;
}
.hsm-lightbox-close {
  position: absolute;
  top: max(0.75rem, env(safe-area-inset-top));
  right: max(0.75rem, env(safe-area-inset-right));
  border: 0;
  background: #fff;
  color: var(--hsm-navy);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  font-size: 1.35rem;
  line-height: 1;
  z-index: 3;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
  cursor: pointer;
}
.hsm-lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  color: var(--hsm-navy);
  font-size: 1.55rem;
  line-height: 1;
  z-index: 3;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.16);
  display: none;
}
.hsm-lightbox.has-nav .hsm-lightbox-nav { display: grid; place-items: center; }
.hsm-lightbox-nav.is-prev { left: max(0.65rem, env(safe-area-inset-left)); }
.hsm-lightbox-nav.is-next { right: max(0.65rem, env(safe-area-inset-right)); }
.hsm-lightbox-count {
  position: absolute;
  left: 50%;
  bottom: max(0.9rem, env(safe-area-inset-bottom));
  transform: translateX(-50%);
  margin: 0;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--hsm-navy);
  font-size: 0.82rem;
  font-weight: 700;
  z-index: 3;
}

@media (min-width: 720px) {
  .hsm-header { padding-inline: 1.5rem; }
  .hsm-header-nav { display: flex; }
  /* Login (no search): equal side columns so the 3 product tabs share
     the same page center as the auth card. Flex + margin:auto was centering
     the tabs between logo and actions, which shifts them left. */
  .hsm:not(.has-header-search) .hsm-header-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    column-gap: 1rem;
  }
  .hsm:not(.has-header-search) .hsm-brand { justify-self: start; }
  .hsm:not(.has-header-search) .hsm-header-nav {
    margin-inline: 0;
    justify-self: center;
  }
  .hsm:not(.has-header-search) .hsm-header-actions {
    justify-self: end;
    margin-left: 0;
  }

  /*
   * Desktop marketplace header — Airbnb-style:
   * fixed overlay + static spacer (no document reflow when height changes),
   * search always absolutely centered so top/width can ease,
   * pills slide up & out.
   */
  .hsm.has-header-search:not(.hsm-detail):not(.has-header-filters) .hsm-header {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
  }
  .hsm.has-header-search:not(.hsm-detail):not(.has-header-filters) .hsm-header-offset {
    display: block;
    height: var(--hsm-header);
    flex: none;
    pointer-events: none;
    transition: height 250ms cubic-bezier(0.2, 0, 0, 1);
  }
  .hsm.has-header-search:not(.hsm-detail):not(.has-header-filters) .hsm-header-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    grid-template-rows: auto;
    grid-template-areas: "lead nav actions";
    align-items: center;
    column-gap: 1rem;
    row-gap: 0;
    padding: 0.65rem 0 6.35rem;
    min-height: 0;
    position: relative;
    transition: padding 250ms cubic-bezier(0.2, 0, 0, 1);
  }
  .hsm.has-header-search.is-compact:not(.is-search-open):not(.hsm-detail):not(.has-header-filters) .hsm-header-inner {
    padding: 0.45rem 0;
    min-height: 64px;
  }
  .hsm.has-header-search.is-search-open:not(.hsm-detail):not(.has-header-filters) .hsm-header-inner {
    padding: 0.65rem 0 6.35rem;
  }
  .hsm.has-header-search:not(.hsm-detail):not(.has-header-filters) .hsm-header-search {
    position: absolute;
    left: 50%;
    top: 5.35rem;
    grid-area: unset;
    justify-self: center;
    width: min(880px, calc(100% - 2rem));
    max-width: none;
    margin: 0;
    padding: 0;
    transform: translateX(-50%);
    z-index: 2;
    transition:
      top 250ms cubic-bezier(0.2, 0, 0, 1),
      width 250ms cubic-bezier(0.2, 0, 0, 1),
      transform 250ms cubic-bezier(0.2, 0, 0, 1);
  }
  .hsm.has-header-search.is-compact:not(.is-search-open):not(.hsm-detail):not(.has-header-filters) .hsm-header-search {
    top: 50%;
    width: auto;
    max-width: calc(100% - 16rem);
    transform: translate(-50%, -50%);
  }
  .hsm.has-header-search.is-search-open:not(.hsm-detail):not(.has-header-filters) .hsm-header-search {
    top: 5.35rem;
    width: min(880px, calc(100% - 2rem));
    max-width: none;
    transform: translateX(-50%);
    z-index: 8;
  }
  .hsm.has-header-search:not(.hsm-detail):not(.has-header-filters) .hsm-header .hsm-search-bar {
    transition:
      opacity 160ms cubic-bezier(0.2, 0, 0, 1),
      transform 250ms cubic-bezier(0.2, 0, 0, 1),
      visibility 160ms;
    transform: scale(1);
    transform-origin: center center;
  }
  .hsm.has-header-search.is-compact:not(.is-search-open):not(.hsm-detail):not(.has-header-filters) .hsm-header .hsm-search-bar {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: scale(0.94);
  }
  .hsm.has-header-search:not(.hsm-detail):not(.has-header-filters) .hsm-search-compact {
    transition:
      opacity 200ms cubic-bezier(0.2, 0, 0, 1) 50ms,
      transform 250ms cubic-bezier(0.2, 0, 0, 1),
      visibility 200ms linear 50ms;
    transform: scale(0.96);
  }
  .hsm.has-header-search.is-compact:not(.is-search-open):not(.hsm-detail):not(.has-header-filters) .hsm-search-compact {
    position: relative;
    inset: auto;
    margin: 0;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: scale(1);
  }
  .hsm.is-header-animating:not(.hsm-detail) .hsm-header-inner,
  .hsm.is-header-animating:not(.hsm-detail) .hsm-header-search,
  .hsm.is-header-animating:not(.hsm-detail) .hsm-header-nav {
    will-change: transform, opacity, top, width, padding;
  }
}
@media (min-width: 720px) and (max-width: 879px) {
  .hsm-header-nav { gap: 0.2rem; }
  .hsm-header-nav a {
    flex-direction: row;
    gap: 0.4rem;
    padding: 0.4rem 0.55rem 0.5rem;
    font-size: 0.8rem;
  }
  .hsm-header-nav a svg { width: 26px; height: 26px; }
  .has-header-search .hsm-header-inner {
    row-gap: 0.7rem;
    padding: 0.55rem 0 0.9rem;
  }
  .hsm.has-header-search { --hsm-header: 168px; }
  .hsm.has-header-search:not(.hsm-detail):not(.has-header-filters) .hsm-header-offset {
    height: var(--hsm-header);
  }
  .hsm.has-header-search:not(.hsm-detail):not(.has-header-filters) .hsm-header-inner {
    padding: 0.55rem 0 5.1rem;
  }
  .hsm.has-header-search.is-search-open:not(.hsm-detail):not(.has-header-filters) .hsm-header-inner {
    padding: 0.55rem 0 5.1rem;
  }
  .hsm.has-header-search:not(.hsm-detail):not(.has-header-filters) .hsm-header-search,
  .hsm.has-header-search.is-search-open:not(.hsm-detail):not(.has-header-filters) .hsm-header-search {
    top: 3.85rem;
  }
}
@media (min-width: 880px) {
  .hsm-header { padding-inline: 2.5rem; }
  /* Icon + label under each category — keep text clear of the search pill */
  .hsm-header-nav {
    gap: 1.55rem;
    font-size: 0.8rem;
  }
  .hsm-header-nav a {
    gap: 0.32rem;
    padding: 0.05rem 0.4rem 0.15rem;
  }
  .hsm-header-nav .hsm-nav-ico {
    width: 2.5rem;
    height: 2.5rem;
  }
  .hsm-header-nav .hsm-nav-ico .hsm-nav-svg,
  .hsm-header-nav a svg {
    width: 1.45rem;
    height: 1.45rem;
  }
}
@media (min-width: 1200px) {
  .hsm-header { padding-inline: 3rem; }
  .hsm-host-link { display: inline-flex; }
}
@media (max-width: 1100px) {
  .is-compact:not(.is-search-open) .hsm-brand-text {
    opacity: 0;
    visibility: hidden;
    width: 0;
    overflow: hidden;
    pointer-events: none;
  }
  .hsm-brand-text {
    transition: opacity 0.2s ease, visibility 0.2s;
  }
}
@media (max-width: 719px) {
  .hsm { --hsm-gutter: 0.75rem; }
  .hsm.has-header-search { --hsm-header: 118px; }
  .hsm.has-header-search.is-compact { --hsm-header: 118px; }
  .hsm.has-header-search.is-compact.is-search-open { --hsm-header: 64px; }
  .hsm.has-header-search.hsm-detail { --hsm-header: 0px; }
  .hsm.has-header-search.hsm-detail.is-search-open { --hsm-header: 0px; }
  .hsm.has-header-search.hsm-detail.is-compact:not(.is-search-open) { --hsm-header: 0px; }
  .hsm-wrap {
    width: min(var(--hsm-max), calc(100% - (2 * var(--hsm-gutter))));
  }
  /* Single-row phone header: logo | search | menu. Language lives in the drawer. */
  .hsm-header {
    padding-inline: 0.75rem;
    box-shadow: none;
    border-bottom: 1px solid var(--hsm-line);
    background: #fff;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .hsm.has-header-search.is-compact:not(.is-search-open) .hsm-header {
    box-shadow: none;
  }
  .hsm.has-header-search { --hsm-header: 118px; }
  .hsm.has-header-search.is-compact { --hsm-header: 118px; }
  .hsm.has-header-search.is-compact.is-search-open { --hsm-header: 64px; }
  .hsm-header-inner {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
    min-height: 56px;
    gap: 0.45rem;
    width: 100%;
  }
  .has-header-search .hsm-header-inner,
  .hsm.has-header-search .hsm-header-inner,
  .is-compact:not(.is-search-open).has-header-search .hsm-header-inner,
  .has-header-search.is-compact:not(.is-search-open) .hsm-header-inner {
    display: flex !important;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    grid-template-columns: none;
    grid-template-areas: none;
    gap: 0.55rem;
    padding: 0.55rem 0 0.15rem;
    width: 100%;
    min-width: 0;
  }
  .hsm.has-header-search .hsm-brand {
    flex: 0 0 auto;
    justify-self: auto;
  }
  .has-header-search:not(.is-search-open) .hsm-header-nav,
  .is-compact:not(.is-search-open).has-header-search .hsm-header-nav,
  .has-header-search.is-compact:not(.is-search-open) .hsm-header-nav {
    display: none !important;
  }
  .has-header-search .hsm-header-nav::-webkit-scrollbar { display: none; }
  .has-header-search .hsm-header-nav a {
    flex-direction: row;
    gap: 0.4rem;
    padding: 0.38rem 0.8rem 0.38rem 0.45rem;
    border: 1px solid rgba(201, 169, 98, 0.38);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.94);
    font-size: 0.86rem;
    font-weight: 650;
    color: var(--hsm-navy);
    box-shadow: 0 2px 8px rgba(201, 169, 98, 0.08);
  }
  .has-header-search .hsm-header-nav a .hsm-nav-ico {
    width: 1.7rem;
    height: 1.7rem;
    color: var(--hsm-gold);
  }
  .has-header-search .hsm-header-nav a .hsm-nav-ico .hsm-nav-svg {
    width: 1.15rem;
    height: 1.15rem;
  }
  .has-header-search .hsm-header-nav a[aria-current] {
    border-color: rgba(201, 169, 98, 0.85);
    background: rgba(201, 169, 98, 0.12);
    box-shadow: 0 2px 10px rgba(201, 169, 98, 0.16);
  }
  .has-header-search .hsm-header-nav a[aria-current] .hsm-nav-ico {
    background: transparent;
    box-shadow: none;
    color: var(--hsm-gold);
  }
  .has-header-search .hsm-header-nav a[aria-current]::after { display: none; }
  .hsm.has-header-search .hsm-header-actions {
    flex: 0 0 auto;
    margin-left: 0;
    gap: 0;
    justify-self: auto;
    order: 3;
    position: relative;
    z-index: 2;
  }
  /* Mobile: no drawer burger — account lives in bottom tab bar. */
  .hsm-menu-btn { display: none !important; }
  .hsm-account-menu:not(.is-open-mobile):not(.hsm-auth-menu) { display: none !important; }
  .hsm-account-menu.is-open-mobile {
    display: block !important;
    position: fixed !important;
    left: 0.75rem !important;
    right: 0.75rem !important;
    bottom: 4.6rem !important;
    top: auto !important;
    z-index: 90 !important;
    max-height: min(70vh, 28rem);
    overflow: auto;
  }
  .hsm-home-soft {
    display: none !important;
  }
  .hsm.has-header-search:not(.has-header-filters) .hsm-brand { display: none !important; }
  .hsm.has-header-filters .hsm-brand { display: none !important; }
  .hsm.has-header-filters .hsm-header-inner {
    gap: 0.45rem;
  }
  .hsm.has-header-filters .hsm-header-summary {
    order: 2;
  }
  .hsm.has-header-filters .hsm-header-actions { display: none !important; }
  .hsm-lang { display: none !important; }

  /* Mobile home: no title note — search + product pills only */
  .has-page-kicker .hsm-page-kicker {
    display: none !important;
  }
  .has-page-kicker .hsm-hero {
    display: none;
  }
  .has-page-kicker:not(.is-search-open) .hsm-header {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 0.7rem 0.85rem 0.2rem;
    border-bottom: 0;
    box-shadow: none;
    background: #fff;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .has-page-kicker:not(.is-search-open) .hsm-header-inner {
    min-height: 0;
    padding: 0;
  }
  .has-page-kicker.has-header-search { --hsm-header: 118px; }
  .has-page-kicker.has-header-search.is-compact { --hsm-header: 118px; }

  /* Product pills under search — Homestays / Beach / Experiences */
  .hsm:not(.is-search-open):not(.has-header-filters):not(.hsm-detail) .hsm-product-pills {
    display: flex;
    flex-wrap: nowrap;
    /* Plain `center` in a scroll container clips both ends and makes the
       overflow on the start side unreachable — `safe` falls back to
       flex-start as soon as the three pills stop fitting. */
    justify-content: safe center;
    gap: 0.4rem;
    padding: 0.75rem 0 0.7rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .hsm-product-pills::-webkit-scrollbar { display: none; }
  .hsm-product-pills a {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    flex: 0 0 auto;
    padding: 0.34rem 0.7rem 0.34rem 0.38rem;
    border: 1px solid rgba(201, 169, 98, 0.38);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 2px 8px rgba(201, 169, 98, 0.1);
    color: var(--hsm-navy);
    font-size: 0.78rem;
    font-weight: 650;
    text-decoration: none;
    white-space: nowrap;
  }
  .hsm-product-pills a .hsm-nav-ico {
    width: 1.55rem;
    height: 1.55rem;
    color: var(--hsm-gold);
  }
  .hsm-product-pills a .hsm-nav-ico .hsm-nav-svg {
    width: 1.05rem;
    height: 1.05rem;
  }
  .hsm-product-pills a[aria-current] {
    border-color: rgba(201, 169, 98, 0.85);
    background: rgba(201, 169, 98, 0.12);
    box-shadow: 0 2px 10px rgba(201, 169, 98, 0.16);
  }
  .hsm-product-pills a[aria-current] .hsm-nav-ico {
    background: transparent;
    box-shadow: none;
  }
  .is-search-open .hsm-product-pills { display: none !important; }

  /* Under ~414px the three English pills overflow by 6–20px, so both ends sit
     half-cut. Trim the icon and the gutters instead of letting the primary
     nav look chopped. */
  @media (max-width: 413px) {
    .hsm-product-pills a {
      gap: 0.22rem;
      padding: 0.34rem 0.58rem 0.34rem 0.3rem;
    }
    .hsm:not(.is-search-open):not(.has-header-filters):not(.hsm-detail) .hsm-product-pills {
      gap: 0.28rem;
    }
    .hsm-product-pills a .hsm-nav-ico {
      width: 1.35rem;
      height: 1.35rem;
    }
  }

  /* Category / region chips stay desktop-only */
  .hsm-cats { display: none !important; }
  .hsm.has-header-search .hsm-header-search {
    flex: 1 1 0;
    order: 2;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 0;
    justify-self: auto;
    position: relative;
    overflow: visible;
  }
  .hsm.has-header-search .hsm-header-search .hsm-search {
    width: 100%;
    max-width: none;
    min-width: 0;
  }
  .hsm.has-header-search .hsm-brand-text { display: none; }
  .has-header-search:not(.is-search-open) .hsm-search-start {
    display: flex;
    width: 100%;
    min-height: 42px;
    height: 42px;
    padding: 0 1rem;
    font-size: 0.92rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    gap: 0.4rem;
    color: #222222;
    border: 1px solid #dddddd;
    border-radius: 999px;
    background: #fff;
    box-shadow:
      0 1px 2px rgba(0, 0, 0, 0.04),
      0 3px 10px rgba(0, 0, 0, 0.08);
    box-sizing: border-box;
  }
  .has-header-search:not(.is-search-open) .hsm-search-start span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #222222;
    font-weight: 600;
  }
  .has-header-search:not(.is-search-open) .hsm-search-start svg {
    width: 12px;
    height: 12px;
    color: #222222;
    opacity: 1;
  }
  .has-header-search:not(.is-search-open) .hsm-header .hsm-search-bar,
  .has-header-search:not(.is-search-open) .hsm-header .hsm-search-compact,
  .has-header-search.is-compact:not(.is-search-open) .hsm-header .hsm-search-bar,
  .has-header-search.is-compact:not(.is-search-open) .hsm-header .hsm-search-compact,
  .has-header-search:not(.is-search-open) .hsm-header .hsm-search-close,
  .has-header-search:not(.is-search-open) .hsm-header .hsm-pop { display: none !important; }

  /* Listing mobile: full-bleed photo; chrome lives in .hsm-listing-chrome (global). */
  .hsm-detail:not(.is-search-open) .hsm-header {
    display: none !important;
  }
  .hsm-detail .hsm-listing {
    padding: 0 0 3.5rem;
  }
  .hsm-detail .hsm-exp-page {
    padding: 0 0 3.5rem;
  }
  .hsm-detail .hsm-listing-kicker .hsm-sharebar,
  .hsm-detail .hsm-exp-share {
    display: none;
  }
  .hsm-detail.is-search-open .hsm-listing-chrome {
    display: none !important;
  }
  .hsm-detail.is-search-open .hsm-header {
    display: block !important;
  }

  .is-search-open .hsm-header-tool { display: none !important; }
  .is-search-open .hsm-header-back,
  .is-search-open .hsm-filter-btn,
  .is-search-open .hsm-header-summary {
    display: none !important;
  }
  .is-search-open .hsm-header {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow: hidden;
    z-index: 120;
    background: #f6f3ee !important;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    padding: 0;
    padding-top: env(safe-area-inset-top);
    border-bottom: 0;
    box-shadow: none;
    display: flex;
    flex-direction: column;
  }
  .is-search-open .hsm-header-filters {
    display: none !important;
  }
  .has-header-filters.is-search-open .hsm-header-nav,
  .is-search-open.has-header-filters .hsm-header-nav,
  .hsm.has-header-filters.is-search-open .hsm-header-nav {
    display: flex !important;
  }
  .is-search-open .hsm-searchpage,
  .is-search-open .hsm-map-col {
    visibility: hidden;
  }
  .is-search-open.has-header-search .hsm-header-inner,
  .is-search-open .has-header-search .hsm-header-inner {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 0.7rem;
    padding: 0.4rem 0.4rem calc(5.6rem + env(safe-area-inset-bottom));
    height: 100%;
    min-height: 0;
    max-height: 100%;
    box-sizing: border-box;
    position: relative;
    overflow-x: hidden;
    overflow-y: hidden;
  }
  .is-search-open .hsm-brand { display: none; }
  .is-search-open .hsm-home-soft { display: none !important; }
  .is-search-open .hsm-header-actions {
    visibility: hidden;
    pointer-events: none;
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
  }
  .is-search-open .hsm-header-nav {
    display: flex !important;
    order: 1;
    justify-content: center;
    align-items: center;
    gap: 0.7rem;
    overflow: visible;
    width: 100%;
    margin: 0;
    /* Equal side inset so Homestays / Beach / Experiences sit true-center (X is fixed on the right) */
    padding: 0.55rem 2.85rem 0.55rem;
    flex: 0 0 auto;
    box-sizing: border-box;
    position: sticky;
    top: 0;
    z-index: 5;
    background: #f6f3ee;
  }
  .is-search-open.has-header-search .hsm-header-search,
  .hsm.is-search-open .hsm-header-search {
    order: 2;
    width: 100% !important;
    max-width: none !important;
    flex: 1 1 auto;
    min-width: 0 !important;
    min-height: 0;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    display: flex !important;
    flex-direction: column;
    align-self: stretch;
    position: relative;
    opacity: 1;
    pointer-events: auto;
    /* Side inset only. Bottom shadow room cannot live here: flex overflow
       scrollers drop padding-bottom, which is why the last card still clips. */
    padding: 0.85rem 1.25rem 0;
  }
  .is-search-open .hsm-header-nav a {
    flex: 0 1 auto;
    min-width: 4.8rem;
    max-width: 6.6rem;
    flex-direction: column;
    gap: 0.32rem;
    border: 0;
    background: transparent;
    box-shadow: none;
    padding: 0.1rem 0.35rem 0.15rem;
    font-size: 0.72rem;
    font-weight: 650;
    color: var(--hsm-muted);
    position: relative;
  }
  .is-search-open .hsm-header-nav a .hsm-nav-ico {
    width: 2.55rem;
    height: 2.55rem;
    background: #fff;
    border: 1px solid rgba(12, 27, 51, 0.07);
    box-shadow:
      0 4px 12px rgba(12, 27, 51, 0.10),
      0 1px 3px rgba(12, 27, 51, 0.05);
  }
  .is-search-open .hsm-header-nav a .hsm-nav-ico .hsm-nav-svg {
    width: 1.4rem;
    height: 1.4rem;
  }
  .is-search-open .hsm-header-nav a .hsm-nav-svg.is-color {
    /* Keep multi-color fills; do not force grey via currentColor */
    color: inherit;
  }
  .is-search-open .hsm-header-nav a[aria-current] {
    color: var(--hsm-navy);
    font-weight: 750;
    box-shadow: none;
    background: transparent;
    border: 0;
  }
  .is-search-open .hsm-header-nav a[aria-current] .hsm-nav-ico {
    background: #fff;
    border-color: rgba(201, 169, 98, 0.5);
    box-shadow:
      0 6px 16px rgba(12, 27, 51, 0.12),
      0 1px 3px rgba(12, 27, 51, 0.05);
  }
  .is-search-open .hsm-header-nav a[aria-current]::after {
    display: none;
  }
  .is-search-open .hsm-header-nav a:hover .hsm-nav-ico {
    border-color: rgba(12, 27, 51, 0.10);
    box-shadow:
      0 7px 18px rgba(12, 27, 51, 0.13),
      0 1px 3px rgba(12, 27, 51, 0.06);
  }
  .is-search-open .hsm-header-nav a[aria-current]:hover .hsm-nav-ico {
    border-color: rgba(201, 169, 98, 0.65);
  }
  .is-search-open .hsm-header-search .hsm-search {
    position: relative;
    inset: auto;
    z-index: auto;
    max-width: none;
    width: 100%;
    height: auto;
    min-height: 100%;
    background: transparent;
    padding: 0;
    overflow: visible;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
  }
  .is-search-open .hsm-search-start { display: none !important; }
  .is-search-open .hsm-header .hsm-search-compact { display: none !important; }
  .is-search-open .hsm-header .hsm-search-bar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    /* No gap inside open card; spacing added only between cards below */
    gap: 0;
    width: 100%;
    height: auto;
    min-height: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
    flex: 0 0 auto;
    border-radius: 0;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    overflow: visible;
  }
  /* Real in-flow spacer. Padding on the scroller is ignored; this is not. */
  .is-search-open .hsm-header .hsm-search-bar::after {
    content: "";
    display: block;
    height: 2.6rem;
    flex: none;
    pointer-events: none;
  }
  .is-search-open .hsm-search-unit {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    flex: 0 0 auto;
    background: #fff;
    border-radius: 28px;
    border: 1px solid rgba(12, 27, 51, 0.08);
    box-shadow:
      0 1px 2px rgba(12, 27, 51, 0.05),
      0 10px 28px rgba(12, 27, 51, 0.12);
    overflow: visible;
  }
  .is-search-open .hsm-search-unit + .hsm-search-unit .hsm-search-field::before {
    content: none;
    display: none;
  }
  .is-search-open .hsm-search-unit + .hsm-search-unit {
    margin-top: 1rem;
  }
  .is-search-open .hsm-search-field {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    width: 100%;
    background: transparent;
    border-radius: 28px;
    border: 0;
    box-shadow: none;
    min-height: 62px;
    flex: 0 0 auto;
    isolation: auto;
  }
  .is-search-open .hsm-search-unit + .hsm-search-unit .hsm-search-field::before,
  .is-search-open .hsm-search-field + .hsm-search-field { border: 0; }
  .is-search-open .hsm-search-field.is-open {
    border-radius: 28px 28px 0 0;
    box-shadow: none;
    outline: none;
    border: 0;
    background: transparent;
    min-height: 0;
    margin-bottom: 0;
    z-index: 2;
  }
  .is-search-open .hsm-search-field.is-open .hsm-search-trigger:focus,
  .is-search-open .hsm-search-field.is-open .hsm-search-trigger:focus-visible {
    outline: none;
  }
  /* Where list scrolls; When + Who stay pinned under it (Airbnb composition) */
  .is-search-open .hsm-search-field[data-search-panel="where"].is-open {
    flex: 0 0 auto;
  }
  .is-search-open .hsm-pop-where:not([hidden]) {
    flex: 0 0 auto;
    min-height: 0;
    max-height: min(48vh, 26rem);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }
  .is-search-open .hsm-search-field[data-search-panel="when"],
  .is-search-open .hsm-search-field[data-search-panel="who"] {
    flex: 0 0 auto;
  }
  /* Soft cue that the Where list continues (reference chevron) */
  .is-search-open .hsm-search-field[data-search-panel="where"].is-open + .hsm-pop-where {
    mask-image: linear-gradient(#000 0%, #000 calc(100% - 18px), transparent 100%);
    -webkit-mask-image: linear-gradient(#000 0%, #000 calc(100% - 18px), transparent 100%);
  }
  .is-search-open .hsm-pop-who:not([hidden]) {
    max-height: none;
    overflow: visible;
  }
  .is-search-open .hsm-pop-when:not([hidden]) {
    flex: 0 0 auto;
    min-height: 0;
    max-height: none;
    overflow: visible;
    display: flex;
    flex-direction: column;
    padding: 0.05rem 1.15rem 1rem;
  }
  .is-search-open .hsm-search-field[data-search-panel="when"].is-open {
    flex: 0 0 auto;
  }
  .is-search-open .hsm-pop-when .hsm-when-tabs {
    width: 100%;
    margin: 0.15rem 0 1rem;
    justify-content: stretch;
    background: #ebe7e1;
    border-radius: 999px;
    padding: 4px;
  }
  .is-search-open .hsm-pop-when .hsm-when-tabs button {
    flex: 1 1 0;
    padding: 0.7rem 0.5rem;
    font-size: 0.95rem;
    font-weight: 700;
    border-radius: 999px;
    color: #6a7280;
    box-shadow: none;
  }
  .is-search-open .hsm-pop-when .hsm-when-tabs button.is-on {
    background: #fff;
    color: var(--hsm-navy);
    box-shadow: 0 1px 4px rgba(12, 27, 51, 0.08);
  }
  /* Flexible must fully hide the calendar pane (display:flex was overriding [hidden]). */
  .is-search-open .hsm-pop-when [data-when-pane][hidden] {
    display: none !important;
  }
  .is-search-open .hsm-pop-when [data-when-pane="dates"]:not([hidden]) {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 0 0 auto;
    overflow: visible;
  }
  .is-search-open .hsm-pop-when [data-when-pane="flex"]:not([hidden]) {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-height: 0;
    flex: 0 0 auto;
    overflow: visible;
    padding: 0.1rem 0 0.2rem;
  }
  .is-search-open .hsm-when-flex-block {
    padding: 1.15rem 0 1.2rem;
    border-top: 1px solid #e6e2dc;
  }
  .is-search-open .hsm-when-flex-block:first-child {
    border-top: 0;
    padding-top: 0.2rem;
  }
  .is-search-open .hsm-pop-when [data-when-pane="flex"] .hsm-when-q {
    text-align: left;
    font-size: 1.05rem;
    font-weight: 800;
    margin: 0 0 0.95rem;
    color: var(--hsm-navy);
  }
  .is-search-open .hsm-pop-when [data-when-pane="flex"] .hsm-when-len {
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin: 0;
  }
  .is-search-open .hsm-pop-when [data-when-pane="flex"] .hsm-when-len button {
    padding: 0.72rem 1.2rem;
    font-size: 0.95rem;
    font-weight: 650;
    border: 1px solid #d5d9e0;
    box-shadow: none;
    background: #fff;
    color: var(--hsm-navy);
  }
  .is-search-open .hsm-pop-when [data-when-pane="flex"] .hsm-when-len button.is-on {
    border-color: var(--hsm-navy);
    border-width: 2px;
    box-shadow: none;
    font-weight: 750;
  }
  .is-search-open .hsm-pop-when [data-when-pane="flex"] .hsm-when-months {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.7rem;
    padding: 0.15rem 0 0.35rem;
    margin: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .is-search-open .hsm-pop-when [data-when-pane="flex"] .hsm-when-months::-webkit-scrollbar { display: none; }
  .is-search-open .hsm-pop-when [data-when-pane="flex"] .hsm-month-card {
    flex: 0 0 7.1rem;
    padding: 1.1rem 0.55rem 0.95rem;
    border-radius: 18px;
    border: 1px solid #d5d9e0;
    box-shadow: none;
    background: #fff;
    text-align: center;
  }
  .is-search-open .hsm-pop-when [data-when-pane="flex"] .hsm-month-card.is-on {
    border-color: var(--hsm-navy);
    border-width: 2px;
    box-shadow: none;
  }
  .is-search-open .hsm-pop-when [data-when-pane="flex"] .hsm-month-card svg {
    width: 28px;
    height: 28px;
    margin: 0 auto 0.7rem;
    color: var(--hsm-navy);
    display: block;
  }
  .is-search-open .hsm-pop-when [data-when-pane="flex"] .hsm-month-card strong {
    font-size: 0.92rem;
    font-weight: 750;
    color: var(--hsm-navy);
  }
  .is-search-open .hsm-pop-when [data-when-pane="flex"] .hsm-month-card span {
    display: block;
    margin-top: 0.12rem;
    font-size: 0.8rem;
    color: #6a7280;
  }
  .is-search-open .hsm-when-cal {
    min-height: 0;
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    overflow: visible;
  }
  .is-search-open .hsm-cal-scroll {
    flex: 0 0 auto;
    min-height: 0;
    max-height: min(36vh, 18.5rem);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.35rem;
  }
  .is-search-open .hsm-cal-dows {
    position: sticky;
    top: 0;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    background: #fff;
    padding: 0.15rem 0 0.35rem;
    text-align: center;
  }
  .is-search-open .hsm-cal-months.is-stack {
    display: flex;
    flex-direction: column;
    gap: 1.35rem;
  }
  .is-search-open .hsm-cal-month .hsm-cal-head {
    justify-content: flex-start;
    margin: 0.2rem 0 0.3rem;
    font-size: 0.9rem;
  }
  .is-search-open .hsm-cal-month .hsm-cal-grid {
    gap: 2px 1px;
  }
  .is-search-open .hsm-day {
    font-size: 0.82rem;
    font-weight: 650;
    min-height: 2.15rem;
    height: 2.15rem;
  }
  .is-search-open .hsm-when-flexdays {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    flex: 0 0 auto;
    gap: 0.45rem;
    margin: 0;
    padding: 0.75rem 0 0.2rem;
    border-top: 1px solid var(--hsm-line);
    overflow: visible;
    background: #fff;
    position: relative;
    z-index: 2;
  }
  .is-search-open .hsm-when-flexdays::-webkit-scrollbar { display: none; }
  .is-search-open .hsm-when-flexdays button {
    flex: 0 0 auto;
    padding: 0.55rem 0.95rem;
    font-size: 0.88rem;
    border-color: #d8dde6;
    box-shadow: none;
  }
  .is-search-open .hsm-when-flexdays button.is-on {
    border-color: var(--hsm-navy);
    box-shadow: inset 0 0 0 1px var(--hsm-navy);
  }
  .is-search-open .hsm-search-field:not(.is-open) .hsm-search-trigger {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 1.05rem 1.2rem;
    min-height: 62px;
  }
  .is-search-open .hsm-search-field:not(.is-open) .hsm-search-label {
    font-size: 0.95rem;
    font-weight: 600;
    color: #6a7280;
  }
  .is-search-open .hsm-search-field:not(.is-open) .hsm-search-value {
    font-size: 0.95rem;
    font-weight: 750;
    color: var(--hsm-navy);
    text-align: right;
    max-width: 62%;
  }
  .is-search-open .hsm-search-field.is-open .hsm-search-trigger {
    padding: 0.95rem 1.2rem 0.7rem;
    min-height: 0;
  }
  .is-search-open .hsm-search-field.is-open .hsm-search-label {
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--hsm-navy);
  }
  .is-search-open .hsm-search-field.is-open .hsm-search-label::after { content: "?"; }
  .is-search-open .hsm-search-field.is-open .hsm-search-value { display: none; }
  .is-search-open .hsm-search-close {
    display: grid;
    place-items: center;
    position: fixed;
    top: calc(0.55rem + env(safe-area-inset-top));
    right: 0.9rem;
    left: auto;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 2px 10px rgba(12, 27, 51, 0.1);
    color: var(--hsm-navy);
    font-size: 1.2rem;
    line-height: 1;
    z-index: 8;
  }
  .is-search-open .hsm-pop {
    position: static;
    width: 100%;
    max-height: none;
    box-shadow: none;
    padding: 0 1.15rem 1.15rem;
    border-radius: 0 0 28px 28px;
    display: block;
    background: transparent;
    margin: 0;
    overflow: visible;
  }
  .is-search-open .hsm-search-field.is-open + .hsm-pop {
    margin-top: 0;
    padding-top: 0;
    border: 0;
    border-radius: 0 0 28px 28px;
    box-shadow: none;
    z-index: 1;
  }
  .is-search-open .hsm-pop[hidden] { display: none !important; }
  /* Results pages: summary pill opens search; keep form in DOM but hidden until open. */
  .has-header-filters:not(.is-search-open) .hsm-header-search {
    position: absolute;
    width: 1px !important;
    height: 1px !important;
    min-width: 0 !important;
    flex: 0 0 0 !important;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
  }
  .has-header-filters.is-search-open .hsm-header-summary {
    display: none !important;
  }
  .is-search-open .hsm-where-type {
    width: 100%;
    border: 1px solid #d1d5db;
    border-radius: 16px;
    padding: 0.95rem 1.05rem 0.95rem 2.75rem;
    margin: 0.45rem 0 0.85rem;
    font-size: 1rem;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23717171' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20 16.5 16.5'/%3E%3C/svg%3E") 1rem 50% / 17px no-repeat;
  }
  .is-search-open .hsm-pop-where {
    padding: 0 1.2rem 1.35rem;
  }
  .is-search-open .hsm-pop-where .hsm-pop-kicker {
    margin: 0.75rem 0 0.2rem;
    font-size: 0.9rem;
    font-weight: 650;
    letter-spacing: 0;
    text-transform: none;
    color: #6a7280;
  }
  .is-search-open .hsm-pop-where .hsm-dest-item,
  .is-search-open .hsm-pop-where .hsm-recent-item {
    gap: 1rem;
    padding: 0.8rem 0.2rem;
    border-radius: 16px;
  }
  .is-search-open .hsm-pop-where .hsm-dest-ico {
    width: 50px;
    height: 50px;
    border-radius: 14px;
  }
  .is-search-open .hsm-pop-where .hsm-dest-ico svg {
    width: 23px;
    height: 23px;
  }
  .is-search-open .hsm-pop-where .hsm-dest-item strong,
  .is-search-open .hsm-pop-where .hsm-recent-item strong {
    font-size: 1.02rem;
  }
  .is-search-open .hsm-pop-where .hsm-dest-item em,
  .is-search-open .hsm-pop-where .hsm-recent-item em {
    font-size: 0.86rem;
  }
  .is-search-open .hsm-search-field[data-search-panel="where"].is-open + .hsm-pop-where::after {
    content: "";
    position: sticky;
    bottom: 2px;
    display: block;
    width: 12px;
    height: 12px;
    margin: -0.35rem auto 0.15rem;
    border-right: 2px solid #b8bfc9;
    border-bottom: 2px solid #b8bfc9;
    transform: rotate(45deg);
    pointer-events: none;
  }
  .is-search-open .hsm-search-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 5;
    overflow: visible;
    padding: 0.95rem 1.15rem calc(1.35rem + env(safe-area-inset-bottom));
    background: #fff;
    border-top: 1px solid rgba(12, 27, 51, 0.08);
    box-shadow: 0 -10px 28px rgba(246, 243, 238, 0.95);
  }
  .is-search-open .hsm-search-clear {
    display: inline-flex;
    align-items: center;
    font-size: 1rem;
    font-weight: 700;
    color: var(--hsm-navy);
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 1.5px;
    padding: 0.35rem 0.15rem;
  }
  .is-search-open .hsm-search-go {
    width: auto;
    min-width: 8.8rem;
    height: 50px;
    margin: 0;
    border-radius: 999px;
    padding: 0 1.35rem;
    gap: 0.45rem;
    background: var(--hsm-navy);
    color: var(--hsm-gold);
    box-shadow: 0 2px 8px rgba(12, 27, 51, 0.16);
  }
  .is-search-open .hsm-search-go span { display: inline; font-weight: 750; }
  .is-search-open .hsm-search-go svg { width: 16px; height: 16px; color: var(--hsm-gold); }
  .is-search-open .hsm-search-go.is-next {
    min-width: 6.6rem;
    height: 48px;
    border-radius: 12px;
    padding: 0 1.5rem;
    background: var(--hsm-navy);
    color: #fff;
    box-shadow: none;
  }
  .is-search-open .hsm-search-go.is-next span { color: #fff; font-weight: 750; }
  .is-search-open .hsm-search-go.is-next svg[hidden] { display: none; }
  .is-search-open .hsm-search-clear {
    text-decoration: none;
    font-weight: 750;
  }
  .hsm-account-mobile { display: block; }
  .hsm-account-lang { display: block; }
  .hsm-subnav {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin-inline: -0.25rem;
    padding-inline: 0.25rem;
  }
  .hsm-subnav::-webkit-scrollbar { display: none; }
  .hsm-subnav a { flex: none; white-space: nowrap; }
  .hsm-listing-kicker {
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .hsm-sharebar {
    width: auto;
    margin-left: auto;
  }
  .hsm-search-col { padding-inline: 0.85rem; }
  .hsm.has-header-filters { --hsm-header: 108px; }
  .hsm.has-header-filters .hsm-header {
    border-bottom: 0;
  }
  .hsm.has-header-filters .hsm-header-inner {
    gap: 0.55rem;
    min-width: 0;
  }
  .hsm.has-header-filters .hsm-brand-text {
    display: none;
  }
  .hsm.has-header-filters .hsm-brand img {
    width: 36px;
    height: 36px;
    border-radius: 10px;
  }
  .hsm.has-header-filters .hsm-header-nav {
    display: none !important;
  }
  .hsm.has-header-filters .hsm-header-summary {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1 1 0;
    min-width: 0;
    gap: 0.08rem;
    padding: 0.42rem 0.85rem;
    border: 1px solid var(--hsm-line);
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(12, 27, 51, 0.08), 0 1px 2px rgba(12, 27, 51, 0.04);
    text-align: center;
    color: inherit;
    text-decoration: none;
  }
  .hsm-header-summary strong {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.84rem;
    font-weight: 750;
    color: var(--hsm-navy);
    line-height: 1.2;
  }
  .hsm-header-summary span {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.72rem;
    font-weight: 550;
    color: var(--hsm-muted);
    line-height: 1.2;
  }
  .hsm-header-filters {
    padding: 0.35rem 0.75rem 0.5rem;
    border-top: 0;
  }
  .hsm-filters-rail {
    gap: 0.4rem;
  }
  .hsm-chip-filters {
    min-height: 2.25rem;
    padding: 0.32rem 0.82rem;
    font-size: 0.74rem;
  }
  .hsm-chip-filters svg {
    width: 13px;
    height: 13px;
  }
  .hsm-header-filters .hsm-filters {
    justify-content: flex-start;
    gap: 0.38rem;
    mask-image: none;
    -webkit-mask-image: none;
  }
  .hsm-header-filters .hsm-chip {
    min-height: 2.25rem;
    padding: 0.3rem 0.78rem;
    font-size: 0.74rem;
    font-weight: 600;
    gap: 0.28rem;
    border-color: #ddd7ce;
  }
  .hsm-header-filters .hsm-chip-filters {
    border-color: rgba(201, 169, 98, 0.92);
    background: rgba(201, 169, 98, 0.14);
    color: var(--hsm-navy);
    box-shadow:
      0 1px 0 rgba(201, 169, 98, 0.18),
      0 2px 8px rgba(201, 169, 98, 0.14);
  }
  .hsm-header-filters .hsm-chip-filters svg {
    color: var(--hsm-gold, #c9a962);
  }
  .hsm-header-filters .hsm-chip-filters:hover {
    background: rgba(201, 169, 98, 0.22);
    border-color: var(--hsm-gold, #c9a962);
  }
  .hsm-header-filters .hsm-chip svg {
    width: 13px;
    height: 13px;
  }
  .hsm-header-filters .hsm-chip.is-on {
    background: #ebe7e0;
    border-color: #cfc8bc;
    color: var(--hsm-navy);
  }
  .hsm-filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin-inline: 0;
    padding-bottom: 0.15rem;
  }
  .hsm-filters::-webkit-scrollbar { display: none; }
  .hsm-chip { flex: none; }

  .hsm-detail .hsm-listing > .hsm-wrap:has(.hsm-photos-shell),
  .hsm-detail .hsm-exp-page > .hsm-wrap:has(.hsm-photos-shell) {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 0;
    overflow: visible;
  }
  .hsm-detail .hsm-photos-shell,
  .hsm-detail .hsm-exp-photos-shell {
    order: -1;
    width: calc(100% + (2 * var(--hsm-gutter)));
    max-width: none;
    margin-inline: calc(-1 * var(--hsm-gutter));
    --hsm-thumbs-h: clamp(3.9rem, 19vw, 4.85rem);
  }
  .hsm-detail .hsm-photos-stage {
    position: relative;
    z-index: 1;
  }
  .hsm-detail .hsm-photos {
    display: flex;
    flex-flow: row nowrap;
    align-items: stretch;
    gap: 0;
    width: 100%;
    height: min(68vw, 400px);
    max-height: 62vh;
    border-radius: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    background: #111;
    padding: 0;
    margin: 0;
    grid-template-columns: none;
    grid-template-rows: none;
  }
  .hsm-detail .hsm-photos::-webkit-scrollbar { display: none; }
  .hsm-detail .hsm-photos a,
  .hsm-detail .hsm-photos a:first-child,
  .hsm-detail .hsm-photos a:nth-child(n + 2),
  .hsm-detail .hsm-photos a:nth-child(4):last-child {
    display: block;
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
    min-width: 100%;
    min-height: 0;
    border-radius: 0;
    overflow: hidden;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    grid-column: auto;
    grid-row: auto;
  }
  .hsm-detail .hsm-photos a:nth-child(n + 6) { display: block; }
  .hsm-detail .hsm-photos img { width: 100%; height: 100%; object-fit: cover; }
  .hsm-detail .hsm-photos-more {
    left: 0.85rem;
    right: auto;
    bottom: 0.85rem;
    padding: 0.48rem 0.9rem;
    font-size: 0.78rem;
    font-weight: 650;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(255, 255, 255, 0.7);
    box-shadow: none;
    backdrop-filter: blur(12px) saturate(1.2);
    -webkit-backdrop-filter: blur(12px) saturate(1.2);
  }
  .hsm-detail .hsm-photos-count {
    display: inline-flex;
    align-items: center;
    position: absolute;
    right: 0.85rem;
    bottom: 0.85rem;
    z-index: 3;
    padding: 0.34rem 0.62rem;
    border-radius: 999px;
    background: rgba(12, 27, 51, 0.5);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    pointer-events: none;
    box-shadow: none;
  }
  .hsm-detail .hsm-photos-item.is-selected {
    box-shadow: none;
  }
  /* Thumbnail strip — 5 fill the width edge-to-edge; more = finger scroll */
  .hsm-detail .hsm-photos-thumbs {
    display: flex;
    align-items: stretch;
    gap: 2px;
    width: 100%;
    height: var(--hsm-thumbs-h);
    padding: 0;
    margin: 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    background: #fff;
    position: relative;
    z-index: 3;
  }
  .hsm-detail .hsm-photos-thumbs::-webkit-scrollbar { display: none; }
  .hsm-detail .hsm-photos-thumb {
    position: relative;
    flex: 1 0 calc((100% - 8px) / 5);
    min-width: calc((100% - 8px) / 5);
    width: auto;
    height: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    overflow: hidden;
    background: #1a1a1a;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    box-shadow: none;
    opacity: 0.72;
    transition: opacity 0.18s ease;
  }
  .hsm-detail .hsm-photos-thumb + .hsm-photos-thumb {
    box-shadow: none;
  }
  .hsm-detail .hsm-photos-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
  }
  .hsm-detail .hsm-photos-thumb.is-on {
    opacity: 1;
    transform: none;
    box-shadow: none;
  }
  .hsm-detail .hsm-photos-thumb.is-on::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3px;
    background: var(--hsm-gold);
    pointer-events: none;
  }
  .hsm-lightbox {
    padding: 0;
    background: rgba(10, 16, 28, 0.94);
  }
  .hsm-lightbox-stage {
    width: 100%;
    height: 100%;
    max-height: none;
  }
  .hsm-lightbox img {
    max-width: 100vw;
    max-height: 100dvh;
    border-radius: 0;
  }
  .hsm-lightbox-nav {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.92);
  }
  .hsm-lightbox-count {
    background: rgba(12, 27, 51, 0.55);
    color: #fff;
  }
  .hsm-detail .hsm-listing-kicker {
    --hsm-thumbs-h: clamp(3.9rem, 19vw, 4.85rem);
    margin-top: 0;
    margin-bottom: 0;
    padding: 0.7rem 0 0.15rem;
    background: #fff;
    border-radius: 0;
    position: relative;
    z-index: 4;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    text-align: left;
    justify-content: flex-start;
    box-shadow: none;
  }
  .hsm-detail .hsm-listing-kicker > div {
    width: auto;
    max-width: 100%;
    min-width: 0;
    flex: 1 1 auto;
  }
  .hsm-detail .hsm-listing-kicker h1 {
    font-size: 1.52rem;
    letter-spacing: -0.03em;
    margin: 0;
    line-height: 1.18;
  }
  .hsm-detail .hsm-listing-kicker .hsm-listing-meta {
    display: none;
  }
  .hsm-detail .hsm-listing-intro {
    padding: 0.4rem 0 0.95rem;
    text-align: left;
    border-bottom: 1px solid var(--hsm-line);
  }
  .hsm-detail .hsm-cover-badge {
    margin-inline: 0;
  }
  .hsm-cover-note .hsm-cover-cta {
    margin-top: 0.7rem;
    padding: 0.45rem 0.85rem;
    font-size: 0.84rem;
    font-weight: 500;
    white-space: normal;
    text-align: center;
    max-width: fit-content;
  }
  .hsm-detail .hsm-listing-place {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 600;
    color: var(--hsm-ink);
  }
  .hsm-detail .hsm-listing-capacity {
    margin: 0.28rem 0 0;
    font-size: 0.9rem;
  }
  .hsm-detail .hsm-listing-stats {
    margin-top: 0.85rem;
    padding: 0.85rem 0;
  }
  .hsm-detail .hsm-listing-stats.is-plain {
    max-width: none;
    width: 100%;
  }
  .hsm-detail .hsm-listing-stats.is-plain .hsm-stat {
    padding: 0.1rem 0.75rem;
  }
  .hsm-detail .hsm-listing-hostrow {
    text-align: left;
  }
  .hsm-detail .hsm-highlights {
    text-align: left;
  }
  .hsm-detail .hsm-stat strong {
    font-size: 1.2rem;
  }
  .hsm-detail .hsm-stat-badge span {
    font-size: 0.84rem;
    max-width: 6.2rem;
  }
  .hsm-detail .hsm-stat-badge.is-crest {
    min-height: 4.2rem;
  }
  .hsm-detail .hsm-stat-badge.is-crest .hsm-gf {
    width: 4.85rem;
  }
  .hsm-detail .hsm-stat-badge.is-crest .hsm-crest {
    width: 4.85rem;
  }
  .hsm-detail .hsm-listing-stats.is-duo .hsm-stat-badge.is-crest .hsm-crest {
    width: 3.9rem;
  }
  .hsm-detail .hsm-stat-badge.is-crest .hsm-gf-text strong {
    font-size: 0.62rem;
  }
  .hsm-detail .hsm-stat-badge.is-crest .hsm-gf-text em {
    font-size: 0.4rem;
  }
  .hsm-detail .hsm-laurel {
    width: 18px;
    height: 28px;
  }
  .hsm-detail .hsm-rev-board {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    padding: 0.35rem 0 0.85rem;
  }
  .hsm-detail .hsm-score-overall {
    grid-column: 1 / -1;
    padding: 0 0 1rem;
    margin: 0 0 0.15rem;
    border: 0;
    border-bottom: 1px solid var(--hsm-line);
  }
  .hsm-detail .hsm-score-overall span {
    display: block;
    margin-bottom: 0.45rem;
    font-weight: 650;
  }
  .hsm-detail .hsm-score:not(.hsm-score-overall) {
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "icon label score";
    align-items: center;
    gap: 0.45rem 0.55rem;
    padding: 0.85rem 0.55rem;
    border: 0;
    border-top: 1px solid var(--hsm-line);
    font-size: 0.84rem;
  }
  .hsm-detail .hsm-score:not(.hsm-score-overall):nth-child(odd) {
    border-left: 1px solid var(--hsm-line);
    padding-left: 0.75rem;
  }
  .hsm-detail .hsm-score:not(.hsm-score-overall) span {
    grid-area: label;
    font-weight: 600;
  }
  .hsm-detail .hsm-score:not(.hsm-score-overall) strong {
    grid-area: score;
    font-size: 0.95rem;
  }
  .hsm-detail .hsm-score:not(.hsm-score-overall) svg {
    grid-area: icon;
    width: 20px;
    height: 20px;
    margin: 0;
  }
  .hsm-detail {
    /* Fallback until JS measures the live reserve bar height */
    --hsm-mobile-dock: calc(4.75rem + env(safe-area-inset-bottom, 0px));
  }
  .hsm-detail .hsm-pin {
    position: fixed !important;
    left: 0;
    right: 0;
    bottom: 0 !important;
    top: auto !important;
    z-index: 60;
    border-bottom: 0;
    border-top: 1px solid var(--hsm-line);
    padding-bottom: env(safe-area-inset-bottom, 0px);
    background: rgba(255, 255, 255, 0.98);
  }
  .hsm-detail .hsm-subnav { display: none; }
  .hsm-detail .hsm-pin-cta { display: flex !important; width: 100%; justify-content: space-between; align-items: center; gap: 0.75rem; }
  .hsm-detail .hsm-pin-inner {
    min-height: 4.5rem;
    padding-top: 0.7rem;
    padding-bottom: 0.7rem;
    box-sizing: border-box;
  }
  .hsm-detail .hsm-listing-grid {
    margin-top: 0;
    margin-bottom: calc(var(--hsm-mobile-dock) + 1.25rem);
    gap: 0;
  }
  .hsm-detail .hsm-footer {
    /* Keep Contact / footer copy clear of the fixed reserve bar *and* of the
       rare-find tip, which floats in its own band above the bar. Without the
       extra allowance the last footer line sits under the tip. */
    padding-bottom: calc(1.35rem + var(--hsm-mobile-dock) + 3.25rem) !important;
  }
  /* Keep aside in DOM so rare-find can pin above the mobile reserve bar */
  .hsm-detail .hsm-listing-grid > aside {
    display: block;
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    overflow: visible;
    pointer-events: none;
  }
  .hsm-detail .hsm-book-stack {
    display: block;
    position: static;
    gap: 0;
  }
  .hsm-detail .hsm-book-stack > :not(.hsm-rare):not(.hsm-rare-stack) {
    display: none !important;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare-stack {
    position: fixed;
    left: 0.85rem;
    right: auto;
    bottom: calc(var(--hsm-mobile-dock) + 0.45rem);
    z-index: 62;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    width: max-content;
    max-width: calc(100vw - 1.7rem);
    box-sizing: border-box;
    margin: 0;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    pointer-events: none;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare,
  .hsm-detail .hsm-book-stack > .hsm-rare {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    z-index: auto;
    width: max-content !important;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    min-height: 0 !important;
    margin: 0;
    padding: 0.42rem 0.48rem 0.42rem 0.55rem !important;
    border: 1px solid rgba(255, 255, 255, 0.55) !important;
    border-top: 1px solid rgba(255, 255, 255, 0.55) !important;
    border-radius: 1.15rem !important;
    background: rgba(255, 255, 255, 0.42) !important;
    box-shadow:
      0 2px 8px rgba(12, 27, 51, 0.08),
      0 8px 20px rgba(12, 27, 51, 0.1) !important;
    backdrop-filter: blur(14px) saturate(1.35) !important;
    -webkit-backdrop-filter: blur(14px) saturate(1.35) !important;
    pointer-events: none;
    transform: translateY(8px) scale(0.96);
    transform-origin: left bottom;
    gap: 0.35rem;
    justify-content: flex-start;
    align-items: center;
    overflow: hidden;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare {
    position: fixed;
    left: 0.85rem;
    right: auto;
    bottom: calc(var(--hsm-mobile-dock) + 0.45rem);
    z-index: 62;
    width: max-content !important;
    max-width: calc(100vw - 1.7rem);
  }
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare[data-hsm-rare-kind="rare"]::after {
    display: none !important;
    content: none !important;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare.is-on,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare.is-on {
    transform: translateY(0) scale(1);
  }
  /* Mobile rotator must beat the column flex stack above */
  .hsm-detail .hsm-book-stack > .hsm-rare-stack.is-rotating {
    display: grid !important;
    /* minmax(0, …) so the track — and the tip inside it — honours max-width. */
    grid-template-columns: minmax(0, max-content);
    align-items: center;
    justify-items: start;
    gap: 0 !important;
    width: max-content;
    max-width: calc(100vw - 1.7rem);
  }
  .hsm-detail .hsm-book-stack > .hsm-rare-stack.is-rotating > .hsm-rare,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack.is-rotating > .hsm-rare.is-on {
    grid-area: 1 / 1 !important;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    transform-origin: left center !important;
    transition: opacity 0.55s ease-in-out !important;
    will-change: opacity;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare-stack.is-rotating > .hsm-rare.is-active-tip {
    opacity: 1 !important;
    z-index: 2;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare-stack.is-rotating > .hsm-rare:not(.is-active-tip) {
    opacity: 0 !important;
    z-index: 1;
    pointer-events: none !important;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare.is-dismissed,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare.is-dismissed {
    display: none !important;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare[data-hsm-rare-open],
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare[data-hsm-rare-open] {
    pointer-events: auto;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare .hsm-rare-more,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare .hsm-rare-more {
    display: grid;
    place-items: center;
    flex: none;
    width: 1.35rem;
    height: 1.35rem;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(12, 27, 51, 0.07);
    color: var(--hsm-navy);
    cursor: pointer;
    pointer-events: auto;
    -webkit-tap-highlight-color: transparent;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare .hsm-rare-more svg,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare .hsm-rare-more svg {
    width: 0.78rem;
    height: 0.78rem;
    display: block;
  }
  /* 22px dots are too small to hit — grow the touch area, not the pill. */
  .hsm-detail .hsm-book-stack .hsm-rare .hsm-rare-more,
  .hsm-detail .hsm-book-stack .hsm-rare .hsm-rare-close {
    position: relative;
  }
  .hsm-detail .hsm-book-stack .hsm-rare .hsm-rare-more::after,
  .hsm-detail .hsm-book-stack .hsm-rare .hsm-rare-close::after {
    content: "";
    position: absolute;
    inset: -0.32rem;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare .hsm-rare-more:hover,
  .hsm-detail .hsm-book-stack > .hsm-rare .hsm-rare-more:focus-visible,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare .hsm-rare-more:hover,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare .hsm-rare-more:focus-visible {
    background: rgba(12, 27, 51, 0.14);
    outline: none;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare .hsm-rare-close,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare .hsm-rare-close {
    display: grid;
    place-items: center;
    flex: none;
    width: 1.35rem;
    height: 1.35rem;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(12, 27, 51, 0.06);
    color: var(--hsm-navy);
    font: inherit;
    font-size: 0.95rem;
    line-height: 1;
    cursor: pointer;
    pointer-events: auto;
    -webkit-tap-highlight-color: transparent;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare .hsm-rare-close:hover,
  .hsm-detail .hsm-book-stack > .hsm-rare .hsm-rare-close:focus-visible,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare .hsm-rare-close:hover,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare .hsm-rare-close:focus-visible {
    background: rgba(12, 27, 51, 0.12);
    outline: none;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare .hsm-rare-gem,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare .hsm-rare-gem {
    width: 1.2rem;
    height: 1.2rem;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare .hsm-rare-ico,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare .hsm-rare-ico {
    width: 0.88rem;
    height: 0.88rem;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare .hsm-rare-spark,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare .hsm-rare-spark {
    inset: -0.28rem;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare .hsm-rare-msg,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare .hsm-rare-msg {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 18.5rem;
    font-size: 0.76rem;
    font-weight: 650;
    line-height: 1.25;
    letter-spacing: -0.015em;
    white-space: normal;
    overflow-wrap: break-word;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare .hsm-rare-word,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare .hsm-rare-word {
    white-space: nowrap;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare[data-hsm-rare-kind="rare"] .hsm-rare-msg,
  .hsm-detail .hsm-book-stack > .hsm-rare-stack > .hsm-rare[data-hsm-rare-kind="rare"] .hsm-rare-msg {
    max-width: 100%;
  }
  .hsm-detail .hsm-listing-grid.has-rare-pin {
    margin-bottom: calc(var(--hsm-mobile-dock) + 4.25rem);
  }
  .hsm-detail .hsm-listing-grid.has-rare-pin:has(.hsm-rare-stack) {
    margin-bottom: calc(var(--hsm-mobile-dock) + 4.25rem);
  }
  .hsm-detail .hsm-listing-grid.has-rare-pin:has(.hsm-rare-stack.is-rotating) {
    margin-bottom: calc(var(--hsm-mobile-dock) + 4.25rem);
  }
  .hsm-detail .hsm-exp-page .hsm-pin {
    position: fixed !important;
    left: 0;
    right: 0;
    bottom: 0 !important;
    top: auto !important;
    z-index: 60;
    border-bottom: 0;
    border-top: 1px solid var(--hsm-line);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .hsm-detail .hsm-exp-page .hsm-subnav { display: none; }
  .hsm-detail .hsm-exp-page .hsm-pin-cta { display: flex !important; width: 100%; justify-content: space-between; }
  .hsm-detail .hsm-exp-bodygrid { margin-bottom: 6rem; }
  body.is-exp-dates-open {
    overflow: hidden;
  }
  body.is-listing-cal-open .hsm-book-stack > .hsm-rare-stack,
  body.is-listing-cal-open .hsm-book-stack > .hsm-rare,
  body.is-exp-dates-open .hsm-book-stack > .hsm-rare-stack,
  body.is-exp-dates-open .hsm-book-stack > .hsm-rare,
  body.is-exp-stay-open .hsm-book-stack > .hsm-rare-stack,
  body.is-exp-stay-open .hsm-book-stack > .hsm-rare {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  body.is-exp-dates-open .hsm-pin {
    opacity: 0;
    pointer-events: none;
  }
  body.is-search-open.hsm-detail .hsm-pin,
  body.is-search-open.hsm-detail .hsm-exp-page .hsm-pin,
  .hsm-detail.is-search-open .hsm-pin {
    display: none !important;
  }
  body.is-search-open.hsm-detail .hsm-book-stack > .hsm-rare-stack,
  body.is-search-open.hsm-detail .hsm-book-stack > .hsm-rare {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  .hsm-detail.has-header-search.is-search-open .hsm-header,
  .hsm-detail.is-search-open .hsm-header {
    position: fixed !important;
    inset: 0 !important;
    z-index: 120 !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    background: #f6f3ee !important;
  }
  .hsm-detail .hsm-exp-page.is-dates-open .hsm-listing-grid > aside.hsm-exp-dates {
    position: fixed;
    inset: 0;
    z-index: 80;
    height: auto;
    width: auto;
    margin: 0;
    padding: 0;
    overflow: hidden;
    pointer-events: auto;
    background: rgba(12, 27, 51, 0.42);
  }
  .hsm-detail .hsm-exp-page.is-dates-open .hsm-exp-dates .hsm-book-stack {
    display: block !important;
    position: static;
    overflow: visible;
    max-height: none;
    pointer-events: none;
    background: transparent;
  }
  .hsm-detail .hsm-exp-page.is-dates-open .hsm-exp-dates .hsm-book-stack > .hsm-book {
    display: block !important;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    z-index: 2;
    margin: 0;
    border: 0;
    border-radius: 1.15rem 1.15rem 0 0;
    box-shadow: 0 -16px 40px rgba(12, 27, 51, 0.18);
    padding: 2.55rem 1.1rem calc(1.2rem + env(safe-area-inset-bottom, 0px));
    max-height: min(88vh, 46rem);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    pointer-events: auto;
  }
  .hsm-detail .hsm-exp-page.is-dates-open .hsm-exp-book-top [data-exp-show-dates] {
    display: none !important;
  }
  .hsm-detail .hsm-exp-page.is-dates-open .hsm-exp-dates-close {
    display: grid;
    place-items: center;
    position: absolute;
    top: 0.7rem;
    right: 0.7rem;
    width: 2.2rem;
    height: 2.2rem;
    border: 0;
    border-radius: 999px;
    background: var(--hsm-soft, #f3f1ec);
    color: var(--hsm-ink);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
  }

  .hsm-searchpage {
    display: flex;
    flex-direction: column;
    padding-top: 0.2rem;
  }
  .hsm-search-col { display: contents; padding: 0; }
  .hsm-results-bar { display: none !important; }
  .hsm-filters { display: none; }
  .hsm-header-filters .hsm-filters { display: flex; padding-inline: 0; margin: 0; }
  .hsm.has-header-filters { --hsm-header: 118px; }
  .hsm-map-col {
    order: 3;
    position: relative;
    top: auto;
    height: 34vh;
    min-height: 200px;
    border-radius: 0;
  }
  /* .hsm-search-col already carries the sheet gutter — children must not add it again. */
  .hsm-count { order: 4; margin-top: 0.85rem; }
  .hsm-empty-search { order: 4; }
  .hsm-results { order: 5; grid-template-columns: 1fr; padding: 0 0 1.5rem; }
  .hsm-results { grid-template-columns: 1fr; }
  .hsm-search-pager { order: 6; margin-bottom: 1.25rem; }
  .hsm:not(.has-header-search) .hsm-header-nav {
    display: none;
  }

  .hsm-bookpage { padding-bottom: 7.5rem; padding-top: 3.1rem; }
  .hsm-checkout-review {
    border-radius: 12px;
    padding: 0.75rem 0.8rem 0.8rem;
    margin-bottom: 0.55rem;
  }
  .hsm-checkout-review .hsm-summary-top {
    grid-template-columns: 64px 1fr;
    gap: 0.55rem;
  }
  .hsm-checkout-review .hsm-summary-top img {
    width: 64px;
    height: 56px;
  }
  .hsm-checkout-row {
    padding: 0.48rem 0;
    gap: 0.55rem;
  }
  .hsm-checkout-row > div {
    gap: 0.15rem 0.5rem;
  }
  .hsm-step {
    border-radius: 12px;
    padding: 0.8rem 0.85rem;
    margin-bottom: 0.55rem;
  }
  .hsm.hsm-checkout .hsm-header,
  .hsm.hsm-checkout .hsm-footer,
  .hsm.hsm-checkout .hsm-tabbar,
  .hsm:has(.hsm-bookpage) .hsm-header,
  .hsm:has(.hsm-bookpage) .hsm-footer,
  .hsm:has(.hsm-bookpage) .hsm-tabbar,
  .hsm-bookpage ~ .hsm-footer,
  .hsm-bookpage ~ .hsm-tabbar {
    display: none !important;
  }
  .hsm.hsm-checkout,
  .hsm:has(.hsm-bookpage) {
    --hsm-header: 0px;
  }
  .hsm-checkout-close,
  .hsm-checkout-back {
    display: grid;
    place-items: center;
    position: fixed;
    top: calc(0.65rem + env(safe-area-inset-top, 0px));
    z-index: 40;
    width: 2.25rem;
    height: 2.25rem;
    margin: 0;
    border: 1px solid var(--hsm-line);
    border-radius: 50%;
    background: #fff;
    color: var(--hsm-navy);
    box-shadow: 0 2px 8px rgba(12, 27, 51, 0.08);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .hsm-checkout-close {
    right: 0.85rem;
  }
  .hsm-checkout-back {
    left: 0.85rem;
  }
  .hsm-checkout-back[hidden] {
    display: none !important;
  }
  .hsm-checkout-close svg,
  .hsm-checkout-back svg {
    width: 0.95rem;
    height: 0.95rem;
    display: block;
  }
  .hsm-checkout-flow {
    padding-top: 0.25rem;
  }
  .hsm-checkout-title { display: none; }
  .hsm-summary-desktop { display: none !important; }
  .hsm-bookpage [data-hsm-step="addons"] { display: block !important; }
  .hsm-bookpage [data-hsm-step]:not(.is-active) { display: none !important; }
  .hsm-bookpage [data-hsm-step].is-active { display: block !important; }
  .hsm-checkout-bar {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.7rem;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 30;
    padding: 0.7rem 1rem calc(0.8rem + env(safe-area-inset-bottom, 0px));
    background: #fff;
    border-top: 1px solid var(--hsm-line);
    box-shadow: 0 -8px 24px rgba(12, 27, 51, 0.08);
  }
  .hsm-checkout-bar[hidden] { display: none !important; }
  .hsm-checkout-bar .hsm-checkout-link {
    order: 0;
    align-self: center;
  }
  .hsm-checkout-bar .hsm-btn {
    order: 1;
    align-self: stretch;
    width: 100%;
    margin: 0;
  }
  .hsm-bookpage[data-checkout-current="pay"] .hsm-checkout-bar {
    display: none !important;
  }
  .hsm-bookpage[data-checkout-current="pay"][data-co-open="pay"]::after {
    content: "";
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 29;
    height: calc(4.75rem + env(safe-area-inset-bottom, 0px));
    background: #fff;
    border-top: 1px solid var(--hsm-line);
    box-shadow: 0 -8px 24px rgba(12, 27, 51, 0.08);
    pointer-events: none;
  }
  .hsm-bookpage[data-checkout-current="pay"][data-co-open="pay"] .hsm-checkout-submit {
    position: fixed;
    left: 1rem;
    right: 1rem;
    bottom: calc(0.85rem + env(safe-area-inset-bottom, 0px));
    z-index: 30;
    width: auto;
    max-width: none;
    margin: 0;
  }
  .hsm-bookpage [data-hsm-pay] .hsm-btn:not(.hsm-checkout-submit):not([data-checkout-next]) {
    position: static;
  }
}

@media (max-width: 1119px) {
  .hsm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hsm-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hsm-listing-grid,
  .hsm-bookpage { grid-template-columns: 1fr; }
  .hsm-book-stack,
  .hsm-book,
  .hsm-summary {
    position: static;
    width: 100%;
    max-width: none;
  }
  .hsm-listing-grid > aside { order: -1; }
}

@media (max-width: 900px) and (min-width: 720px) {
  .hsm-searchpage {
    grid-template-columns: 1fr;
    /* Without re-declaring the areas, "map" no longer exists in a
       single-column template and the map is pushed into an implicit
       zero-width column off the right edge — no map at all on tablets. */
    grid-template-areas:
      "map"
      "list";
  }
  .hsm-map-col {
    position: relative;
    top: auto;
    height: 280px;
  }
}

@media (max-width: 719px) {
  .hsm:not(.is-search-open) .hsm-search-bar {
    grid-template-columns: 1fr;
    border-radius: 22px;
  }
  .hsm:not(.is-search-open) .hsm-search-field {
    grid-column: auto;
    border-radius: 16px;
  }
  .hsm:not(.is-search-open) .hsm-search-unit + .hsm-search-unit .hsm-search-field {
    border-top: 1px solid var(--hsm-line);
    border-radius: 0;
  }
  .hsm:not(.is-search-open) .hsm-search-go {
    position: static;
    grid-column: auto;
    width: 100%;
    height: 48px;
    margin: 6px 0 0;
    border-radius: 999px;
    grid-row: auto;
  }
  .hsm-grid, .hsm-results { grid-template-columns: 1fr 1fr; }
  .hsm-hero {
    padding: 0.45rem 0 0.15rem;
    text-align: center;
  }
  .hsm-hero h1 {
    margin: 0 0 0.45rem;
    font-size: clamp(1.2rem, 5vw, 1.45rem);
  }
  .hsm-continue {
    margin: 0 0 0.95rem;
  }
  .hsm-hero p { margin-inline: 0; }
  .hsm-photos {
    grid-template-columns: 1fr 1fr;
    height: min(42vh, 320px);
  }
  .hsm-photos a:first-child {
    grid-row: auto;
    grid-column: 1 / -1;
  }
  .hsm-photos a:nth-child(n + 5) { display: none; }
  .hsm-detail .hsm-photos a:nth-child(n + 5) { display: block; }
  .hsm-cal-months { grid-template-columns: 1fr; }
  .hsm-fields { grid-template-columns: 1fr; }
  .hsm-rev-board { grid-template-columns: 1fr 1fr; }
  .hsm-rev-grid, .hsm-host-grid { grid-template-columns: 1fr; }
  .hsm-meet-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .hsm-host-card {
    max-width: none;
    width: 100%;
    gap: 1rem;
    padding: 1.25rem 1.1rem 1.15rem;
    border-radius: 22px;
  }
  .hsm-host-visual {
    --hsm-host-mark: 5.6rem;
    --hsm-host-gap: 0.55rem;
    gap: 0.65rem;
  }
  .hsm-host-identity {
    width: max-content;
    max-width: 100%;
  }
  .hsm-host-identity.is-duo {
    grid-template-columns: repeat(3, var(--hsm-host-mark));
    gap: var(--hsm-host-gap);
  }
  .hsm-host-verified {
    width: 1.55rem;
    height: 1.55rem;
  }
  .hsm-host-verified svg { width: 0.95rem; height: 0.95rem; }
  .hsm-host-id strong {
    font-size: 1.35rem;
  }
  .hsm-host-stats {
    padding-top: 0;
  }
  .hsm-host-stats div {
    padding: 0.85rem 0.4rem 0.1rem;
  }
  .hsm-host-stats div:first-child {
    padding-top: 0.85rem;
  }
  .hsm-host-stats dt { font-size: 1.05rem; }
  .hsm-host-stats dd { font-size: 0.74rem; margin-top: 0.2rem; }
  .hsm-host-traits {
    padding-top: 0.9rem;
    gap: 0.7rem;
  }
  .hsm-host-copy {
    max-width: none;
    padding-top: 0;
  }
  .hsm-btn-soft {
    width: 100%;
    margin-top: 1.4rem;
  }
  .hsm-detail .hsm-meet {
    padding-top: 1.15rem;
  }
  .hsm-detail .hsm-meet > h2 {
    margin-bottom: 0.9rem;
  }
  .hsm-detail .hsm-listing-grid > div > .hsm-split:last-child {
    padding-bottom: 0.35rem;
  }
  .hsm-score { border-left: 0; padding-left: 0; border-top: 1px solid var(--hsm-line); padding-top: 0.6rem; }
  .hsm-detail .hsm-score { border-top: 0; padding-top: 0; }
  .hsm-hostline { flex-wrap: wrap; }
  .hsm-listing-exp-grid { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .hsm-grid, .hsm-results { grid-template-columns: 1fr; }
  .hsm-brand-text { display: none; }
  .hsm-footer .hsm-brand-text { display: flex !important; }
  .hsm-amen-grid { grid-template-columns: 1fr; }
  /* Mobile: 3 per category; Show all reveals the rest. */
  #amenities:not(.is-open) .hsm-amen.is-extra {
    display: none;
  }
  #amenities .hsm-amen-more {
    display: block;
  }
  .hsm-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.hsm-exp-card h3 a:hover { text-decoration: underline; text-underline-offset: 3px; }
.hsm-exp-card-media { display: block; min-height: 8.5rem; }
.hsm-exp-card-media img { height: 100%; }

.hsm-exp-browse { padding: 0 0 4rem; }
.has-exp-home .hsm-exp-browse .hsm-cats,
.has-exp-home .hsm-exp-browse .hsm-exp-type-rail,
.has-exp-home .hsm-exp-browse .hsm-exp-badge-rail {
  display: none !important;
}
.hsm-exp-none {
  text-align: center;
  color: var(--hsm-muted);
  padding: 2.4rem 1rem;
  margin: 0;
}
.hsm-exp-tiles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem 1rem;
}
.hsm-exp-tile {
  display: flex;
  flex-direction: column;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--hsm-line);
  min-height: 100%;
}
.hsm-exp-tile:hover { box-shadow: var(--hsm-shadow); }
.hsm-exp-tile[hidden] { display: none !important; }
.hsm-exp-tile-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--hsm-soft); }
.hsm-exp-tile-media img { width: 100%; height: 100%; object-fit: cover; }
.hsm-exp-tile-body { padding: 0.9rem 1rem 1.05rem; }
.hsm-exp-tile-body h3 { font-size: 1.12rem; color: var(--hsm-navy); margin: 0 0 0.25rem; }
.hsm-exp-tile-meta { color: var(--hsm-muted); font-size: 0.88rem; margin: 0 0 0.55rem; }
.hsm-exp-tile-foot {
  display: flex;
  justify-content: space-between;
  gap: 0.6rem;
  font-size: 0.9rem;
}

/* Experiences filters (search bar + sheet + home rails) */
.hsm-exp-filterbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  margin: 0.35rem 0 0.85rem;
  position: relative;
  z-index: 5;
}
.hsm-exp-fb {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  border: 1px solid var(--hsm-line);
  background: #fff;
  border-radius: 999px;
  padding: 0.45rem 0.9rem;
  font: inherit;
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--hsm-ink);
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.hsm-exp-fb svg {
  width: 15px;
  height: 15px;
  flex: none;
}
.hsm-exp-fb .hsm-badge-mark {
  width: 1.35rem;
  height: 1.35rem;
  padding: 0.18rem;
  border-radius: 50%;
  background: var(--hsm-soft);
  box-sizing: border-box;
  color: var(--hsm-navy);
}
.hsm-exp-fb:hover {
  border-color: #cfc8bc;
  background: var(--hsm-soft);
}
.hsm-exp-fb.is-on,
.hsm-exp-fb[aria-expanded="true"] {
  border-color: #d4cec4;
  background: var(--hsm-soft);
  color: var(--hsm-navy);
  box-shadow: none;
}
.hsm-exp-fb[data-hsm-filters-open] {
  border-color: rgba(201, 169, 98, 0.88);
  background: rgba(201, 169, 98, 0.12);
  color: var(--hsm-navy);
  font-weight: 700;
  box-shadow:
    0 1px 0 rgba(201, 169, 98, 0.16),
    0 2px 10px rgba(201, 169, 98, 0.12);
}
.hsm-exp-fb[data-hsm-filters-open] svg {
  color: var(--hsm-gold);
}
.hsm-exp-fb[data-hsm-filters-open]:hover {
  background: rgba(201, 169, 98, 0.2);
  border-color: var(--hsm-gold, #c9a962);
}
.hsm-exp-fb-sep {
  width: 1px;
  height: 1.6rem;
  background: var(--hsm-line);
  margin: 0 0.15rem;
}
.hsm-exp-fb-gold { color: var(--hsm-gold); font-size: 0.95rem; }
.hsm-exp-fb-badges {
  display: contents;
}
.hsm-header > .hsm-exp-filterbar {
  display: none;
}
.is-search-open .hsm-header > .hsm-exp-filterbar {
  display: none !important;
}
.hsm-exp-fb-chev::after {
  content: "";
  display: inline-block;
  width: 0.45rem;
  height: 0.45rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  margin-left: 0.15rem;
  margin-top: -0.2rem;
}
.hsm-exp-fb-drop { position: relative; }
.hsm-exp-drop-panel {
  position: absolute;
  top: calc(100% + 0.45rem);
  left: 0;
  min-width: min(20rem, calc(100vw - 2rem));
  max-width: min(38rem, calc(100vw - 2rem));
  max-height: min(70vh, 28rem);
  overflow: auto;
  background: #fff;
  border: 1px solid var(--hsm-line);
  border-radius: 16px;
  box-shadow: var(--hsm-shadow-lg);
  padding: 0.9rem;
  z-index: 60;
}
.hsm-exp-fb-drop[data-exp-drop="type"] .hsm-exp-drop-panel,
.hsm-exp-fb-drop[data-exp-drop="time"] .hsm-exp-drop-panel {
  left: auto;
  right: 0;
}
.hsm-exp-fb-drop[data-exp-drop="type"] .hsm-exp-drop-panel {
  width: min(36rem, calc(100vw - 2.5rem));
  min-width: 0;
}
.hsm-exp-drop-panel[hidden] {
  display: none !important;
}
.hsm-exp-drop-panel.is-list {
  min-width: 16rem;
  display: grid;
  gap: 0.55rem;
}
.hsm-exp-chip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  max-width: 100%;
}
.hsm-exp-drop-panel.is-badges:not([hidden]) {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.hsm-exp-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  border: 1px solid var(--hsm-line);
  background: #fff;
  border-radius: 999px;
  padding: 0.45rem 0.9rem;
  font: inherit;
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--hsm-ink);
  cursor: pointer;
  max-width: 100%;
  white-space: nowrap;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.hsm-exp-chip svg {
  width: 15px;
  height: 15px;
  flex: none;
  color: var(--hsm-navy);
  opacity: 0.72;
}
.hsm-exp-chip .hsm-badge-mark {
  width: 1.35rem;
  height: 1.35rem;
  padding: 0.18rem;
  border-radius: 50%;
  background: var(--hsm-soft);
  box-sizing: border-box;
  color: var(--hsm-navy);
}
.hsm-exp-chip:hover {
  border-color: #cfc8bc;
  background: var(--hsm-soft);
}
.hsm-exp-chip.is-on {
  border-color: #d4cec4;
  background: var(--hsm-soft);
  color: var(--hsm-navy);
  box-shadow: none;
}
.hsm-exp-filter-ico {
  width: 1.05rem;
  height: 1.05rem;
  flex: none;
}
.hsm-exp-checkrow {
  display: flex;
  gap: 0.7rem;
  align-items: flex-start;
  cursor: pointer;
}
.hsm-exp-checkrow input {
  width: 1.15rem;
  height: 1.15rem;
  margin-top: 0.15rem;
  flex: none;
  accent-color: var(--hsm-navy);
}
.hsm-exp-checkrow strong { display: block; font-size: 0.95rem; color: var(--hsm-navy); }
.hsm-exp-checkrow em { display: block; font-style: normal; color: var(--hsm-muted); font-size: 0.82rem; margin-top: 0.1rem; }
.hsm-exp-check-list {
  display: grid;
  gap: 0.7rem;
  margin: 0 0 0.15rem;
}
.hsm-exp-check-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 1rem;
}
.hsm-exp-price-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
.hsm-exp-price-row label {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  border: 1px solid var(--hsm-line);
  border-radius: 999px;
  padding: 0.55rem 0.9rem;
}
.hsm-exp-price-row span { font-size: 0.72rem; font-weight: 700; color: var(--hsm-muted); }
.hsm-exp-price-row input {
  border: 0;
  background: transparent;
  font: inherit;
  font-weight: 700;
  color: var(--hsm-navy);
  outline: none;
}
.hsm-exp-duration { position: relative; padding: 0.5rem 0 0.2rem; }
.hsm-exp-duration input[type="range"] { width: 100%; accent-color: var(--hsm-navy); }
.hsm-exp-duration-labels {
  display: flex;
  justify-content: space-between;
  color: var(--hsm-muted);
  font-size: 0.78rem;
  margin-top: 0.35rem;
}
.hsm-exp-type-rail {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.2rem 0 0.7rem;
}
.hsm-exp-badge-rail {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 1.4rem;
}
.hsm-exp-rail { margin: 0 0 2.2rem; }
.hsm-exp-tiles.is-rail {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(16rem, 20rem);
  grid-template-columns: none;
  overflow-x: auto;
  gap: 1rem;
  padding-bottom: 0.4rem;
  scroll-snap-type: x mandatory;
}
.hsm-exp-tiles.is-rail .hsm-exp-tile { scroll-snap-align: start; }
.hsm-exp-filters-sheet .hsm-filters-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 0.9rem 1.1rem;
  border-top: 1px solid var(--hsm-line);
}
.hsm-exp-filters-sheet .hsm-filters-clear {
  border: 0;
  background: none;
  font: inherit;
  font-weight: 700;
  color: var(--hsm-muted);
  text-decoration: underline;
  cursor: pointer;
}
@media (max-width: 719px) {
  .hsm-exp-filterbar { gap: 0.32rem; overflow: visible; }
  .hsm-exp-fb { padding: 0.38rem 0.72rem; font-size: 0.78rem; }
  .hsm-exp-fb-drop { position: static; }
  .hsm-exp-drop-panel {
    left: 0 !important;
    right: 0 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none;
    max-height: min(58vh, 28rem);
    padding: 0.9rem 0.9rem 1.05rem;
    box-sizing: border-box;
  }
  .hsm-exp-drop-panel.is-list { min-width: 0; }
}

@media (min-width: 720px) {
  .hsm.has-exp-filters:not(.hsm-detail) .hsm-header > .hsm-exp-filterbar {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    margin: 0;
    padding: 0.15rem 0 0.9rem;
    position: relative;
    z-index: 6;
    overflow: visible;
  }
  .hsm.has-exp-filters.is-compact:not(.is-search-open) .hsm-header > .hsm-exp-filterbar {
    padding: 0.1rem 0 0.75rem;
  }
  .hsm.has-exp-filters .hsm-header > .hsm-exp-filterbar .hsm-exp-fb-drop {
    position: relative;
    flex: none;
  }

  /* Expanded: Originals options as a row; compact: dropdown toggle. */
  .hsm.has-exp-filters:not(.is-compact) .hsm-exp-fb-drop.is-badges [data-exp-drop-toggle] {
    display: none !important;
  }
  .hsm.has-exp-filters:not(.is-compact) .hsm-exp-fb-drop.is-badges [data-exp-drop-panel],
  .hsm.has-exp-filters:not(.is-compact) .hsm-exp-fb-drop.is-badges [data-exp-drop-panel][hidden] {
    display: flex !important;
    position: static;
    min-width: 0;
    max-width: none;
    max-height: none;
    overflow: visible;
    border: 0;
    box-shadow: none;
    padding: 0;
    background: transparent;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: center;
  }
  .hsm.has-exp-filters.is-compact:not(.is-search-open) .hsm-exp-fb-drop.is-badges [data-exp-drop-toggle] {
    display: inline-flex !important;
  }
  .hsm.has-exp-filters.is-compact:not(.is-search-open) .hsm-exp-fb-drop.is-badges [data-exp-drop-panel][hidden] {
    display: none !important;
  }
  .hsm.has-exp-filters.is-compact:not(.is-search-open) .hsm-exp-fb-drop.is-badges [data-exp-drop-panel]:not([hidden]) {
    display: flex !important;
    position: absolute;
    top: calc(100% + 0.45rem);
    left: 50%;
    transform: translateX(-50%);
    min-width: min(22rem, calc(100vw - 2rem));
    max-width: min(36rem, calc(100vw - 2rem));
    max-height: min(70vh, 28rem);
    overflow: auto;
    border: 1px solid var(--hsm-line);
    box-shadow: var(--hsm-shadow-lg);
    padding: 0.9rem;
    background: #fff;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  /* Home open state: five Originals badges only. */
  .hsm.has-exp-home:not(.is-compact):not(.is-search-open) .hsm-header > .hsm-exp-filterbar [data-hsm-filters-open],
  .hsm.has-exp-home:not(.is-compact):not(.is-search-open) .hsm-header > .hsm-exp-filterbar .hsm-exp-fb-sep,
  .hsm.has-exp-home:not(.is-compact):not(.is-search-open) .hsm-header > .hsm-exp-filterbar [data-exp-drop="type"],
  .hsm.has-exp-home:not(.is-compact):not(.is-search-open) .hsm-header > .hsm-exp-filterbar [data-exp-drop="time"] {
    display: none;
  }
  .hsm.has-exp-home:not(.is-compact):not(.is-search-open) {
    --hsm-header: 236px;
  }
  .has-page-kicker .hsm-hero {
    padding: 0.35rem 0 1.35rem;
  }
  .has-page-kicker:has(.hsm-continue.is-under-search.is-pair:not([hidden])) .hsm-hero {
    padding-top: 0.15rem;
  }
}

@media (max-width: 719px) {
  .hsm.has-exp-filters:not(.is-search-open) .hsm-product-pills {
    padding-bottom: 0.42rem;
  }
  .hsm.has-exp-filters .hsm-header > .hsm-exp-filterbar {
    display: flex;
    flex-wrap: nowrap;
    overflow: visible;
    justify-content: space-between;
    align-items: center;
    gap: 0.28rem;
    margin: 0;
    padding: 0.08rem 0 0.5rem;
    z-index: 8;
  }
  .hsm.has-exp-filters .hsm-header > .hsm-exp-filterbar .hsm-exp-fb-sep {
    display: none;
  }
  .hsm.has-exp-filters .hsm-header > .hsm-exp-filterbar .hsm-exp-fb[data-hsm-filters-open] {
    flex: none;
    width: 2.35rem;
    min-width: 2.35rem;
    min-height: 2.35rem;
    padding: 0.38rem 0;
    justify-content: center;
  }
  .hsm.has-exp-filters .hsm-header > .hsm-exp-filterbar .hsm-exp-fb-txt {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .hsm.has-exp-filters .hsm-header > .hsm-exp-filterbar .hsm-exp-fb-drop {
    flex: 0 1 auto;
    min-width: 0;
  }
  .hsm.has-exp-filters .hsm-header > .hsm-exp-filterbar .hsm-exp-fb-drop > .hsm-exp-fb {
    width: auto;
    max-width: 100%;
    justify-content: center;
    padding-inline: 0.62rem;
    min-height: 2.35rem;
  }
  .hsm.has-exp-filters .hsm-header > .hsm-exp-filterbar .hsm-badge-mark {
    width: 1.12rem;
    height: 1.12rem;
    padding: 0.12rem;
  }
  .hsm.has-exp-filters.has-header-search,
  .has-page-kicker.has-exp-filters.has-header-search,
  .has-page-kicker.has-exp-filters.has-header-search.is-compact {
    --hsm-header: 142px;
  }
  .is-search-open .hsm-header > .hsm-exp-filterbar {
    display: none !important;
  }
  .has-exp-filters .hsm-continue.is-under-search:not([hidden]) {
    margin-bottom: 0.55rem;
  }
  .has-exp-filters .hsm-continue.is-under-search.is-single:not([hidden]),
  .has-exp-filters .hsm-continue.is-under-search.is-pair:not([hidden]) {
    padding: 0.7rem var(--hsm-gutter) 0.4rem;
  }
  .has-exp-filters .hsm-continue.is-under-search .hsm-continue-kicker {
    margin-bottom: 0.55rem;
  }
  .has-exp-home .hsm-continue.is-under-search:not([hidden]) {
    margin-bottom: 0.85rem;
  }
}

.hsm-exp-page { padding-bottom: 4rem; }
.hsm-exp-hero {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 2.2rem;
  align-items: start;
  padding: 1.4rem 0 0.4rem;
}
.hsm-exp-hero > * { min-width: 0; }
.hsm-exp-photos-shell {
  position: relative;
}
.hsm-exp-photos-shell .hsm-photos-stage {
  position: relative;
  height: min(58vh, 520px);
}
.hsm-exp-photos {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 8px;
  height: 100%;
  border-radius: 18px;
  overflow: hidden;
  background: var(--hsm-soft);
}
.hsm-exp-photos > [hidden] { display: none !important; }
.hsm-exp-photos .hsm-exp-photos-item:first-child {
  grid-row: 1 / span 2;
}
.hsm-exp-photos:not(:has(.hsm-exp-photos-item:nth-child(2))) {
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
}
.hsm-exp-photos:not(:has(.hsm-exp-photos-item:nth-child(2))) .hsm-exp-photos-item:first-child {
  grid-row: auto;
}
@media (min-width: 720px) {
  .hsm-exp-photos .hsm-exp-photos-item:nth-child(n + 4) { display: none; }
}
.hsm-exp-photos a { position: relative; overflow: hidden; background: var(--hsm-soft); }
.hsm-exp-photos img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hsm-exp-intro h1 {
  font-family: var(--hsm-serif);
  font-size: clamp(2rem, 3.4vw, 2.7rem);
  line-height: 1.1;
  color: var(--hsm-navy);
  margin: 0 0 0.7rem;
}
.hsm-exp-intro .hsm-listing-stats {
  margin: 0 0 0.9rem;
}
.hsm-exp-intro .hsm-stat-badge span {
  max-width: 9rem;
  overflow-wrap: normal;
  word-break: keep-all;
}
@media (max-width: 719px) {
  .hsm-exp-intro .hsm-stat-badge span {
    font-size: 0.76rem;
    max-width: none;
  }
}
.hsm-exp-summary { font-size: 1.05rem; line-height: 1.6; margin: 0 0 0.35rem; }
.hsm-host-role {
  display: block;
  margin-top: 0.2rem;
  color: var(--hsm-muted);
  font-size: 0.82rem;
  font-weight: 600;
}
.hsm-exp-translated {
  color: var(--hsm-muted);
  font-size: 0.82rem;
  margin: 0.35rem 0 0.8rem;
}
.hsm-exp-hostline {
  display: flex;
  gap: 0.8rem;
  align-items: center;
  margin: 1.1rem 0;
  padding: 0.9rem 0;
  border-top: 1px solid var(--hsm-line);
  border-bottom: 1px solid var(--hsm-line);
}
.hsm-exp-hostline p { margin: 0.15rem 0 0; color: var(--hsm-muted); font-size: 0.9rem; }
.hsm-exp-facts {
  list-style: none;
  padding: 0;
  margin: 0 0 1.2rem;
  color: var(--hsm-muted);
}
.hsm-exp-facts li { padding: 0.2rem 0; }
.hsm-exp-bookcard {
  border: 1px solid var(--hsm-line);
  border-radius: 18px;
  padding: 1.1rem 1.15rem 1.2rem;
  box-shadow: var(--hsm-shadow);
}
.hsm-exp-bookcard .hsm-btn { width: 100%; margin-top: 0.6rem; text-align: center; }
.hsm-exp-bodygrid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 2.5rem;
  align-items: stretch;
  margin-top: 1.2rem;
}
.hsm-exp-steps { list-style: none; padding: 0; margin: 0; }
.hsm-exp-step {
  display: grid;
  grid-template-columns: 7.5rem 1fr;
  gap: 1rem;
  padding: 0.95rem 0;
  border-bottom: 1px solid var(--hsm-line);
  align-items: center;
}
.hsm-exp-step:last-child {
  border-bottom: 0;
}
.hsm-exp-step img {
  width: 7.5rem;
  height: 5.6rem;
  object-fit: cover;
  border-radius: 12px;
}
.hsm-exp-step h3 { font-size: 1.05rem; color: var(--hsm-navy); margin: 0 0 0.25rem; }
.hsm-exp-step p { margin: 0; color: var(--hsm-ink); }
.hsm-exp-dates .hsm-book-stack {
  position: sticky;
  top: calc(var(--hsm-header) + var(--hsm-continue) + var(--hsm-pin));
}
.hsm-exp-page .hsm-pin-cta {
  margin-inline-start: auto;
}
.hsm-exp-dates .hsm-book {
  padding: 1.1rem 1.15rem 1.25rem;
}
.hsm-exp-slot {
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  align-items: center;
  border: 1px solid var(--hsm-line);
  border-radius: 14px;
  padding: 0.75rem 0.85rem;
  margin: 0.55rem 0;
}
.hsm-exp-slot strong { display: block; color: var(--hsm-navy); }
.hsm-exp-slot span { color: var(--hsm-muted); font-size: 0.88rem; }
.hsm-exp-spots { font-weight: 700; color: var(--hsm-navy); white-space: nowrap; }
.hsm-exp-page .hsm-grid { grid-template-columns: 1fr 1fr; }
.hsm-exp-dates .hsm-btn-outline {
  display: inline-flex;
  justify-content: center;
  width: 100%;
  margin-top: 0.7rem;
}
#dates, #stays, #experiences, #transport, #do { scroll-margin-top: calc(var(--hsm-header) + var(--hsm-continue) + var(--hsm-pin)); }

@media (max-width: 1119px) {
  .hsm-exp-hero,
  .hsm-exp-bodygrid { grid-template-columns: 1fr; }
  .hsm-exp-photos-shell .hsm-photos-stage { height: min(52vh, 440px); }
  .hsm-exp-dates .hsm-book-stack,
  .hsm-exp-dates .hsm-book { position: static; width: 100%; max-width: none; }
  .hsm-exp-tiles { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 719px) {
  .hsm-detail .hsm-exp-hero {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: visible;
  }
  .hsm-detail .hsm-exp-photos-shell {
    order: -1;
    width: calc(100% + (2 * var(--hsm-gutter)));
    max-width: none;
    min-width: 0;
    margin-inline: calc(-1 * var(--hsm-gutter));
    overflow: hidden;
  }
  .hsm-detail .hsm-exp-photos-shell .hsm-photos-stage {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: min(68vw, 400px);
    max-height: 62vh;
    overflow: hidden;
  }
  .hsm-detail .hsm-exp-photos {
    display: flex;
    flex-flow: row nowrap;
    align-items: stretch;
    gap: 0;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: 100%;
    border-radius: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    background: #111;
    grid-template-columns: none;
    grid-template-rows: none;
  }
  .hsm-detail .hsm-exp-photos::-webkit-scrollbar { display: none; }
  .hsm-detail .hsm-exp-photos .hsm-exp-photos-item,
  .hsm-detail .hsm-exp-photos .hsm-exp-photos-item:first-child,
  .hsm-detail .hsm-exp-photos .hsm-exp-photos-item:nth-child(n + 4) {
    display: block;
    box-sizing: border-box;
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
    min-width: 100%;
    max-width: 100%;
    min-height: 0;
    border-radius: 0;
    overflow: hidden;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    grid-column: auto;
    grid-row: auto;
  }
  .hsm-detail .hsm-exp-photos img {
    max-width: none;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .hsm-detail .hsm-exp-intro {
    padding: 0.7rem 0 0.35rem;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .hsm-detail .hsm-exp-factrows {
    grid-template-columns: 1fr;
    margin: 0.2rem 0 0;
    padding: 0.55rem 0 0.85rem;
    gap: 0;
    border-bottom: 0;
  }
  .hsm-detail .hsm-exp-factrows li {
    padding: 0.85rem 0;
    border-bottom: 1px solid var(--hsm-line);
  }
  .hsm-detail .hsm-exp-page .hsm-wrap > .hsm-exp-gate {
    margin: 0.35rem 0 0.85rem;
  }
  .hsm-detail .hsm-exp-intro h1 {
    font-size: 1.7rem;
    margin-bottom: 0.55rem;
  }
  .hsm-detail .hsm-exp-page .hsm-pin {
    width: 100%;
    max-width: 100%;
    overflow: visible;
  }
  .hsm-detail .hsm-exp-page .hsm-pin-inner {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    padding-inline: 1rem;
    box-sizing: border-box;
    display: flex;
    align-items: center;
  }
  .hsm-detail .hsm-exp-page .hsm-pin-cta {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  .hsm-detail .hsm-exp-page .hsm-pin-cta .hsm-btn,
  .hsm-detail .hsm-exp-page .hsm-pin-cta .hsm-btn.hsm-btn-pill {
    flex: 0 0 auto !important;
    width: max-content !important;
    min-width: 8.6rem !important;
    max-width: none !important;
    white-space: nowrap;
    border-radius: 999px;
    padding: 0.82rem 1.2rem;
  }
  .hsm-detail .hsm-exp-page .hsm-pin-meta {
    min-width: 0;
    flex: 1 1 auto;
  }
  .hsm-exp-browse .hsm-cats {
    display: flex !important;
    justify-content: flex-start;
    padding: 0.15rem 0 0.8rem;
    margin-inline: 0;
  }
  .hsm-exp-browse .hsm-exp-type-rail {
    display: none;
  }
  .hsm-exp-browse .hsm-exp-tiles.is-rail {
    grid-auto-columns: minmax(15.5rem, 78vw);
    margin-inline: 0;
    padding-bottom: 0.55rem;
  }
  .hsm-exp-browse .hsm-exp-tiles:not(.is-rail) .hsm-exp-tile {
    border: 0;
    border-radius: 0;
    background: transparent;
  }
  .hsm-exp-browse .hsm-exp-tiles:not(.is-rail) .hsm-exp-tile-media {
    border-radius: 14px;
  }
  .hsm-exp-browse .hsm-exp-tiles:not(.is-rail) .hsm-exp-tile-body {
    padding: 0.75rem 0.15rem 0.2rem;
  }
}
@media (max-width: 520px) {
  .hsm-exp-tiles { grid-template-columns: 1fr; }
  .hsm-exp-page .hsm-grid { grid-template-columns: 1fr; }
  .hsm-exp-step { grid-template-columns: 1fr; }
  .hsm-exp-step img { width: 100%; height: 10rem; }
}

.hsm-aff-band { padding: 0 0 3.4rem; }
.hsm-aff-card,
.hsm-promo {
  background: #fff;
  color: var(--hsm-ink, #1a2332);
  border: 1px solid var(--hsm-line, #e6e2da);
  border-radius: 28px;
  box-shadow: 0 10px 32px rgba(18, 24, 32, 0.05);
}
.hsm-aff-card {
  display: grid;
  grid-template-columns: 1.25fr auto;
  gap: 1.4rem 2rem;
  align-items: center;
  padding: 1.8rem 2rem;
}
.hsm-promo-cover {
  text-align: center;
  padding: clamp(2.4rem, 5vw, 3.8rem) 1.5rem;
}
.hsm-cover-mark {
  margin: 0;
  font-size: clamp(2.4rem, 7vw, 4.4rem);
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 0.95;
  color: #0c1b33;
}
.hsm-cover-mark em {
  font-style: normal;
  color: var(--hsm-gold);
}
.hsm-cover-for {
  margin: 0.5rem 0 0.9rem;
  font-size: 1.25rem;
  font-weight: 600;
}
.hsm-cover-lockup,
.hsm-promo-copy p,
.hsm-aff-card p {
  margin: 0 auto 1.2rem;
  max-width: 34rem;
  color: #5c6675;
  line-height: 1.55;
}
.hsm a.hsm-promo-cta,
.hsm-promo-cta,
.hsm-aff-card .hsm-btn-gold {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-height: 3rem;
  padding: 0.7rem 1.35rem;
  border-radius: 999px;
  background: var(--hsm-navy);
  color: var(--hsm-gold);
  font-weight: 700;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(12, 27, 51, 0.18);
  transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
.hsm a.hsm-promo-cta:hover,
.hsm-promo-cta:hover,
.hsm-aff-card .hsm-btn-gold:hover,
.hsm a.hsm-promo-cta:focus-visible,
.hsm-promo-cta:focus-visible,
.hsm-aff-card .hsm-btn-gold:focus-visible {
  background: var(--hsm-navy-2);
  color: #dfc07a;
  transform: scale(1.03);
}
.hsm a.hsm-promo-cta:focus-visible,
.hsm-promo-cta:focus-visible,
.hsm-aff-card .hsm-btn-gold:focus-visible {
  outline: 2px solid var(--hsm-gold);
  outline-offset: 3px;
}
.hsm a.hsm-promo-cta:active,
.hsm-promo-cta:active,
.hsm-aff-card .hsm-btn-gold:active {
  background: #081221;
  color: var(--hsm-gold);
  transform: scale(0.98);
  box-shadow: inset 0 0 0 2px var(--hsm-gold);
}
.hsm-aff-kicker {
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8a8378;
}
.hsm-aff-card h2,
.hsm-promo-copy h2 {
  margin: 0 0 0.4rem;
  color: #0c1b33;
  font-size: clamp(1.45rem, 2.6vw, 2rem);
  letter-spacing: -0.04em;
}
.hsm-promo-split {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 1.5rem 2.2rem;
  align-items: center;
  padding: 1.35rem 1.45rem;
}
.hsm-creator-ui {
  min-width: 0;
}
.hsm-creator-stage {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  aspect-ratio: 4 / 3;
  background: var(--hsm-navy, #0c1b33);
  box-shadow: 0 14px 36px rgba(12, 27, 51, 0.14);
}
.hsm-creator-cover {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hsm-creator-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(12, 27, 51, 0.08) 0%, transparent 38%, rgba(12, 27, 51, 0.55) 100%);
  pointer-events: none;
}
.hsm-creator-play {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 44%;
  transform: translate(-50%, -50%);
  width: 3.4rem;
  height: 3.4rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--hsm-navy, #0c1b33);
  box-shadow: 0 10px 28px rgba(12, 27, 51, 0.28);
}
.hsm-creator-play svg {
  width: 1.15rem;
  height: 1.15rem;
  margin-left: 0.12rem;
}
.hsm-creator-chrome {
  position: absolute;
  z-index: 2;
  left: 0.85rem;
  right: 0.85rem;
  bottom: 0.85rem;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.55rem 0.65rem 0.55rem 0.55rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.7);
  box-shadow: 0 8px 22px rgba(12, 27, 51, 0.12);
}
.hsm-creator-avatars {
  display: flex;
  flex: none;
}
.hsm-creator-avatars img {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  object-fit: cover;
  border: 2px solid #fff;
  background: #ddd;
  margin-left: -0.45rem;
}
.hsm-creator-avatars img:first-child {
  margin-left: 0;
}
.hsm-creator-meta {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  line-height: 1.15;
}
.hsm-creator-meta strong {
  font-size: 0.82rem;
  font-weight: 750;
  color: var(--hsm-navy, #0c1b33);
}
.hsm-creator-meta span {
  font-size: 0.72rem;
  font-weight: 550;
  color: #5c6675;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hsm-creator-chip {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.7rem;
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
  background: var(--hsm-navy, #0c1b33);
  color: var(--hsm-gold, #c9a962);
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.02em;
}
@media (max-width: 719px) {
  .hsm-aff-card,
  .hsm-promo-split { grid-template-columns: 1fr; }
  .hsm-creator-stage { aspect-ratio: 16 / 11; }
  .hsm-creator-play { width: 3rem; height: 3rem; top: 42%; }
  .hsm-creator-chrome { left: 0.7rem; right: 0.7rem; bottom: 0.7rem; }
}


/* —— Soft home (desktop hidden) —— */
.hsm-home-soft { display: none; }
.hsm-header-back { display: none; }
.hsm-header-tools { display: none; }
.hsm-listing-chrome { display: none; }
.hsm-detail .hsm-listing-chrome {
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  z-index: 56;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
  padding: max(0.55rem, env(safe-area-inset-top)) 0.75rem 0.55rem;
  pointer-events: none;
}
.hsm-detail .hsm-listing-chrome > * {
  pointer-events: auto;
}
.hsm-detail .hsm-chrome-spacer {
  flex: 1 1 auto;
  min-width: 0;
  pointer-events: none !important;
}
.hsm-detail .hsm-chrome-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  margin: 0;
  padding: 0;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.55);
  background: rgba(255, 255, 255, 0.52);
  color: var(--hsm-navy);
  box-shadow: 0 2px 14px rgba(12, 27, 51, 0.14);
  backdrop-filter: blur(18px) saturate(1.4);
  -webkit-backdrop-filter: blur(18px) saturate(1.4);
  text-decoration: none;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
.hsm-detail .hsm-chrome-btn svg {
  width: 18px;
  height: 18px;
  display: block;
}
.hsm-detail .hsm-chrome-btn.is-on {
  color: #c0392b;
}
.hsm-detail .hsm-chrome-btn.is-on svg {
  fill: currentColor;
}
.hsm-detail .hsm-chrome-btn[data-hsm-save].is-on {
  color: #c0392b;
}
.hsm-filter-btn { display: none; }
.hsm-tabbar { display: none; }
.hsm-filters-sheet[hidden] { display: none !important; }

@media (min-width: 720px) {
  .hsm-detail .hsm-listing-chrome { display: none !important; }
}
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* Dual diamond tips — shared panel only on desktop */
.hsm-rare-stack {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 0;
  width: fit-content;
  max-width: 100%;
  box-sizing: border-box;
  border: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
}
/* JS rotator: crossfade in-place. Without .is-rotating, both stay visible as fallback. */
.hsm-rare-stack.is-rotating {
  display: grid;
  align-items: center;
  justify-items: stretch;
  gap: 0;
}
.hsm-rare-stack.is-rotating > .hsm-rare {
  grid-area: 1 / 1;
  align-self: center;
  justify-self: stretch;
  /* Stay put — opacity only, same fade in and out */
  transform: none !important;
  transition: opacity 0.55s ease-in-out !important;
  will-change: opacity;
}
.hsm-rare-stack.is-rotating > .hsm-rare:not(.is-active-tip) {
  opacity: 0 !important;
  pointer-events: none !important;
  z-index: 0;
}
.hsm-rare-stack.is-rotating > .hsm-rare.is-active-tip {
  opacity: 1 !important;
  z-index: 1;
}
@media (prefers-reduced-motion: reduce) {
  .hsm-rare-stack.is-rotating > .hsm-rare {
    transition: none !important;
  }
}
@media (min-width: 720px) {
  .hsm-rare-stack.is-rotating {
    /* single-slot card; dual-panel chrome is the no-JS fallback */
    border: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .hsm-rare-stack.is-rotating > .hsm-rare.hsm-book-tip {
    border: 1px solid var(--hsm-line) !important;
    background: #fff !important;
    box-shadow: var(--hsm-shadow) !important;
    border-radius: var(--hsm-radius) !important;
    border-top: 1px solid var(--hsm-line) !important;
  }
  .hsm-rare-stack.is-rotating > .hsm-rare + .hsm-rare {
    border-top: 1px solid var(--hsm-line) !important;
  }
  .hsm-rare-stack {
    gap: 0;
    width: 100%;
    border: 1px solid color-mix(in srgb, var(--hsm-line) 88%, var(--hsm-navy));
    border-radius: 18px;
    padding: 0.3rem;
    background:
      linear-gradient(165deg, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.82));
    box-shadow:
      0 1px 0 rgba(255, 255, 255, 0.85) inset,
      0 12px 32px rgba(12, 27, 51, 0.08);
    backdrop-filter: blur(12px) saturate(1.12);
    -webkit-backdrop-filter: blur(12px) saturate(1.12);
  }
  .hsm-rare-stack > .hsm-rare.hsm-book-tip {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    border-radius: 14px;
    align-items: center;
    padding: 0.82rem 0.9rem;
    gap: 0.7rem;
    width: 100%;
    min-height: 3.2rem;
  }
  .hsm-rare-stack > .hsm-rare + .hsm-rare {
    border-top: 1px solid rgba(12, 27, 51, 0.08) !important;
  }
  .hsm-rare-stack > .hsm-rare .hsm-rare-gem {
    margin-top: 0;
  }
  .hsm-rare-stack > .hsm-rare .hsm-rare-msg {
    flex: 1;
    min-width: 0;
    font-size: 0.92rem;
    line-height: 1.35;
    letter-spacing: -0.015em;
  }
  .hsm-rare-stack > .hsm-rare .hsm-rare-more {
    flex: none;
    opacity: 0.7;
  }
  .hsm-rare-stack > .hsm-rare .hsm-rare-more:hover,
  .hsm-rare-stack > .hsm-rare .hsm-rare-more:focus-visible {
    opacity: 1;
  }
  .hsm-rare-stack > .hsm-rare[data-hsm-rare-kind="rare"]::after {
    content: "";
    width: 1.5rem;
    height: 1.5rem;
    flex: none;
  }
}

/* Rare-find diamond — attention tip (Airbnb genie pattern, brand-native) */
.hsm-rare {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  opacity: 0;
  transform: translateY(10px) scale(0.96);
  transform-origin: left center;
  transition:
    opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
.hsm-rare.is-on {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.hsm-rare-close {
  display: none;
}
.hsm-rare-more {
  display: none;
}
@media (max-width: 719px) {
  .hsm-detail .hsm-rare .hsm-rare-close,
  .hsm-detail .hsm-rare .hsm-rare-more {
    display: grid !important;
    place-items: center;
    flex: none;
    width: 1.35rem;
    height: 1.35rem;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(12, 27, 51, 0.08);
    color: var(--hsm-navy);
    font: inherit;
    font-size: 0.95rem;
    line-height: 1;
    cursor: pointer;
    pointer-events: auto !important;
    -webkit-tap-highlight-color: transparent;
  }
  .hsm-detail .hsm-rare .hsm-rare-more svg {
    width: 0.78rem;
    height: 0.78rem;
    display: block;
  }
  /* Tips with controls must receive taps (stack itself stays non-blocking) */
  .hsm-detail .hsm-book-stack .hsm-rare {
    pointer-events: auto !important;
  }
}
.hsm-rare.is-absolute_lux {
  --rare-a: #1f7a4d;
  --rare-b: #c9a962;
  --rare-c: #e2c878;
}
.hsm-rare.is-eco {
  --rare-a: #2f8a55;
  --rare-b: #4caf70;
  --rare-c: #6bc48a;
}
.hsm-rare.is-loved_by_guests {
  --rare-a: #c2674a;
  --rare-b: #d4896a;
  --rare-c: #e08a6a;
}
.hsm-rare.is-connoisseur {
  --rare-a: #c9a962;
  --rare-b: #d4b56a;
  --rare-c: #e2c878;
}
.hsm-rare.is-guests_favourite {
  --rare-a: #c9a962;
  --rare-b: #d4b56a;
  --rare-c: #e2c878;
}
.hsm-rare.is-originals {
  --rare-a: #c9a962;
  --rare-b: #d4b56a;
  --rare-c: #e2c878;
}
.hsm-rare.is-rare_experience {
  --rare-a: #6b3a78;
  --rare-b: #c9a962;
  --rare-c: #d4b56a;
}
.hsm-rare.is-host_signature {
  --rare-a: #16304f;
  --rare-b: #c9a962;
  --rare-c: #d4b56a;
}
.hsm-rare.is-heritage_keeper {
  --rare-a: #a8553a;
  --rare-b: #d4896a;
  --rare-c: #e08a6a;
}
.hsm-rare.is-hidden_gem {
  --rare-a: #1e6b40;
  --rare-b: #4caf70;
  --rare-c: #6bc48a;
}
.hsm-rare.is-absolute_lux .hsm-rare-spark,
.hsm-rare.is-eco .hsm-rare-spark,
.hsm-rare.is-loved_by_guests .hsm-rare-spark,
.hsm-rare.is-connoisseur .hsm-rare-spark,
.hsm-rare.is-guests_favourite .hsm-rare-spark,
.hsm-rare.is-originals .hsm-rare-spark,
.hsm-rare.is-rare_experience .hsm-rare-spark,
.hsm-rare.is-host_signature .hsm-rare-spark,
.hsm-rare.is-heritage_keeper .hsm-rare-spark,
.hsm-rare.is-hidden_gem .hsm-rare-spark {
  background:
    radial-gradient(circle at 28% 30%, color-mix(in srgb, var(--rare-c) 95%, white) 0 1.6px, transparent 2.6px),
    radial-gradient(circle at 74% 24%, color-mix(in srgb, var(--rare-b) 85%, white) 0 1.2px, transparent 2.2px),
    radial-gradient(circle at 76% 70%, color-mix(in srgb, var(--rare-c) 70%, white) 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 24% 72%, color-mix(in srgb, var(--rare-a) 65%, black) 0 1.2px, transparent 2.2px),
    radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--rare-b) 16%, transparent), transparent 64%);
}

/* Badge tip popover — expands from the info button */
.hsm-rare-sheet {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(12, 27, 51, 0.12);
  pointer-events: auto;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  opacity: 0;
  transition: opacity 0.2s ease;
}
.hsm-rare-sheet.is-open {
  opacity: 1;
}
.hsm-rare-sheet[hidden] {
  display: none !important;
}
.hsm-rare-sheet-card {
  --sheet-accent: #b8954a;
  --sheet-accent-2: #c9a962;
  position: fixed;
  left: 1rem;
  top: 1rem;
  width: min(22rem, calc(100vw - 1.5rem));
  max-height: min(70vh, 28rem);
  overflow: auto;
  margin: 0;
  padding: 1.15rem 1.15rem 1.35rem;
  border-radius: 1.05rem;
  border: 1px solid rgba(12, 27, 51, 0.08);
  color: var(--hsm-navy, #0c1b33);
  background:
    radial-gradient(120% 80% at 8% -20%, color-mix(in srgb, var(--sheet-accent) 18%, transparent), transparent 55%),
    #fff;
  box-shadow:
    0 10px 28px rgba(12, 27, 51, 0.12),
    0 2px 8px rgba(12, 27, 51, 0.05);
  opacity: 0;
  transform: scale(0.92);
  transform-origin: top left;
  transition:
    opacity 0.22s ease,
    transform 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}
.hsm-rare-sheet.is-open .hsm-rare-sheet-card {
  opacity: 1;
  transform: scale(1);
}
.hsm-rare-sheet-card.is-absolute_lux {
  --sheet-accent: #2f8a55;
  --sheet-accent-2: #4caf70;
}
.hsm-rare-sheet-card.is-eco {
  --sheet-accent: #2f8a55;
  --sheet-accent-2: #6bc48a;
}
.hsm-rare-sheet-card.is-loved_by_guests {
  --sheet-accent: #c2674a;
  --sheet-accent-2: #e08a6a;
}
.hsm-rare-sheet-card.is-connoisseur {
  --sheet-accent: #b8954a;
  --sheet-accent-2: #c9a962;
}
.hsm-rare-sheet-card.is-originals {
  --sheet-accent: #c9a962;
  --sheet-accent-2: #e2c878;
}
.hsm-rare-sheet-card.is-rare_experience {
  --sheet-accent: #6b3a78;
  --sheet-accent-2: #c9a962;
}
.hsm-rare-sheet-card.is-host_signature {
  --sheet-accent: #16304f;
  --sheet-accent-2: #c9a962;
}
.hsm-rare-sheet-card.is-heritage_keeper {
  --sheet-accent: #a8553a;
  --sheet-accent-2: #e08a6a;
}
.hsm-rare-sheet-card.is-hidden_gem {
  --sheet-accent: #1e6b40;
  --sheet-accent-2: #6bc48a;
}
.hsm-rare-sheet-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}
.hsm-rare-sheet-gem {
  width: 2.1rem;
  height: 2.1rem;
  display: grid;
  place-items: center;
  filter: drop-shadow(0 2px 6px rgba(12, 27, 51, 0.12));
}
.hsm-rare-sheet-gem svg {
  width: 100%;
  height: 100%;
  display: block;
}
.hsm-rare-sheet-eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--sheet-accent) 72%, var(--hsm-navy, #0c1b33));
}
.hsm-rare-sheet-card h3 {
  margin: 0;
  font-size: clamp(1.15rem, 3.6vw, 1.4rem);
  font-weight: 750;
  letter-spacing: -0.03em;
  line-height: 1.22;
  color: var(--hsm-navy, #0c1b33);
  max-width: 22ch;
}
.hsm-rare-sheet-rule {
  width: 2.4rem;
  height: 2px;
  margin: 0.85rem 0 0.85rem;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--sheet-accent), var(--sheet-accent-2));
}
.hsm-rare-sheet-body {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 450;
  line-height: 1.55;
  letter-spacing: -0.01em;
  color: var(--hsm-muted, #5a6578);
}
.hsm-rare-sheet-close {
  flex: none;
  width: 1.85rem;
  height: 1.85rem;
  display: grid;
  place-items: center;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(12, 27, 51, 0.1);
  border-radius: 999px;
  background: rgba(12, 27, 51, 0.04);
  color: var(--hsm-navy, #0c1b33);
  font: inherit;
  font-size: 1.05rem;
  line-height: 1;
  cursor: pointer;
}
.hsm-rare-sheet-close:hover,
.hsm-rare-sheet-close:focus-visible {
  background: rgba(12, 27, 51, 0.08);
  outline: none;
}
html.hsm-rare-sheet-lock,
html.hsm-rare-sheet-lock body {
  overflow: hidden;
}
@media (min-width: 720px) {
  .hsm-rare-sheet-card {
    width: min(23rem, calc(100vw - 2rem));
    max-height: min(72vh, 30rem);
    padding: 1.25rem 1.3rem 1.45rem;
  }
  .hsm-rare[data-hsm-rare-kind="badge"] {
    align-items: center;
  }
  .hsm-rare[data-hsm-rare-kind="badge"] .hsm-rare-more {
    display: grid;
    place-items: center;
    width: 1.5rem;
    height: 1.5rem;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(12, 27, 51, 0.06);
    color: var(--hsm-navy);
    cursor: pointer;
  }
  .hsm-rare[data-hsm-rare-kind="badge"] .hsm-rare-more svg {
    width: 0.85rem;
    height: 0.85rem;
  }
  .hsm-rare[data-hsm-rare-kind="badge"][data-hsm-rare-open] {
    cursor: pointer;
  }
}

.hsm-rare-gem {
  position: relative;
  width: 1.85rem;
  height: 1.85rem;
  flex: none;
  display: grid;
  place-items: center;
}
.hsm-rare-ico {
  position: relative;
  z-index: 1;
  width: 1.2rem;
  height: 1.2rem;
  color: var(--hsm-gold);
  display: block;
  transform: scale(0.4);
  opacity: 0;
  transition:
    transform 0.55s cubic-bezier(0.34, 1.45, 0.64, 1) 0.05s,
    opacity 0.35s ease 0.05s;
}
.hsm-rare.is-on .hsm-rare-ico {
  transform: scale(1);
  opacity: 1;
}
.hsm-rare-ico svg {
  width: 100%;
  height: 100%;
  display: block;
  filter: drop-shadow(0 1px 1px rgba(12, 27, 51, 0.12));
}
.hsm-rare-spark {
  position: absolute;
  inset: -0.4rem;
  border-radius: 50%;
  pointer-events: none;
  background:
    radial-gradient(circle at 28% 30%, rgba(226, 200, 120, 0.95) 0 1.6px, transparent 2.6px),
    radial-gradient(circle at 74% 24%, rgba(201, 169, 98, 0.85) 0 1.2px, transparent 2.2px),
    radial-gradient(circle at 76% 70%, rgba(226, 200, 120, 0.7) 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 24% 72%, rgba(168, 137, 63, 0.65) 0 1.2px, transparent 2.2px),
    radial-gradient(circle at 50% 50%, rgba(201, 169, 98, 0.16), transparent 64%);
  opacity: 0;
  transform: scale(0.55);
}
.hsm-rare.is-on .hsm-rare-spark {
  animation: hsmRareSpark 1.15s ease-out 0.12s both;
}
@keyframes hsmRareSpark {
  0% { opacity: 0; transform: scale(0.45); }
  35% { opacity: 1; transform: scale(1.08); }
  100% { opacity: 0.28; transform: scale(1); }
}
.hsm-rare-msg {
  margin: 0;
  flex: 1;
  min-width: 0;
  font-size: 0.92rem;
  font-weight: 650;
  color: var(--hsm-navy);
  line-height: 1.35;
  display: block;
}
.hsm-rare-word {
  display: inline-block;
  white-space: nowrap;
}
.hsm-rare-ch {
  display: inline-block;
  transform: scale(0);
  transform-origin: bottom center;
  opacity: 0;
}
.hsm-rare-sp {
  white-space: pre;
}
.hsm-rare.is-on .hsm-rare-ch {
  animation: hsmRareLetter 0.42s cubic-bezier(0.34, 1.4, 0.64, 1) both;
  animation-delay: calc(0.18s + var(--i) * 0.018s);
}
@keyframes hsmRareLetter {
  0% { opacity: 0; transform: scale(0); }
  70% { opacity: 1; transform: scale(1.12); }
  100% { opacity: 1; transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .hsm-rare,
  .hsm-rare-ico,
  .hsm-rare-ch {
    transition: none !important;
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .hsm-detail .hsm-book-stack > .hsm-rare,
  .hsm-detail .hsm-book-stack > .hsm-rare.is-on {
    transform: none !important;
  }
  .hsm-rare-spark { display: none; }
  .hsm-rare-sheet,
  .hsm-rare-sheet-card {
    animation: none !important;
    transition: none !important;
  }
}

.hsm-chip svg {
  width: 15px;
  height: 15px;
  flex: none;
}
.hsm-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

@media (max-width: 719px) {
  .hsm {
    --hsm-tabbar-space: 0px;
    padding-bottom: var(--hsm-tabbar-space);
  }
  .hsm.is-tabbar-on {
    --hsm-tabbar-space: calc(3.55rem + env(safe-area-inset-bottom));
  }
  .hsm-detail {
    --hsm-tabbar-space: 0px;
    padding-bottom: 0;
  }
  .hsm-footer {
    display: block;
    padding: 1.85rem 0 calc(1.5rem + var(--hsm-tabbar-space, 0px));
    background: #fff;
    border-top: 1px solid var(--hsm-line);
    font-size: 0.88rem;
  }
  .hsm-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.4rem 1.1rem;
  }
  .hsm-footer-grid > div:first-child {
    grid-column: 1 / -1;
    padding-bottom: 0.35rem;
    margin-bottom: 0.15rem;
    border-bottom: 1px solid var(--hsm-line);
  }
  /* Contact sits last: a 174px half-column splits the support address into
     "info@absoluteazerbaijan." / "com". Give it the full row. */
  .hsm-footer-grid > div:last-child {
    grid-column: 1 / -1;
  }
  .hsm-footer .hsm-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
  }
  .hsm-footer .hsm-brand-text {
    display: flex !important;
    flex-direction: column;
  }
  .hsm-footer .hsm-brand img {
    width: 34px;
    height: 34px;
  }
  .hsm-footer-grid > div:first-child > p {
    margin: 0.65rem 0 0.85rem !important;
    font-size: 0.86rem;
    line-height: 1.5;
    max-width: 34rem;
  }
  .hsm-footer h4 {
    margin-bottom: 0.55rem;
    font-size: 0.72rem;
  }
  .hsm-footer li {
    margin: 0.28rem 0;
  }
  .hsm-footer a {
    color: var(--hsm-ink);
    text-decoration: none;
    font-weight: 500;
  }
  .hsm-footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    margin-top: 1.35rem;
    padding-top: 0.95rem;
    font-size: 0.78rem;
  }

  .hsm-tabbar {
    display: flex;
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 70;
    height: calc(3.55rem + env(safe-area-inset-bottom));
    padding: 0.35rem 0.5rem calc(0.35rem + env(safe-area-inset-bottom));
    background: #fff;
    border-top: 1px solid var(--hsm-line);
    justify-content: space-around;
    align-items: flex-start;
    transform: translate3d(0, 110%, 0);
    pointer-events: none;
    visibility: hidden;
    transition: transform 0.28s ease, visibility 0.28s;
  }
  .hsm.is-tabbar-on .hsm-tabbar {
    transform: translate3d(0, 0, 0);
    pointer-events: auto;
    visibility: visible;
  }
  .hsm-detail .hsm-tabbar,
  .hsm.hsm-checkout .hsm-tabbar,
  .hsm:has(.hsm-bookpage) .hsm-tabbar,
  .hsm:has([data-hsm-checkout]) .hsm-tabbar,
  .hsm-bookpage ~ .hsm-tabbar,
  .hsm-bookpage ~ .hsm-footer,
  .hsm.hsm-checkout .hsm-footer {
    display: none !important;
  }
  .hsm-tabbar-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.18rem;
    padding: 0.25rem;
    color: var(--hsm-muted);
    font-size: 0.68rem;
    font-weight: 600;
    text-decoration: none;
  }
  .hsm-tabbar-item svg { width: 22px; height: 22px; }
  .hsm-tabbar-item[aria-current] { color: var(--hsm-navy); }
  .is-search-open .hsm-tabbar,
  .hsm-filters-open .hsm-tabbar { display: none; }

  /* Keep fixed CTAs above the tabbar when it is showing */
  .hsm.is-tabbar-on .hsm-bookpage [data-hsm-pay] .hsm-btn {
    bottom: calc(0.85rem + var(--hsm-tabbar-space));
  }
  .hsm.is-tabbar-on .hsm-bookpage {
    padding-bottom: calc(6rem + var(--hsm-tabbar-space));
  }

  .has-header-filters .hsm-home-soft { display: none !important; }
  .has-header-filters .hsm-header-back {
    display: grid !important;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: var(--hsm-navy);
    flex: 0 0 auto;
    order: 1;
  }
  .has-header-filters .hsm-header-back svg { width: 22px; height: 22px; }
  .has-header-filters .hsm-filter-btn {
    display: grid !important;
    place-items: center;
    position: relative;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid var(--hsm-line);
    background: #fff;
    color: var(--hsm-navy);
    flex: 0 0 auto;
    order: 3;
    box-shadow: 0 2px 10px rgba(12, 27, 51, 0.08);
  }
  .has-header-filters .hsm-filter-btn svg { width: 18px; height: 18px; }
  .hsm-filter-badge {
    position: absolute;
    top: -3px; right: -3px;
    min-width: 1.1rem;
    height: 1.1rem;
    padding: 0 0.25rem;
    border-radius: 999px;
    background: var(--hsm-navy);
    color: #fff;
    font-size: 0.62rem;
    font-weight: 750;
    display: grid;
    place-items: center;
  }
  .hsm-filter-badge[hidden] { display: none !important; }

  .hsm-searchpage {
    display: flex;
    flex-direction: column;
    min-height: calc(100dvh - var(--hsm-header, 118px) - 3.55rem);
    padding: 0;
    gap: 0;
  }
  .hsm-map-col {
    order: 1 !important;
    height: 42vh !important;
    min-height: 220px !important;
    position: relative;
    top: auto;
    z-index: 1;
  }
  .hsm-search-sheet {
    order: 2;
    position: relative;
    z-index: 2;
    margin-top: -1.1rem;
    background: #fff;
    border-radius: 22px 22px 0 0;
    box-shadow: 0 -8px 28px rgba(12, 27, 51, 0.1);
    padding: 0.35rem 0 1rem;
    min-height: 48vh;
  }
  .hsm-sheet-handle {
    display: block;
    width: 2.4rem;
    height: 0.28rem;
    border-radius: 999px;
    background: #d8d2c8;
    margin: 0.35rem auto 0.65rem;
  }
  .hsm-search-col { display: block !important; padding: 0 0.9rem 1rem; overflow: visible; }
  .hsm-count { text-align: center; font-weight: 750; color: var(--hsm-navy); margin: 0 0 0.85rem; }

  .hsm-map-fab,
  .hsm-list-fab {
    display: none;
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: calc(0.85rem + var(--hsm-tabbar-space, 0px));
    z-index: 80;
    align-items: center;
    gap: 0.45rem;
    min-height: 2.7rem;
    padding: 0.55rem 1.15rem;
    border: 0;
    border-radius: 999px;
    background: var(--hsm-navy);
    color: #fff;
    font: inherit;
    font-size: 0.9rem;
    font-weight: 700;
    box-shadow: 0 10px 28px rgba(12, 27, 51, 0.28);
    cursor: pointer;
  }
  .hsm-map-fab svg,
  .hsm-list-fab svg {
    width: 18px;
    height: 18px;
    flex: none;
  }
  .hsm-map-fab:not([hidden]),
  .hsm-list-fab:not([hidden]) {
    display: inline-flex;
  }
  .is-map-full .hsm-map-fab { display: none !important; }
  .is-map-full .hsm-list-fab:not([hidden]) { display: inline-flex; }
  .is-map-full .hsm-tabbar { display: none !important; }
  .hsm.is-map-full {
    --hsm-tabbar-space: env(safe-area-inset-bottom, 0px);
  }

  /* Full-page map: slim chrome only — no filter chip rail eating the map. */
  .is-map-full .hsm-header-filters {
    display: none !important;
  }
  .hsm.is-map-full.has-header-filters {
    --hsm-header: calc(3.6rem + env(safe-area-inset-top, 0px));
  }
  .is-map-full {
    overflow: hidden;
  }
  .is-map-full .hsm-header {
    z-index: 90;
    border-bottom: 0;
    box-shadow: 0 1px 0 rgba(12, 27, 51, 0.07);
    background: #fff;
    padding-top: env(safe-area-inset-top, 0px);
    padding-bottom: 0.55rem;
  }
  .is-map-full .hsm-header-inner {
    min-height: 3.05rem;
    align-items: center;
  }
  .is-map-full .hsm-header-summary {
    box-shadow: 0 2px 12px rgba(12, 27, 51, 0.1);
  }
  .is-map-full .hsm-header-offset {
    display: none !important;
    height: 0 !important;
  }
  .is-map-full .hsm-searchpage {
    position: fixed;
    inset: var(--hsm-header) 0 0;
    z-index: 55;
    min-height: 0;
    height: auto;
    background: #d9e4d4;
    padding: 0;
  }
  .is-map-full .hsm-map-col {
    order: 1 !important;
    position: absolute !important;
    inset: 0 !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    z-index: 1;
    border-radius: 0;
  }
  .is-map-full .hsm-search-sheet {
    display: none !important;
  }
  .is-map-full .hsm-map {
    touch-action: none;
  }
  .is-map-full .hsm-list-fab:not([hidden]) {
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    z-index: 95;
  }
  .is-map-full .leaflet-top.leaflet-left {
    top: 0.65rem;
    left: 0.65rem;
  }

  html.hsm-map-lock,
  html.hsm-map-lock body {
    overflow: hidden;
    touch-action: none;
  }

  .hsm-filters-sheet:not([hidden]) {
    position: fixed;
    inset: 0;
    z-index: 130;
    background: rgba(12, 27, 51, 0.45);
    display: flex;
    align-items: flex-end;
    justify-content: stretch;
    padding: 0;
  }
  .hsm-filters-panel {
    width: 100%;
    max-height: min(94dvh, 920px);
    border-radius: 22px 22px 0 0;
    box-shadow: none;
  }
  .hsm-filters-head {
    padding: 0.85rem 1rem;
  }
  .hsm-filters-body {
    padding: 1rem 1.1rem 1.4rem;
  }
  .hsm-filters-foot {
    padding: 0.95rem 1.15rem calc(1.05rem + env(safe-area-inset-bottom, 0px));
  }
  .hsm-filters-search {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    border: 1px solid var(--hsm-line);
    border-radius: 999px;
    padding: 0.7rem 1rem;
    margin-bottom: 1.2rem;
    background: #faf9f6;
  }
  .hsm-filters-search svg { width: 16px; height: 16px; color: var(--hsm-muted); flex: none; }
  .hsm-filters-search input {
    border: 0; outline: none; width: 100%; font: inherit; background: transparent;
    color: var(--hsm-navy);
  }
  .hsm-filters-sec { margin-bottom: 1.45rem; }
  .hsm-filters-sec[hidden] { display: none !important; }
  .hsm-filters-sec h3 { margin: 0 0 0.75rem; font-size: 1.05rem; color: var(--hsm-navy); }
  .hsm-filters-lead {
    margin: 0 0 0.75rem;
    color: var(--hsm-muted);
    font-size: 0.86rem;
  }
  .hsm-filters-sec > h3 + .hsm-filters-lead { margin-top: -0.35rem; }
  .hsm-filters-selected[hidden] { display: none !important; }
  .hsm-selected-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
  }
  .hsm-selected-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.7rem 0.55rem 0.9rem;
    border: 1.5px solid var(--hsm-navy);
    border-radius: 999px;
    background: #fff;
    font: inherit;
    font-size: 0.88rem;
    font-weight: 650;
    color: var(--hsm-navy);
  }
  .hsm-selected-chip span { line-height: 1.2; }
  .hsm-selected-chip .hsm-selected-x {
    width: 1.35rem;
    height: 1.35rem;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--hsm-navy);
    font-size: 1.05rem;
    line-height: 1;
    display: grid;
    place-items: center;
    padding: 0;
  }
  .hsm-filter-tiles {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
  }
  .hsm-filter-tile {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.55rem;
    padding: 0.85rem 0.7rem;
    border: 1px solid var(--hsm-line);
    border-radius: 16px;
    background: #fff;
    text-align: left;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 650;
    color: var(--hsm-navy);
  }
  .hsm-filter-tile[hidden],
  .hsm-filter-pill[hidden],
  .hsm-standout-card[hidden] { display: none !important; }
  .hsm-filter-tile.is-on,
  .hsm-filter-pill.is-on,
  .hsm-standout-card.is-on {
    border-color: var(--hsm-navy);
    box-shadow: inset 0 0 0 1px var(--hsm-navy);
  }
  .hsm-filter-tile-ico {
    width: 2.35rem; height: 2.35rem;
    display: grid; place-items: center;
    border-radius: 50%;
    background: #eef1f6;
    color: var(--hsm-navy);
  }
  .hsm-filter-tile-ico svg { width: 1.2rem; height: 1.2rem; }
  .hsm-filter-tile[data-filter-tone="blue"] .hsm-filter-tile-ico { color: #2f6fed; background: #e8f0fe; }
  .hsm-filter-tile[data-filter-tone="gold"] .hsm-filter-tile-ico { color: #b0892f; background: #f7efd9; }
  .hsm-filter-tile[data-filter-tone="coral"] .hsm-filter-tile-ico { color: #d9654a; background: #fdeee9; }
  .hsm-filter-tile[data-filter-tone="rose"] .hsm-filter-tile-ico { color: #d94874; background: #fce7ef; }
  .hsm-filter-tile[data-filter-tone="teal"] .hsm-filter-tile-ico { color: #0e9a93; background: #e6f7f6; }
  .hsm-filter-tile[data-filter-tone="violet"] .hsm-filter-tile-ico { color: #6f57c2; background: #f0ebfa; }
  .hsm-filter-tile[data-filter-tone="sky"] .hsm-filter-tile-ico { color: #2f8fdb; background: #e7f4fc; }
  .hsm-filter-tile[data-filter-tone="amber"] .hsm-filter-tile-ico { color: #c2811a; background: #f8efd8; }
  .hsm-filter-tile[data-filter-tone="slate"] .hsm-filter-tile-ico { color: #4b5c78; background: #eef1f5; }
  .hsm-filter-tile[data-filter-tone="cyan"] .hsm-filter-tile-ico { color: #1a9bb5; background: #e5f6fa; }
  .hsm-filter-tile[data-filter-tone="sea"] .hsm-filter-tile-ico { color: #1d7a70; background: #e5f4f1; }
  .hsm-filter-tile[data-filter-tone="green"] .hsm-filter-tile-ico { color: #2f8a4c; background: #e8f5ec; }
  .hsm-place-seg {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border: 1px solid var(--hsm-line);
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
  }
  .hsm-place-seg button {
    border: 0;
    border-right: 1px solid var(--hsm-line);
    background: #fff;
    padding: 0.85rem 0.2rem;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--hsm-navy);
    position: relative;
    z-index: 0;
  }
  .hsm-place-seg button:first-child {
    border-radius: 13px 0 0 13px;
  }
  .hsm-place-seg button:last-child {
    border-right: 0;
    border-radius: 0 13px 13px 0;
  }
  .hsm-place-seg button.is-on {
    z-index: 1;
    outline: none;
    background: #f3f5f8;
    box-shadow: inset 0 0 0 2px var(--hsm-navy);
  }
  .hsm-price-bars {
    display: flex;
    align-items: flex-end;
    gap: 3px;
    height: 4.5rem;
    margin-bottom: 0.85rem;
  }
  .hsm-price-bars i {
    flex: 1;
    display: block;
    border-radius: 3px 3px 0 0;
    background: linear-gradient(180deg, #dfc588 0%, #c9a962 55%, #a8883f 100%);
    opacity: 0.92;
    height: 40%;
  }
  .hsm-price-bars i:nth-child(odd) { height: 35%; }
  .hsm-price-bars i:nth-child(3n) { height: 62%; }
  .hsm-price-bars i:nth-child(4n) { height: 88%; }
  .hsm-price-bars i:nth-child(5n) { height: 48%; }
  .hsm-price-inputs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.7rem;
  }
  .hsm-price-inputs label {
    display: flex; flex-direction: column; gap: 0.3rem;
    font-size: 0.72rem; font-weight: 650; color: var(--hsm-muted);
  }
  .hsm-price-inputs input {
    border: 1px solid var(--hsm-line);
    border-radius: 999px;
    padding: 0.7rem 0.9rem;
    font: inherit;
    font-weight: 650;
    color: var(--hsm-navy);
  }
  .hsm-room-rows { display: flex; flex-direction: column; gap: 0.9rem; }
  .hsm-room-row {
    display: flex; align-items: center; justify-content: space-between;
    font-weight: 650; color: var(--hsm-navy);
  }
  .hsm-room-row .hsm-stepper {
    display: inline-flex; align-items: center; gap: 0.65rem;
  }
  .hsm-room-row .hsm-stepper button {
    width: 2rem; height: 2rem; border-radius: 50%;
    border: 1px solid var(--hsm-line); background: #fff; font-size: 1.1rem;
  }
  .hsm-room-row .hsm-stepper em { font-style: normal; min-width: 2.2rem; text-align: center; }
  .hsm-filter-pills {
    display: flex; flex-wrap: wrap; gap: 0.5rem;
  }
  .hsm-filter-pill {
    display: inline-flex; align-items: center; gap: 0.5rem;
    padding: 0.72rem 0.95rem 0.72rem 0.78rem;
    border: 1px solid var(--hsm-line);
    border-radius: 999px;
    background: #fff;
    font: inherit; font-size: 0.88rem; font-weight: 650;
    color: var(--hsm-navy);
  }
  .hsm-filter-pill-ico {
    width: 1.55rem;
    height: 1.55rem;
    display: grid;
    place-items: center;
    flex: none;
  }
  .hsm-filter-pill-ico svg,
  .hsm-filter-pill svg { width: 1.2rem; height: 1.2rem; display: block; }
  .hsm-filter-pill.is-badge .hsm-filter-pill-ico {
    width: 1.9rem; height: 1.9rem; background: transparent;
  }
  .hsm-filter-pill-ico img { width: 1.8rem; height: 1.8rem; object-fit: contain; display: block; }
  .hsm-filter-pill[data-filter-tone="blue"] .hsm-filter-pill-ico,
  .hsm-filter-pill[data-filter-tone="blue"] svg { color: #2f6fed; }
  .hsm-filter-pill[data-filter-tone="gold"] .hsm-filter-pill-ico,
  .hsm-filter-pill[data-filter-tone="gold"] svg { color: #b0892f; }
  .hsm-filter-pill[data-filter-tone="coral"] .hsm-filter-pill-ico,
  .hsm-filter-pill[data-filter-tone="coral"] svg { color: #d9654a; }
  .hsm-filter-pill[data-filter-tone="rose"] .hsm-filter-pill-ico,
  .hsm-filter-pill[data-filter-tone="rose"] svg { color: #d94874; }
  .hsm-filter-pill[data-filter-tone="teal"] .hsm-filter-pill-ico,
  .hsm-filter-pill[data-filter-tone="teal"] svg { color: #0e9a93; }
  .hsm-filter-pill[data-filter-tone="violet"] .hsm-filter-pill-ico,
  .hsm-filter-pill[data-filter-tone="violet"] svg { color: #6f57c2; }
  .hsm-filter-pill[data-filter-tone="sky"] .hsm-filter-pill-ico,
  .hsm-filter-pill[data-filter-tone="sky"] svg { color: #2f8fdb; }
  .hsm-filter-pill[data-filter-tone="amber"] .hsm-filter-pill-ico,
  .hsm-filter-pill[data-filter-tone="amber"] svg { color: #c2811a; }
  .hsm-filter-pill[data-filter-tone="slate"] .hsm-filter-pill-ico,
  .hsm-filter-pill[data-filter-tone="slate"] svg { color: #4b5c78; }
  .hsm-filter-pill[data-filter-tone="cyan"] .hsm-filter-pill-ico,
  .hsm-filter-pill[data-filter-tone="cyan"] svg { color: #1a9bb5; }
  .hsm-filter-pill[data-filter-tone="sea"] .hsm-filter-pill-ico,
  .hsm-filter-pill[data-filter-tone="sea"] svg { color: #1d7a70; }
  .hsm-filter-pill[data-filter-tone="green"] .hsm-filter-pill-ico,
  .hsm-filter-pill[data-filter-tone="green"] svg { color: #2f8a4c; }
  .hsm-standout { display: grid; gap: 0.65rem; }
  .hsm-standout-card {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    text-align: left;
    padding: 1rem 1.05rem;
    border: 1px solid var(--hsm-line);
    border-radius: 16px;
    background: #fff;
    font: inherit;
  }
  .hsm-standout-ico {
    width: 2.55rem;
    height: 2.55rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    flex: none;
    background: #eef1f6;
    color: var(--hsm-navy);
  }
  .hsm-standout-ico svg { width: 1.35rem; height: 1.35rem; display: block; }
  .hsm-standout-card[data-filter-tone="rose"] .hsm-standout-ico {
    color: #d94874;
    background: #fce7ef;
  }
  .hsm-standout-card[data-filter-tone="gold"] .hsm-standout-ico {
    color: #b0892f;
    background: #f7efd9;
  }
  .hsm-standout-copy { min-width: 0; }
  .hsm-standout-card strong { display: block; color: var(--hsm-navy); margin-bottom: 0.2rem; font-size: 0.98rem; }
  .hsm-standout-card em { color: var(--hsm-muted); font-style: normal; font-size: 0.86rem; line-height: 1.35; }
  .hsm-filters-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    flex: none;
    padding: 0.95rem 1.15rem calc(1.05rem + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--hsm-line);
    background: #fff;
  }
  .hsm-filters-foot .hsm-search-clear {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    white-space: nowrap;
    min-height: 48px;
    padding: 0 0.25rem;
    margin: 0;
    line-height: 1.15;
    text-underline-offset: 0.2em;
  }
  .hsm-filters-foot .hsm-btn {
    width: auto;
    min-width: 10.5rem;
    max-width: none;
    height: 48px;
    min-height: 48px;
    padding: 0 1.35rem;
    border-radius: 999px;
    flex: 0 0 auto;
    margin-left: auto;
    line-height: 1;
    box-sizing: border-box;
  }
  .hsm-btn-navy {
    background: var(--hsm-navy); color: #fff; border: 0;
    font-weight: 700;
  }

  html.hsm-filters-lock { overflow: hidden; }
}


/* AbsoluteCover protect sheet (checkout) */
button.hsm-cover-open.hsm-inline {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  font: inherit;
  font-weight: 700;
  color: var(--hsm-navy);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.hsm-cover-sheet {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: grid;
  place-items: end center;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(12, 27, 51, 0.45);
}
.hsm-cover-sheet[hidden] {
  display: none !important;
}
.hsm-cover-sheet-card {
  position: relative;
  width: min(100%, 34rem);
  max-height: min(88vh, 40rem);
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  border-radius: 1.15rem 1.15rem 0 0;
  background: #fff;
  color: var(--hsm-navy);
  box-shadow: 0 -10px 36px rgba(12, 27, 51, 0.2);
  overflow: hidden;
}
.hsm-cover-sheet-card > h2 {
  flex: none;
  margin: 0;
  padding: 1.1rem 3rem 0.85rem 1.2rem;
  font-size: 1.12rem;
  font-weight: 750;
  letter-spacing: -0.02em;
  line-height: 1.25;
  border-bottom: 1px solid var(--hsm-line);
}
.hsm-cover-sheet-body {
  flex: 1;
  min-height: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  padding: 1rem 1.2rem 1.5rem;
}
.hsm-cover-sheet-body h3 {
  margin: 1.15rem 0 0.45rem;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.3;
}
.hsm-cover-sheet-body h3:first-of-type {
  margin-top: 0.35rem;
}
.hsm-cover-sheet-lead {
  margin: 0 0 0.85rem;
  font-size: 0.95rem;
  line-height: 1.5;
  color: color-mix(in srgb, var(--hsm-navy) 88%, white);
}
.hsm-cover-sheet-body p {
  margin: 0 0 0.65rem;
  font-size: 0.92rem;
  line-height: 1.5;
  color: color-mix(in srgb, var(--hsm-navy) 86%, white);
}
.hsm-cover-sheet-body ul {
  margin: 0 0 0.75rem;
  padding-left: 1.15rem;
}
.hsm-cover-sheet-body li {
  margin: 0.28rem 0;
  font-size: 0.92rem;
  line-height: 1.45;
}
.hsm-cover-steps {
  display: grid;
  gap: 0.65rem;
  margin: 0.5rem 0 0.85rem;
}
.hsm-cover-step {
  padding: 0.7rem 0.8rem;
  border: 1px solid var(--hsm-line);
  border-radius: 0.75rem;
  background: color-mix(in srgb, var(--hsm-navy) 3%, white);
}
.hsm-cover-step h4 {
  margin: 0 0 0.25rem;
  font-size: 0.9rem;
  font-weight: 700;
}
.hsm-cover-step p {
  margin: 0;
  font-size: 0.86rem;
}
.hsm-cover-sheet-note {
  margin-top: 0.35rem !important;
  padding-top: 0.85rem;
  border-top: 1px solid var(--hsm-line);
  font-size: 0.84rem !important;
  color: var(--hsm-muted) !important;
}
.hsm-cover-sheet-close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 2;
  width: 1.85rem;
  height: 1.85rem;
  display: grid;
  place-items: center;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(12, 27, 51, 0.06);
  color: var(--hsm-navy);
  font: inherit;
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
}
.hsm-cover-sheet-close:hover,
.hsm-cover-sheet-close:focus-visible {
  background: rgba(12, 27, 51, 0.12);
  outline: none;
}
html.hsm-cover-sheet-lock,
html.hsm-cover-sheet-lock body {
  overflow: hidden;
}
@media (min-width: 720px) {
  .hsm-cover-sheet {
    place-items: center;
    padding: 1.5rem;
  }
  .hsm-cover-sheet-card {
    border-radius: 1rem;
    max-height: min(82vh, 38rem);
  }
}


/* —— Listing book guests popover —— */
.hsm-book-guests {
  position: relative;
}
button.hsm-book-guests-trigger {
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  width: 100%;
  text-align: left;
  font: inherit;
  color: inherit;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.hsm-book-guests-trigger > span {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--hsm-navy);
}
.hsm-book-guests-trigger strong {
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--hsm-ink);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%231a2332' stroke-width='1.6'><path d='M1 1.5 6 6.5 11 1.5'/></svg>");
  background-repeat: no-repeat;
  background-position: right 0.1rem center;
  padding-right: 1.1rem;
  display: block;
}
.hsm-book-guests.is-open .hsm-book-guests-trigger strong {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%231a2332' stroke-width='1.6'><path d='M1 6.5 6 1.5 11 6.5'/></svg>");
}
.hsm-book-guests-pop {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 0.45rem);
  z-index: 80;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 12px 40px rgba(12, 27, 51, 0.18), 0 0 0 1px rgba(12, 27, 51, 0.06);
  padding: 0.35rem 1rem 0.85rem;
  max-height: min(70vh, 28rem);
  overflow: auto;
}
.hsm-book-guests-pop[hidden] {
  display: none !important;
}
.hsm-book-guests.is-open {
  z-index: 90;
}
.hsm-book-box:has(.hsm-book-guests.is-open),
.hsm-book:has(.hsm-book-guests.is-open),
.hsm-book-stack:has(.hsm-book-guests.is-open) {
  z-index: 60;
  overflow: visible;
}
.hsm-book-guests-note {
  margin: 0.55rem 0 0.35rem;
  color: var(--hsm-muted);
  font-size: 0.82rem;
  line-height: 1.45;
}
.hsm-book-guests-foot {
  display: flex;
  justify-content: flex-end;
  padding-top: 0.25rem;
}
.hsm-book-guests-close {
  border: 0;
  background: transparent;
  font: inherit;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
  color: var(--hsm-ink);
  padding: 0.35rem 0.15rem;
}
.hsm-guest-service-link {
  display: inline;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0.12rem 0 0;
  font: inherit;
  font-size: 0.86rem;
  color: var(--hsm-ink);
  text-decoration: underline;
  cursor: pointer;
  text-align: left;
}
.hsm-guest-row .hsm-guest-service-link {
  display: block;
  color: var(--hsm-muted);
}
.hsm-guest-service-link:hover {
  color: var(--hsm-navy);
}

/* —— Service animals soft modal —— */
.hsm-sa-sheet {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  place-items: center;
  padding: 1.25rem;
  background: rgba(12, 27, 51, 0.42);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.hsm-sa-sheet[hidden] { display: none !important; }
html.hsm-sa-open, html.hsm-sa-open body { overflow: hidden; }
.hsm-sa-card {
  position: relative;
  width: min(100%, 34rem);
  background: #fff;
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(12, 27, 51, 0.28);
}
.hsm-sa-close {
  position: absolute;
  top: 0.85rem;
  left: 0.85rem;
  z-index: 2;
  width: 2.1rem;
  height: 2.1rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,0.92);
  color: var(--hsm-ink);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(12,27,51,0.12);
}
.hsm-sa-media {
  aspect-ratio: 16 / 10;
  background: #f3efe6;
  overflow: hidden;
}
.hsm-sa-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hsm-sa-body {
  padding: 1.35rem 1.5rem 1.7rem;
}
.hsm-sa-body h2 {
  margin: 0 0 0.7rem;
  font-size: 1.35rem;
  letter-spacing: -0.02em;
}
.hsm-sa-body p {
  margin: 0 0 0.75rem;
  color: var(--hsm-ink);
  line-height: 1.55;
  font-size: 0.98rem;
}
.hsm-sa-body p:last-child { margin-bottom: 0; }
.hsm-sa-body a {
  color: inherit;
  text-decoration: underline;
  font-weight: 600;
}

/* —— Policy pages —— */
.hsm-policy {
  padding: 2.5rem 0 4.5rem;
  background:
    radial-gradient(1200px 420px at 10% -10%, rgba(201, 169, 98, 0.16), transparent 55%),
    linear-gradient(180deg, #f7f5f0 0%, #fff 38%, #fff 100%);
}
.hsm-policy-wrap {
  max-width: 44rem;
}
.hsm-policy-kicker {
  margin: 0 0 0.55rem;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--hsm-gold, #c9a962);
}
.hsm-policy h1 {
  margin: 0 0 0.85rem;
  font-size: clamp(1.8rem, 3vw, 2.35rem);
  letter-spacing: -0.03em;
  line-height: 1.15;
}
.hsm-policy-lead {
  font-size: 1.08rem;
  line-height: 1.55;
  color: var(--hsm-muted);
  margin: 0 0 1.4rem;
}
.hsm-policy-updated {
  margin: 0 0 1rem;
  font-size: 0.86rem;
  color: var(--hsm-muted);
}
.hsm-policy-toc {
  margin: 0 0 2rem;
  padding: 1.05rem 1.15rem 1.15rem;
  background: #fff;
  border: 1px solid rgba(12, 27, 51, 0.08);
  border-radius: 14px;
}
.hsm-policy-toc p {
  margin: 0 0 0.45rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--hsm-muted);
}
.hsm-policy-toc ol {
  margin: 0;
}
.hsm-policy-toc a {
  color: inherit;
  text-decoration: none;
}
.hsm-policy-toc a:hover {
  text-decoration: underline;
}
.hsm-checkout-legal {
  margin: 0.85rem 0 0;
  font-size: 0.78rem;
  line-height: 1.45;
  color: #5c5c5c;
}
.hsm-checkout-legal a {
  color: inherit;
  text-decoration: underline;
  font-weight: 600;
}
.hsm-policy h2 {
  margin: 2rem 0 0.7rem;
  font-size: 1.25rem;
  letter-spacing: -0.02em;
}
.hsm-policy h3 {
  margin: 1.35rem 0 0.45rem;
  font-size: 1.02rem;
}
.hsm-policy p,
.hsm-policy li {
  line-height: 1.6;
  color: var(--hsm-ink);
  overflow-wrap: anywhere;
}
.hsm-policy ol {
  padding-left: 1.2rem;
}
.hsm-policy-contact {
  margin-top: 2rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--hsm-line);
}

/* Listing calendar guests trigger (mobile) */
.hsm-cal-guests {
  display: none;
}
@media (max-width: 719px) {
  .hsm-cal-guests {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    margin: 0 0 0.85rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--hsm-line);
    border-radius: 14px;
    background: #fff;
    font: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .hsm-cal-guests-label {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
  }
  .hsm-cal-guests-label > span {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--hsm-navy);
  }
  .hsm-cal-guests-label strong {
    font-size: 0.98rem;
    font-weight: 650;
    color: var(--hsm-ink);
  }
  .hsm-cal-guests-chev {
    flex: none;
    width: 0.7rem;
    height: 0.7rem;
    border-right: 2px solid var(--hsm-navy);
    border-bottom: 2px solid var(--hsm-navy);
    transform: rotate(45deg);
    margin-top: -0.25rem;
    opacity: 0.55;
  }
  .hsm-cal-guests.is-open .hsm-cal-guests-chev {
    transform: rotate(-135deg);
    margin-top: 0.2rem;
  }
  .hsm-book-guests-pop,
  .hsm-book-guests-pop.is-ported {
    position: fixed !important;
    left: 0.75rem !important;
    right: 0.75rem !important;
    top: auto !important;
    bottom: calc(var(--hsm-mobile-dock, 5.5rem) + 0.75rem) !important;
    z-index: 120 !important;
    width: auto !important;
    max-width: none !important;
    max-height: min(68vh, 26rem);
    display: block;
  }
  .hsm-book-guests-pop[hidden] {
    display: none !important;
  }
  body.hsm-guests-open {
    overflow: hidden;
  }
  .hsm-sa-card { border-radius: 22px; }
  .hsm-sa-body { padding: 1.15rem 1.15rem 1.4rem; }
}

/* Checkout / reserve in-place edit sheets */
.hsm-edit-sheet {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: grid;
  align-items: end;
  justify-items: center;
  padding: 0;
}
.hsm-edit-sheet[hidden] { display: none !important; }
.hsm-edit-sheet-scrim {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(12, 27, 51, 0.42);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  cursor: pointer;
}
.hsm-edit-sheet-card {
  position: relative;
  z-index: 1;
  width: min(100%, 34rem);
  max-height: min(88vh, 40rem);
  overflow: auto;
  background: #fff;
  border-radius: 22px 22px 0 0;
  padding: 1.15rem 1.2rem calc(1.25rem + env(safe-area-inset-bottom, 0px));
  box-shadow: 0 -12px 40px rgba(12, 27, 51, 0.18);
}
.hsm-edit-sheet-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.hsm-edit-sheet-head h2 {
  margin: 0;
  font-size: 1.15rem;
  color: var(--hsm-navy);
}
.hsm-edit-sheet-x {
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 999px;
  background: var(--hsm-soft, #f3f1ec);
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  color: var(--hsm-ink);
}
.hsm-edit-dates {
  display: grid;
  gap: 0.75rem;
  margin-bottom: 1.15rem;
}
.hsm-edit-date-field {
  display: grid;
  gap: 0.35rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--hsm-navy);
}
.hsm-edit-date-field input {
  font: inherit;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--hsm-ink);
  border: 1px solid var(--hsm-line);
  border-radius: 12px;
  padding: 0.75rem 0.85rem;
  background: #fff;
}
.hsm-edit-guests {
  margin-bottom: 1rem;
}
.hsm-edit-sheet-card .hsm-btn {
  width: 100%;
}
html.hsm-edit-sheet-lock,
html.hsm-edit-sheet-lock body {
  overflow: hidden;
}
@media (min-width: 720px) {
  .hsm-edit-sheet {
    align-items: center;
    padding: 1.25rem;
  }
  .hsm-edit-sheet-card {
    border-radius: 22px;
    padding: 1.35rem 1.4rem 1.4rem;
  }
}
button.hsm-checkout-change {
  border: 0;
  background: #f2f2f2;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
  color: var(--hsm-ink);
  cursor: pointer;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
}


/* Checkout edit range calendar */
.hsm-edit-dates-range {
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--hsm-navy);
}
.hsm-edit-cal {
  margin-bottom: 1rem;
}
.hsm-edit-cal .hsm-cal {
  box-shadow: none;
  border: 0;
  padding: 0;
  background: transparent;
}
.hsm-edit-cal .hsm-cal-months {
  display: grid;
  gap: 0.75rem;
}
.hsm-edit-sheet-card.is-dates {
  width: min(100%, 38rem);
  max-height: min(92vh, 46rem);
}
.hsm-edit-sheet-card.is-dates .hsm-btn[disabled] {
  opacity: 0.45;
  cursor: not-allowed;
}
@media (min-width: 720px) {
  .hsm-edit-sheet-card.is-dates {
    width: min(100%, 44rem);
  }
  .hsm-edit-cal .hsm-cal-months {
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }
}

/* Unavailable fallback banner on search */
.hsm-unavail-banner {
  margin-bottom: 0.75rem;
  border-color: color-mix(in srgb, var(--hsm-gold, #c9a962) 55%, var(--hsm-line));
  background: color-mix(in srgb, var(--hsm-gold, #c9a962) 12%, #fff);
}
.hsm-exp-search-card .hsm-card-media img {
  aspect-ratio: 1;
  object-fit: cover;
  width: 100%;
  display: block;
}


/* === Experience detail v2 (listing-tied booking) === */
.hsm-exp-photos-item { position: relative; overflow: hidden; background: var(--hsm-soft); }
.hsm-exp-photos-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hsm-exp-photos-shell .hsm-photos-more { z-index: 3; }
.hsm-exp-share { justify-content: flex-end; margin-bottom: 0.6rem; }
.hsm-exp-place { margin: 0.35rem 0 0; color: var(--hsm-muted); font-weight: 600; font-size: 0.95rem; }
.hsm-exp-factrows {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.1rem 1.5rem;
  margin: 1.15rem 0 0.35rem;
  padding: 1.15rem 0;
  border-top: 1px solid var(--hsm-line);
  border-bottom: 1px solid var(--hsm-line);
}
.hsm-exp-factrows li {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
  min-width: 0;
  padding: 0;
  border: 0;
}
.hsm-exp-factrows strong { display: block; color: var(--hsm-navy); font-size: 0.95rem; }
.hsm-exp-factrows span { color: var(--hsm-muted); font-size: 0.86rem; line-height: 1.4; }
.hsm-exp-page .hsm-wrap > .hsm-exp-gate { margin: 0.85rem 0 0.2rem; }
@media (max-width: 1119px) {
  .hsm-exp-factrows { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 719px) {
  .hsm-exp-factrows { grid-template-columns: 1fr; }
}
.hsm-exp-fact-ico {
  width: 2.4rem; height: 2.4rem; border-radius: 999px; border: 1px solid var(--hsm-line);
  display: inline-flex; align-items: center; justify-content: center; background: #fff; position: relative;
}
.hsm-exp-fact-ico.is-avatar { border: 0; overflow: hidden; }
.hsm-exp-fact-ico.is-avatar .hsm-avatar { width: 2.4rem; height: 2.4rem; }
.hsm-exp-fact-ico:not(.is-avatar)::before {
  content: ""; width: 1rem; height: 1rem; background: currentColor; color: var(--hsm-navy); opacity: 0.85;
  -webkit-mask: no-repeat center / contain; mask: no-repeat center / contain;
}
.hsm-exp-fact-ico.is-pin::before {
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><path d='M12 21s7-6.2 7-11a7 7 0 1 0-14 0c0 4.8 7 11 7 11z'/><circle cx='12' cy='10' r='2.4'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><path d='M12 21s7-6.2 7-11a7 7 0 1 0-14 0c0 4.8 7 11 7 11z'/><circle cx='12' cy='10' r='2.4'/></svg>");
}
.hsm-exp-fact-ico.is-time::before {
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='12' cy='12' r='8'/><path d='M12 8v4.5L15 15'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='12' cy='12' r='8'/><path d='M12 8v4.5L15 15'/></svg>");
}
.hsm-exp-fact-ico.is-list::before {
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><rect x='5' y='4' width='14' height='16' rx='2'/><path d='M8 9h8M8 13h8M8 17h5'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><rect x='5' y='4' width='14' height='16' rx='2'/><path d='M8 9h8M8 13h8M8 17h5'/></svg>");
}
.hsm-exp-dates-close { display: none; }
/* The card is at its narrowest in the ≥1120px sticky sidebar (~250px of
   content), so the price and the CTA never fit side by side: "From 35 ₼" and
   "/ per guest" split across lines. Stack them at every width, as the
   ≤1119px layout already did. */
.hsm-exp-book-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem 0.8rem;
  margin-bottom: 0.35rem;
}
.hsm-exp-book-top > * { flex: 1 1 100%; min-width: 0; }
.hsm-exp-book-top .hsm-btn { width: 100%; min-width: 0; margin-top: 0; }
/* Free cancellation is a reassurance, not an error — error red read as a
   warning and was the one non-brand colour on the page. */
.hsm-exp-cancel { margin: 0.15rem 0 0; color: var(--hsm-ok); font-weight: 700; font-size: 0.88rem; }
.hsm-exp-pin-cancel { color: var(--hsm-ok) !important; font-weight: 700; }
.hsm-exp-dates-panel { margin-top: 0.85rem; }
.hsm-exp-stay-pick label, .hsm-exp-stay-one { display: block; font-weight: 700; color: var(--hsm-navy); margin-bottom: 0.35rem; }
.hsm-exp-stay-hint { margin: 0 0 0.55rem; color: var(--hsm-muted); font-size: 0.86rem; font-weight: 500; }
.hsm-exp-stay-pick select {
  width: 100%; border: 1px solid var(--hsm-line); border-radius: 12px; padding: 0.7rem 0.85rem;
  font: inherit; background: #fff; margin-bottom: 0.7rem;
}
button.hsm-exp-slot {
  width: 100%; text-align: left; background: #fff; cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
button.hsm-exp-slot.is-on { border-color: var(--hsm-navy); box-shadow: 0 0 0 1px var(--hsm-navy); }
.hsm-exp-slot[hidden],
button.hsm-exp-slot[hidden],
.hsm-exp-show-all[hidden] {
  display: none !important;
}
.hsm-exp-show-all {
  display: block; width: 100%; margin: 0.35rem 0 0.35rem; padding: 0.55rem; border: 0;
  background: transparent; color: var(--hsm-navy); font: inherit; font-weight: 700;
  text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}
.hsm-exp-change-dates {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.85rem;
  margin: 0 0 0.55rem;
  padding: 0.55rem 1rem;
  border: 1px solid var(--hsm-line);
  border-radius: 999px;
  background: #fff;
  color: var(--hsm-navy);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.hsm-exp-change-dates:hover { background: var(--hsm-soft); }
.hsm-exp-guests { margin: 0 0 0.75rem; }
.hsm-exp-guests .hsm-guest-row {
  padding: 0.35rem 0 0.85rem;
  border-bottom: 1px solid var(--hsm-line);
}
.hsm-exp-guests .hsm-stepper button { cursor: pointer; }
.hsm-exp-dates-panel .hsm-btn { width: 100%; margin-top: 0.35rem; text-align: center; }
.hsm-exp-dates-panel .hsm-btn-soft { display: flex; justify-content: center; margin-top: 0.55rem; }
.hsm-exp-dates-panel [data-exp-continue][aria-disabled="true"] { opacity: 0.55; pointer-events: none; }
.hsm-exp-step:not(:last-child)::before {
  content: ""; position: absolute; left: 3.7rem; top: calc(5.6rem + 0.95rem); bottom: -0.95rem;
  width: 1px; background: var(--hsm-line);
}
.hsm-exp-step { position: relative; }
.hsm-exp-meet { margin-top: 1.6rem; }
/* The preceding .hsm-split already draws the section rule; its own border-top
   stacked a second hairline 26px below the first. */
.hsm-split + .hsm-exp-meet { border-top: 0; }
.hsm-exp-page #reviews {
  margin: 0.4rem 0 1.2rem;
  padding: 1.7rem 0 0.2rem;
  border-top: 1px solid var(--hsm-line);
}
.hsm-exp-page #reviews h2 { margin-top: 0; }
.hsm-exp-bodygrid .hsm-exp-know {
  margin-top: 0.35rem;
  padding: 1.7rem 0 0.6rem;
  border-top: 1px solid var(--hsm-line);
}
.hsm-exp-bodygrid .hsm-exp-know-grid {
  grid-template-columns: 1fr;
  gap: 0.2rem 1.2rem;
}
.hsm-exp-know-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.6rem 2.2rem; }
.hsm-exp-know h3 {
  display: flex; align-items: center; gap: 0.55rem; font-size: 1rem; color: var(--hsm-navy); margin: 0.9rem 0 0.35rem;
}
.hsm-exp-know h3:first-child { margin-top: 0; }
.hsm-exp-know p { margin: 0; color: var(--hsm-muted); line-height: 1.5; font-size: 0.92rem; }
.hsm-exp-know-ico {
  width: 1.35rem; height: 1.35rem; flex: 0 0 auto; color: var(--hsm-navy); background: currentColor;
  -webkit-mask: no-repeat center / contain; mask: no-repeat center / contain;
}
.hsm-exp-know-ico.is-guests {
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='9' cy='8' r='3'/><circle cx='16' cy='9' r='2.4'/><path d='M3.5 19c.8-3 2.9-4.5 5.5-4.5S13.7 16 14.5 19M14 14.6c1.8-.2 3.5.7 4.5 2.9'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='9' cy='8' r='3'/><circle cx='16' cy='9' r='2.4'/><path d='M3.5 19c.8-3 2.9-4.5 5.5-4.5S13.7 16 14.5 19M14 14.6c1.8-.2 3.5.7 4.5 2.9'/></svg>");
}
.hsm-exp-know-ico.is-check {
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='12' cy='12' r='8'/><path d='m8.5 12.2 2.3 2.3 4.7-4.8'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='12' cy='12' r='8'/><path d='m8.5 12.2 2.3 2.3 4.7-4.8'/></svg>");
}
.hsm-exp-know-ico.is-walk {
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='13.5' cy='5' r='2'/><path d='m8 21 2.2-7 2.3 2.2L15 21M10.2 14l2.2-4.2 3.1 1.4 2.5-3'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='13.5' cy='5' r='2'/><path d='m8 21 2.2-7 2.3 2.2L15 21M10.2 14l2.2-4.2 3.1 1.4 2.5-3'/></svg>");
}
.hsm-exp-know-ico.is-access {
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='12' cy='5.5' r='2'/><path d='M6 11h8l1.5 8M9.5 11.2 8 19M11 14.5h4'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='12' cy='5.5' r='2'/><path d='M6 11h8l1.5 8M9.5 11.2 8 19M11 14.5h4'/></svg>");
}
.hsm-exp-know-ico.is-bag {
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><rect x='4' y='8' width='16' height='12' rx='2'/><path d='M9 8V6.5A3 3 0 0 1 15 6.5V8'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><rect x='4' y='8' width='16' height='12' rx='2'/><path d='M9 8V6.5A3 3 0 0 1 15 6.5V8'/></svg>");
}
.hsm-exp-know-ico.is-cal {
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><rect x='4' y='5' width='16' height='15' rx='2'/><path d='M8 3v4M16 3v4M4 10h16M9 14l6 0'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><rect x='4' y='5' width='16' height='15' rx='2'/><path d='M8 3v4M16 3v4M4 10h16M9 14l6 0'/></svg>");
}
.hsm-exp-more { margin: 2.4rem 0 1rem; }
.hsm-exp-return {
  display: none;
}
.hsm-exp-return:not([hidden]) {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.4rem;
  box-sizing: border-box;
  width: auto;
  max-width: min(42rem, 100%);
  margin: 0 0 0.7rem;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--hsm-muted);
  font-weight: 650;
  font-size: 0.92rem;
  line-height: 1.35;
  letter-spacing: -0.01em;
  text-decoration: none;
  box-shadow: none;
}
.hsm-exp-return:not([hidden]):hover {
  color: var(--hsm-navy);
}
.hsm-exp-return svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  margin-top: 0.12rem;
}
.hsm-exp-return span {
  min-width: 0;
  overflow: visible;
  text-overflow: unset;
  white-space: normal;
}
.hsm-exp-stay-sheet[hidden] { display: none !important; }
.hsm-exp-stay-sheet {
  position: fixed;
  inset: 0;
  z-index: 92;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.hsm-exp-stay-sheet-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(12, 27, 51, 0.42);
}
.hsm-exp-stay-sheet-card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 28rem;
  max-height: min(88vh, 40rem);
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 1.15rem 1.15rem 0 0;
  box-shadow: 0 -16px 40px rgba(12, 27, 51, 0.18);
}
.hsm-exp-stay-sheet-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem 1.1rem 0.7rem;
}
.hsm-exp-stay-sheet-copy {
  min-width: 0;
  flex: 1;
}
.hsm-exp-stay-sheet-head h2 {
  margin: 0;
  font-size: 1.12rem;
  color: var(--hsm-navy);
}
.hsm-exp-stay-sheet-lead {
  display: none;
  margin: 0.28rem 0 0;
  color: var(--hsm-muted);
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.4;
}
.hsm-exp-stay-sheet-x {
  width: 2.2rem;
  height: 2.2rem;
  border: 0;
  border-radius: 999px;
  background: var(--hsm-soft, #f3f1ec);
  color: var(--hsm-ink);
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
}
.hsm-exp-stay-sheet-list {
  overflow: auto;
  padding: 0 0.85rem 0.4rem;
  min-height: 0;
  flex: 1;
}
.hsm-exp-stay-opt {
  display: grid;
  grid-template-columns: 72px 1fr 1.4rem;
  gap: 0.75rem;
  align-items: center;
  padding: 0.7rem 0.7rem;
  margin: 0 0 0.55rem;
  border: 1px solid var(--hsm-line);
  border-radius: 14px;
  cursor: pointer;
  background: #fff;
}
.hsm-exp-stay-opt.is-on {
  border-color: var(--hsm-navy);
  box-shadow: 0 0 0 1px var(--hsm-navy);
}
.hsm-exp-stay-opt.is-off { opacity: 0.45; pointer-events: none; }
.hsm-exp-stay-opt input { position: absolute; opacity: 0; pointer-events: none; }
.hsm-exp-stay-opt img,
.hsm-exp-stay-opt-ph {
  width: 72px;
  height: 64px;
  object-fit: cover;
  border-radius: 10px;
  background: var(--hsm-soft);
}
.hsm-exp-stay-opt-body { min-width: 0; }
.hsm-exp-stay-opt-body strong {
  display: block;
  color: var(--hsm-navy);
  font-size: 0.95rem;
  line-height: 1.25;
}
.hsm-exp-stay-opt-body span {
  display: block;
  color: var(--hsm-muted);
  font-size: 0.82rem;
  margin-top: 0.12rem;
}
.hsm-exp-stay-tick {
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 999px;
  border: 1.5px solid var(--hsm-line);
  justify-self: end;
}
.hsm-exp-stay-opt.is-on .hsm-exp-stay-tick {
  border-color: var(--hsm-navy);
  background: var(--hsm-navy);
  box-shadow: inset 0 0 0 3px #fff;
}
.hsm-exp-stay-sheet-foot {
  padding: 0.75rem 1.1rem calc(1rem + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--hsm-line);
}
.hsm-exp-stay-sheet-foot[hidden] { display: none !important; }
.hsm-exp-stay-sheet-foot .hsm-btn { width: 100%; margin: 0; }
.hsm-co-exp-preview[hidden] { display: none !important; }
.hsm-co-exp-preview {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  margin: 0 0 0.15rem;
  padding: 0.7rem 0 1rem;
  border-bottom: 1px solid var(--hsm-line);
}
/* Absolute Lux tip belongs with the stay/experience preview — no hairline between */
.hsm-co-exp-preview:not([hidden]):has(+ .hsm-co-stay-tips),
.hsm-co-exp-preview:not([hidden]):has(+ .hsm-co-review-diamond) {
  border-bottom: 0;
  margin-bottom: 0;
  padding-bottom: 0.55rem;
}
.hsm-co-exp-preview:not([hidden]) + .hsm-co-stay-tips,
.hsm-co-exp-preview:not([hidden]) + .hsm-co-review-diamond {
  margin-top: 0;
}
.hsm-co-exp-preview:not([hidden]) + .hsm-co-review-diamond .hsm-co-stay-tips {
  margin-top: 0;
}
.hsm-co-review-card .hsm-summary-top:has(+ .hsm-co-exp-preview:not([hidden])),
.hsm-co-side-card .hsm-summary-top:has(+ .hsm-co-exp-preview:not([hidden])),
.hsm-checkout-pay-review .hsm-summary-top:has(+ .hsm-co-exp-preview:not([hidden])) {
  border-bottom: 0;
  padding-bottom: 0.7rem;
}
.hsm-bookpage .hsm-summary-top,
.hsm-bookpage .hsm-co-exp-mini {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 0.75rem;
  align-items: center;
}
.hsm-bookpage .hsm-summary-top img,
.hsm-bookpage .hsm-co-exp-mini img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 12px;
  box-shadow: 0 6px 16px rgba(12, 27, 51, 0.1);
}
.hsm-co-pair-kicker,
.hsm-co-exp-kicker {
  margin: 0 0 0.12rem;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--hsm-muted);
}
.hsm-bookpage .hsm-summary-top strong,
.hsm-bookpage .hsm-co-exp-mini strong {
  display: block;
  font-size: 0.95rem;
  line-height: 1.25;
  color: var(--hsm-navy);
}
.hsm-co-exp-mini span {
  display: block;
  margin-top: 0.12rem;
  font-size: 0.82rem;
  color: var(--hsm-muted);
}
.hsm-bookpage .hsm-co-review-card .hsm-summary-top,
.hsm-bookpage .hsm-co-side-card .hsm-summary-top,
.hsm-bookpage .hsm-checkout-pay-review .hsm-summary-top {
  grid-template-columns: 64px minmax(0, 1fr);
}
.hsm-bookpage .hsm-co-review-card .hsm-summary-top img,
.hsm-bookpage .hsm-co-side-card .hsm-summary-top img,
.hsm-bookpage .hsm-checkout-pay-review .hsm-summary-top img {
  width: 64px;
  height: 64px;
  border-radius: 12px;
}
body.is-exp-stay-open { overflow: hidden; }
@media (min-width: 720px) {
  .hsm-exp-stay-sheet { align-items: center; }
  .hsm-exp-stay-sheet-card {
    border-radius: 18px;
    max-height: min(80vh, 38rem);
  }
  .hsm-exp-stay-sheet.is-previews .hsm-exp-stay-sheet-card {
    width: min(72rem, calc(100vw - 3rem));
    max-width: none;
    max-height: min(90vh, 58rem);
    border-radius: 22px;
    box-shadow: 0 28px 70px rgba(12, 27, 51, 0.22);
  }
  .hsm-exp-stay-sheet.is-previews[data-stay-count="2"] .hsm-exp-stay-sheet-card {
    width: min(54rem, calc(100vw - 3rem));
  }
  .hsm-exp-stay-sheet.is-previews[data-stay-count="3"] .hsm-exp-stay-sheet-card {
    width: min(64rem, calc(100vw - 3rem));
  }
  .hsm-exp-stay-sheet.is-previews .hsm-exp-stay-sheet-head {
    align-items: flex-start;
    padding: 1.05rem 1.3rem 0.7rem;
  }
  .hsm-exp-stay-sheet.is-previews .hsm-exp-stay-sheet-head h2 {
    font-size: 1.42rem;
    letter-spacing: -0.03em;
    line-height: 1.2;
  }
  .hsm-exp-stay-sheet.is-previews .hsm-exp-stay-sheet-lead:not(:empty) {
    display: block;
    max-width: 38rem;
  }
  .hsm-exp-stay-sheet.is-previews .hsm-exp-stay-sheet-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr));
    grid-auto-rows: max-content;
    align-content: start;
    gap: 1.05rem;
    padding: 0 1.3rem 1.4rem;
  }
  .hsm-exp-stay-sheet.is-previews .hsm-exp-stay-sheet-list[data-count="2"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .hsm-exp-stay-sheet.is-previews .hsm-exp-stay-sheet-foot { display: none !important; }
  .hsm-exp-stay-preview {
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: max-content;
    overflow: hidden;
    border: 1px solid var(--hsm-line);
    border-radius: 18px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(12, 27, 51, 0.05);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
  }
  .hsm-exp-stay-preview:hover {
    transform: translateY(-3px);
    border-color: rgba(12, 27, 51, 0.14);
    box-shadow: 0 18px 40px rgba(12, 27, 51, 0.12);
  }
  .hsm-exp-stay-preview:focus-visible {
    outline: 2px solid var(--hsm-gold);
    outline-offset: 3px;
  }
  .hsm-exp-stay-preview.is-off {
    opacity: 0.48;
    pointer-events: none;
  }
  .hsm-exp-stay-preview-media {
    flex: none;
    aspect-ratio: 16 / 10;
    background: var(--hsm-soft);
    overflow: hidden;
  }
  .hsm-exp-stay-preview-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .hsm-exp-stay-preview-thumbs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.28rem;
    padding: 0.28rem 0.28rem 0;
  }
  .hsm-exp-stay-preview-thumb {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 8px;
    background: var(--hsm-soft);
  }
  .hsm-exp-stay-preview-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .hsm-exp-stay-preview-more {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: rgba(12, 27, 51, 0.42);
    color: #fff;
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: -0.02em;
  }
  .hsm-exp-stay-preview-body {
    display: flex;
    flex-direction: column;
    gap: 0.16rem;
    flex: 1;
    padding: 0.78rem 0.9rem 0.9rem;
  }
  .hsm-exp-stay-preview-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem;
  }
  .hsm-exp-stay-preview-top strong {
    min-width: 0;
    color: var(--hsm-navy);
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.25;
  }
  .hsm-exp-stay-preview-rating {
    flex: none;
    color: var(--hsm-navy);
    font-size: 0.84rem;
    font-weight: 750;
    white-space: nowrap;
  }
  .hsm-exp-stay-preview-rating em {
    font-style: normal;
    font-weight: 650;
    color: var(--hsm-muted);
  }
  .hsm-exp-stay-preview-loc,
  .hsm-exp-stay-preview-meta {
    color: var(--hsm-muted);
    font-size: 0.84rem;
    font-weight: 550;
    line-height: 1.35;
  }
  .hsm-exp-stay-preview-meta b {
    color: var(--hsm-navy);
    font-weight: 750;
  }
  .hsm-exp-stay-preview-meta s {
    color: var(--hsm-muted);
    font-weight: 550;
  }
  .hsm-exp-stay-preview-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 2.5rem;
    margin-top: 0.58rem;
    padding: 0.62rem 1rem;
    border: 1px solid transparent;
    border-radius: 999px;
    background: var(--hsm-soft, #f3f1ec);
    color: var(--hsm-navy);
    font-size: 0.92rem;
    font-weight: 750;
    letter-spacing: -0.01em;
    box-shadow: none;
    pointer-events: none;
    transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
  }
  .hsm-exp-stay-preview:hover .hsm-exp-stay-preview-cta {
    background: var(--hsm-navy);
    border-color: var(--hsm-navy);
    color: #fff;
    box-shadow: 0 8px 18px rgba(12, 27, 51, 0.16);
  }
  .hsm-exp-stay-sheet.is-continue .hsm-exp-stay-preview-cta {
    background: var(--hsm-gold);
    border-color: transparent;
    color: var(--hsm-navy);
    box-shadow: 0 4px 14px rgba(12, 27, 51, 0.12);
  }
  .hsm-exp-stay-sheet.is-continue .hsm-exp-stay-preview:hover .hsm-exp-stay-preview-cta {
    background: #d8bc78;
    border-color: transparent;
    color: var(--hsm-navy);
  }
}
@media (max-width: 719px) {
  .hsm-detail.is-from-exp .hsm-listing-chrome [data-hsm-back],
  .hsm-detail.is-from-book .hsm-listing-chrome [data-hsm-back] {
    visibility: hidden;
  }
}
.hsm-exp-backlink { font-weight: 700; color: var(--hsm-navy); text-decoration: none; }
.hsm-exp-backlink:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1119px) {
  .hsm-exp-know-grid { grid-template-columns: 1fr; }
  .hsm-exp-step:not(:last-child)::before { display: none; }
}


/* === Confirm & pay desktop accordion === */
.hsm-checkout-titlebar {
  display: none;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 1.1rem;
}
.hsm-checkout-title-back {
  display: grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  border: 0;
  background: transparent;
  color: var(--hsm-navy);
  cursor: pointer;
  border-radius: 999px;
  padding: 0;
}
.hsm-checkout-title-back:hover { background: var(--hsm-soft); }
.hsm-checkout-title-back svg { width: 1.35rem; height: 1.35rem; }
.hsm-checkout-titlebar .hsm-checkout-title {
  margin: 0;
  font-size: 1.85rem;
  font-weight: 750;
  color: var(--hsm-ink, #222);
}

.hsm-co-accord { display: grid; gap: 0.85rem; }
.hsm-co-panel {
  border: 1px solid var(--hsm-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(12, 27, 51, 0.04);
  overflow: hidden;
  scroll-margin-top: 5.5rem;
}
.hsm-co-panel.is-open {
  box-shadow: 0 8px 28px rgba(12, 27, 51, 0.08);
  overflow: visible;
}
.hsm-co-panel-head {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0;
  padding: 1.05rem 1.15rem;
  border: 0;
  background: transparent;
  color: var(--hsm-ink);
  font: inherit;
  font-size: 1.12rem;
  font-weight: 750;
  text-align: left;
  cursor: pointer;
}
.hsm-co-panel.is-open .hsm-co-panel-head {
  padding-bottom: 0.35rem;
}
.hsm-co-num { margin-right: 0.2rem; }
.hsm-co-panel-body {
  padding: 0.35rem 1.15rem 1.2rem;
}
.hsm-co-lead {
  margin: 0 0 0.85rem;
  color: var(--hsm-muted);
  font-size: 0.92rem;
}
.hsm-co-fields { grid-template-columns: 1fr; }
.hsm-co-panel-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.9rem;
  margin-top: 1rem;
}
.hsm-co-panel-actions .hsm-btn { min-width: 7.5rem; }
.hsm-co-skip {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--hsm-navy);
  font: inherit;
  font-size: 0.92rem;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.hsm-co-included-transfer {
  margin: 0 0 1.15rem;
  padding: 0.95rem 1rem 1.05rem;
  border: 1px solid var(--hsm-line);
  border-radius: 16px;
  background: #fff;
}

/* Checkout add-ons: one outer panel, open floating content inside. */
.hsm-bookpage [data-co-panel="addons"] .hsm-co-panel-body,
[data-hsm-postpay-addons] {
  --hsm-addons-gap: 1.85rem;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-step,
[data-hsm-postpay-addons] .hsm-step {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding: 0;
  margin: 0;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-step + .hsm-step,
[data-hsm-postpay-addons] .hsm-step + .hsm-step {
  margin-top: var(--hsm-addons-gap);
  padding-top: 0;
  border: 0;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-co-included-transfer,
[data-hsm-postpay-addons] .hsm-co-included-transfer {
  margin: 0 0 var(--hsm-addons-gap);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-step h2,
[data-hsm-postpay-addons] .hsm-step h2,
.hsm-bookpage [data-co-panel="addons"] .hsm-co-exp-added h2,
.hsm-bookpage [data-co-panel="addons"] .hsm-co-exp-more h2,
[data-hsm-postpay-addons] .hsm-co-exp-added h2,
[data-hsm-postpay-addons] .hsm-co-exp-more h2 {
  margin: 0 0 0.28rem;
  font-size: 1.08rem;
  font-weight: 750;
  letter-spacing: -0.02em;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-step-lead,
[data-hsm-postpay-addons] .hsm-step-lead {
  margin: 0 0 1.15rem;
  font-size: 0.92rem;
  line-height: 1.45;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-field input,
[data-hsm-postpay-addons] .hsm-field input {
  border: 0;
  background: var(--hsm-soft);
  border-radius: 14px;
  padding: 0.82rem 0.95rem;
  box-shadow: none;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-field input:focus,
[data-hsm-postpay-addons] .hsm-field input:focus {
  background: #fff;
  box-shadow: 0 0 0 2px rgba(12, 27, 51, 0.16);
  outline: none;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-payopt,
[data-hsm-postpay-addons] .hsm-payopt {
  border: 0;
  background: var(--hsm-soft);
  border-radius: 16px;
  padding: 0.95rem 1rem;
  box-shadow: none;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-payopt.is-on,
[data-hsm-postpay-addons] .hsm-payopt.is-on {
  background: #fff;
  border: 0;
  box-shadow: var(--hsm-shadow);
}
.hsm-bookpage [data-co-panel="addons"] .hsm-exp-check,
[data-hsm-postpay-addons] .hsm-exp-check {
  gap: 1.75rem;
  margin-top: 0.35rem;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-exp-card,
[data-hsm-postpay-addons] .hsm-exp-card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
  align-items: start;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-exp-card.is-preview:has(input:checked),
[data-hsm-postpay-addons] .hsm-exp-card.is-preview:has(input:checked) {
  border: 0;
  box-shadow: none;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-exp-card-media,
[data-hsm-postpay-addons] .hsm-exp-card-media {
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: 0;
  margin: 0;
  aspect-ratio: 16 / 10;
  max-height: 10.25rem;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: none;
  background: var(--hsm-soft);
}
.hsm-bookpage [data-co-panel="addons"] .hsm-exp-check .hsm-exp-card img,
.hsm-bookpage [data-co-panel="addons"] .hsm-exp-card img,
[data-hsm-postpay-addons] .hsm-exp-card img {
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  object-fit: cover;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-exp-body,
[data-hsm-postpay-addons] .hsm-exp-body {
  padding: 0;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-exp-body .hsm-card-badges {
  margin: 0 0 0.45rem;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-exp-card h3 {
  font-size: 1.12rem;
  line-height: 1.28;
  margin: 0 0 0.3rem;
}
.hsm-bookpage [data-co-panel="addons"] .hsm-exp-add {
  margin-top: 0.75rem;
}
@media (min-width: 720px) {
  .hsm-bookpage [data-co-panel="addons"] .hsm-exp-check .hsm-exp-card,
  .hsm-bookpage [data-co-panel="addons"] .hsm-exp-card,
  [data-hsm-postpay-addons] .hsm-exp-card {
    grid-template-columns: 7.75rem minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
  }
  .hsm-bookpage [data-co-panel="addons"] .hsm-exp-check .hsm-exp-card-media,
  .hsm-bookpage [data-co-panel="addons"] .hsm-exp-card-media,
  [data-hsm-postpay-addons] .hsm-exp-card-media {
    width: 7.75rem;
    max-height: none;
    aspect-ratio: 1 / 1;
    border-radius: 14px;
  }
  .hsm-bookpage [data-co-panel="addons"] .hsm-exp-check .hsm-exp-card img,
  .hsm-bookpage [data-co-panel="addons"] .hsm-exp-card img,
  [data-hsm-postpay-addons] .hsm-exp-card img {
    min-height: 0;
    max-height: none;
  }
  .hsm-bookpage [data-co-panel="addons"] .hsm-exp-check .hsm-exp-body,
  .hsm-bookpage [data-co-panel="addons"] .hsm-exp-body,
  [data-hsm-postpay-addons] .hsm-exp-body {
    padding: 0.1rem 0 0;
  }
  .hsm-bookpage [data-co-panel="addons"] .hsm-exp-card h3 {
    font-size: 1.08rem;
  }
}
.hsm-co-included-head {
  display: grid;
  gap: 0.4rem;
  margin: 0 0 0.85rem;
}
.hsm-co-included-head .hsm-card-badges {
  margin: 0;
}
.hsm-co-included-note {
  margin: 0;
  color: var(--hsm-muted);
  font-size: 0.94rem;
  line-height: 1.45;
}
.hsm-co-included-transfer .hsm-fields {
  margin-top: 0.55rem;
  gap: 0.7rem;
}
.hsm-co-later {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin-top: 0.85rem;
  cursor: pointer;
  color: var(--hsm-ink);
  font-size: 0.94rem;
  font-weight: 550;
  line-height: 1.4;
  user-select: none;
}
.hsm-co-later input {
  appearance: auto;
  width: 1.15rem;
  height: 1.15rem;
  margin: 0.15rem 0 0;
  accent-color: var(--hsm-navy);
  flex: none;
}
.hsm-co-pickup.is-later .hsm-field input {
  opacity: 0.55;
}
.hsm-co-transfer-note {
  margin: 0.2rem 0 0.75rem;
  font-size: 0.88rem;
  line-height: 1.4;
  color: var(--hsm-muted);
}
.hsm-co-transfer-note[hidden] { display: none; }
.hsm-co-review-diamond .hsm-co-stay-tips {
  margin: 0.45rem 0 0.55rem;
}
.hsm-co-stay-tips .hsm-rare-word {
  white-space: normal;
}
.hsm-co-review-diamond .hsm-rare.is-on .hsm-rare-ch {
  animation: none;
  opacity: 1;
  transform: none;
}

/* Expandable payment blocks */
.hsm-paystack { display: grid; gap: 0.75rem; }
.hsm-payblock {
  border: 1px solid var(--hsm-line);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
}
.hsm-payblock.is-on {
  border-color: var(--hsm-navy);
  box-shadow: 0 0 0 1px var(--hsm-navy);
}
.hsm-payblock[hidden] { display: none !important; }
.hsm-payblock-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.95rem 1rem;
  cursor: pointer;
  margin: 0;
}
.hsm-payblock-title {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
  min-width: 0;
}
.hsm-payblock-title strong { font-size: 0.98rem; color: var(--hsm-ink); }
.hsm-payblock-head input[type="radio"] {
  width: 1.15rem;
  height: 1.15rem;
  accent-color: var(--hsm-navy);
  flex: none;
}
.hsm-payblock-ico {
  width: 1.35rem;
  height: 1.05rem;
  border-radius: 3px;
  border: 1.5px solid var(--hsm-navy);
  position: relative;
  flex: none;
}
.hsm-payblock-ico::after {
  content: "";
  position: absolute;
  left: 2px; right: 2px; top: 3px;
  height: 2px;
  background: var(--hsm-navy);
  box-shadow: 0 3px 0 var(--hsm-navy);
  opacity: 0.7;
}
.hsm-card-brands {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.28rem;
  margin-left: 0.2rem;
  max-width: 100%;
}
.hsm-card-brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 1.5rem;
  padding: 0;
  border-radius: 4px;
  border: 0;
  background: transparent;
  overflow: hidden;
  flex: none;
  box-shadow: 0 0 0 1px rgba(12, 27, 51, 0.08);
}
.hsm-card-brand img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 719px) {
  /* Seven fixed-width chips do not fit a phone-width row, so the last brand
     dropped alone onto a second line. Let them shrink together instead. */
  .hsm-card-brands {
    flex-wrap: nowrap;
    gap: 0.22rem;
  }
  .hsm-card-brand {
    flex: 0 1 2.35rem;
    width: auto;
    min-width: 1.55rem;
    height: auto;
    aspect-ratio: 47 / 30;
  }
}
.hsm-payblock-body { padding: 0 1rem 1rem; }
.hsm-pay-stackfields {
  border: 1px solid var(--hsm-line);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
.hsm-pay-field {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.55rem 0.75rem 0.6rem;
  border-bottom: 1px solid var(--hsm-line);
  margin: 0;
}
.hsm-pay-field:last-child { border-bottom: 0; }
.hsm-pay-field span {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--hsm-muted);
}
.hsm-pay-field input {
  border: 0;
  outline: 0;
  padding: 0.15rem 0 0;
  font: inherit;
  font-size: 0.98rem;
  background: transparent;
  width: 100%;
}
.hsm-pay-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.hsm-pay-split .hsm-pay-field:first-child {
  border-right: 1px solid var(--hsm-line);
  border-bottom: 0;
}
.hsm-pay-split .hsm-pay-field:last-child { border-bottom: 0; }

/* Desktop sidebar */
.hsm-summary-desktop {
  position: sticky;
  top: 1.2rem;
  display: grid;
  gap: 0.75rem;
}
.hsm-co-rare-stack {
  display: grid;
  gap: 0.45rem;
}
.hsm-co-rare {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.75rem 0.9rem;
  border-radius: 14px;
  background: #f7f1e4;
  color: #0c1b33;
  font-size: 0.9rem;
  font-weight: 650;
  line-height: 1.35;
}
.hsm-co-rare.is-eco { background: #eef7f1; }
.hsm-co-rare.is-loved_by_guests { background: #f8eee9; }
.hsm-co-rare.is-absolute_lux { background: #eef6f0; }
.hsm-co-rare.is-connoisseur,
.hsm-co-rare.is-guests_favourite { background: #f7f1e4; }
.hsm-co-rare-gem,
.hsm-co-review-rare-gem {
  flex: none;
  width: 1.05rem;
  height: 1.05rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.hsm-co-rare-gem svg,
.hsm-co-review-rare-gem svg {
  width: 100%;
  height: 100%;
  display: block;
}
.hsm-co-rare-mark {
  width: 0.85rem;
  height: 0.85rem;
  flex: none;
  background: #c9a962;
  transform: rotate(45deg);
  border-radius: 2px;
}
.hsm-co-side-card {
  border: 1px solid var(--hsm-line);
  border-radius: 16px;
  padding: 1rem 1.05rem 1.1rem;
  background: #fff;
  box-shadow: 0 6px 22px rgba(12, 27, 51, 0.06);
}
.hsm-co-side-card .hsm-summary-top {
  margin-bottom: 0.55rem;
}
.hsm-co-stay-tips {
  display: grid;
  gap: 0.45rem;
  margin: 0.15rem 0 0.7rem;
}
.hsm-co-stay-tips .hsm-rare-stack,
.hsm-co-stay-tips .hsm-rare-stack.is-rotating {
  display: grid;
  gap: 0.45rem;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.hsm-co-stay-tips .hsm-rare-stack > .hsm-rare,
.hsm-co-stay-tips .hsm-rare-stack.is-rotating > .hsm-rare {
  grid-area: auto;
  position: relative;
  opacity: 1 !important;
  transform: none !important;
  pointer-events: auto !important;
}
.hsm-co-stay-tips .hsm-rare.hsm-book-tip {
  opacity: 1;
  transform: none;
  align-items: center;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--hsm-line) !important;
  background: #fff !important;
  box-shadow: none !important;
  border-radius: var(--hsm-radius);
}
.hsm-co-stay-tips .hsm-rare-stack > .hsm-rare + .hsm-rare {
  border-top: 1px solid var(--hsm-line) !important;
}
.hsm-co-stay-tips .hsm-rare-more,
.hsm-co-stay-tips .hsm-rare-close {
  display: none !important;
}
.hsm-co-exp-tips {
  display: grid;
  gap: 0.45rem;
  margin: 0.15rem 0 0.7rem;
}
.hsm-co-exp-tips .hsm-co-stay-tips {
  margin: 0;
}
.hsm-co-exp-tips:empty,
.hsm-co-exp-tips[hidden] {
  display: none;
}
.hsm-co-side-cancel {
  margin: 0 0 0.15rem;
  padding: 0.85rem 0 0.85rem;
  border-top: 1px solid var(--hsm-line);
  border-bottom: 1px solid var(--hsm-line);
}
.hsm-co-side-cancel strong {
  display: block;
  margin: 0 0 0.25rem;
  font-size: 0.95rem;
  font-weight: 750;
  color: var(--hsm-ink);
}
.hsm-co-side-cancel p {
  margin: 0 0 0.35rem;
  color: var(--hsm-muted);
  font-size: 0.9rem;
  line-height: 1.4;
}
.hsm-co-side-cancel .hsm-inline,
.hsm-checkout-pay-notes .hsm-inline {
  display: inline;
  font-size: 0.9rem;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 2px;
  color: var(--hsm-ink);
  border: 0;
  background: none;
  padding: 0;
  cursor: pointer;
  font-family: inherit;
}
.hsm-co-side-card .hsm-checkout-row {
  border-top: 0;
  border-bottom: 1px solid var(--hsm-line);
}
.hsm-co-side-card .hsm-breakdown {
  margin-top: 0.75rem;
  border-top: 0;
}
.hsm-co-price-link {
  display: inline-block;
  margin-top: 0.55rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--hsm-navy);
  font: inherit;
  font-size: 0.88rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

@media (min-width: 720px) {
  .hsm-checkout-titlebar { display: flex; }
  .hsm-bookpage > .hsm-checkout-close,
  .hsm-bookpage > .hsm-checkout-back { display: none !important; }
  .hsm-co-mobile-only { display: none !important; }
  .hsm-bookpage [data-hsm-step="pay"] {
    display: block !important;
  }
  .hsm-bookpage [data-hsm-step="pay"][hidden] {
    display: block !important;
  }
  .hsm-checkout-bar { display: none !important; }
  /* On desktop, hide Next inside panels until user uses accordion; keep them */
  .hsm-co-panel:not(.is-open) .hsm-co-panel-body { display: none !important; }
  .hsm-co-review-diamond { display: none; }
  .hsm-bookpage {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
    gap: 2.4rem;
    padding-top: 1.6rem;
  }
  /* Mobile pay-step review duplicate: on desktop review is accordion panel */
  .hsm-bookpage [data-hsm-step="addons"] { display: none !important; }
}

@media (max-width: 719px) {
  .hsm-checkout-titlebar { display: none; }
  .hsm-summary-desktop { display: none !important; }
  .hsm-co-panel:not(.is-open) .hsm-co-panel-body { display: none !important; }
  .hsm-bookpage[data-checkout-current="pay"] .hsm-co-panel-head {
    pointer-events: auto;
  }
  .hsm-checkout-pay-review .hsm-summary-top {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
  }
  .hsm-co-review-diamond .hsm-co-stay-tips,
  .hsm-co-review-diamond .hsm-rare.hsm-book-tip {
    margin-top: 0.55rem;
  }
}

.hsm-paystack[data-wallets="both"] {
  grid-template-columns: 1fr;
}
.hsm-paystack .hsm-pay-mark {
  width: 1.25rem;
  height: 1.25rem;
  display: block;
  flex: none;
}
.hsm-paystack .hsm-payblock.is-apple .hsm-payblock-title,
.hsm-paystack .hsm-payblock.is-google .hsm-payblock-title {
  color: var(--hsm-ink);
}


/* === Listing: Check availability when dates unknown === */
.hsm-pin-price.is-unknown,
.hsm-book-price.is-unknown {
  display: grid;
  gap: 0.12rem;
}
.hsm-pin-price.is-unknown[hidden],
.hsm-book-price.is-unknown[hidden],
.hsm-pin-price.is-known[hidden],
.hsm-book-price.is-known[hidden] {
  display: none !important;
}
.hsm-pin-add-dates,
.hsm-book-price.is-unknown strong {
  font-size: 0.98rem;
  font-weight: 750;
  color: var(--hsm-ink);
  line-height: 1.25;
}
.hsm-book-price-rate {
  font-size: 0.82rem;
  color: var(--hsm-muted);
  font-weight: 600;
}
body.is-listing-dates-unknown .hsm-book-note[data-book-note-charge],
body.is-listing-dates-unknown [data-hsm-quote] {
  display: none !important;
}

.hsm-cal-avail-head {
  display: none;
  position: relative;
  padding: 0.15rem 0 0.85rem;
  text-align: left;
}
.hsm-cal-avail-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 2.5rem;
  margin: 0 0 0.55rem;
}
.hsm-cal-avail-head h2 {
  margin: 0 0 0.28rem;
  font-size: 1.42rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: var(--hsm-ink);
}
.hsm-cal-avail-head p {
  margin: 0;
  color: var(--hsm-muted);
  font-size: 0.9rem;
  line-height: 1.35;
}
.hsm-cal-avail-close,
.hsm-cal-avail-clear {
  border: 0;
  background: transparent;
  color: var(--hsm-ink);
  font: inherit;
  cursor: pointer;
  flex: none;
}
.hsm-cal-avail-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  margin-left: -0.55rem;
  border-radius: 999px;
  font-size: 1.45rem;
  line-height: 1;
}
.hsm-cal-avail-close:hover {
  background: var(--hsm-soft);
}
.hsm-cal-avail-clear {
  font-size: 0.88rem;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 3px;
  padding: 0.4rem 0.1rem;
  margin-right: -0.1rem;
}
.hsm-cal-avail-foot {
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  margin-top: 0.75rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--hsm-line);
}
.hsm-cal-avail-meta {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}
.hsm-cal-avail-meta strong {
  font-size: 0.95rem;
  color: var(--hsm-ink);
}
.hsm-cal-avail-meta span {
  font-size: 0.82rem;
  color: var(--hsm-muted);
}
.hsm-cal-save {
  flex: 0 0 auto;
  width: auto;
  min-width: 7.25rem;
  padding-inline: 1.35rem;
}
.hsm-cal-save:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

@media (max-width: 719px) {
  .hsm-cal-flyout {
    display: flex !important;
    flex-direction: column;
    position: fixed !important;
    inset: 0 !important;
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    width: 100% !important;
    max-width: none !important;
    max-height: none !important;
    height: 100% !important;
    z-index: 90 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #fff;
    padding: 0;
    overflow: hidden;
  }
  .hsm-cal-flyout[hidden] {
    display: none !important;
  }
  .hsm-cal-flyout .hsm-cal-panel {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
  }
  .hsm-cal-flyout .hsm-cal.is-flyout {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    height: 100%;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0.7rem 1rem calc(0.85rem + env(safe-area-inset-bottom, 0px));
    overflow: hidden;
  }
  body.is-listing-cal-open {
    overflow: hidden;
  }
  body.is-listing-cal-open .hsm-pin {
    opacity: 0;
    pointer-events: none;
  }
  body.is-listing-cal-open .hsm-book-stack > .hsm-rare-stack,
  body.is-listing-cal-open .hsm-book-stack > .hsm-rare {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  .hsm-cal.is-flyout .hsm-cal-avail-head {
    display: block;
    flex: none;
    padding: 0.1rem 0 0.7rem;
  }
  .hsm-cal.is-flyout .hsm-cal-avail-head h2 {
    margin: 0 0 0.28rem;
    font-size: 1.38rem;
  }
  .hsm-cal.is-flyout .hsm-cal-top {
    flex: none;
    margin-bottom: 0.65rem;
  }
  .hsm-cal.is-flyout .hsm-cal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }
  .hsm-cal.is-flyout .hsm-cal-dows,
  .hsm-cal.is-inline .hsm-cal-dows {
    position: sticky;
    top: 0;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    background: #fff;
    padding: 0.15rem 0 0.4rem;
    text-align: center;
    border-bottom: 1px solid var(--hsm-line);
  }
  .hsm-cal .hsm-cal-months.is-stack {
    display: flex;
    flex-direction: column;
    gap: 1.45rem;
    padding: 0.65rem 0 1.1rem;
  }
  .hsm-cal .hsm-cal-months.is-stack .hsm-cal-head {
    justify-content: flex-start;
    margin: 0 0 0.3rem;
    padding: 0.55rem 0 0.2rem;
    background: #fff;
  }
  .hsm-cal .hsm-cal-months.is-stack .hsm-cal-month {
    scroll-margin-top: 2.4rem;
  }
  .hsm-cal .hsm-cal-months.is-stack .hsm-cal-title {
    text-align: left;
  }
  .hsm-cal.is-flyout .hsm-cal-avail-foot {
    display: flex;
    flex: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0.7rem;
    margin: 0;
    padding: 0.85rem 0 0;
    border-top: 1px solid var(--hsm-line);
    background: #fff;
  }
  .hsm-cal.is-flyout .hsm-cal-avail-meta {
    flex: none;
    min-width: 0;
  }
  .hsm-cal.is-flyout .hsm-cal-avail-meta strong {
    display: block;
    font-size: 0.98rem;
    line-height: 1.3;
  }
  .hsm-cal.is-flyout .hsm-cal-save {
    width: 100%;
    flex: none;
    min-height: 3.15rem;
    min-width: 0;
    justify-content: center;
  }
  .hsm-cal.is-flyout .hsm-cal-top .hsm-cal-summary,
  .hsm-cal.is-flyout .hsm-cal-foot {
    display: none;
  }
  .hsm-cal.is-flyout .hsm-cal-months {
    grid-template-columns: 1fr;
  }
  .hsm-cal.is-flyout .hsm-cal-month + .hsm-cal-month {
    margin-top: 0;
  }
}

@media (min-width: 720px) {
  .hsm-cal-avail-head,
  .hsm-cal-avail-foot {
    display: none !important;
  }
}


/* === Mobile Review and continue card === */
.hsm-co-mobile-title {
  display: none;
  margin: 0 0 1rem;
  padding: 0.15rem 2.6rem 0 0;
  font-size: 1.55rem;
  font-weight: 750;
  line-height: 1.2;
  color: var(--hsm-ink, #222);
}
.hsm-co-review-card .hsm-summary-top {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 0.85rem;
  align-items: center;
  margin: 0;
  padding: 0 0 1rem;
  border-bottom: 1px solid var(--hsm-line);
}
.hsm-co-review-card .hsm-summary-top img {
  width: 72px;
  height: 72px;
  border-radius: 10px;
  object-fit: cover;
}
.hsm-co-review-card .hsm-summary-top strong {
  font-size: 1rem;
  line-height: 1.3;
  color: var(--hsm-ink);
}
.hsm-co-review-meta {
  margin-top: 0.3rem;
  font-size: 0.86rem;
  color: var(--hsm-ink);
  font-weight: 600;
}
.hsm-co-review-stack {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.2rem !important;
  min-width: 0;
}
.hsm-co-review-stack strong {
  font-size: 0.95rem;
  font-weight: 750;
  color: var(--hsm-ink);
}
.hsm-co-review-stack p {
  font-size: 0.95rem;
  font-weight: 550;
  color: var(--hsm-ink);
}
.hsm-co-review-rare-stack {
  display: grid;
  gap: 0.25rem;
  margin: 0.35rem 0 0;
}
.hsm-co-review-rare {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0.35rem 0 0;
  color: #0c1b33;
  font-size: 0.88rem;
  font-weight: 700;
}
.hsm-co-review-rare-stack .hsm-co-review-rare {
  margin: 0;
}
.hsm-co-review-rare .hsm-co-rare-mark {
  width: 0.7rem;
  height: 0.7rem;
  background: #c9a962;
}
.hsm-co-review-cancel {
  padding: 0.95rem 0 0.15rem;
  border-top: 1px solid var(--hsm-line);
}
.hsm-co-review-cancel strong {
  display: block;
  font-size: 0.95rem;
  font-weight: 750;
  color: var(--hsm-ink);
  margin-bottom: 0.25rem;
}
.hsm-co-review-cancel p {
  margin: 0 0 0.35rem;
  color: var(--hsm-muted);
  font-size: 0.9rem;
  line-height: 1.4;
}
.hsm-co-review-cancel .hsm-inline {
  font-size: 0.9rem;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 2px;
  color: var(--hsm-ink);
  border: 0;
  background: none;
  padding: 0;
  cursor: pointer;
  font-family: inherit;
}

@media (max-width: 719px) {
  .hsm-co-mobile-title { display: block; }
  .hsm-bookpage[data-checkout-current="review"] .hsm-checkout-close {
    /* X in top-right matching Review and continue header */
    top: calc(0.85rem + env(safe-area-inset-top, 0px));
  }
  .hsm-checkout-review.hsm-co-review-card {
    border-radius: 16px;
    padding: 1rem 1rem 1.05rem;
    margin: 0;
    box-shadow: none;
  }
  .hsm-co-review-card .hsm-checkout-row {
    align-items: flex-start;
    padding: 0.95rem 0;
    border-top: 0;
    border-bottom: 1px solid var(--hsm-line);
  }
  .hsm-co-review-card .hsm-summary-top + .hsm-co-stay-tips {
    margin-top: 0.2rem;
    margin-bottom: 0.85rem;
  }
  .hsm-co-review-card .hsm-co-stay-tips + .hsm-checkout-row {
    border-top: 1px solid var(--hsm-line);
  }
  .hsm-co-review-card .hsm-checkout-row.is-total {
    border-bottom: 0;
  }
  .hsm-co-review-card .hsm-checkout-change {
    margin-top: 0.05rem;
    background: #f2f2f2;
    border-color: transparent;
    border-radius: 999px;
    padding: 0.4rem 0.85rem;
    font-size: 0.82rem;
    font-weight: 650;
    color: var(--hsm-ink);
    text-decoration: none;
  }
  .hsm-co-review-card .hsm-breakdown {
    margin: 0 0 0.35rem;
    padding: 0.55rem 0 0.75rem;
    border-top: 1px solid var(--hsm-line);
  }
  .hsm-bookpage[data-checkout-current="review"] {
    padding-top: calc(2.8rem + env(safe-area-inset-top, 0px));
  }
}


/* Checkout accordion: transport + experiences */
.hsm-co-panel[data-co-panel="addons"] .hsm-co-panel-body {
  display: grid;
  gap: 0.85rem;
}
.hsm-co-panel[data-co-panel="addons"] .hsm-step {
  margin-bottom: 0;
  box-shadow: none;
}
.hsm-co-panel[data-co-panel="addons"] .hsm-step h2 {
  font-size: 1.02rem;
}
