html { scroll-behavior: smooth; font-family: 'Montserrat', sans-serif; font-size: 16px; }
body { background: #FBFAF7; color: #0A1C2D; font-family: 'Montserrat', sans-serif; font-size: 15px; line-height: 1.65; font-weight: 500; }
button, input, select, textarea { font-family: 'Montserrat', sans-serif; }
h1, h2, h3, h4, h5, h6, .font-display { font-family: 'Montserrat', sans-serif !important; letter-spacing: -.032em; }
.font-display { font-weight: 700; }
p, li { letter-spacing: -.006em; }
:root { --branch-accent: #1E78D5; --branch-accent-soft: #E9F3FF; }
.branch-bg { background: var(--branch-accent) !important; }
.branch-soft { background: var(--branch-accent-soft) !important; }
.branch-text { color: var(--branch-accent) !important; }
.branch-border { border-color: var(--branch-accent) !important; }
.branch-dot { box-shadow: 0 0 0 6px color-mix(in srgb, var(--branch-accent) 16%, transparent); }
#siteHeaderMount { display: contents; }
::selection { background: #F08A24; color: #fff; }
.text-balance { text-wrap: balance; }
.subpage-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 28%, rgba(30,120,213,.34), transparent 28%),
    radial-gradient(circle at 68% 120%, rgba(240,138,36,.22), transparent 38%),
    linear-gradient(118deg, #071A2A 0%, #0B2941 58%, #0D3555 100%);
}
.subpage-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: .16;
  background-image: linear-gradient(rgba(255,255,255,.1) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.1) 1px, transparent 1px);
  background-size: 54px 54px;
  mask-image: linear-gradient(90deg, transparent, #000 55%, #000);
}
.subpage-hero::after {
  content: '';
  position: absolute;
  right: 8%;
  top: 50%;
  width: 190px;
  height: 190px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  transform: translateY(-50%);
  box-shadow: 0 0 0 32px rgba(255,255,255,.025), 0 0 0 64px rgba(255,255,255,.018);
}
.page-hero-overlay { background: linear-gradient(90deg, rgba(5,20,34,.94), rgba(5,20,34,.72) 48%, rgba(5,20,34,.14)); }
.grain::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .14;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E");
}
.nav-link { position: relative; display: inline-flex; align-items: center; line-height: 1; white-space: nowrap; }
.nav-link::after { content: ''; position: absolute; left: 0; right: 0; bottom: -10px; height: 2px; background: #F08A24; transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.nav-link:hover::after, .nav-link.is-active::after { transform: scaleX(1); }
#mobileMenu [data-page-link].is-active { color: #1E78D5; }
#mobileMenu [data-page-link].is-active svg { color: #F08A24; }
.modal-panel { animation: modal-in .28s ease-out; }
.room-sheet { animation: rooms-in .35s cubic-bezier(.2,.8,.2,1); }
.booking-field:focus-within { border-color: #1E78D5; box-shadow: 0 0 0 4px rgba(30,120,213,.10); }
.hide-scrollbar::-webkit-scrollbar { display: none; }
.hide-scrollbar { scrollbar-width: none; }
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.75,.2,1); }
.reveal.is-visible { opacity: 1; transform: none; }
.image-zoom img { transition: transform .7s cubic-bezier(.2,.75,.2,1); }
.image-zoom:hover img { transform: scale(1.045); }

