/* Bookzo Elements in the design of Groots in de Ardennen (docs/design-analyse.md §5,
   prototype index.html and aanbod.html). Loaded only on a page with Bookzo
   (Base.astro). Every rule hangs under one of our classes on the element
   (.bz-search, .bz-filters, .bz-results …, see src/lib/design/), written twice
   (.bz-results.bz-results): Bookzo's Bootstrap comes later in the page with
   rules like .bookzo-bootstrap .col-xl-3, so the extra weight is what makes
   ours win without !important. It touches nothing outside Bookzo.
   Colours are the design tokens: forest 500 #3D6B3F / 700 #2C4A2E,
   amber 500 #B8860B / 600 #9C7008, cream #F5F0E8, paper #EBE3D5,
   ink #1A1A18, muted #8C7B6B, line #DDD4C2. */

/* ── Search bar ─────────────────────────────────────────────────────────────
   Home: a white pill low in the photo (bold label, muted hint, amber pill).
   Aanbod: a white bar with small uppercase labels and an amber "Vind". */
.bz-search.bz-search .bookzo-search form { display: flex; flex-wrap: nowrap; align-items: stretch; gap: 0; padding: .375rem; background: #fff; box-shadow: 0 25px 50px -12px rgb(26 26 24 / .25); }
.bz-search.bz-search.bz-search--pill .bookzo-search form { border-radius: 9999px; }
.bz-search.bz-search.bz-search--bar .bookzo-search form { border-radius: 1rem; }

.bz-search.bz-search .bookzo-search .form-group-inline { position: relative; flex: 1 1 0; min-width: 0; width: auto; margin: 0; padding: .5rem 1.5rem; display: flex; flex-direction: column; justify-content: center; border-radius: 9999px; cursor: pointer; }
.bz-search.bz-search.bz-search--bar .bookzo-search .form-group-inline { padding: .75rem 1.25rem; border-radius: .75rem; }
.bz-search.bz-search .bookzo-search .form-group-inline:hover { background: rgb(235 227 213 / .5); }
.bz-search.bz-search .bookzo-search .form-group-inline + .form-group-inline::before { content: ''; position: absolute; left: 0; top: 50%; width: 1px; height: 2.25rem; background: #DDD4C2; transform: translateY(-50%); }

.bz-search.bz-search .bookzo-search label { margin: 0 0 .125rem; font-size: 14px; font-weight: 600; line-height: 1.3; color: #1A1A18; cursor: pointer; }
.bz-search.bz-search.bz-search--bar .bookzo-search label { font-size: 11px; font-weight: 400; text-transform: uppercase; letter-spacing: .05em; color: #8C7B6B; }

.bz-search.bz-search .bookzo-search .form-control,
.bz-search.bz-search .bookzo-search .merged-arrival-departure { height: auto; min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; font-size: 13px; line-height: 1.4; color: #1A1A18; cursor: pointer; }
.bz-search.bz-search.bz-search--bar .bookzo-search .form-control,
.bz-search.bz-search.bz-search--bar .bookzo-search .merged-arrival-departure { font-size: 15px; font-weight: 500; }
.bz-search.bz-search .bookzo-search .form-control::placeholder,
.bz-search.bz-search .bookzo-search .merged-arrival-departure-placeholder { color: #8C7B6B; opacity: 1; }
.bz-search.bz-search .bookzo-search .form-control:focus { outline: none; box-shadow: none; }
.bz-search.bz-search .bookzo-search .form-group-inline:focus-within { background: rgb(235 227 213 / .5); }
.bz-search.bz-search .bookzo-search .dropdown-input { position: relative; }
.bz-search.bz-search .bookzo-search .dropdown-button { display: none; }

.bz-search.bz-search .bookzo-search .bookzo-search-submit { flex: none; align-self: stretch; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; margin: 0; padding: 1rem 1.75rem; border: 0; border-radius: 9999px; background: #B8860B; color: #F5F0E8; font-weight: 600; font-size: 1rem; box-shadow: none; }
.bz-search.bz-search.bz-search--bar .bookzo-search .bookzo-search-submit { padding: .75rem 1.75rem; border-radius: .75rem; }
.bz-search.bz-search .bookzo-search .bookzo-search-submit:hover,
.bz-search.bz-search .bookzo-search .bookzo-search-submit:focus { background: #9C7008; color: #F5F0E8; }
.bz-search.bz-search .bookzo-search .bookzo-search-submit::before { content: ''; width: 1rem; height: 1rem; flex: none; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat; }

/* Phone: the fields under each other in a rounded card, the button full width. */
@media (max-width: 767px) {
  .bz-search.bz-search .bookzo-search form { flex-direction: column; border-radius: 1.25rem; }
  .bz-search.bz-search.bz-search--pill .bookzo-search form { border-radius: 1.5rem; }
  .bz-search.bz-search .bookzo-search .form-group-inline { padding: .75rem 1rem; border-radius: .75rem; }
  .bz-search.bz-search .bookzo-search .form-group-inline + .form-group-inline::before { left: 1rem; right: 1rem; top: 0; width: auto; height: 1px; transform: none; }
  .bz-search.bz-search .bookzo-search .bookzo-search-submit { margin-top: .25rem; padding: .875rem 1.5rem; }
}

/* ── The popups of the search bar (region, dates, group size) ──────────────
   Bookzo hangs them outside the element, so they're scoped on their own
   Bookzo wrappers: .region-picker-wrapper, .datepicker-wrapper,
   .objects-to-book-wrapper (all .floating). */
.bookzo-bootstrap .floating { margin-top: .5rem; border: 1px solid #DDD4C2; border-radius: 1rem; background: #fff; box-shadow: 0 20px 40px -12px rgb(26 26 24 / .22); color: #1A1A18; font-family: 'Inter', system-ui, sans-serif; font-size: 14px; overflow: hidden; }
.bookzo-bootstrap .region-picker-wrapper.floating { min-width: 18rem; }
.bookzo-bootstrap .objects-to-book-wrapper.floating { min-width: 20rem; padding-bottom: .5rem; }
.bookzo-bootstrap .region-picker-title,
.bookzo-bootstrap .datepicker-title,
.bookzo-bootstrap .objects-to-book-title { display: flex; align-items: center; justify-content: space-between; font-family: 'Fraunces', Georgia, serif; font-size: 1.125rem; color: #2C4A2E; }
.bookzo-bootstrap .close-region-picker-button,
.bookzo-bootstrap .close-calendar-button,
.bookzo-bootstrap .close-objects-to-book-button { cursor: pointer; color: #8C7B6B; }
.bookzo-bootstrap .floating .form-check-input { accent-color: #3D6B3F; }
.bookzo-bootstrap .floating .btn-link { color: #3D6B3F; font-weight: 600; text-decoration: none; }
.bookzo-bootstrap .floating .btn-link:hover { color: #2C4A2E; text-decoration: underline; }
.bookzo-bootstrap .floating .btn-primary { border-color: #3D6B3F; background: #3D6B3F; color: #F5F0E8; }
.bookzo-bootstrap .floating .btn-primary:hover,
.bookzo-bootstrap .floating .btn-primary:focus { border-color: #345A36; background: #345A36; }
.bookzo-bootstrap .floating .btn-secondary { border: 1px solid #DDD4C2; border-radius: 9999px; background: #fff; color: #1A1A18; }
.bookzo-bootstrap .floating .btn-secondary:hover,
.bookzo-bootstrap .floating .btn-secondary.active { border-color: #3D6B3F; background: #EEF1EA; color: #2C4A2E; }
.bookzo-bootstrap .region-group .feature-group-title { padding: .375rem 1rem; }
.bookzo-bootstrap .region-group .feature-group-title:hover { background: #EEF1EA; }

/* The calendar (ngb-datepicker): forest for the chosen period, today ringed. */
.bookzo-bootstrap .datepicker-wrapper .ngb-dp-header,
.bookzo-bootstrap .datepicker-wrapper .ngb-dp-weekdays { border: 0; background: transparent; }
.bookzo-bootstrap .datepicker-wrapper .ngb-dp-month-name { background: transparent; font-weight: 600; color: #2C4A2E; }
.bookzo-bootstrap .datepicker-wrapper .ngb-dp-weekday { color: #8C7B6B; font-style: normal; font-size: 11px; text-transform: uppercase; }
.bookzo-bootstrap .datepicker-wrapper .ngb-dp-arrow-btn { color: #2C4A2E; }
.bookzo-bootstrap .datepicker-wrapper .custom-day-circle { border-radius: 9999px; }
.bookzo-bootstrap .datepicker-wrapper .custom-day:not(.disabled):hover .custom-day-circle { background: #EEF1EA; color: #2C4A2E; }
.bookzo-bootstrap .datepicker-wrapper .custom-day.range { background: #EEF1EA; color: #2C4A2E; }
.bookzo-bootstrap .datepicker-wrapper .custom-day.first-date .custom-day-circle,
.bookzo-bootstrap .datepicker-wrapper .custom-day.second-date .custom-day-circle { background: #3D6B3F; color: #F5F0E8; }
.bookzo-bootstrap .datepicker-wrapper .custom-day.disabled { color: #DDD4C2; }
.bookzo-bootstrap .datepicker-wrapper .ngb-dp-today .custom-day-circle { box-shadow: inset 0 0 0 1px #B8860B; }

/* The group size: round − and + in forest. */
.bookzo-bootstrap .objects-to-book .persons-item { padding: .375rem 1rem; }
.bookzo-bootstrap .objects-to-book .persons-item .label { font-weight: 600; }
.bookzo-bootstrap .objects-to-book .btn-circle { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; padding: 0; border: 1px solid #DDD4C2; border-radius: 9999px; background: #fff; color: #2C4A2E; }
.bookzo-bootstrap .objects-to-book .btn-circle:hover:not(:disabled) { border-color: #3D6B3F; background: #EEF1EA; }
.bookzo-bootstrap .objects-to-book .btn-circle:disabled { opacity: .4; }
.bookzo-bootstrap .objects-to-book input.form-control { width: 2.5rem; border: 0; background: transparent; text-align: center; font-weight: 600; }
.bookzo-bootstrap .objects-to-book-buttons { padding: .25rem 1rem 0; }

/* ── Filters ("Maak je keuze simpeler"): the free-text field, the sliders in
   forest, folded groups with a line between them. The white card is ours. */
.bz-filters.bz-filters .filters { margin: 0; }
.bz-filters.bz-filters .filters-wrapper { color: #1A1A18; font-size: 14px; }
.bz-filters.bz-filters .form-group-filters-search { margin-bottom: 1.25rem; }
.bz-filters.bz-filters .form-group-filters-search .input-group { position: relative; flex-wrap: nowrap; }
.bz-filters.bz-filters .form-group-filters-search .input-group-prepend { position: absolute; left: .75rem; top: 50%; z-index: 4; transform: translateY(-50%); }
.bz-filters.bz-filters .form-group-filters-search .input-group-text { padding: 0; border: 0; background: transparent; color: #8C7B6B; }
.bz-filters.bz-filters .form-group-filters-search .form-control { height: auto; padding: .625rem .75rem .625rem 2.25rem; border: 1px solid #DDD4C2; border-radius: .75rem; background: #fff; font-size: 14px; }
.bz-filters.bz-filters .form-group-filters-search .form-control:focus { border-color: #3D6B3F; box-shadow: 0 0 0 3px rgb(61 107 63 / .15); }
.bz-filters.bz-filters .price-slider-title,
.bz-filters.bz-filters .feature-slider-title,
.bz-filters.bz-filters .feature-group-title { margin: 0; font-family: 'Inter', system-ui, sans-serif; font-size: 14px; font-weight: 600; color: #1A1A18; }
.bz-filters.bz-filters .slider-input { width: 4.5rem; height: auto; padding: .25rem .5rem; border: 1px solid #DDD4C2; border-radius: .5rem; font-size: 13px; text-align: center; }
/* The slider on its own line, the two numbers under it left and right. */
.bz-filters.bz-filters .price-slider,
.bz-filters.bz-filters .feature-slider { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 0; margin-top: .5rem; }
.bz-filters.bz-filters .price-slider > bookzo-slider.slider-component,
.bz-filters.bz-filters .feature-slider > bookzo-slider.slider-component { order: -1; flex: 0 0 100%; padding: 0 9px; }
.bz-filters.bz-filters .bookzo-slider { width: 100%; }
.bz-filters.bz-filters .slider-input { margin: 0; }
.bz-filters.bz-filters .slider.slider-horizontal { width: 100%; }
.bz-filters.bz-filters .slider-track { height: 4px; border-radius: 9999px; background: #DDD4C2; background-image: none; box-shadow: none; }
.bz-filters.bz-filters .slider-selection { border-radius: 9999px; background: #3D6B3F; background-image: none; box-shadow: none; }
.bz-filters.bz-filters .slider-handle { width: 18px; height: 18px; border: 2px solid #3D6B3F; background: #fff; background-image: none; box-shadow: 0 1px 3px rgb(26 26 24 / .2); }
.bz-filters.bz-filters .feature-group { margin: 0; padding: .875rem 0; border-top: 1px solid #DDD4C2; }
.bz-filters.bz-filters .feature-group-title-wrapper { display: flex; align-items: center; justify-content: space-between; cursor: pointer; }
.bz-filters.bz-filters .feature-group-collapse-icon { color: #3D6B3F; }
.bz-filters.bz-filters .form-check { padding-top: .25rem; padding-bottom: .25rem; }
.bz-filters.bz-filters .form-check-input { accent-color: #3D6B3F; }
.bz-filters.bz-filters .form-check-label { color: #1A1A18; cursor: pointer; }
.bz-filters.bz-filters .form-check-input:disabled + .form-check-label { opacity: .5; cursor: not-allowed; }

/* ── Results: two cards per row (design), the card like ours (white, line,
   rounded 2xl, lift), one badge, no long description, a heart on the photo. */
.bz-results.bz-results .bookzo-results { color: #1A1A18; font-family: 'Inter', system-ui, sans-serif; }
.bz-results.bz-results .result-items-wrapper.row { margin-left: -.625rem; margin-right: -.625rem; }
.bz-results.bz-results .result-items { flex: 0 0 100%; max-width: 100%; margin-bottom: 1.25rem; padding-left: .625rem; padding-right: .625rem; }
@media (min-width: 640px) { .bz-results.bz-results .result-items { flex-basis: 50%; max-width: 50%; } }
.bz-results.bz-results .card.result-item { height: 100%; overflow: hidden; border: 1px solid #DDD4C2; border-radius: 1rem; background: #fff; transition: transform .35s ease, box-shadow .35s ease; }
.bz-results.bz-results .card.result-item:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -18px rgb(44 74 46 / .35); }
.bz-results.bz-results .card-img-top { position: relative; height: 14rem; overflow: hidden; border-radius: 0; }
.bz-results.bz-results .card-img-top .tags { position: absolute; top: .75rem; left: .75rem; z-index: 2; display: flex; gap: .375rem; }
.bz-results.bz-results .card-img-top .tag { display: none; padding: .25rem .625rem; border-radius: .25rem; background: #C4A882; color: #F5F0E8; font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.bz-results.bz-results .card-img-top .tag:first-child { display: inline-block; }
.bz-results.bz-results .favorite-item { position: absolute; top: .75rem; right: .75rem; z-index: 3; }
.bz-results.bz-results .favorite-icon { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: 9999px; background: rgb(255 255 255 / .95); color: #2C4A2E; }
.bz-results.bz-results .card-body { padding: 1.25rem; }
.bz-results.bz-results .object-name { padding: 0; border: 0; font-family: 'Fraunces', Georgia, serif; font-size: 1.25rem; font-weight: 500; line-height: 1.25; color: #2C4A2E; text-align: left; text-decoration: none; white-space: normal; }
.bz-results.bz-results .object-name:hover { color: #3D6B3F; text-decoration: none; }
.bz-results.bz-results .group-name { margin-top: .125rem; color: #8C7B6B; font-size: 14px; }
.bz-results.bz-results .card-icons { color: #1A1A18; font-size: 13px; }
.bz-results.bz-results .card-icons .bookzo-icon { color: #3D6B3F; }
.bz-results.bz-results .card-description { display: none; }
.bz-results.bz-results .card-usp ul { margin: 0; padding: 0; list-style: none; font-size: 13px; color: rgb(26 26 24 / .8); }
.bz-results.bz-results .card-usp li { display: flex; align-items: center; gap: .5rem; margin-top: .375rem; }
.bz-results.bz-results .card-usp br { display: none; }
.bz-results.bz-results .btn-primary { border: 0; border-radius: 9999px; background: #B8860B; color: #F5F0E8; font-weight: 600; }
.bz-results.bz-results .btn-primary:hover,
.bz-results.bz-results .btn-primary:focus { background: #9C7008; color: #F5F0E8; }

/* ── House page (Groepen.nl's parts, src/lib/design/accommodation.ts) ────────
   Every part carries .bz-part and .bz-part--<part>. */
.bz-part.bz-part { display: block; min-width: 0; max-width: 100%; color: #1A1A18; font-family: 'Inter', system-ui, sans-serif; font-size: 14px; }
.bz-part.bz-part .btn-link { color: #3D6B3F; font-weight: 600; text-decoration: none; }
.bz-part.bz-part .btn-link:hover { color: #2C4A2E; text-decoration: underline; }
.bz-part.bz-part .btn-primary { border: 0; border-radius: 9999px; background: #B8860B; color: #F5F0E8; font-weight: 600; }
.bz-part.bz-part .btn-primary:hover,
.bz-part.bz-part .btn-primary:focus { background: #9C7008; color: #F5F0E8; }

/* The top of a Bookzo house, laid out as Groepen.nl's house page: one big
   photo with a row of six thumbnails under it, the rating on one line,
   the facts in a row, the USPs as tiles. */
.bz-part--images.bz-part--images .images-wrapper { display: flex; flex-direction: column; gap: .5rem; }
.bz-part--images.bz-part--images .images-wrapper > .item { position: relative; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 1.5rem; }
.bz-part--images.bz-part--images .main-image { width: 100%; height: 100%; object-fit: cover; }
.bz-part--images.bz-part--images .smaller-images { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .5rem; }
.bz-part--images.bz-part--images .smaller-images { height: auto; }
/* Bookzo gives each thumbnail width: 100%/6 with [_ngcontent] attributes in the selector; this outweighs that. */
.bz-part--images.bz-part--images.bz-part--images .smaller-images .item.clickable { flex: none; width: 100%; max-width: none; height: auto; margin: 0; aspect-ratio: 3 / 2; overflow: hidden; border-radius: .75rem; }
.bz-part--images.bz-part--images .smaller-images img { width: 100%; height: 100%; object-fit: cover; }
.bz-part--images.bz-part--images .images-wrapper > .btn { position: absolute; right: .75rem; bottom: .75rem; padding: .5rem 1rem; border: 0; border-radius: 9999px; background: rgb(255 255 255 / .95); color: #1A1A18; font-size: 13px; font-weight: 600; }
.bz-part--images.bz-part--images .images-wrapper { position: relative; }
.bz-part--images.bz-part--images .favorite-item { position: absolute; top: .75rem; right: .75rem; z-index: 2; }
.bz-part--images.bz-part--images .favorite-icon { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: 9999px; background: rgb(255 255 255 / .95); color: #2C4A2E; }
@media (max-width: 639px) { .bz-part--images.bz-part--images .smaller-images { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.bz-part--rating.bz-part--rating .object-rating { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.bz-part--rating.bz-part--rating .average-rating-container { display: inline-flex; align-items: center; gap: .375rem; }
.bz-part--rating.bz-part--rating .average-rating-number { font-size: 15px; font-weight: 700; line-height: 1; color: #1A1A18; }
.bz-part--rating.bz-part--rating .average-rating-star { font-size: 14px; color: #B8860B; }
.bz-part--rating.bz-part--rating .reviews-count { font-size: 14px; color: #3D6B3F; text-decoration: underline; }

.bz-part--icons.bz-part--icons .icons,
.bz-part--icons.bz-part--icons .persons-pets-location,
.bz-part--icons.bz-part--icons .persons-pets,
.bz-part--icons.bz-part--icons .popular-features { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem 1.25rem; }
.bz-part--icons.bz-part--icons .icon-wrapper { display: inline-flex; align-items: center; gap: .375rem; font-size: 14px; color: #1A1A18; }
.bz-part--icons.bz-part--icons .icon,
.bz-part--icons.bz-part--icons .bookzo-icon { color: #3D6B3F; }
.bz-part--icons.bz-part--icons .location .icon-wrapper { font-weight: 600; }

.bz-part--usp.bz-part--usp ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.bz-part--usp.bz-part--usp li { display: flex; align-items: center; gap: .75rem; padding: .75rem 1rem; border-radius: .75rem; background: rgb(235 227 213 / .6); font-size: 14px; font-weight: 500; color: #1A1A18; }
.bz-part--usp.bz-part--usp li::before { content: ''; width: 2rem; height: 2rem; flex: none; border-radius: 9999px; background: #3D6B3F url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F5F0E8' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4L18 8'/%3E%3C/svg%3E") center / 1rem no-repeat; }
.bz-part--usp.bz-part--usp br { display: none; }

/* "Beschikbaarheid en prijs": the price beside the big calendar. */
.bz-part--price-info.bz-part--price-info { color: #1A1A18; font-size: 14px; }

/* Facilities (Bookzo's feature groups): three columns of white cards. */
.bz-part--features.bz-part--features .feature-groups,
.bz-part--features.bz-part--features .features { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1rem; }
.bz-part--features.bz-part--features .feature-group { padding: 1rem 1.25rem; border: 1px solid #DDD4C2; border-radius: 1rem; background: #fff; }

/* The calendar: white card, forest month names; Bookzo's own free/taken colours stay. */
.bz-part--calendar.bz-part--calendar .ngb-datepicker { border: 1px solid #DDD4C2; border-radius: 1rem; background: #fff; padding: .75rem; }
.bz-part--calendar.bz-part--calendar .ngb-dp-header,
.bz-part--calendar.bz-part--calendar .ngb-dp-weekdays { border: 0; background: transparent; }
.bz-part--calendar.bz-part--calendar .ngb-dp-month-name { background: transparent; font-weight: 600; color: #2C4A2E; }
.bz-part--calendar.bz-part--calendar .ngb-dp-weekday { color: #8C7B6B; font-style: normal; font-size: 11px; text-transform: uppercase; }

/* Rooms: each floor a heading, each room a small white card. */
.bz-part--rooms.bz-part--rooms .floor-group { margin-bottom: 1.5rem; }
.bz-part--rooms.bz-part--rooms .floor-group-heading { margin: 0 0 .75rem; font-family: 'Fraunces', Georgia, serif; font-size: 1.125rem; font-weight: 500; color: #2C4A2E; }
.bz-part--rooms.bz-part--rooms .room-group { display: inline-block; vertical-align: top; min-width: 11rem; margin: 0 .5rem .5rem 0; padding: .875rem 1rem; border: 1px solid #DDD4C2; border-radius: 1rem; background: #fff; }
.bz-part--rooms.bz-part--rooms .room-group-heading { display: block; margin-bottom: .25rem; font-weight: 600; color: #1A1A18; }
.bz-part--rooms.bz-part--rooms ul.feature { margin: 0; padding: 0; list-style: none; color: rgb(26 26 24 / .8); }

/* Reviews: inside their column, white cards with a line, the score in Fraunces. */
.bz-part--reviews.bz-part--reviews .card { overflow: hidden; border: 1px solid #DDD4C2; border-radius: 1rem; background: #fff; }
.bz-part--reviews.bz-part--reviews .card-header { border-bottom: 1px solid #DDD4C2; background: #F5F0E8; }
.bz-part--reviews.bz-part--reviews .review-question-container .card { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; padding: 1.25rem; }
.bz-part--reviews.bz-part--reviews .question-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 9rem), 1fr)); gap: .25rem 1.5rem; flex: 1 1 12rem; min-width: 0; }
.bz-part--reviews.bz-part--reviews .question-body { display: flex; justify-content: space-between; gap: .75rem; }
.bz-part--reviews.bz-part--reviews .average-rating-number { font-family: 'Fraunces', Georgia, serif; color: #2C4A2E; }
.bz-part--reviews.bz-part--reviews .result-value-container { max-width: 100%; border-color: #DDD4C2; border-radius: .75rem; }
.bz-part--reviews.bz-part--reviews .result-question-body { display: flex; justify-content: space-between; gap: .75rem; }
.bz-part--reviews.bz-part--reviews .card-title { font-family: 'Fraunces', Georgia, serif; font-size: 1.125rem; color: #2C4A2E; }
/* The reviews right of our own score column (accommodation.ts): Bookzo's own
   score card goes, its reviews stay, each review's part scores as chips. */
.bz-reviews-list .bz-part--reviews.bz-part--reviews.bz-part--reviews .review-results > div:has(> .review-question-container) { display: none; }
.bz-reviews-list .bz-part--reviews.bz-part--reviews.bz-part--reviews .review-result-container { margin-top: 0; }
.bz-part--reviews.bz-part--reviews.bz-part--reviews .review-result-container .card { margin-bottom: 1rem; }
.bz-part--reviews.bz-part--reviews.bz-part--reviews .result-value-container { display: flex; flex-wrap: wrap; gap: .375rem; padding: 0; border: 0; }
.bz-part--reviews.bz-part--reviews.bz-part--reviews .result-value-container .result-question-body { display: inline-flex; align-items: center; gap: .375rem; padding: .25rem .625rem; border-radius: 9999px; background: #EEF1EA; font-size: 12px; color: #2C4A2E; }
.bz-part--reviews.bz-part--reviews.bz-part--reviews .result-value-container .result-question-body .bookzo-icon,
.bz-part--reviews.bz-part--reviews.bz-part--reviews .result-value-container ngb-rating { display: none; }

.bz-part--reviews.bz-part--reviews.bz-part--reviews .result-question.card { flex-direction: row; flex-wrap: wrap; gap: .375rem; padding: 0; border: 0; border-radius: 0; background: none; }
.bz-part--reviews.bz-part--reviews.bz-part--reviews .result-question-right-side .average-rating-number { font-family: 'Inter', system-ui, sans-serif; font-size: 12px; font-weight: 700; color: #2C4A2E; }

/* The overall score in the design's own left column: amber stars, the number
   in Fraunces, the count after it ("★★★★★ 8,8 · 23 beoordelingen"). */
.bz-score .bz-part--rating.bz-part--rating .object-rating { gap: .75rem; }
.bz-score .bz-part--rating.bz-part--rating .average-rating-container { flex-direction: row-reverse; gap: .75rem; }
.bz-score .bz-part--rating.bz-part--rating .average-rating-number { font-family: 'Fraunces', Georgia, serif; font-size: 1.25rem; font-weight: 500; color: #2C4A2E; }
.bz-score .bz-part--rating.bz-part--rating .average-rating-star { font-size: 16px; color: #B8860B; }
.bz-score .bz-part--rating.bz-part--rating .reviews-count { color: #8C7B6B; text-decoration: none; }
.bz-score .bz-part--rating.bz-part--rating .reviews-count::before { content: '· '; }

/* Bookzo's "Lees meer" fades into white; ours into the cream of the page. */
.bz-part.bz-part .read-more-gradient,
.bz-part.bz-part [class*="read-more"][class*="gradient"] { background: linear-gradient(to bottom, rgb(245 240 232 / 0), #F5F0E8); }

/* The booking card: Bookzo's own fields, our small uppercase labels. */
.bz-booking .bz-part--calendar label { margin-bottom: .25rem; font-size: 11px; font-weight: 400; letter-spacing: .05em; text-transform: uppercase; color: #8C7B6B; }

/* One photo per card in the design: no dots, the arrows only on hover. */
.bz-results.bz-results .slider-pagination { display: none; }
.bz-results.bz-results .slider-button { opacity: 0; transition: opacity .2s ease; color: #fff; }
.bz-results.bz-results .card-img-top:hover .slider-button { opacity: 1; }

/* Rating small next to the name ("★ 9,3"), as in the design. */
.bz-results.bz-results .card-rating { text-align: left; }
.bz-results.bz-results .average-rating-container { display: inline-flex; align-items: center; gap: .375rem; }
.bz-results.bz-results .average-rating-number { font-size: 14px; font-weight: 600; line-height: 1; color: #1A1A18; }
.bz-results.bz-results .average-rating-star { font-size: 12px; color: #B8860B; }

/* Price: the period muted, then the total for the group in Fraunces forest;
   the button as the design's amber "Bekijk accommodatie". */
.bz-results.bz-results .card-bottom { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid #DDD4C2; }
.bz-results.bz-results .free-period-prices,
.bz-results.bz-results .card-buttons { text-align: left; }
.bz-results.bz-results .free-period-prices bookzo-prices { display: flex; flex-direction: column; }
.bz-results.bz-results .price-arrival-departure { order: -1; display: flex; flex-wrap: wrap; gap: .25rem; font-size: 12px; color: #8C7B6B; }
.bz-results.bz-results .total-price-wrapper { display: flex; align-items: baseline; flex-wrap: wrap; gap: .375rem; margin-top: .25rem; font-family: 'Inter', system-ui, sans-serif; font-size: 13px; color: #8C7B6B; }
.bz-results.bz-results .total-price-wrapper .total { font-family: 'Fraunces', Georgia, serif; font-size: 1.5rem; font-weight: 500; color: #2C4A2E; }
.bz-results.bz-results .total-wrapper-icon { align-self: center; color: #2C4A2E; }
.bz-results.bz-results .card-buttons { display: flex; justify-content: flex-end; margin-top: 1rem; }
.bz-results.bz-results .more-info-button { display: inline-flex; align-items: center; gap: .5rem; padding: .75rem 1.25rem; border: 0; border-radius: 9999px; background: #B8860B; color: #F5F0E8; font-size: 14px; font-weight: 600; white-space: nowrap; }
.bz-results.bz-results .more-info-button:hover,
.bz-results.bz-results .more-info-button:focus { background: #9C7008; color: #F5F0E8; }
.bz-results.bz-results .more-info-button::after { content: '→'; }

/* Count, filter chips and sorting above the cards; numbered pages below. */
.bz-results.bz-results .results-badges { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; font-size: 14px; }
.bz-results.bz-results .results-badges-sort-options { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.bz-results.bz-results .results-sort-options select,
.bz-results.bz-results .results-sort-options .form-control { height: auto; padding: .375rem 2rem .375rem 1rem; border: 1px solid #DDD4C2; border-radius: 9999px; background-color: #fff; font-size: 14px; font-weight: 500; }
.bz-results.bz-results .results-badges .badge { padding: .375rem .75rem; border-radius: 9999px; background: #EEF1EA; color: #2C4A2E; font-weight: 500; }
.bz-results.bz-results .pagination .page-link { min-width: 2.5rem; margin: 0 .125rem; border: 1px solid #DDD4C2; border-radius: 9999px; color: #2C4A2E; text-align: center; }
.bz-results.bz-results .pagination .page-item.active .page-link { border-color: #3D6B3F; background: #3D6B3F; color: #F5F0E8; }
.bz-results.bz-results .pagination .page-item.disabled .page-link { color: #DDD4C2; }
