/* Bookviaus – online hotel booking. Brand: navy #144383, gold #f3c14d → #e0a526, Lato + Plus Jakarta Sans. */
.bvh {
  --navy: #144383; --navy-deep: #0d2f62; --gold: #e0a526; --gold-light: #f3c14d;
  --ink: #1b2433; --muted: #5a6779; --line: #dbe2eb; --wash: #f4f6f9; --white: #fff;
  --good: #17734a; --good-wash: #e6f4ec; --bad: #b3261e; --bad-wash: #fbe9e7;
  --r-card: 14px; --r-ctl: 10px;
  margin: 0; background: var(--wash); color: var(--ink);
  font-family: Lato, system-ui, -apple-system, "Segoe UI", Arial, sans-serif; font-size: 16px; line-height: 1.55;
}
.bvh *, .bvh *::before, .bvh *::after { box-sizing: border-box; }
/* Living alongside the main site's Bootstrap styles */
.bvh main h1, .bvh main h2, .bvh main h3 { font-weight: 800; }
.bvh main legend { float: none; width: auto; font-size: inherit; line-height: inherit; margin: 0; padding: 0 4px; }
.bvh main p { margin-top: 0; }
.bvh main ul, .bvh main ol { margin-top: 0; }
.bvh h1, .bvh h2, .bvh h3 { font-family: "Plus Jakarta Sans", Lato, system-ui, sans-serif; line-height: 1.2; margin: 0 0 .5em; }
.bvh a { color: var(--navy); }
.bvh :focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.bvh-wrap { max-width: 1180px; margin: 0 auto; padding: 0 20px; }
.bvh-main { padding-top: 26px; padding-bottom: 56px; }
.bvh-small { font-size: .875rem; color: var(--muted); }