.topbar-link { color: rgba(255,255,255,.98); }
.topbar-link, .topbar-link strong, .topbar-link .topbar-subtle, .topbar-link i { transition: color .2s ease, opacity .2s ease; }
.topbar-link:hover, .topbar-link:hover strong, .topbar-link:hover i { color: #0A1C2D; }
.topbar-link:hover .topbar-subtle { color: rgba(10,28,45,.78); opacity: 1; }
.premium-room-card { border: 1px solid rgba(148,163,184,.14); box-shadow: 0 16px 40px rgba(10,28,45,.07); transition: transform .3s ease, box-shadow .3s ease; }
.premium-room-card:hover { box-shadow: 0 22px 60px rgba(10,28,45,.12); transform: translateY(-4px); }
.room-amenity-pill { display:inline-flex; align-items:center; gap:.42rem; border-radius:0; background:transparent; padding:0; font-size:11px; font-weight:700; color:#557086; }
.room-title-single { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
.filter-button.is-active { background: #0A1C2D; color: white; }
.booking-progress::before { content: ''; position: absolute; left: 12%; right: 12%; top: 22px; height: 1px; background: #dbe4ec; }
.payment-option:has(input:checked) { border-color: #1E78D5; background: #eef6ff; box-shadow: 0 0 0 3px rgba(30,120,213,.09); }
.payment-option:has(input:checked) [data-payment-check] { background: #1E78D5; color: #fff; border-color: #1E78D5; }
.cart-bump { animation: cart-bump .35s cubic-bezier(.2,.75,.2,1); }
.sticky-search { transition: padding .25s ease, background-color .25s ease, box-shadow .25s ease; }
.sticky-search.is-compact { box-shadow: 0 18px 40px rgba(10,28,45,.12); }
.mobile-bottom-safe { padding-bottom: max(.75rem, env(safe-area-inset-bottom)); }
.price-grid strong { font-variant-numeric: tabular-nums; }
.focus-ring:focus-visible { outline: 3px solid color-mix(in srgb, var(--branch-accent) 38%, transparent); outline-offset: 3px; }
.live-pulse::before { content: ''; position: absolute; inset: -4px; border: 1px solid #22c55e; border-radius: 999px; animation: live-ring 1.8s ease-out infinite; }
@keyframes modal-in { from { opacity: 0; transform: translateY(16px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes rooms-in { from { opacity: 0; transform: translateY(-14px); } to { opacity: 1; transform: none; } }
@keyframes live-ring { from { opacity: .9; transform: scale(.7); } to { opacity: 0; transform: scale(1.8); } }
@keyframes cart-bump { 50% { transform: scale(1.035); } }
@media (max-width: 767px) {
  .page-hero-overlay { background: linear-gradient(180deg, rgba(5,20,34,.34), rgba(5,20,34,.94) 70%); }
  .subpage-hero::after { right: -90px; width: 170px; height: 170px; }
  .subpage-hero::before { opacity: .1; }
  .booking-progress::before { left: 16%; right: 16%; }
  .room-sheet { animation-name: sheet-in; border-radius: 4px 4px 0 0; }
}
@keyframes sheet-in { from { transform: translateY(100%); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

.google-translate-shell{min-width:112px}.google-translate-shell .goog-te-gadget{font-family:Montserrat,sans-serif!important;font-size:0!important}.google-translate-shell .goog-te-combo{margin:0!important;border:1px solid rgba(148,163,184,.28);border-radius:4px;background:#fff;color:#0A1C2D;padding:10px 30px 10px 10px;font-family:Montserrat,sans-serif!important;font-size:11px!important;font-weight:700;outline:none}.goog-te-banner-frame.skiptranslate{display:none!important}body{top:0!important}.goog-logo-link,.goog-te-gadget span{display:none!important}
.prose-hostel{font-size:15px;line-height:1.9;color:#45596b}.prose-hostel p{margin:0 0 1.35rem}.prose-hostel h2{margin:2.4rem 0 1rem;color:#0A1C2D;font-size:1.65rem;font-weight:800;line-height:1.25}.prose-hostel h3{margin:2rem 0 .8rem;color:#0A1C2D;font-size:1.25rem;font-weight:800}.prose-hostel ul,.prose-hostel ol{margin:1.2rem 0;padding-left:1.5rem}.prose-hostel a{color:#1E78D5;font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* Premium shared header + home hero */
.google-translate-host{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important;left:-9999px!important;top:-9999px!important}
[data-language-menu] [data-google-language].is-active{background:#EAF0F5;color:#0A1C2D}
#siteHeader{isolation:isolate}
#mobileMenu{isolation:isolate}
.home-hero-stage{position:relative;min-height:calc(100svh - 72px);background:#0A1C2D}
.home-hero-stage #heroSlider{min-height:inherit;height:100%}
.home-hero-stage .hero-content-wrap{min-height:inherit;padding-top:42px;padding-bottom:345px;align-items:flex-start}
.home-booking{position:absolute;left:0;right:0;bottom:14px;z-index:30}
.home-live-social{bottom:390px}
.booking-shell{backdrop-filter:blur(10px)}
@media (min-width:640px){
  .home-hero-stage{min-height:max(820px,calc(100svh - 82px))}
  .home-hero-stage .hero-content-wrap{padding-top:56px;padding-bottom:315px;align-items:center}
  .home-live-social{bottom:350px}
  .home-booking{bottom:18px}
}
@media (min-width:768px){
  .home-hero-stage{min-height:max(720px,calc(100svh - 120px))}
}
@media (min-width:1024px){
  .home-hero-stage{min-height:max(690px,calc(100svh - 120px))}
  .home-hero-stage .hero-content-wrap{padding-top:24px;padding-bottom:185px;align-items:center}
  .home-live-social{bottom:232px}
  .home-booking{bottom:18px}
}
@media (max-width:767px){
  #siteHeader{z-index:100!important}
  #mobileMenu{z-index:220!important}
  .home-hero-stage .hero-overlay{background:linear-gradient(180deg,rgba(6,23,38,.56) 0%,rgba(6,23,38,.90) 62%,#071827 100%)}
  .home-hero-stage .hero-content-wrap{padding-left:20px;padding-right:20px}
  .home-live-social{display:none!important}
  .home-booking{padding-left:12px!important;padding-right:12px!important}
  .booking-shell{padding:16px!important}
  [data-fixed-actions]{display:none!important}
}
@media (max-width:420px){
  .home-hero-stage{min-height:calc(100svh - 72px)}
  .home-hero-stage .hero-content-wrap{padding-top:34px;padding-bottom:355px}
}

.VIpgJd-ZVi9od-ORHb-OEVmcd,.goog-te-banner-frame.skiptranslate{display:none!important}body{top:0!important}.VIpgJd-yAWNEb-L7lbkb{display:none!important}



/* Page + image skeleton loading */
.page-skeleton{position:fixed;inset:0;z-index:9999;background:#f7f8fa;overflow:hidden;opacity:1;visibility:visible;pointer-events:none;transition:opacity .24s ease,visibility .24s ease;animation:page-skeleton-failsafe .24s ease 1.8s forwards}
html:not(.page-skeleton-active) .page-skeleton,.page-skeleton.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
.page-skeleton-top{height:42px;background:#eef1f4;border-bottom:1px solid #e5e9ee}
.page-skeleton-nav{height:86px;background:#e5eaf0;border-bottom:1px solid #dce2e8}
.page-skeleton-body{width:min(1344px,calc(100% - 40px));margin:0 auto;padding:64px 0}
.skeleton-block,.skeleton-card,.lazy-skeleton-overlay{position:relative;display:block;overflow:hidden;background:#e7ebef}
.skeleton-block::after,.skeleton-card::after,.lazy-skeleton-overlay::after{content:'';position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.78),transparent);animation:skeleton-shimmer 1.35s ease-in-out infinite}
.skeleton-kicker{width:150px;height:12px;margin-bottom:24px}
.skeleton-title{width:min(620px,82%);height:54px;margin-bottom:22px}
.skeleton-copy{width:min(700px,92%);height:15px;margin-bottom:12px}
.skeleton-copy-short{width:min(460px,68%)}
.page-skeleton-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:54px}
.skeleton-card{height:260px}
.lazy-skeleton-host{position:relative}
.lazy-skeleton-overlay{position:absolute;inset:0;z-index:2;pointer-events:none;transition:opacity .3s ease,visibility .3s ease}
.lazy-skeleton-overlay.is-loaded{opacity:0;visibility:hidden}
img[data-viewport-lazy="1"]{background:#e7ebef;transition:opacity .34s ease,filter .34s ease;opacity:0}
img[data-viewport-lazy="1"].lazy-loading{opacity:.08;filter:blur(3px)}
img[data-viewport-lazy="1"].lazy-loaded{opacity:1;filter:none}
@keyframes skeleton-shimmer{100%{transform:translateX(100%)}}
@keyframes page-skeleton-failsafe{to{opacity:0;visibility:hidden}}
@media(max-width:767px){.page-skeleton-top{display:none}.page-skeleton-nav{height:72px}.page-skeleton-body{width:calc(100% - 32px);padding-top:42px}.skeleton-title{height:42px}.page-skeleton-grid{grid-template-columns:1fr;gap:14px;margin-top:38px}.skeleton-card{height:180px}.page-skeleton-grid .skeleton-card:nth-child(n+2){display:none}}
@media(prefers-reduced-motion:reduce){.skeleton-block::after,.skeleton-card::after,.lazy-skeleton-overlay::after{animation:none}}


/* Mobile reservation UX — V8.3 */
@media (max-width: 767px) {
  html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
  body { font-size: 14px; }
  main { overflow-x: clip; }

  /* Prevent iOS focus zoom and native date overflow */
  input, select, textarea, button { max-width: 100%; }
  input, select, textarea { font-size: 16px !important; }
  input[type="date"] { min-width: 0 !important; width: 100% !important; max-width: 100% !important; -webkit-appearance: none; appearance: none; }

  /* Header: compact, thumb friendly */
  #siteHeader > div:first-child { min-height: 72px; height: 72px; padding-left: 16px; padding-right: 16px; }
  #siteHeader img { max-width: 210px; height: auto; }
  #siteHeader [data-language-button], #siteHeader [data-open-reservation], #siteHeader #menuButton { min-width: 46px; height: 46px; }
  #mobileMenu { position: fixed !important; inset: 0 !important; z-index: 999 !important; }

  /* Subpage hero: reduce dead vertical space */
  .subpage-hero > div { padding-top: 34px !important; padding-bottom: 36px !important; }
  .subpage-hero h1 { font-size: 30px !important; line-height: 1.08 !important; }
  .subpage-hero p { margin-top: 12px !important; font-size: 13px !important; line-height: 1.75 !important; }

  /* Reservation search page */
  body[data-page="booking"] section.sticky { position: relative !important; top: auto !important; z-index: 20 !important; padding-top: 12px !important; padding-bottom: 12px !important; box-shadow: none !important; }
  body[data-page="booking"] [data-availability-search] { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; gap: 10px !important; padding-left: 14px !important; padding-right: 14px !important; }
  body[data-page="booking"] [data-availability-search] > label { min-width: 0 !important; padding: 12px !important; gap: 8px !important; }
  body[data-page="booking"] [data-availability-search] > label > svg { display: none !important; }
  body[data-page="booking"] [data-availability-search] > div:nth-child(3) { grid-column: 1 / -1; min-height: 62px; }
  body[data-page="booking"] [data-availability-search] > button { grid-column: 1 / -1; min-height: 54px !important; }
  body[data-page="booking"] [data-availability-search] input[type="date"] { padding: 0 !important; font-size: 14px !important; font-weight: 700 !important; }
  body[data-page="booking"] [data-availability-search] .booking-field span.block { font-size: 9px !important; }

  body[data-page="booking"] section.bg-cream { padding-top: 26px !important; padding-bottom: 120px !important; }
  body[data-page="booking"] [data-search-dates] { font-size: 23px !important; line-height: 1.15 !important; }

  .availability-room-card { border-color: #e6ebf0 !important; box-shadow: 0 10px 30px rgba(10,28,45,.07) !important; }
  .availability-room-image { min-height: 0 !important; height: 220px !important; }
  .availability-room-body { padding: 18px !important; }
  .availability-room-head { gap: 14px !important; }
  .availability-room-head h2 { font-size: 21px !important; line-height: 1.2 !important; }
  .availability-price-grid { width: 100%; gap: 8px !important; }
  .availability-price-grid > span { padding: 10px 12px !important; }
  .availability-price-grid small { font-size: 9px !important; }
  .availability-price-grid strong { font-size: 15px !important; }
  .availability-amenities { margin-top: 14px !important; margin-bottom: 14px !important; }
  .availability-amenity { min-height: 38px; border-radius: 4px; background: #f7f9fc; padding: 8px 9px; overflow: hidden; }
  .availability-amenity svg { flex: 0 0 auto; }
  .availability-room-actions { gap: 14px !important; }
  .availability-room-actions > span { width: 100% !important; justify-content: center; }
  .availability-room-actions > div { width: 100%; gap: 10px !important; }
  .availability-room-actions > div > span { flex: 1; }

  /* Fixed mobile cart: compact and never hides the content */
  body[data-page="booking"] > .fixed.inset-x-3 { left: 12px !important; right: 12px !important; bottom: max(10px, env(safe-area-inset-bottom)) !important; padding: 10px 12px !important; }
  body[data-page="booking"] > .fixed.inset-x-3 .h-11 { height: 40px !important; width: 40px !important; }
  body[data-page="booking"] > .fixed.inset-x-3 strong { font-size: 16px !important; }

  /* Room detail amenity cards: 2 columns on phones */
  .room-detail-amenities { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 10px !important; }
  .room-amenity-card { min-width: 0; min-height: 86px; padding: 12px !important; gap: 10px !important; align-items: center; }
  .room-amenity-card > span { width: 38px !important; height: 38px !important; flex: 0 0 38px; }
  .room-amenity-card strong { min-width: 0; font-size: 12px !important; line-height: 1.35 !important; overflow-wrap: anywhere; }

  /* Booking steps: smaller mobile timeline */
  .booking-progress { padding: 16px 14px !important; column-gap: 4px; }
  .booking-progress::before { top: 33px !important; left: 18% !important; right: 18% !important; }
  .booking-progress > div > span { width: 38px !important; height: 38px !important; }
  .booking-progress > div > strong { margin-top: 7px !important; font-size: 10px !important; line-height: 1.25 !important; }

  /* Booking info / payment cards */
  body[data-page="booking-info"] section.bg-cream,
  body[data-page="payment"] section.bg-cream { padding-top: 24px !important; padding-bottom: 40px !important; }
  body[data-page="booking-info"] section.bg-cream > div,
  body[data-page="payment"] section.bg-cream > div { padding-left: 14px !important; padding-right: 14px !important; gap: 18px !important; }
  body[data-page="booking-info"] form,
  body[data-page="payment"] [data-payment-form] > div,
  body[data-page="payment"] [data-payment-form] > aside { padding: 18px !important; }
  body[data-page="booking-info"] h2,
  body[data-page="payment"] h2 { font-size: 24px !important; line-height: 1.18 !important; }
  body[data-page="booking-info"] form .grid.gap-4.sm\\:grid-cols-2 { grid-template-columns: 1fr !important; }
  body[data-page="booking-info"] input[type="date"] { min-height: 50px; padding: 12px 13px !important; }
  body[data-page="booking-info"] textarea { min-height: 110px; }

  /* Payment options: amount gets its own line without squeezing text */
  .payment-option { display: grid !important; grid-template-columns: 42px minmax(0,1fr) !important; gap: 10px !important; padding: 14px !important; }
  .payment-option > span:first-of-type { grid-row: 1 / span 2; width: 42px !important; height: 42px !important; }
  .payment-option > span.min-w-0 { grid-column: 2; }
  .payment-option > strong { grid-column: 2; justify-self: start; margin-top: 2px; font-size: 14px !important; }

  /* Reservation date modal */
  .mobile-reservation-modal { align-items: flex-end !important; padding: 0 !important; }
  .reservation-modal-panel { max-height: calc(100svh - 12px); overflow-y: auto; padding: 20px 16px calc(18px + env(safe-area-inset-bottom)) !important; border-radius: 4px 4px 0 0 !important; }
  .reservation-modal-panel h2 { padding-right: 46px !important; font-size: 27px !important; line-height: 1.12 !important; }
  .reservation-modal-form { gap: 12px !important; }
  .reservation-modal-form label { min-width: 0; }
  .reservation-modal-form input[type="date"] { min-height: 48px; padding: 11px 12px !important; background: #f7f8fa; }
  .reservation-modal-form > div { padding: 12px !important; }
  .reservation-modal-form > button[type="submit"] { min-height: 54px; }

  /* Generic mobile cards and sections */
  section.py-20, section.sm\\:py-28 { padding-top: 44px !important; padding-bottom: 44px !important; }
  .prose-hostel { font-size: 14px; line-height: 1.75; }

  /* Footer breathing room / safe area */
  footer { padding-bottom: max(18px, env(safe-area-inset-bottom)); }
}

@media (max-width: 390px) {
  #siteHeader img { max-width: 188px; }
  .room-detail-amenities { gap: 8px !important; }
  .room-amenity-card { padding: 10px !important; }
  .availability-room-image { height: 205px !important; }
  .booking-progress > div > strong { font-size: 9px !important; }
}

@media (max-width: 767px) {
  /* Hide generic floating WhatsApp/booking CTAs inside the actual reservation funnel */
  body[data-page="booking"] [data-fixed-actions],
  body[data-page="booking-info"] [data-fixed-actions],
  body[data-page="payment"] [data-fixed-actions] { display: none !important; }

  /* General room cards: shorter image and tighter card density on phones */
  .room-card > a.image-zoom { height: 220px !important; min-height: 220px !important; }
  .room-card > div.p-6, .room-card > div.sm\\:p-7 { padding: 18px !important; }
  .room-card h2, .room-card h3 { font-size: 20px !important; line-height: 1.22 !important; }

  /* Common section headings */
  section h2.text-4xl, section h2.sm\\:text-5xl { font-size: 29px !important; line-height: 1.12 !important; }

  /* Reservation flow should have enough room above iPhone home indicator */
  body[data-page="booking"] main,
  body[data-page="booking-info"] main,
  body[data-page="payment"] main { padding-bottom: env(safe-area-inset-bottom); }
}


/* Unified room cards — V8.4 */
.room-card-amenities .room-amenity-pill,
.availability-room-card .availability-amenity {
  background: transparent;
  border-radius: 0;
  padding: 0;
}
.room-card-prices > span { min-height: 54px; justify-content: center; }

@media (max-width: 767px) {
  /* One mobile card language everywhere */
  .premium-room-card,
  .availability-room-card { border: 1px solid #e7ecf1 !important; box-shadow: 0 12px 32px rgba(10,28,45,.07) !important; }

  .room-card-amenities,
  .availability-amenities {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 12px !important;
    overflow: hidden;
  }
  .room-card-amenities .room-amenity-pill,
  .availability-amenities .availability-amenity {
    min-width: 0 !important;
    flex: 0 1 auto !important;
    background: transparent !important;
    padding: 0 !important;
    font-size: 10px !important;
    white-space: nowrap;
  }
  .room-card-amenities svg,
  .availability-amenities svg { width: 14px !important; height: 14px !important; }

  .room-card-footer { align-items: stretch !important; }
  .room-card-prices {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    width: 100% !important;
    gap: 8px !important;
  }
  .room-card-prices > span {
    min-width: 0 !important;
    width: 100% !important;
    min-height: 58px !important;
    padding: 10px 12px !important;
  }
  .room-card-select {
    width: 100% !important;
    min-height: 48px !important;
    justify-content: center !important;
    font-size: 12px !important;
  }

  /* Availability cards follow the same rhythm */
  .availability-price-grid { order: 2; margin-top: 2px; }
  .availability-room-head { display: flex !important; flex-direction: column !important; }
  .availability-amenities { margin-top: 16px !important; margin-bottom: 16px !important; }
  .availability-amenity { min-height: 0 !important; }
}

/* V8.7 reservation flow refinements */
.booking-progress::before{display:none!important}
.booking-progress>div{min-width:0}
.payment-complete [data-payment-content]{min-height:calc(100vh - 120px);display:flex;align-items:center}
.payment-complete [data-payment-content]>div{width:100%}
@media(max-width:767px){
  .booking-progress{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;padding:12px!important}
  .booking-progress>div{padding:9px!important;gap:6px!important;flex-direction:column!important;text-align:center!important}
  .booking-progress>div>span:first-child{width:32px!important;height:32px!important}
  .booking-progress>div>span:last-child small{font-size:8px!important}
  .booking-progress>div>span:last-child strong{font-size:10px!important;line-height:1.2!important}
}
