/* ==========================================================================
   Single trip page
   ========================================================================== */
.hp-trip { max-width: 1320px; margin-inline: auto; padding: 18px clamp(14px, 2.5vw, 28px) 40px; }
.hp-bc { font-size: 13.5px; color: var(--hp-muted); display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.hp-bc a { color: var(--hp-muted); }
.hp-bc__here { color: var(--hp-ink); font-weight: 600; }

.hp-trip__titlerow { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: flex-start; }
.hp-trip__head { max-width: 820px; }
.hp-trip__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.hp-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 600; background: #fff; border: 1px solid var(--hp-line-16); color: var(--hp-ink); }
.hp-chip--badge { background: var(--hp-saffron); border-color: var(--hp-saffron); }
.hp-trip__h1 { font-family: var(--hp-font-display); font-size: clamp(36px, 5.4vw, 66px); line-height: .96; letter-spacing: -.03em; margin: 0 0 10px; }
.hp-trip__tagline { font-size: clamp(16px, 1.5vw, 18.5px); color: var(--hp-text-2); margin: 0; }
.hp-trip__actions { display: flex; gap: 8px; }
.hp-trip__actions .hp-btn .hp-icon { width: 18px; height: 18px; }

/* Gallery mosaic */
.hp-gallery { margin: 20px 0 8px; position: relative; }
.hp-gallery__mosaic { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 200px; gap: 8px; border-radius: 18px; overflow: hidden; }
.hp-gallery__cell { position: relative; overflow: hidden; border: 0; padding: 0; cursor: pointer; background: #DDE5E8; }
.hp-gallery__cell:first-child { grid-row: 1 / span 2; }
.hp-gallery__cell img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.hp-gallery__cell:hover img { transform: scale(1.04); }
.hp-gallery__all { position: absolute; right: 14px; bottom: 14px; background: #fff; }
.hp-gallery__carousel { display: none; }
@media (max-width: 820px) {
  .hp-gallery__mosaic, .hp-gallery__all { display: none; }
  .hp-gallery__carousel { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: 4px; }
  .hp-gallery__slide { flex: 0 0 86%; height: 250px; border-radius: 14px; overflow: hidden; scroll-snap-align: center; background: #DDE5E8; }
  .hp-gallery__slide img { width: 100%; height: 100%; object-fit: cover; }
}

/* Section nav */
.hp-secnav { position: sticky; top: calc(var(--hp-abar, 0px) + var(--hp-hdr, 68px)); z-index: 40; background: rgba(243,246,247,.9); backdrop-filter: blur(10px); border-bottom: 1px solid var(--hp-line-08); margin: 18px 0; }
.hp-secnav__inner { display: flex; gap: 4px; overflow-x: auto; }
.hp-secnav a { padding: 9px 13px; border-radius: 8px; font-size: 14px; font-weight: 600; color: var(--hp-text-2); white-space: nowrap; }
.hp-secnav a:hover { background: #fff; text-decoration: none; }
@media (max-width: 820px) { .hp-secnav { display: none; } }

/* Body grid */
.hp-trip__grid { display: grid; grid-template-columns: minmax(0,1fr) 400px; gap: clamp(22px, 3vw, 44px); align-items: start; }
/* Stretch the aside to the full grid-row height so the sticky booking card has room to travel/pin
   for as long as the itinerary column has content. */
.hp-trip__aside { align-self: stretch; }
@media (max-width: 1080px) { .hp-trip__grid { grid-template-columns: 1fr; } .hp-trip__aside { display: none; } }
.hp-trip__section { padding: 22px 0; scroll-margin-top: 130px; }
.hp-trip__section + .hp-trip__section { border-top: 1px solid var(--hp-line-08); }
.hp-h2 { font-family: var(--hp-font-display); font-size: clamp(26px, 3vw, 36px); margin: 0 0 14px; }

/* Facts */
.hp-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 18px; }
@media (max-width: 560px) { .hp-facts { grid-template-columns: repeat(2, 1fr); } }
.hp-fact { background: #fff; border: 1px solid var(--hp-line-08); border-radius: 12px; padding: 14px; }
.hp-fact__l { font-size: 12px; color: var(--hp-muted); }
.hp-fact__v { font-weight: 700; margin-top: 2px; }
.hp-trip__summary { font-size: 17px; color: #1F2E37; }
.hp-highlights { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 18px; margin-top: 14px; }
@media (max-width: 560px) { .hp-highlights { grid-template-columns: 1fr; } }
.hp-highlight { display: flex; gap: 10px; align-items: flex-start; }
.hp-highlight__ck { flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%; background: var(--hp-saffron-tint); color: var(--hp-saffron-ink); display: inline-flex; align-items: center; justify-content: center; }
.hp-highlight__ck .hp-icon { width: 14px; height: 14px; }

/* Itinerary */
.hp-itin__intro { color: var(--hp-text-2); font-size: 15px; margin-bottom: 14px; }
.hp-map-ph { height: clamp(300px, 40vw, 440px); border-radius: 18px; overflow: hidden; background: linear-gradient(160deg,#E7DFC9,#EAF0F2); position: relative; margin-bottom: 14px; display: flex; align-items: center; justify-content: center; }
.hp-map-ph__chip { position: absolute; left: 14px; top: 14px; background: #fff; border-radius: 10px; padding: 8px 12px; font-size: 13px; box-shadow: var(--hp-shadow-sm); }
.hp-map-ph__note { color: var(--hp-muted); font-size: 13px; }
.hp-days { display: flex; flex-direction: column; gap: 8px; }
.hp-day { display: flex; gap: 14px; width: 100%; text-align: left; background: #fff; border: 1px solid var(--hp-line-08); border-radius: 14px; padding: 16px; cursor: pointer; transition: all .2s; }
.hp-day.is-on { border-color: var(--hp-saffron); background: #FFF8EE; box-shadow: 0 10px 30px -18px rgba(255,159,28,.6); }
.hp-day__n { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 12px; background: var(--hp-ink); color: #fff; font-family: var(--hp-font-display); font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.hp-day.is-on .hp-day__n { background: var(--hp-saffron); color: var(--hp-ink); }
.hp-day__t { font-family: var(--hp-font-display); font-size: 18px; }
.hp-day__route { font-size: 13px; color: var(--hp-saffron-ink-2); font-weight: 600; margin: 2px 0; }
.hp-day__body { font-size: 15px; color: var(--hp-text-2); }
.hp-day__stay { font-size: 12.5px; color: var(--hp-muted); margin-top: 6px; display: flex; gap: 6px; align-items: center; }

/* Included / policies / reviews / stay */
.hp-two { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 560px) { .hp-two { grid-template-columns: 1fr; } }
.hp-inclist { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.hp-inclist li { display: flex; gap: 10px; font-size: 14.5px; color: var(--hp-text-2); }
.hp-inc-h { font-family: var(--hp-font-display); font-size: 18px; margin: 0 0 10px; }
.hp-inc-h--yes { color: var(--hp-green-d); }
.hp-inc-h--no { color: var(--hp-danger-d); }
.hp-tick { color: var(--hp-green); flex: 0 0 auto; } .hp-tick .hp-icon { width: 18px; height: 18px; }
.hp-cross { color: var(--hp-danger); font-weight: 700; flex: 0 0 auto; }
.hp-stay-card { display: grid; grid-template-columns: 220px 1fr; gap: 0; background: #fff; border: 1px solid var(--hp-line-08); border-radius: 16px; overflow: hidden; transition: border-color .2s; }
.hp-stay-card:hover { border-color: var(--hp-saffron); }
@media (max-width: 560px) { .hp-stay-card { grid-template-columns: 1fr; } }
.hp-stay-card img { width: 100%; height: 100%; object-fit: cover; min-height: 160px; }
.hp-stay-card__b { padding: 18px; }
.hp-tiers-cancel { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
@media (max-width: 560px) { .hp-tiers-cancel { grid-template-columns: 1fr; } }
.hp-ctier { background: #fff; border: 1px solid var(--hp-line-08); border-radius: 14px; padding: 16px; }
.hp-ctier.is-active { border: 2px solid var(--hp-ink); }
.hp-ctier__pct { font-family: var(--hp-font-display); font-size: 26px; }
.hp-reviews { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 560px) { .hp-reviews { grid-template-columns: 1fr; } }
.hp-review { background: #fff; border: 1px solid var(--hp-line-08); border-radius: 14px; padding: 18px; margin: 0; }
.hp-review__stars { color: #D18C00; letter-spacing: 2px; }
.hp-review blockquote { margin: 8px 0; font-size: 15px; color: #1F2E37; }
.hp-review figcaption { font-size: 13px; color: var(--hp-muted); }
.hp-rating-pill { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--hp-line-12); border-radius: 999px; padding: 6px 12px; font-size: 13px; font-weight: 600; margin-left: 10px; }

/* Booking box */
/* Booking card: full height, never an internal scrollbar. It is sticky and follows the scroll for as
   long as the (taller) itinerary column has content. When the card is taller than the viewport, JS
   (hp-trip.js) sets a negative `top` so the card's BOTTOM pins to the viewport — keeping the Reserve
   button in view while scrolling — instead of clipping it or forcing an internal scroll. The default
   top below is the fits-in-viewport case; JS refines it and updates on resize. align-self:start lets
   the card be its own height inside the grid so sticky can work. */
.hp-bbox { position: sticky; top: calc(var(--hp-abar, 0px) + var(--hp-hdr, 68px) + 20px); background: #fff; border: 1px solid var(--hp-line-12); border-radius: 20px; padding: 22px; box-shadow: var(--hp-shadow-card); }
.hp-bbox__phead { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.hp-bbox__plabel { font-size: 12.5px; color: var(--hp-muted); }
.hp-bbox__per { font-family: var(--hp-font-display); font-size: 36px; font-weight: 800; line-height: 1; }
.hp-bbox__unit { font-size: 12.5px; color: var(--hp-muted); }
.hp-seasonchip { font-size: 12px; font-weight: 700; padding: 5px 10px; border-radius: 999px; }
.hp-seasonchip--peak { background: var(--hp-saffron-tint); color: var(--hp-saffron-ink); }
.hp-seasonchip--green { background: var(--hp-green-tint); color: var(--hp-green-d); }
.hp-seasonchip--quote { background: #EAF1FC; color: #12408F; }
.hp-bbox__dt { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 16px 0; }
.hp-bbox__dtbtn { text-align: left; border: 1px solid var(--hp-line-16); border-radius: 12px; padding: 10px 12px; background: #fff; cursor: pointer; }
.hp-bbox__dtbtn .l { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--hp-muted); }
.hp-bbox__dtbtn .v { font-weight: 600; font-size: 14px; }
.hp-bbox__panel { background: var(--hp-surface); border-radius: 12px; padding: 12px; margin-bottom: 12px; }
.hp-bbox__label { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--hp-muted); margin: 14px 0 8px; }
.hp-room { display: flex; align-items: center; gap: 10px; border: 1px solid var(--hp-line-12); border-radius: 12px; padding: 12px; margin-bottom: 8px; cursor: pointer; }
.hp-room.is-on { border: 2px solid var(--hp-ink); background: var(--hp-surface); }
.hp-room__name { font-weight: 600; } .hp-room__perk { font-size: 12.5px; color: var(--hp-muted); }
.hp-room__price { margin-left: auto; font-weight: 700; } .hp-room__price.free { color: var(--hp-green); }
.hp-tiertable { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.hp-tiertable td { padding: 8px 6px; border-top: 1px solid var(--hp-line-08); }
.hp-tiertable tr.is-on { background: var(--hp-saffron-tint); font-weight: 700; }
.hp-savehint { color: var(--hp-green-d); font-size: 13px; margin-top: 8px; }
.hp-breakdown { border-top: 1px solid var(--hp-line-08); margin-top: 16px; padding-top: 14px; font-size: 14px; }
.hp-breakdown__row { display: flex; justify-content: space-between; padding: 4px 0; }
.hp-breakdown__row--free { color: var(--hp-green); }
.hp-breakdown__total { display: flex; justify-content: space-between; font-weight: 700; font-size: 16px; border-top: 1px dashed var(--hp-line-16); margin-top: 8px; padding-top: 8px; }
.hp-settle { display: flex; justify-content: space-between; align-items: center; background: var(--hp-green-tint); color: #0B5A3D; border-radius: 12px; padding: 12px 14px; margin-top: 12px; font-size: 17px; font-weight: 700; }
.hp-bbox__cta { margin-top: 14px; }
.hp-reserve { width: 100%; min-height: 52px; border: 0; border-radius: 12px; background: var(--hp-saffron); color: var(--hp-ink); font-weight: 800; font-size: 16px; cursor: pointer; box-shadow: 0 14px 30px -14px rgba(255,159,28,.7); }
.hp-reserve[disabled] { background: #DDE3E6; color: var(--hp-muted); box-shadow: none; cursor: not-allowed; }
.hp-freecancel { text-align: center; font-size: 12.5px; color: var(--hp-green-d); margin-top: 10px; }
.hp-msg { border-radius: 12px; padding: 12px 14px; font-size: 13.5px; margin: 12px 0; }
.hp-msg--closed { background: var(--hp-danger-tint-2); color: var(--hp-danger-d); }
.hp-msg--group { background: var(--hp-saffron-tint); color: #6B3A00; }
.hp-msg--quote { background: #EAF1FC; color: #12408F; }
.hp-bbox__wa { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; margin-top: 12px; padding: 12px; border: 1px solid var(--hp-line-16); border-radius: 12px; font-weight: 600; }
.hp-bbox__wa:hover { border-color: var(--hp-whatsapp); text-decoration: none; }
.hp-bbox__wa .hp-icon { width: 18px; height: 18px; color: var(--hp-whatsapp); }
.hp-bbox__notes { width: 100%; border: 1px solid var(--hp-line-16); border-radius: 12px; padding: 12px; font: inherit; resize: vertical; min-height: 84px; }

/* Related */
.hp-related-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%,290px),1fr)); gap: 18px; }

/* Mobile reserve bar */
.hp-rbar { display: none; }
@media (max-width: 1080px) {
  .hp-rbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 200; background: #fff; border-top: 1px solid var(--hp-line-12); box-shadow: 0 -10px 30px -20px rgba(14,27,36,.5); padding: 12px clamp(14px,4vw,20px) calc(12px + env(safe-area-inset-bottom,0px)); align-items: center; justify-content: space-between; gap: 12px; }
  .hp-rbar__price { font-family: var(--hp-font-display); font-size: 20px; }
  .hp-rbar__sub { font-size: 12px; color: var(--hp-muted); }
  .hp-rbar__cta { background: var(--hp-saffron); color: var(--hp-ink); border: 0; border-radius: 12px; padding: 14px 22px; font-weight: 800; }
  .hp-rbar-spacer { height: 84px; }
}

/* Mobile booking bottom-sheet */
.hp-sheet { position: fixed; inset: 0; z-index: 900; display: none; } /* above the fixed header (z 500) so the Close button isn't overlapped */
.hp-sheet.is-open { display: block; }
.hp-sheet__scrim { position: absolute; inset: 0; background: rgba(7,19,27,.5); }
.hp-sheet__panel { position: absolute; left: 0; right: 0; bottom: 0; max-height: 92vh; overflow: auto; background: #fff; border-radius: 22px 22px 0 0; padding: 16px clamp(14px,4vw,20px) calc(20px + env(safe-area-inset-bottom,0px)); animation: hp-rise .3s cubic-bezier(.2,.7,.2,1) both; }
.hp-sheet__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.hp-sheet__body .hp-bbox { position: static; box-shadow: none; border: 0; padding: 6px 0; max-height: none; }
@keyframes hp-rise { from { transform: translateY(100%); } to { transform: none; } }

/* Lightbox */
.hp-lb { position: fixed; inset: 0; z-index: 1000; background: rgba(7,19,27,.96); display: flex; flex-direction: column; animation: hp-fade .25s ease both; }
.hp-lb[hidden] { display: none; }
.hp-lb__bar { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; color: #fff; }
.hp-lb__stage { flex: 1; display: flex; align-items: center; justify-content: center; gap: 16px; padding: 0 16px 20px; }
.hp-lb__img { max-width: 92vw; max-height: 82vh; object-fit: contain; border-radius: 8px; }
.hp-lb__nav { width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255,255,255,.15); color: #fff; font-size: 22px; cursor: pointer; flex: 0 0 auto; }
.hp-lb__close { background: none; border: 0; color: #fff; font-weight: 600; cursor: pointer; }

/* "Full map" launcher (top-right of the itinerary map) */
.hp-map-ph__full { position: absolute; right: 14px; top: 14px; z-index: 3; display: inline-flex; align-items: center; gap: 7px; border: 0; cursor: pointer; background: #fff; color: var(--hp-ink); border-radius: 10px; padding: 8px 12px; font-size: 13px; font-weight: 700; box-shadow: var(--hp-shadow-sm); }
.hp-map-ph__full:hover { background: #F6F1E6; }
.hp-map-ph__full .hp-icon { width: 16px; height: 16px; }

/* Full-screen explore for the itinerary map (mirrors the trips-archive overlay; search.css isn't loaded here) */
body.hp-mapopen { overflow: hidden; }
/* position/inset need !important: the terrain glue sets an inline `position:relative` on the host,
   and an inline style beats a plain stylesheet rule — without !important the overlay stays in flow. */
.hp-map-ph--full { position: fixed !important; inset: 0 !important; z-index: 1000; height: 100vh !important; height: 100dvh !important; width: 100vw !important; max-width: none; margin: 0 !important; border-radius: 0; }
.hp-map-ph--full .hp-map-ph__full { display: none; }
.hp-map-close { position: fixed; top: 14px; right: 14px; z-index: 1003; width: 44px; height: 44px; border-radius: 50%; border: 0; background: #fff; box-shadow: 0 8px 20px -8px rgba(0,0,0,.5); font-size: 18px; line-height: 1; cursor: pointer; }
.hp-map-ctl { position: fixed; right: 16px; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); z-index: 1002; display: flex; flex-direction: column; gap: 10px; }
.hp-map-ctl button { width: 46px; height: 46px; border-radius: 50%; border: 0; background: #fff; box-shadow: 0 8px 20px -8px rgba(14,27,36,.55); font-size: 22px; font-weight: 600; line-height: 1; cursor: pointer; color: var(--hp-ink); display: flex; align-items: center; justify-content: center; padding: 0; }
.hp-map-ctl button:active { transform: translateY(1px); }
/* In-map day stepper — absolute (bottom-centre of the embedded map) by default, fixed to the viewport
   in full screen. Present in BOTH views: it's the primary way to walk the itinerary on the map. */
.hp-map-daynav { position: absolute; left: 50%; transform: translateX(-50%); bottom: 14px; z-index: 4; display: flex; align-items: center; gap: 6px; background: rgba(255,255,255,.96); border-radius: 999px; padding: 5px 6px; box-shadow: 0 10px 30px -12px rgba(14,27,36,.6); max-width: min(88%, 360px); }
.hp-map-daynav--full { position: fixed; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); z-index: 1002; max-width: min(78vw, 420px); }
.hp-map-daynav button { flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--hp-ink); color: #fff; font-size: 19px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; transition: opacity .15s; }
.hp-map-daynav button:active { transform: translateY(1px); }
.hp-map-daynav button:disabled { opacity: .32; cursor: default; }
.hp-map-daynav [data-d="lbl"] { flex: 1 1 auto; text-align: center; font-size: 12.5px; font-weight: 700; color: var(--hp-ink); padding: 0 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Hide the native OS radio in the room picker (selection shown by the .is-on border/dot). */
.hp-room input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }

/* Lightbox caption */
.hp-lb__cap { text-align: center; color: rgba(255,255,255,.92); font-size: 14px; padding: 12px 16px; min-height: 20px; }

/* Overview live-weather chips */
.hp-trip__wx { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.hp-trip__wx-chip {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 12px;
  border-radius: 10px; background: var(--hp-white, #fff);
  border: 1px solid var(--hp-line-08, rgba(14,27,36,.08));
  font-size: 13.5px; color: var(--hp-ink);
}
.hp-trip__wx-chip strong { font-weight: 700; }
.hp-trip__wx-dot { width: 7px; height: 7px; border-radius: 50%; background: #0F7A50; flex: 0 0 auto; }

/* ==== Responsive audit fixes ==== */
.hp-day__t, .hp-day__route, .hp-day__body { display: block; } /* stack day title/route/body */
.hp-lb__close { min-height: 44px; display: inline-flex; align-items: center; padding: 8px 12px; }
@media (max-width: 560px) {
  .hp-lb__stage { position: relative; }
  .hp-lb__nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; }
  .hp-lb__nav[data-hp-lb-prev] { left: 8px; }
  .hp-lb__nav[data-hp-lb-next] { right: 8px; }
}
@media (max-width: 820px) { .hp-facts { grid-template-columns: repeat(2, 1fr); } }
.hp-rbar > div { min-width: 0; }
.hp-rbar__price { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hp-rbar-spacer { height: 92px; }

/* ==== Tap-a-checkpoint info card (3D itinerary map: name + elevation + live weather) ==== */
.hp-map-info { position: absolute; left: 14px; bottom: 14px; z-index: 30; width: min(320px, calc(100% - 28px)); background: rgba(255,255,255,.97); border-radius: 16px; padding: 12px 14px; box-shadow: 0 0 0 1px rgba(14,27,36,.08), 0 20px 46px -20px rgba(14,27,36,.6); backdrop-filter: blur(10px); transform: translateY(12px); opacity: 0; transition: opacity .22s ease, transform .22s ease; }
.hp-map-info.is-in { transform: translateY(0); opacity: 1; }
.hp-map-info__x { position: absolute; top: 6px; right: 8px; width: 30px; height: 30px; border: 0; background: none; font-size: 20px; line-height: 1; color: var(--hp-muted); cursor: pointer; border-radius: 50%; }
.hp-map-info__x:hover { background: rgba(14,27,36,.06); }
.hp-map-info__body { display: flex; gap: 12px; align-items: center; }
.hp-map-info__glyph { flex: 0 0 auto; }
.hp-map-info__glyph .hp-wx-glyph { display: inline-flex; border-radius: 12px; }
.hp-map-info__glyph .hp-wx-glyph svg { width: 100%; height: 100%; }
.hp-map-info__txt { min-width: 0; padding-right: 18px; }
.hp-map-info__name { font-family: var(--hp-font-display); font-size: 18px; font-weight: 700; letter-spacing: -.01em; color: var(--hp-ink); line-height: 1.15; }
.hp-map-info__sub { font-size: 12.5px; color: var(--hp-text-2); margin-top: 2px; }
.hp-map-info__wx { font-size: 13.5px; color: var(--hp-ink); margin-top: 4px; min-height: 18px; }
.hp-map-info__wx strong { font-size: 16px; font-weight: 700; }