/* Search band */
.bvh-band { background: var(--navy); color: var(--white); padding: 34px 0 30px; border-bottom: 4px solid var(--gold); }
.bvh-band--slim { padding: 22px 0 20px; }
.bvh-title { font-size: clamp(1.7rem, 3.6vw, 2.5rem); font-weight: 800; letter-spacing: -.01em; color: var(--white); margin: 0 0 18px; }
.bvh-band--slim .bvh-title { margin-bottom: 4px; }
.bvh-sub { margin: 0; color: #dbe5f5; }
.bvh-back { color: #dbe5f5 !important; text-decoration: none; font-size: .9rem; display: inline-block; margin-bottom: 8px; }
.bvh-back:hover { color: var(--white) !important; text-decoration: underline; }
.bvh-search { display: grid; grid-template-columns: 2fr 1fr 1fr 1.4fr auto; gap: 10px; align-items: end; }
.bvh-field label, .bvh-guests__label { display: block; font-size: .8rem; font-weight: 700; color: #cfdcf0; margin: 0 0 5px; }
.bvh input, .bvh select, .bvh textarea {
  width: 100%; font: inherit; color: var(--ink); background: var(--white);
  border: 1px solid var(--line); border-radius: var(--r-ctl); padding: 11px 12px; min-height: 46px;
}
.bvh textarea { min-height: 0; resize: vertical; }
.bvh-search input, .bvh-guests summary { border-color: transparent; }
.bvh-guests { position: relative; }
.bvh-guests summary {
  list-style: none; cursor: pointer; background: var(--white); color: var(--ink); border-radius: var(--r-ctl);
  padding: 11px 12px; min-height: 46px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.bvh-guests summary::-webkit-details-marker { display: none; }
.bvh-guests summary .bvh-guests__label { display: none; }
.bvh-guests::before { content: "Guests"; display: block; font-size: .8rem; font-weight: 700; color: #cfdcf0; margin: 0 0 5px; }
.bvh-guests__panel {
  position: absolute; z-index: 20; top: calc(100% + 6px); left: 0; width: min(340px, 90vw); background: var(--white); color: var(--ink);
  border-radius: var(--r-card); padding: 14px; box-shadow: 0 14px 36px rgba(13, 47, 98, .28); max-height: 70vh; overflow: auto;
}
.bvh-room { border: 1px solid var(--line); border-radius: var(--r-ctl); padding: 8px 12px 10px; margin: 10px 0 0; }
.bvh-room legend { font-weight: 700; padding: 0 4px; }
.bvh-inline { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: .9rem; margin: 6px 0; color: var(--ink); }
.bvh-inline select { width: 84px; min-height: 38px; padding: 6px 8px; }
.bvh-ages { display: grid; gap: 2px; }

/* Buttons */
.bvh-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 20px;
  font: 700 1rem/1 "Plus Jakarta Sans", Lato, sans-serif; color: var(--white) !important; background: var(--navy);
  border: 0; border-radius: var(--r-ctl); text-decoration: none; cursor: pointer; white-space: nowrap;
}
.bvh-btn:hover { background: var(--navy-deep); }
.bvh-btn--gold { background: linear-gradient(180deg, var(--gold-light), var(--gold)); color: var(--navy-deep) !important; }
.bvh-btn--gold:hover { background: var(--gold); }
.bvh-btn--small { min-height: 36px; padding: 0 14px; font-size: .9rem; }
.bvh-btn--wide { width: 100%; }
.bvh-btn:disabled { opacity: .7; cursor: progress; }

/* Notices and empty states */
.bvh-notice { background: var(--white); border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: var(--r-ctl); padding: 12px 14px; margin: 0 0 14px; }
.bvh-notice--bad { border-left-color: var(--bad); background: var(--bad-wash); }
.bvh-empty { background: var(--white); border-radius: var(--r-card); padding: 34px 26px; text-align: center; }
.bvh-err { display: block; color: var(--bad); font-size: .875rem; font-weight: 700; margin-top: 4px; }
.bvh-missing { border-color: var(--bad) !important; box-shadow: 0 0 0 1px var(--bad); }

/* Intro (before a search) */
.bvh-intro h2 { font-size: 1.5rem; }
.bvh-ways { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.bvh-ways > div { background: var(--white); border-radius: var(--r-card); padding: 18px 20px; border-top: 4px solid var(--navy); }
.bvh-ways > div:first-child { border-top-color: var(--gold); }
.bvh-ways h3 { font-size: 1.1rem; }
.bvh-ways p { margin: 0; color: var(--muted); }

/* Results */
.bvh-results { display: grid; grid-template-columns: 262px 1fr; gap: 24px; align-items: start; }
.bvh-results > *, .bvh-book > * { min-width: 0; }
.bvh-filters select, .bvh-filters input:not([type="checkbox"]):not([type="radio"]) { max-width: 100%; }
.bvh-filters { background: var(--white); border-radius: var(--r-card); padding: 4px 16px 12px; align-self: start; }
.bvh-filterbox > summary { display: none; }
.bvh-fgroup { border: 0; border-top: 1px solid var(--line); margin: 0; padding: 14px 0 10px; min-width: 0; }
.bvh-fgroup--first { border-top: 0; padding-top: 12px; }
.bvh-fhead { display: block; font: 800 .98rem/1.3 "Plus Jakarta Sans", Lato, sans-serif; color: var(--ink); margin: 0 0 8px; padding: 0; }
/* A legend normally sits on top of its group's border; float it so the divider line stays above the heading. */
.bvh-fgroup > legend.bvh-fhead { float: left; width: 100%; }
.bvh-fgroup > legend.bvh-fhead + * { clear: both; }
.bvh-opt { display: flex !important; align-items: flex-start; gap: 10px; padding: 5px 0; font-size: .92rem; cursor: pointer; }
.bvh-opt input { width: 18px; height: 18px; min-height: 18px; margin: 2px 0 0; flex: none; accent-color: var(--navy); }
.bvh-opt__label { flex: 1; }
.bvh-opt__n { color: var(--muted); font-size: .85rem; }
.bvh-opt.is-zero { color: #9aa4b2; }
.bvh-range { display: flex; align-items: center; gap: 6px; margin: 4px 0 2px 28px; }
.bvh-range input { min-height: 36px; padding: 6px 8px; width: auto; flex: 1 1 0; min-width: 0; }
.bvh-range .bvh-btn { flex: none; padding: 0 12px; }
.bvh-range span { color: var(--muted); font-size: .85rem; }
.bvh-fmore > summary { cursor: pointer; color: var(--navy); font-weight: 700; font-size: .9rem; padding: 4px 0; }
.bvh-fmore[open] > summary { margin-bottom: 2px; }
.bvh-clear, .bvh-fclear { margin: 0 0 8px; font-size: .9rem; }
.bvh-clear a, .bvh-fclear a { font-weight: 700; }
.bvh-chips--active a { display: inline-flex; align-items: center; gap: 6px; background: #e8eefa; color: var(--navy-deep); border-radius: 999px; padding: 4px 12px; font-size: .85rem; text-decoration: none; font-weight: 700; }
.bvh-chips--active a span { font-size: 1.05rem; line-height: 1; background: none; padding: 0; color: inherit; }
.bvh-check { display: flex !important; gap: 10px; align-items: flex-start; font-weight: 400 !important; font-size: .95rem !important; cursor: pointer; }
.bvh-check input { width: 20px; min-height: 20px; height: 20px; margin: 2px 0 0; flex: none; accent-color: var(--navy); }
.bvh-count { margin: 0 0 12px; color: var(--muted); }
.bvh-hotel {
  display: grid; grid-template-columns: 200px 1fr 230px; gap: 18px; background: var(--white);
  border-radius: var(--r-card); padding: 16px; margin: 0 0 14px; border: 1px solid transparent;
}
.bvh-hotel__photo { position: relative; display: block; border-radius: 12px; overflow: hidden; height: 190px; align-self: start; background: var(--wash); }
.bvh-hotel__mark { align-self: start; height: 190px; }
.bvh-hotel__name a { color: inherit; text-decoration: none; }
.bvh-hotel__name a:hover { text-decoration: underline; }
.bvh-hotel__more { margin: 6px 0 0; font-size: .875rem; color: var(--navy); font-weight: 700; }
.bvh-hotel__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bvh-hotel__photo span { position: absolute; left: 8px; bottom: 8px; background: rgba(13, 47, 98, .82); color: var(--white); font-size: .75rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; }
.bvh-hotel__ta { margin: 2px 0 6px; font-size: .875rem; }
.bvh-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.bvh-chips span { background: var(--wash); border-radius: 999px; padding: 2px 10px; font-size: .8rem; color: var(--muted); }
.bvh-ta { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.bvh-ta__name { font-weight: 700; color: var(--ink); }
.bvh-ta__dots { display: inline-flex; gap: 2px; }
.bvh-ta__dot { width: 11px; height: 11px; border-radius: 50%; border: 2px solid #00aa6c; display: inline-block; }
.bvh-ta__dot--on { background: #00aa6c; }
.bvh-ta__dot--half { background: linear-gradient(90deg, #00aa6c 50%, transparent 50%); }
.bvh-ta__count { color: var(--muted); }
.bvh-hotel:hover { border-color: var(--line); }
.bvh-hotel__mark {
  width: 100%; min-height: 150px; border-radius: 12px; background: var(--navy); color: var(--gold-light);
  display: grid; place-items: center; font: 800 2.6rem/1 "Plus Jakarta Sans", sans-serif;
}
.bvh-hotel__name { font-size: 1.2rem; margin: 0 0 3px; }
.bvh-hotel__where, .bvh-hotel__room { margin: 0 0 4px; color: var(--muted); }
.bvh-stars { color: var(--gold); letter-spacing: 1px; font-size: .85rem; margin-right: 4px; }
.bvh-cancel { display: inline-block; font-size: .875rem; font-weight: 700; margin: 2px 0 0; }
.bvh-cancel--good { color: var(--good); }
.bvh-cancel--bad { color: var(--muted); }
.bvh-hotel__price { text-align: right; border-left: 1px solid var(--line); padding-left: 18px; display: flex; flex-direction: column; justify-content: center; }
.bvh-price { font: 800 1.6rem/1.1 "Plus Jakarta Sans", sans-serif; margin: 0; color: var(--navy-deep); }
.bvh-price__note { margin: 2px 0 8px; font-size: .85rem; color: var(--muted); }
.bvh-today { margin: 0 0 10px; font-size: .9rem; background: #fff7e3; border-radius: 8px; padding: 6px 8px; text-align: left; }
.bvh-rooms { margin-top: 10px; }
.bvh-rooms summary { cursor: pointer; font-weight: 700; color: var(--navy); }
.bvh-rooms ul { list-style: none; margin: 8px 0 0; padding: 0; }
.bvh-rooms li { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-top: 1px solid var(--line); font-size: .95rem; }
.bvh-rooms__buy { display: flex; align-items: center; gap: 10px; }
.bvh-pages { display: flex; gap: 16px; justify-content: center; align-items: center; margin-top: 20px; }

/* Booking page */
.bvh-book { display: grid; grid-template-columns: 1fr 340px; gap: 24px; align-items: start; }
.bvh-card { background: var(--white); border-radius: var(--r-card); padding: 22px; margin: 0 0 18px; }
.bvh-card h2 { font-size: 1.25rem; }
.bvh-h3 { font-size: 1.05rem; margin-top: 18px !important; }
.bvh-stay { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; margin: 0 0 12px; }
.bvh-stay dt { font-size: .8rem; font-weight: 700; color: var(--muted); }
.bvh-stay dd { margin: 0; }
.bvh-important { background: var(--wash); border-radius: var(--r-ctl); padding: 12px 14px; margin-top: 12px; }
.bvh-important h3 { font-size: .95rem; margin: 0 0 4px; }
.bvh-important p { margin: 0; font-size: .9rem; }
.bvh-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.bvh-f { margin: 0 0 12px; }
.bvh-f label { display: block; font-weight: 700; font-size: .875rem; margin: 0 0 5px; }
.bvh-guestroom { border: 0; padding: 0; margin: 10px 0 6px; }
.bvh-guestroom legend { font-weight: 800; font-family: "Plus Jakarta Sans", sans-serif; margin-bottom: 6px; }

/* Payment choice – the centrepiece */
.bvh-pay { display: grid; gap: 12px; }
.bvh-pay__opt {
  position: relative; display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; cursor: pointer;
  border: 2px solid var(--line); border-radius: var(--r-card); padding: 16px 18px 16px 52px; background: var(--white);
}
.bvh-pay__opt > input { position: absolute; left: 18px; top: 19px; width: 20px; height: 20px; min-height: 20px; margin: 0; accent-color: var(--navy); }
.bvh-pay__opt:has(input:checked) { border-color: var(--navy); background: #eef4fd; }
.bvh-pay__head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.bvh-pay__name { font: 800 1.1rem/1.3 "Plus Jakarta Sans", sans-serif; color: var(--navy-deep); }
.bvh-pay__badge { background: var(--navy); color: var(--white); font-size: .75rem; font-weight: 800; padding: 3px 9px; border-radius: 6px; }
.bvh-pay__today { grid-row: span 2; text-align: right; color: var(--ink); font-size: .95rem; white-space: nowrap; }
.bvh-pay__today strong { font: 800 1.35rem/1.1 "Plus Jakarta Sans", sans-serif; color: var(--navy-deep); }
.bvh-pay__today small { display: block; color: var(--muted); font-size: .8rem; }
.bvh-pay__summary { color: var(--muted); font-size: .92rem; }
.bvh-pay__sched { grid-column: 1 / -1; display: grid; margin-top: 8px; background: var(--white); border: 1px solid var(--line); border-radius: 10px; padding: 4px 14px; }
.bvh-pay__row { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0 7px 22px; position: relative; font-size: .92rem; }
.bvh-pay__row::before { content: ""; position: absolute; left: 2px; top: 50%; width: 9px; height: 9px; border: 1.5px solid var(--muted); transform: translateY(-50%) rotate(45deg); }
.bvh-pay__row + .bvh-pay__row { border-top: 1px solid #eef1f5; }
.bvh-pay__row span:last-child { font-weight: 700; }
.bvh-pay__row--today { font-weight: 800; }
.bvh-pay__row--today::before { background: var(--gold); border-color: var(--gold); }
.bvh-pay__note { grid-column: 1 / -1; font-size: .85rem; color: var(--muted); margin-top: 4px; }

.bvh-book__side { align-self: stretch; }
.bvh-book__side .bvh-summary { position: sticky; top: 16px; z-index: 2; }

/* Banners */
.bvh-promo { display: grid; grid-template-columns: 300px 1fr; background: var(--white); border-radius: var(--r-card); overflow: hidden; margin: 0 0 14px; border: 2px solid #f3c14d; }
.bvh-promo--text { grid-template-columns: 1fr; }
.bvh-promo__photo { position: relative; min-height: 180px; background: var(--wash); }
.bvh-promo__photo img { position: absolute; inset: 0; }
.bvh-promo__credit { position: absolute; right: 6px; bottom: 6px; background: rgba(0, 0, 0, .55); color: #fff; font-size: .68rem; padding: 1px 6px; border-radius: 4px; max-width: 90%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bvh-promo__body { padding: 20px 22px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 8px; }
.bvh-promo__body h2 { font-size: 1.35rem; margin: 0; color: var(--navy-deep); }
.bvh-promo__body p { margin: 0; color: var(--muted); }
.bvh-todo { background: var(--navy); color: var(--white); border-radius: var(--r-card); padding: 18px; margin: 0 0 14px; }
.bvh-todo__head h2 { color: var(--white); font-size: 1.3rem; margin: 0 0 4px; }
.bvh-todo__head p { margin: 0 0 12px; color: #dbe5f5; }
.bvh-todo__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.bvh-todo__item { background: var(--white); color: var(--ink); border-radius: 10px; overflow: hidden; }
.bvh-todo__photo { position: relative; height: 130px; background: var(--wash); }
.bvh-todo__photo .bvh-extra__kind { position: absolute; left: 8px; top: 8px; }
.bvh-todo__name { margin: 8px 10px 0; font-weight: 800; font-family: "Plus Jakarta Sans", sans-serif; line-height: 1.3; }
.bvh-todo__price { margin: 2px 10px 6px; font-weight: 800; color: var(--navy-deep); }
.bvh-todo__price span { font-weight: 400; color: var(--muted); font-size: .85rem; }
.bvh-todo__credit { margin: 0 10px 8px; font-size: .68rem; color: var(--muted); }
.bvh-sidepromo { background: var(--white); border-radius: var(--r-card); overflow: hidden; margin-top: 16px; }
.bvh-sidepromo__photo { position: relative; height: 170px; background: var(--wash); }
.bvh-sidepromo__body { padding: 14px 16px 16px; }
.bvh-sidepromo__body h3 { font-size: 1.05rem; margin: 0 0 4px; color: var(--navy-deep); }
.bvh-sidepromo__body p { margin: 0 0 10px; color: var(--muted); font-size: .92rem; }
.bvh-why { background: var(--white); border-radius: var(--r-card); padding: 16px; margin-top: 16px; }
.bvh-why h3 { font-size: 1.05rem; margin: 0 0 10px; }
.bvh-why ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.bvh-why li { display: grid; grid-template-columns: 40px 1fr; gap: 10px; align-items: start; font-size: .9rem; color: var(--muted); }
.bvh-why li strong { display: block; color: var(--ink); font-size: .95rem; }
.bvh-why__icon { position: relative; width: 40px; height: 40px; border-radius: 50%; background: var(--wash); display: grid; place-items: center; color: var(--navy); }
.bvh-why__icon::after { content: ""; position: absolute; top: 3px; right: 2px; width: 9px; height: 9px; border-radius: 50%; background: #f3a712; }
.bvh-summary { background: var(--white); border-radius: var(--r-card); padding: 22px; border-top: 4px solid var(--gold); }
.bvh-summary__label { margin: 0; font-weight: 700; color: var(--muted); }
.bvh-summary__total { font: 800 2rem/1.1 "Plus Jakarta Sans", sans-serif; color: var(--navy-deep); margin: 2px 0 6px; }
.bvh-summary__today { font-size: 1.05rem; border-top: 1px solid var(--line); padding-top: 12px; }
.bvh-terms { margin: 10px 0 14px; }
.bvh-secure { margin: 10px 0 0; }

/* The hotel: photos and details */
.bvh-hotelinfo { padding: 14px; }
/* Photo grid on the hotel page (Booking.com style): one main photo and four smaller ones */
.bvh-photos { display: grid; grid-template-columns: 2fr 1fr; gap: 6px; height: 360px; margin: 0 0 12px; }
.bvh-photos--one { grid-template-columns: 1fr; }
.bvh-photos button { position: relative; display: block; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 10px; overflow: hidden; cursor: zoom-in; background: var(--wash); }
.bvh-photos button img { transition: transform .25s ease; }
.bvh-photos button:hover img { transform: scale(1.03); }
.bvh-photos__side { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 6px; min-height: 0; }
.bvh-photos__count { position: absolute; left: 10px; bottom: 10px; background: rgba(13, 47, 98, .85); color: var(--white); font-size: .82rem; font-weight: 700; padding: 4px 10px; border-radius: 999px; }
.bvh-photos__more { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(13, 47, 98, .6); color: var(--white); font: 800 1rem/1.2 "Plus Jakarta Sans", sans-serif; }
@media (prefers-reduced-motion: reduce) { .bvh-photos button img { transition: none; } }

/* Large photo viewer */
.bvh-noscroll, .bvh-noscroll body { overflow: hidden; }
.bvh-lightbox { position: fixed; inset: 0; z-index: 9999; background: #0a1424; display: grid; grid-template-rows: auto 1fr auto; color: var(--white); }
.bvh-lightbox[hidden] { display: none; }
.bvh-lightbox__top { display: flex; align-items: center; gap: 14px; padding: 12px 16px; }
.bvh-lightbox__title { font: 800 1.05rem/1.2 "Plus Jakarta Sans", sans-serif; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bvh-lightbox__close { width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: var(--white); font-size: 1.8rem; line-height: 1; cursor: pointer; }
.bvh-lightbox__stage { position: relative; display: grid; place-items: center; min-height: 0; padding: 0 64px; }
.bvh-lightbox__stage img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 6px; user-select: none; }
.bvh-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .9); color: var(--navy-deep); cursor: pointer; font-size: 1.1rem; }
.bvh-lightbox__nav[data-lb="prev"] { left: 10px; } .bvh-lightbox__nav[data-lb="next"] { right: 10px; }
.bvh-lightbox__thumbs { display: flex; gap: 8px; overflow-x: auto; padding: 10px 16px 14px; justify-content: safe center; }
.bvh-lightbox__thumbs button { flex: none; width: 84px; height: 60px; padding: 0; border: 2px solid transparent; border-radius: 6px; overflow: hidden; cursor: pointer; opacity: .65; background: #1d2b44; }
.bvh-lightbox__thumbs button.is-on { border-color: var(--gold); opacity: 1; }
.bvh-lightbox :focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
@media (max-width: 640px) {
  .bvh-photos { grid-template-columns: 1fr; height: 230px; }
  .bvh-photos__side { display: none; }
  .bvh-lightbox__stage { padding: 0 8px; }
  .bvh-lightbox__nav { width: 40px; height: 40px; opacity: .85; }
}
.bvh-hotelinfo__ta, .bvh-hotelinfo__where { margin: 4px 4px 8px; }
.bvh-hotelinfo__where a { margin-left: 6px; font-weight: 700; }
.bvh-about { margin: 6px 4px 0; }
.bvh-about summary, .bvh-more summary { cursor: pointer; font-weight: 700; color: var(--navy); }
.bvh-about p { margin: 6px 0 0; }
.bvh-facilities { list-style: none; padding: 0; margin: 6px 4px 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 4px 14px; font-size: .9rem; }
.bvh-facilities li::before { content: "✓"; color: var(--good); font-weight: 800; margin-right: 6px; }
.bvh-more { margin: 6px 4px 0; }

/* Add to your trip */
.bvh-extras { display: grid; gap: 10px; }
.bvh-extra {
  display: grid; grid-template-columns: auto 1fr auto; gap: 2px 12px; align-items: baseline; cursor: pointer;
  border: 1px solid var(--line); border-radius: var(--r-ctl); padding: 12px 14px 12px 44px; position: relative;
}
.bvh-extra input { position: absolute; left: 14px; top: 14px; width: 20px; height: 20px; min-height: 20px; margin: 0; accent-color: var(--navy); }
.bvh-extra:has(input:checked) { border-color: var(--navy); background: #fbfcfe; }
.bvh-extra__kind { font-size: .75rem; font-weight: 700; border-radius: 999px; padding: 2px 9px; background: var(--wash); color: var(--navy); }
.bvh-extra__kind--transfer { background: #e8eefa; }
.bvh-extra__kind--sightseeing { background: #fff3d6; color: #7a5200; }
.bvh-extra__kind--attraction { background: var(--good-wash); color: var(--good); }
.bvh-extra__name { font-weight: 700; }
.bvh-extra__name small { font-weight: 400; color: var(--muted); margin-left: 4px; }
.bvh-extra__price { font: 800 1.05rem/1.2 "Plus Jakarta Sans", sans-serif; color: var(--navy-deep); }
.bvh-extra__desc, .bvh-extra__how, .bvh-extra__credit { grid-column: 1 / -1; font-size: .875rem; color: var(--muted); }
.bvh-extra__credit { font-size: .72rem; }
.bvh-extra__credit a { color: var(--muted); }
.bvh-extra--photo { grid-template-columns: 132px auto 1fr auto; padding-left: 14px; }
.bvh-extra--photo input { left: 22px; top: 22px; z-index: 1; box-shadow: 0 0 0 3px rgba(255, 255, 255, .9); border-radius: 4px; }
.bvh-extra__photo { grid-row: 1 / span 5; grid-column: 1; align-self: start; width: 132px; height: 96px; border-radius: 8px; overflow: hidden; background: var(--wash); }
.bvh-extra__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bvh-extra--photo .bvh-extra__desc, .bvh-extra--photo .bvh-extra__how, .bvh-extra--photo .bvh-extra__credit { grid-column: 2 / -1; }
.bvh-sumline { display: flex; justify-content: space-between; gap: 12px; font-size: .9rem; padding: 3px 0; }
.bvh-sumline span:first-child { color: var(--muted); }
.bvh-sumgap { border-top: 1px solid var(--line); margin: 8px 0 10px; }
.bvh-extralist { list-style: none; padding: 0; margin: 0 0 6px; }
.bvh-extralist li { display: flex; justify-content: space-between; border-top: 1px solid var(--line); padding: 8px 0; }

/* Hotel page */
.bvh-live { margin: 0 0 14px; font-size: .9rem; color: var(--good); font-weight: 700; }
.bvh-live--off { color: #7a5200; }
.bvh-hotelpage { display: grid; grid-template-columns: 1fr 320px; gap: 24px; align-items: start; }
.bvh-hotelpage > * { min-width: 0; }
.bvh-hotelpage__side { align-self: stretch; }
.bvh-hotelpage__side .bvh-summary { position: sticky; top: 16px; z-index: 2; }
.bvh-stayline { margin: 2px 0 12px; }
.bvh-roomchips { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 14px; }
.bvh-chip { border: 1px solid var(--line); background: var(--white); color: var(--ink); border-radius: 999px; padding: 7px 14px; font: 700 .88rem/1 Lato, sans-serif; cursor: pointer; }
.bvh-chip[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: var(--white); }
.bvh-norooms { color: var(--muted); }
.bvh-roomtype { display: grid; grid-template-columns: 240px 1fr; gap: 0; border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; margin: 0 0 14px; }
.bvh-roomtype__side { padding: 14px; border-right: 1px solid var(--line); background: #fbfcfe; }
.bvh-roomtype__photo { height: 150px; border-radius: 10px; overflow: hidden; margin-bottom: 10px; background: var(--wash); }
.bvh-roomtype__side h3 { font-size: 1.05rem; margin: 0 0 2px; }
.bvh-rate { display: grid; grid-template-columns: 1fr auto auto; gap: 14px; align-items: center; padding: 14px 16px; }
.bvh-rate + .bvh-rate { border-top: 1px solid var(--line); }
.bvh-rate__what { display: flex; flex-direction: column; gap: 3px; }
.bvh-rate__what strong { font-family: "Plus Jakarta Sans", sans-serif; }
.bvh-rate__monthly { font-size: .82rem; background: #fff7e3; border-radius: 6px; padding: 2px 8px; align-self: flex-start; }
.bvh-rate__price { text-align: right; }
.bvh-rate__price strong { display: block; font: 800 1.25rem/1.1 "Plus Jakarta Sans", sans-serif; color: var(--navy-deep); }
.bvh-rate__price small { color: var(--muted); font-size: .8rem; }

/* Combo deals */
.bvh-combo {
  position: relative; display: grid; grid-template-columns: 220px 1fr auto; gap: 0 18px; cursor: pointer;
  border: 2px solid #f3c14d; border-radius: var(--r-card); padding: 0; overflow: hidden; background: linear-gradient(180deg, #fffaf0, #fff 60%);
  box-shadow: 0 6px 18px rgba(224, 165, 38, .14);
}
.bvh-combo--nophoto { grid-template-columns: 1fr auto; }
.bvh-combo.is-on { border-color: var(--navy); box-shadow: 0 0 0 2px var(--navy) inset, 0 6px 18px rgba(13, 47, 98, .14); }
.bvh-combo > input { position: absolute; left: 12px; top: 44px; width: 22px; height: 22px; min-height: 22px; margin: 0; z-index: 2; accent-color: var(--navy); box-shadow: 0 0 0 3px rgba(255, 255, 255, .9); border-radius: 4px; }
.bvh-combo--nophoto > input { top: 46px; left: 16px; }
.bvh-combo--nophoto .bvh-combo__body { padding-left: 50px; }
.bvh-combo__ribbon { position: absolute; left: 0; top: 0; z-index: 2; background: linear-gradient(180deg, #f3c14d, #e0a526); color: var(--navy-deep);
  font: 800 .78rem/1 "Plus Jakarta Sans", sans-serif; letter-spacing: .02em; padding: 7px 12px 7px 10px; border-bottom-right-radius: 10px; }
.bvh-combo__photos { display: grid; gap: 2px; min-height: 180px; background: var(--wash); }
.bvh-combo__photos--2 { grid-template-rows: 1fr 1fr; }
.bvh-combo__photos--3 { grid-template-columns: 1fr 1fr; grid-template-rows: 1.4fr 1fr; }
.bvh-combo__photos--3 img:first-child { grid-column: 1 / -1; }
.bvh-combo__body { padding: 40px 0 14px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.bvh-combo__name { font: 800 1.15rem/1.25 "Plus Jakarta Sans", sans-serif; color: var(--navy-deep); }
.bvh-combo__name small { font: 400 .85rem/1 Lato, sans-serif; color: var(--muted); margin-left: 4px; }
.bvh-combo__incl-title { font-size: .78rem; font-weight: 800; color: var(--muted); margin-top: 4px; }
.bvh-combo__incl { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.bvh-combo__incl li { background: var(--good-wash); color: var(--good); border-radius: 999px; padding: 3px 10px 3px 8px; font-size: .82rem; font-weight: 700; }
.bvh-combo__incl li::before { content: "✓ "; }
.bvh-combo__desc { font-size: .875rem; color: var(--muted); margin-top: 2px; }
.bvh-combo__price { padding: 40px 16px 14px 0; display: flex; flex-direction: column; align-items: flex-end; text-align: right; gap: 2px; white-space: nowrap; }
.bvh-combo__price s { color: var(--muted); font-size: .9rem; }
.bvh-combo__price strong { font: 800 1.5rem/1.1 "Plus Jakarta Sans", sans-serif; color: var(--navy-deep); }
.bvh-combo__price small { color: var(--muted); font-size: .8rem; }
.bvh-combo__price em { font-style: normal; font-weight: 800; color: var(--good); font-size: .9rem; margin-top: 2px; }
.bvh-combo__add { margin-top: 8px; background: var(--navy); color: var(--white); border-radius: 999px; padding: 6px 14px; font-weight: 800; font-size: .85rem; }
.bvh-combo.is-on .bvh-combo__add { background: var(--good); }
.bvh-combo__how { grid-column: 2 / -1; padding: 0 16px 12px 0; font-size: .78rem; color: var(--muted); }
.bvh-combo--nophoto .bvh-combo__how { grid-column: 1 / -1; padding-left: 50px; }
.bvh-extra.is-covered { opacity: .55; cursor: not-allowed; }
.bvh-extra__covered { grid-column: 1 / -1; font-size: .8rem; font-weight: 800; color: var(--good); }
.bvh-todo__item--combo { box-shadow: 0 0 0 3px #f3c14d; }
.bvh-extra__kind--combo { background: linear-gradient(180deg, #f3c14d, #e0a526); color: var(--navy-deep); }
.bvh-todo__incl { margin: 2px 10px 0; font-size: .8rem; color: var(--muted); line-height: 1.35; }
.bvh-todo__price s { color: var(--muted); font-weight: 400; font-size: .85rem; }

/* Status */
.bvh-status { max-width: 760px; }
.bvh-state { text-align: left; }
.bvh-state h1 { font-size: 1.7rem; color: var(--navy-deep); }
.bvh-state--good { border-top: 5px solid var(--good); }
.bvh-state--bad { border-top: 5px solid var(--bad); }
.bvh-ref { font-size: 1.15rem; }
.bvh-ref strong { font-family: "Plus Jakarta Sans", sans-serif; }
.bvh-sched { width: 100%; border-collapse: collapse; margin: 6px 0 10px; }
.bvh-sched td { padding: 8px 6px; border-top: 1px solid var(--line); }
.bvh-sched td:last-child { text-align: right; font-weight: 700; white-space: nowrap; }
.bvh-sched__total td { font-weight: 800; }
.bvh-steps { padding-left: 1.2em; }
.bvh-steps li { margin: 6px 0; color: var(--muted); }
.bvh-steps .is-done { color: var(--good); font-weight: 700; }
.bvh-steps .is-now { color: var(--ink); font-weight: 700; }
.bvh-spinner { width: 42px; height: 42px; border-radius: 50%; border: 4px solid var(--line); border-top-color: var(--navy); animation: bvhspin 1s linear infinite; margin-bottom: 14px; }
@keyframes bvhspin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .bvh-spinner { animation-duration: 3s; } }

/* Smaller screens */
@media (max-width: 980px) {
  .bvh-search { grid-template-columns: 1fr 1fr; }
  .bvh-field--dest, .bvh-search .bvh-btn { grid-column: 1 / -1; }
  .bvh-results, .bvh-book { grid-template-columns: 1fr; }
  .bvh-filters, .bvh-book__side { position: static; }
  .bvh-hotelpage { grid-template-columns: 1fr; }
  .bvh-hotelpage__side .bvh-summary { position: static; }
  .bvh-book__side .bvh-summary { position: static; }
  .bvh-todo__grid { grid-template-columns: repeat(3, minmax(180px, 1fr)); overflow-x: auto; }
  .bvh-filterbox > summary { display: block; cursor: pointer; font: 800 1rem/1.3 "Plus Jakarta Sans", sans-serif; padding: 12px 0; color: var(--navy-deep); }
  .bvh-ways { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .bvh-hotel { grid-template-columns: 1fr; }
  .bvh-hotel__photo, .bvh-hotel__mark { min-height: 180px; }
  .bvh-hotel__price { grid-column: 1 / -1; text-align: left; border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 12px; }
  .bvh-row, .bvh-stay { grid-template-columns: 1fr; }
  .bvh-pay__opt { grid-template-columns: 1fr; padding-left: 48px; }
  .bvh-pay__today { grid-row: auto; text-align: left; }
  .bvh-rooms li { flex-direction: column; }
  .bvh-promo { grid-template-columns: 1fr; }
  .bvh-promo__photo { min-height: 170px; }
  .bvh-combo, .bvh-combo--nophoto { grid-template-columns: 1fr; }
  .bvh-combo__photos { min-height: 170px; }
  .bvh-combo__body { padding: 12px 14px 4px; }
  .bvh-combo--nophoto .bvh-combo__body { padding: 44px 14px 4px 50px; }
  .bvh-combo__price { padding: 4px 14px 10px; align-items: flex-start; text-align: left; }
  .bvh-combo__how, .bvh-combo--nophoto .bvh-combo__how { grid-column: 1; padding: 0 14px 12px; }
  .bvh-roomtype { grid-template-columns: 1fr; }
  .bvh-roomtype__side { border-right: 0; border-bottom: 1px solid var(--line); }
  .bvh-rate { grid-template-columns: 1fr auto; }
  .bvh-rate .bvh-btn { grid-column: 1 / -1; }
  .bvh-hotel__photo, .bvh-hotel__mark { height: 200px; }
  .bvh-extra { grid-template-columns: 1fr auto; }
  .bvh-extra__kind { grid-column: 1 / -1; justify-self: start; }
  .bvh-extra--photo { grid-template-columns: 1fr auto; }
  .bvh-extra__photo { grid-row: auto; grid-column: 1 / -1; width: 100%; height: 150px; }
  .bvh-extra--photo .bvh-extra__desc, .bvh-extra--photo .bvh-extra__how, .bvh-extra--photo .bvh-extra__credit { grid-column: 1 / -1; }
}

/* ------------------------------------------------------------------
   Living with the main site's style.css
   style.css makes every <p> 13px grey (!important) and the body font Poppins (!important).
   That's right for the site header and footer, but not for the hotel content, so inside
   the hotel pages each paragraph keeps its own size and colour (set per class below).
   ------------------------------------------------------------------ */
.bvh main, .bvh .bvh-band { font-family: Lato, system-ui, -apple-system, "Segoe UI", Arial, sans-serif; font-size: 16px; line-height: 1.55; color: var(--ink); }
.bvh .bvh-band { color: var(--white); }
.bvh main p, .bvh .bvh-band p {
  font-size: var(--bvh-p-size, 1rem) !important;
  line-height: var(--bvh-p-lh, 1.55) !important;
  color: var(--bvh-p-color, inherit) !important;
}
.bvh-sub { --bvh-p-color: #dbe5f5; }
.bvh-todo__head p { --bvh-p-color: #dbe5f5; }
.bvh-price { --bvh-p-size: 1.6rem; --bvh-p-lh: 1.1; --bvh-p-color: var(--navy-deep); }
.bvh-price__note { --bvh-p-size: .85rem; --bvh-p-color: var(--muted); }
.bvh-today { --bvh-p-size: .9rem; }
.bvh-summary__total { --bvh-p-size: 2rem; --bvh-p-lh: 1.1; --bvh-p-color: var(--navy-deep); }
.bvh-summary__label { --bvh-p-color: var(--muted); }
.bvh-summary__today { --bvh-p-size: 1.05rem; }
.bvh-small, .bvh-norooms { --bvh-p-size: .875rem; --bvh-p-color: var(--muted); }
.bvh-norooms { --bvh-p-size: 1rem; }
.bvh-count, .bvh-hotel__room, .bvh-hotel__where { --bvh-p-color: var(--muted); }
.bvh-hotel__ta, .bvh-cancel { --bvh-p-size: .875rem; }
.bvh-cancel--good { --bvh-p-color: var(--good); }
.bvh-cancel--bad { --bvh-p-color: var(--muted); }
.bvh-hotel__more { --bvh-p-size: .875rem; --bvh-p-color: var(--navy); }
.bvh-clear, .bvh-fclear { --bvh-p-size: .9rem; }
.bvh-ref { --bvh-p-size: 1.15rem; }
.bvh-live { --bvh-p-size: .9rem; --bvh-p-color: var(--good); }
.bvh-live--off { --bvh-p-color: #7a5200; }
.bvh-todo__name { --bvh-p-lh: 1.3; }
.bvh-todo__price { --bvh-p-color: var(--navy-deep); }
.bvh-todo__incl { --bvh-p-size: .8rem; --bvh-p-lh: 1.35; --bvh-p-color: var(--muted); }
.bvh-todo__credit { --bvh-p-size: .68rem; --bvh-p-color: var(--muted); }
.bvh-promo__body p, .bvh-ways p { --bvh-p-color: var(--muted); }
.bvh-sidepromo__body p { --bvh-p-size: .92rem; --bvh-p-color: var(--muted); }
.bvh-important p { --bvh-p-size: .9rem; }

/* ------------------------------------------------------------------
   The main site's header and footer on the hotel pages (after style.css).
   Scoped to the hotel pages only (body.bvh), so the rest of the site is untouched.
   ------------------------------------------------------------------ */
/* Header: navy top bar with the white logo, contact links in one row, white menu bar below */
.bvh header.main_navbar_fix { position: relative !important; background: #144383; z-index: 1030; }
.bvh .main_navbar_fix .top_header_bar { background: #144383 !important; border-bottom: 0 !important; position: static !important; padding: 6px 18px !important; }
.bvh .top_header_bar .navbar-collapse { display: flex !important; justify-content: space-between; align-items: center; }
.bvh .main_navbar_fix .nav-desk-1 { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 18px; }
.bvh .top_header_bar .call-navbar { padding: 0 !important; margin: 0 !important; }
.bvh .top_header_bar .call-navbar a, .bvh .top_header_bar .call-navbar .nav-link {
  color: #fff !important; font-size: 15px !important; font-weight: 600; animation: none !important;
  display: inline-flex; align-items: center; gap: 6px; padding: 0 !important; margin: 0 !important;
}
.bvh .main_navbar_fix .logo-350 { height: 50px; width: auto; max-width: 240px; }
.bvh .header-atol-badge { width: 53px !important; }
.bvh .main_navbar_fix .mega_menu_bar { background: #fff !important; position: relative !important; margin-top: 0 !important; border-bottom: 4px solid #144383 !important; padding: 0 18px !important; }
.bvh .mega_menu_bar .navbar-collapse { display: flex !important; justify-content: space-between; align-items: center; }
.bvh .mega_menu_bar .navbar-nav { flex-direction: row; gap: 4px; }
.bvh .mega_menu_bar .nav-link { color: #144383 !important; font-weight: 700; font-size: 15px; padding: 12px 12px !important; }
.bvh .mega_menu_bar .mega-drop-down { position: static; }
.bvh .mega-menu { z-index: 1040; box-shadow: 0 12px 28px rgba(13, 47, 98, .18); }
.bvh .mobile-logo { height: 38px; width: auto; }
/* Footer: light background, dark text, navy headings (as designed – the icons are navy) */
.bvh #footer_area { background: #f4f6f9 !important; color: #1b2433 !important; }
.bvh #footer_area h5 { color: #144383 !important; font-weight: 800; font-size: 1.05rem; border: 0; margin-bottom: 12px; }
.bvh #footer_area a, .bvh #footer_area small, .bvh #footer_area .footer_link_main div { color: #1b2433 !important; }
.bvh #footer_area a:hover { color: #144383 !important; }
.bvh #footer_area .footer_link_main ul li { margin: 6px 0; font-size: 14px; }
.bvh #footer_area .footer-logo img { width: 180px; max-width: 100%; }
.bvh #footer_area hr { border-color: #d6dbe3; opacity: 1; }
.bvh #footer_area .soical_icon_footer { gap: 8px; }
.bvh #footer_area .payment-methods small, .bvh #footer_area .text-center { color: #1b2433 !important; }
.bvh .header-atol-badge--mobile { width: 40px !important; }
.bvh #footer_area .soical_icon_footer { flex-wrap: wrap; }
