:root {
    --alt-public-navy: #062f46;
    --alt-public-navy-2: #004d67;
    --alt-public-blue: #006b91;
    --alt-public-text: #0c2640;
    --alt-public-muted: #637487;
    --alt-public-border: #dbe4ea;
    --alt-public-soft: #f5f8fa;
    --alt-public-green: #15935a;
    --alt-public-green-soft: #dff6e9;
    --alt-public-orange: #f59f00;
    --alt-public-shadow: 0 8px 28px rgba(8, 48, 70, .08);
    --alt-public-radius: 12px;
}

html { scroll-behavior: smooth; }
body.is-public {
    background: #fff;
    color: var(--alt-public-text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.is-public *, .is-public *::before, .is-public *::after { box-sizing: border-box; }
.is-public .yor-header { background: #fff; border-bottom: 0; box-shadow: none; }
.is-public .yor-header__top { background: #fff !important; border-bottom: 1px solid #edf1f4; color: var(--alt-public-text); }
.is-public .yor-header__top-inner { width: min(1440px, calc(100% - 48px)); min-height: 78px; }
.is-public .logo--wordmark { align-items: flex-start; gap: 4px; }
.is-public .logo--wordmark .logo__img { height: 24px; width: auto; max-width: 101px; }
.is-public .logo__slogan { display: block; color: var(--alt-public-text); }
.is-public .yor-nav__link { color: var(--alt-public-text); }
.is-public .yor-nav__btn--list,
.is-public .yor-searchbar__submit,
.public-primary-button {
    background: linear-gradient(135deg, var(--alt-public-navy-2), var(--alt-public-navy));
    border: 0;
    color: #fff;
    border-radius: 8px;
    font-weight: 700;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 20px;
    text-decoration: none;
    cursor: pointer;
}
.public-primary-button:hover { color: #fff; filter: brightness(1.06); }
.public-primary-button:disabled { opacity: .55; cursor: not-allowed; }
.is-public .yor-header__search { background: #fff; padding: 12px 0 0; }
.is-public .yor-header__search-inner { width: min(1320px, calc(100% - 48px)); }
.is-public .yor-searchbar { border: 1px solid var(--alt-public-border); border-radius: 10px; box-shadow: var(--alt-public-shadow); background: #fff; }
.is-public .yor-searchbar__fields { min-height: 50px; flex-wrap: nowrap; }
.is-public .yor-searchbar__field { border-color: var(--alt-public-border); }
.is-public .yor-searchbar__field--date-split { position: relative; display: flex; padding: 0; }
.is-public .yor-date-trigger { display: flex; min-width: 0; flex: 1; flex-direction: column; align-items: flex-start; justify-content: center; gap: 3px; padding: 10px 14px; color: var(--alt-public-text); background: #fff; border: 0; cursor: pointer; }
.is-public .yor-date-trigger + .yor-date-trigger { border-left: 1px solid var(--alt-public-border); }
.is-public .yor-date-trigger small { color: var(--alt-public-muted); font-size: .68rem; }
.is-public .yor-date-trigger span { max-width: 100%; overflow: hidden; font-size: .78rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.is-public .yor-date-proxy { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; opacity: 0; pointer-events: none; }
.is-public .yor-header__search--compact .yor-searchbar { max-width: 930px; margin-inline: auto; }
.is-public .yor-header__search--compact .yor-searchbar__field--query { flex: 1.1; }
.is-public .yor-header__search--compact .yor-searchbar__field--location {
  flex: 1;
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  align-items: center;
  overflow: visible;
}
.is-public .yor-header__search--compact .yor-searchbar__field--location .yor-searchbar__icon { margin-right: 0; flex: 0 0 auto; }
.is-public .yor-header__search--compact .yor-searchbar__field--location select[name="country"] {
  flex: 0 1 112px;
  width: auto;
  min-width: 0;
  max-width: 112px;
}
.is-public .yor-header__search--compact .yor-searchbar__field--location input[name="plz"] {
  flex: 0 0 auto;
  width: 72px;
  min-width: 0;
  min-height: 28px;
  height: auto;
}
.is-public .yor-header__search--compact .yor-searchbar__field--location select[name="radius"] {
  flex: 0 0 auto;
  width: auto;
  min-width: 72px;
}
.is-public .yor-header__search--compact .yor-searchbar__submit { display: none; }
.is-public .public-main { width: min(1440px, calc(100% - 48px)); max-width: none; margin-top: 22px !important; padding: 0; }

.public-card {
    background: #fff;
    border: 1px solid var(--alt-public-border);
    border-radius: var(--alt-public-radius);
    box-shadow: 0 3px 16px rgba(8, 48, 70, .05);
}
.public-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin: 0 0 22px; font-size: .82rem; color: var(--alt-public-muted); }
.public-breadcrumb a { color: #075e97; text-decoration: none; }
.public-breadcrumb [aria-current="page"] { color: var(--alt-public-text); font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 420px; }

.public-item-detail { display: grid; grid-template-columns: minmax(0, 1fr) 390px; gap: 24px; align-items: start; }
.public-item-detail__primary { min-width: 0; display: grid; gap: 18px; }
.public-item-detail__aside { display: grid; gap: 16px; position: sticky; top: 16px; }
.public-gallery { display: grid; grid-template-columns: 108px minmax(0, 1fr); gap: 14px; height: clamp(430px, 50vw, 650px); }
.public-gallery__thumbs { display: flex; flex-direction: column; gap: 9px; overflow: auto; scrollbar-width: thin; }
.public-gallery__thumb { width: 100%; aspect-ratio: 4 / 3; padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; background: var(--alt-public-soft); cursor: pointer; }
.public-gallery__thumb.is-active { border-color: var(--alt-public-navy-2); }
.public-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.public-gallery__stage { position: relative; min-width: 0; overflow: hidden; border-radius: 10px; background: #edf2f4; }
.public-gallery__stage > img { width: 100%; height: 100%; object-fit: cover; display: block; cursor: zoom-in; }
.public-gallery__arrow,
.public-gallery__expand,
.public-gallery__favorite,
.public-icon-button {
    position: absolute;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(7, 48, 70, .13);
    border-radius: 50%;
    background: rgba(255,255,255,.94);
    color: var(--alt-public-navy);
    display: grid;
    place-items: center;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(0,0,0,.12);
    z-index: 2;
}
.public-gallery__arrow { top: 50%; transform: translateY(-50%); font-size: 1.7rem; }
.public-gallery__arrow--prev { left: 14px; }
.public-gallery__arrow--next { right: 14px; }
.public-gallery__expand { right: 14px; bottom: 14px; }
.public-gallery__favorite { right: 14px; top: 14px; font-size: 1.7rem; line-height: 1; }
.public-gallery__favorite svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.public-gallery__favorite.is-active { background: var(--alt-public-navy); color: #fff; }
.public-gallery__favorite.is-active svg { fill: currentColor; }
.public-gallery__count { position: absolute; left: 14px; bottom: 14px; padding: 6px 10px; color: #fff; background: rgba(4,25,38,.7); border-radius: 999px; font-size: .75rem; }
.public-gallery__empty { min-height: 420px; grid-column: 1 / -1; display: grid; place-items: center; align-content: center; gap: 10px; border-radius: 10px; background: var(--alt-public-soft); color: var(--alt-public-muted); font-size: 2rem; }
.public-gallery__empty span { font-size: .95rem; }

.public-item-heading { padding: 22px 26px 0; }
.public-item-heading__top { display: flex; justify-content: space-between; gap: 18px; }
.public-item-heading__title-row { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.public-item-heading h1 { margin: 0; font-size: clamp(1.35rem, 2vw, 1.85rem); color: var(--alt-public-text); overflow-wrap: anywhere; }
.public-status-badge { background: var(--alt-public-green-soft); color: #08713f; border-radius: 5px; padding: 4px 8px; font-size: .72rem; font-weight: 700; }
.public-item-heading__meta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 10px; color: var(--alt-public-muted); font-size: .82rem; }
.public-item-heading__meta a { color: inherit; text-decoration: none; }
.public-stars { color: var(--alt-public-orange) !important; letter-spacing: 1px; }
.public-item-location { margin: 18px 0; font-size: .86rem; }
.public-icon-button { position: static; flex: 0 0 auto; box-shadow: none; }
.public-facts-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--alt-public-border); }
.public-facts-strip span { min-height: 58px; padding: 12px 10px; display: flex; align-items: center; justify-content: center; gap: 7px; text-align: center; font-size: .75rem; border-right: 1px solid var(--alt-public-border); }
.public-facts-strip span:last-child { border-right: 0; }

.public-item-copy, .public-availability, .public-reviews { padding: 22px 26px; }
.public-item-copy h2, .public-availability h2, .public-reviews h2, .public-similar h2 { font-size: 1.05rem; margin: 0 0 18px; color: var(--alt-public-text); }
.public-item-copy__lead { color: var(--alt-public-text); line-height: 1.65; }
.public-clamped-copy { color: #33495c; line-height: 1.72; max-height: 5.2em; overflow: hidden; position: relative; }
.public-clamped-copy:not(.is-expanded)::after { content: ""; position: absolute; inset: auto 0 0; height: 2em; background: linear-gradient(transparent, #fff); }
.public-clamped-copy.is-expanded { max-height: none; }
.public-text-button { border: 0; background: transparent; color: #075e97; font-weight: 700; padding: 8px 0 0; cursor: pointer; }
.public-attribute-grid { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 0 0 18px; }
.public-attribute-grid div { display: flex; gap: 6px; align-items: baseline; }
.public-attribute-grid dt { font-size: .76rem; color: var(--alt-public-muted); }
.public-attribute-grid dd { margin: 0; font-size: .82rem; font-weight: 700; }

.public-booking-card { padding: 24px; }
.public-booking-card__price { margin: 0; color: var(--alt-public-text); }
.public-booking-card__price strong { font-size: 1.55rem; }
.public-booking-card__deposit { color: var(--alt-public-muted); font-size: .78rem; margin: 4px 0 18px; }
.public-delivery-options { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 16px 0; }
.public-delivery-options span { min-height: 42px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--alt-public-border); border-radius: 7px; font-size: .78rem; font-weight: 700; }
.public-booking-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 16px 0 10px; }
.public-booking-dates label, .public-booking-field { display: grid; gap: 6px; color: var(--alt-public-muted); font-size: .72rem; font-weight: 700; }
.public-booking-dates input, .public-booking-field input, .public-booking-field select, .public-booking-field textarea {
    width: 100%; min-height: 44px; border: 1px solid var(--alt-public-border); border-radius: 7px; padding: 9px 11px; background: #fff; color: var(--alt-public-text); font: inherit;
}
.public-booking-field { margin: 12px 0; }
.public-secondary-button { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; width: 100%; border: 1px solid #aac0ce; border-radius: 7px; padding: 9px 12px; background: #fff; color: var(--alt-public-navy); text-decoration: none; font-size: .78rem; font-weight: 700; cursor: pointer; }
.public-secondary-button:hover { background: var(--alt-public-soft); color: var(--alt-public-navy); }
.public-booking-card .public-primary-button { width: 100%; margin-top: 10px; }
.public-form-hint { color: var(--alt-public-muted); font-size: .72rem; line-height: 1.45; }
.public-alert { background: #edf5f9; color: #255266; padding: 11px; border-radius: 7px; font-size: .78rem; }
.public-alert--warning { background: #fff6dd; color: #725400; }
.public-price-summary { display: grid; grid-template-columns: 1fr auto; gap: 5px 12px; margin: 12px 0; padding: 12px 0; border-top: 1px solid var(--alt-public-border); border-bottom: 1px solid var(--alt-public-border); font-size: .78rem; }
.public-price-summary[hidden] { display: none; }
.public-price-summary small, .public-price-summary p { grid-column: 1 / -1; display: flex; justify-content: space-between; margin: 0; color: var(--alt-public-muted); }
.public-form-message { padding: 9px; border-radius: 6px; font-size: .78rem; }
.public-form-message.is-error { background: #fee8e8; color: #9a2222; }
.public-form-message.is-success { background: var(--alt-public-green-soft); color: #08713f; }

.public-booking-calendar { margin: 10px 0; padding: 10px; border: 1px solid var(--alt-public-border); border-radius: 8px; }
.public-booking-calendar[hidden] { display: none; }
.public-booking-calendar__nav { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 8px; font-size: .75rem; }
.public-booking-calendar__nav button, .public-calendar-nav button { border: 0; background: transparent; color: var(--alt-public-navy); font-size: 1.35rem; cursor: pointer; }
#itemBkCalMonths { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.public-booking-calendar__month h3 { font-size: .72rem; text-align: center; margin: 0 0 6px; }
.public-booking-calendar__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.public-booking-calendar__grid > span, .public-booking-calendar__grid > button { aspect-ratio: 1; display: grid; place-items: center; border: 0; background: transparent; font-size: .62rem; border-radius: 4px; }
.public-booking-calendar__weekday { color: var(--alt-public-muted); font-weight: 700; }
.public-booking-calendar__grid button { cursor: pointer; }
.public-booking-calendar__grid button:hover, .public-booking-calendar__grid button.is-range-start, .public-booking-calendar__grid button.is-range-end { background: var(--alt-public-navy-2); color: #fff; }
.public-booking-calendar__grid button.is-in-range { background: #ddecf4; }
.public-booking-calendar__grid button:disabled { color: #bec6cc; text-decoration: line-through; cursor: not-allowed; }
.public-booking-calendar__grid button.is-no-start { color: var(--alt-public-muted); }
.public-handover-choice label { display: flex; align-items: center; gap: 8px; min-height: 44px; }
.public-booking-calendar__grid > button { min-height: 36px; }

.public-provider-card, .public-location-card { padding: 20px; }
.public-provider-card__identity { display: flex; gap: 12px; align-items: center; }
.public-provider-card__identity > img, .public-provider-card__identity > span { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; display: grid; place-items: center; background: #e0ecef; color: var(--alt-public-navy); font-weight: 800; }
.public-provider-card h2, .public-location-card h2 { margin: 0; font-size: .95rem; }
.public-provider-card__identity p { margin: 3px 0 0; font-size: .7rem; color: var(--alt-public-green); }
.public-provider-rating { font-size: .78rem; }
.public-provider-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.public-location-card__map { height: 120px; margin: 14px 0 10px; border-radius: 8px; display: grid; place-items: center; background-color: #eef4f6; background-image: linear-gradient(30deg, transparent 48%, #d7e4e8 49%, #d7e4e8 51%, transparent 52%), linear-gradient(120deg, transparent 48%, #d7e4e8 49%, #d7e4e8 51%, transparent 52%); background-size: 42px 42px; overflow: hidden; }
.public-location-card__map--live { height: 280px; background: #e8eef0; cursor: pointer; }
.public-location-card__map--live .leaflet-container { height: 100%; width: 100%; border-radius: 8px; }
@media (min-width: 900px) {
    .public-location-card__map--live { height: 360px; }
}
.public-location-map { display: grid; gap: 10px; margin: 12px 0; }
.public-location-card__fallback { margin: 10px 0; font-size: .8rem; color: var(--alt-public-muted); }
.alt-map-modal { width: min(960px, 96vw); max-width: 96vw; border: 0; border-radius: 12px; padding: 16px; }
.alt-map-modal::backdrop { background: rgba(8, 61, 77, .55); }
.alt-map-modal__canvas { height: min(70vh, 640px); margin: 12px 0; border-radius: 8px; overflow: hidden; }
@media (max-width: 767px) {
    .alt-map-modal { width: 100vw; max-width: 100vw; height: 100%; max-height: 100%; border-radius: 0; margin: 0; }
    .alt-map-modal__canvas { height: calc(100vh - 140px); }
    .public-location-card__map--live { height: 220px; }
}
.listing-view-toggle { display: inline-flex; gap: 0; border: 1px solid #c5d5da; border-radius: 8px; overflow: hidden; margin: 8px 0 0; }
.listing-view-toggle a { padding: 8px 14px; font-size: .82rem; font-weight: 700; color: #083d4d; text-decoration: none; background: #fff; }
.listing-view-toggle a.is-active { background: #083d4d; color: #fff; }
.alt-listing-map { margin: 8px 0 16px; }
.alt-listing-map__canvas { height: min(70vh, 620px); min-height: 320px; border-radius: 10px; overflow: hidden; background: #e8eef0; }
.alt-listing-map__hint, .alt-listing-map__empty { font-size: .78rem; color: var(--alt-public-muted); margin: 8px 0 0; }
.alt-map-popup { font-size: .82rem; }
.alt-map-popup img { width: 100%; height: 90px; object-fit: cover; border-radius: 6px; margin: 0 0 8px; }
.alt-map-popup h3 { margin: 0 0 4px; font-size: .92rem; }
.alt-map-popup__price { margin: 0; font-weight: 700; }
.alt-map-popup__loc, .alt-map-popup__rating { margin: 4px 0; color: #4a6670; }
.alt-map-popup .public-secondary-button { margin-top: 8px; display: inline-block; }
.leaflet-container { font-family: inherit; }
.marker-cluster-small { background-color: rgba(8, 61, 77, .35); }
.marker-cluster-small div { background-color: #083d4d; color: #fff; }
.marker-cluster-medium { background-color: rgba(8, 61, 77, .45); }
.marker-cluster-medium div { background-color: #083d4d; color: #fff; }
.marker-cluster-large { background-color: rgba(8, 61, 77, .55); }
.marker-cluster-large div { background-color: #062f3b; color: #fff; }
.listing-filter-bar { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: flex-end; margin: 0 0 12px; }
.listing-filter-bar fieldset { border: 1px solid #d7e4e8; border-radius: 8px; padding: 8px 10px; margin: 0; display: flex; flex-wrap: wrap; gap: 8px 12px; }
.listing-filter-bar legend { font-size: .72rem; font-weight: 700; padding: 0 4px; }
.listing-filter-bar label { font-size: .78rem; display: inline-flex; align-items: center; gap: 6px; }
.public-location-card__map span { width: 34px; height: 34px; border-radius: 50%; background: #db4437; color: #fff; display: grid; place-items: center; box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.public-location-card p { margin: 0; font-size: .78rem; }
.public-location-card small { color: var(--alt-public-muted); }
.public-report-button { border: 0; background: transparent; color: var(--alt-public-muted); font-size: .72rem; text-decoration: underline; cursor: pointer; }

.public-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.public-section-heading h2 { margin: 0; }
.public-calendar-legend { display: flex; flex-wrap: wrap; gap: 14px; color: var(--alt-public-muted); font-size: .68rem; }
.public-calendar-legend span { display: inline-flex; align-items: center; gap: 5px; }
.public-calendar-legend i { width: 13px; height: 7px; border-radius: 2px; }
.public-calendar-legend .is-free { background: #d9f5e8; }
.public-calendar-legend .is-booked { background: #f5e5e5; }
.public-calendar-legend .is-selected { background: #2f80ed; }
.public-calendar-nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.public-calendar-nav strong { font-size: .78rem; }
.public-calendar-nav button:disabled { opacity: .25; }
.public-calendar-track { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.public-calendar-month[hidden] { display: none; }
.public-calendar-month h3 { font-size: .78rem; margin: 0 0 8px; }
.public-calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.public-calendar-weekday, .public-calendar-day { min-height: 29px; display: grid; place-items: center; border-radius: 5px; font-size: .66rem; }
.public-calendar-weekday { color: var(--alt-public-muted); font-weight: 700; }
.public-calendar-day.is-free { background: #eef9f4; color: #176341; }
.public-calendar-day.is-booked { background: #f7eeee; color: #a37777; text-decoration: line-through; }
.public-calendar-day.is-empty { background: transparent; }

.public-reviews { margin-top: 22px; }
.public-reviews .public-section-heading .public-secondary-button { width: auto; }
.public-reviews__summary { display: flex; align-items: baseline; gap: 12px; margin-bottom: 18px; color: var(--alt-public-muted); font-size: .74rem; }
.public-reviews__summary strong { color: var(--alt-public-text); font-size: 1.5rem; }
.public-review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.public-review { border: 1px solid var(--alt-public-border); border-radius: 8px; padding: 16px; min-width: 0; }
.public-review header { display: flex; justify-content: space-between; gap: 8px; font-size: .75rem; }
.public-review time { color: var(--alt-public-muted); }
.public-review h3 { font-size: .83rem; margin: 8px 0; }
.public-review p { font-size: .75rem; line-height: 1.5; overflow-wrap: anywhere; }
.public-centered-button { width: auto; margin: 18px auto 0; display: flex; }
.public-empty-state { color: var(--alt-public-muted); text-align: center; padding: 28px; }

.public-similar { margin: 22px 0 42px; }
.public-item-card-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.public-item-card { min-width: 0; height: 100%; display: flex; flex-direction: column; color: var(--alt-public-text); text-decoration: none; border: 1px solid var(--alt-public-border); border-radius: 9px; overflow: hidden; background: #fff; transition: transform .18s ease, box-shadow .18s ease; }
.public-item-card:hover { color: var(--alt-public-text); transform: translateY(-2px); box-shadow: var(--alt-public-shadow); }
.public-item-card__image { aspect-ratio: 16 / 10; display: grid; place-items: center; background: var(--alt-public-soft); color: var(--alt-public-muted); }
.public-item-card__image img { width: 100%; height: 100%; object-fit: cover; }
.public-item-card__body { padding: 10px 12px 12px; display: grid; gap: 4px; flex: 1; }
.public-item-card h3 { font-size: .78rem; margin: 0; line-height: 1.35; min-height: 2.7em; display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow-wrap: anywhere; }
.public-item-card p { margin: 0; font-size: .72rem; }
.public-item-card .public-multi-discount { display: block; }
.public-bundle-items { padding: 22px 26px; }
.public-bundle-items h2 { margin: 0 0 16px; font-size: 1.05rem; }
.public-bundle-saving { margin: 10px 0; padding: 9px; border-radius: 6px; background: var(--alt-public-green-soft); color: #08713f; font-size: .76rem; font-weight: 700; }
.public-multi-discount {
  margin: 0;
  color: #08713f;
  font-size: .72rem;
  font-weight: 700;
}
.public-multi-discount--notice {
  margin: 10px 0 0;
  padding: 9px;
  border-radius: 6px;
  background: var(--alt-public-green-soft);
  font-size: .76rem;
}
.public-bundle-detail .public-booking-card .public-primary-button { width: 100%; }

.public-dialog { width: min(500px, calc(100% - 32px)); border: 0; border-radius: 12px; padding: 24px; box-shadow: 0 24px 80px rgba(0,0,0,.28); color: var(--alt-public-text); }
.public-dialog::backdrop { background: rgba(2, 20, 32, .68); backdrop-filter: blur(3px); }
.public-dialog h2 { margin: 0 38px 18px 0; font-size: 1.2rem; }
.public-dialog__close, .public-gallery-dialog > [data-dialog-close] { position: absolute; right: 14px; top: 12px; border: 0; background: transparent; font-size: 1.8rem; cursor: pointer; }
.public-gallery-dialog { width: calc(100vw - 24px); max-width: none; height: calc(100vh - 24px); height: calc(100dvh - 24px); max-height: none; padding: 0; background: #071c27; overflow: hidden; overscroll-behavior: none; touch-action: none; }
.public-gallery-dialog__viewport { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; overflow: visible; touch-action: none; cursor: zoom-in; overscroll-behavior: none; }
.public-gallery-dialog__viewport.is-zoomed { cursor: grab; }
.public-gallery-dialog__viewport.is-dragging { cursor: grabbing; }
.public-gallery-dialog img { display: block; width: 100%; height: 100%; object-fit: contain; transform-origin: 50% 50%; will-change: transform; user-select: none; -webkit-user-drag: none; }
.public-gallery-dialog > [data-gallery-prev],
.public-gallery-dialog > [data-gallery-next] {
    position: absolute;
    z-index: 4;
    top: 50%;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.92);
    color: #071c27;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    transform: translateY(-50%);
    box-shadow: 0 2px 10px rgba(0,0,0,.28);
}
.public-gallery-dialog > [data-gallery-prev] { left: 2px; }
.public-gallery-dialog > [data-gallery-next] { right: 2px; }
.public-gallery-dialog > [data-gallery-prev] svg,
.public-gallery-dialog > [data-gallery-next] svg { display: block; flex: 0 0 auto; }
.public-gallery-dialog > [data-dialog-close] {
  z-index: 40;
  top: max(8px, env(safe-area-inset-top, 0px));
  right: max(8px, env(safe-area-inset-right, 0px));
  width: 44px;
  height: 44px;
  padding: 0;
  color: #fff;
  font-size: 1.8rem;
  line-height: 44px;
  text-align: center;
  pointer-events: auto;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.public-footer { border-top: 1px solid var(--alt-public-border); background: #fafcfd; margin-top: 48px; }
.public-footer__grid { width: min(1440px, calc(100% - 48px)); margin: auto; padding: 34px 0; display: grid; grid-template-columns: repeat(4, 1fr) 1.5fr; gap: 30px; }
.public-footer section { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.public-footer h2 { font-size: .8rem; margin: 0 0 5px; }
.public-footer__brand { margin: 0 0 8px; }
.public-footer__brand a { display: inline-block; }
.public-footer__brand .logo__img { display: block; height: 19px; width: auto; max-width: 84px; }
.public-footer a, .public-footer span, .public-footer p, .public-footer small { color: #51687b; font-size: .7rem; text-decoration: none; margin: 0; }
.public-footer a:hover { color: var(--alt-public-blue); }

.content-page { max-width: 820px; margin: 32px auto 64px; }
.content-page__body { padding: 22px 26px 28px; }
.content-page h1 { font-size: clamp(1.6rem, 2.4vw, 2.1rem); margin: 0 0 18px; }
.content-html { font-size: .95rem; line-height: 1.55; color: var(--alt-public-text, #1d2d38); overflow-wrap: anywhere; }
.content-html h2, .content-html h3, .content-html h4, .content-html h5, .content-html h6 { margin: 1.4em 0 .5em; line-height: 1.3; }
.content-html p { margin: 0 0 .7em; }
.content-html ul, .content-html ol { margin: 0 0 1em; }
.content-html p:has(> strong:only-child),
.content-html p:has(> b:only-child) { margin-bottom: .12em; }
.content-html p:has(> br:only-child) {
  height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  line-height: 0;
  overflow: hidden;
  visibility: hidden;
}
.content-html li { margin: 0 0 .35em; }
.content-html strong, .content-html b { font-weight: 700; }
.content-html em, .content-html i { font-style: italic; }
.content-html a { color: #0872ae; }
.content-html table { width: 100%; border-collapse: collapse; margin: 0 0 1em; font-size: .9rem; }
.content-html th, .content-html td { border: 1px solid #d5dee4; padding: 8px 10px; text-align: left; vertical-align: top; }
.content-html th { background: #f4f7f9; }
.content-html .text-left { text-align: left; }
.content-html .text-center { text-align: center; }
.content-html .text-right { text-align: right; }
.content-html .content-box,
.content-html .content-box-info,
.content-html .content-box-warning {
  padding: 12px 14px;
  border-radius: 8px;
  margin: 0 0 1em;
  border: 1px solid #d5dee4;
  background: #f7fafc;
}
.content-html .content-box-info { background: #eef6fb; }
.content-html .content-box-warning { background: #fff6e8; border-color: #f0d9a8; }
.content-html blockquote {
  border-left: 3px solid #d5dee4;
  margin: 0 0 1em;
  padding: 0 0 0 1em;
  color: #4a5b66;
}
.content-html hr { margin: 1.4em 0; border: 0; border-top: 1px solid #d5dee4; }
.content-html .ql-align-left { text-align: left; }
.content-html .ql-align-center { text-align: center; }
.content-html .ql-align-right { text-align: right; }
.content-html .ql-align-justify { text-align: justify; }
.content-html u { text-decoration: underline; }
.public-mobile-nav, .public-mobile-cta { display: none; }

/* Catalog, category and subcategory pages */
.catalog-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin: 6px 0 20px; }
.catalog-heading h1 { margin: 0; font-size: clamp(1.45rem, 2.3vw, 2rem); }
.catalog-heading p { margin: 5px 0 0; color: var(--alt-public-muted); font-size: .84rem; }
.catalog-chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: thin; padding-bottom: 12px; margin-bottom: 4px; }
.catalog-chips a { flex: 0 0 auto; border: 1px solid var(--alt-public-border); border-radius: 999px; padding: 9px 16px; color: var(--alt-public-text); background: #fff; text-decoration: none; font-size: .78rem; font-weight: 650; }
.catalog-chips a:hover, .catalog-chips a.is-active { background: var(--alt-public-navy-2); color: #fff; border-color: var(--alt-public-navy-2); }
.catalog-layout { display: grid; grid-template-columns: 245px minmax(0, 1fr); gap: 18px; align-items: start; }
.catalog-sidebar { border: 1px solid var(--alt-public-border); border-radius: 9px; background: #fff; overflow: hidden; }
.catalog-sidebar__mobile-head { display: none; }
.catalog-category-tree { border-bottom: 1px solid var(--alt-public-border); }
.catalog-category-tree summary { padding: 15px; font-size: .8rem; font-weight: 750; cursor: pointer; }
.catalog-category-tree nav { max-height: 310px; overflow: auto; padding: 0 8px 12px; }
.catalog-category-tree a { display: block; padding: 7px 8px 7px calc(8px + var(--category-depth) * 14px); border-radius: 5px; color: #3e596d; text-decoration: none; font-size: .7rem; }
.catalog-category-tree a:hover, .catalog-category-tree a.is-active { color: var(--alt-public-navy); background: #eaf3f6; font-weight: 700; }
.catalog-filter-form { padding: 15px; }
.catalog-filter-form__title { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; font-size: .8rem; }
.catalog-filter-form__title a { color: #0872ae; text-decoration: none; font-size: .65rem; }
.catalog-filter-form fieldset { padding: 14px 0; border: 0; border-top: 1px solid var(--alt-public-border); margin: 0; }
.catalog-filter-form legend { float: none; width: auto; margin: 0 0 10px; font-size: .72rem; font-weight: 750; }
.catalog-price-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.catalog-price-fields label, .catalog-field { display: grid; gap: 5px; color: var(--alt-public-muted); font-size: .63rem; margin-bottom: 9px; }
.catalog-price-fields input, .catalog-field input:not([type="checkbox"]), .catalog-field select { width: 100%; min-height: 36px; padding: 6px 8px; border: 1px solid var(--alt-public-border); border-radius: 6px; color: var(--alt-public-text); background: #fff; font-size: .7rem; }
.catalog-check { display: flex; align-items: center; gap: 8px; margin: 8px 0; font-size: .7rem; }
.catalog-filter-form > .public-primary-button { width: 100%; font-size: .72rem; }
.catalog-results { min-width: 0; }
.catalog-toolbar { min-height: 48px; padding: 0 4px 10px; display: flex; align-items: center; justify-content: space-between; gap: 14px; color: var(--alt-public-muted); font-size: .7rem; }
.catalog-toolbar label { display: flex; align-items: center; gap: 8px; }
.catalog-toolbar select { min-height: 34px; border: 1px solid var(--alt-public-border); border-radius: 6px; padding: 5px 30px 5px 8px; color: var(--alt-public-text); background: #fff; }
.catalog-result-list { display: grid; gap: 10px; }
.catalog-result-card { display: grid; grid-template-columns: 215px minmax(0, 1fr) 210px; min-height: 152px; overflow: hidden; box-shadow: none; }
.catalog-result-card__image { position: relative; min-width: 0; display: grid; place-items: center; overflow: hidden; background: var(--alt-public-soft); color: var(--alt-public-muted); text-decoration: none; }
.catalog-result-card__image img { width: 100%; height: 100%; object-fit: cover; }
.catalog-result-card__image small.is-demo { background: #eef4f6; color: #0a5a72; }
.public-demo-chip {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 7px;
    border-radius: 999px;
    background: #eef4f6;
    color: #0a5a72;
    font-size: .68rem;
    font-weight: 650;
    vertical-align: middle;
}
.public-demo-notice {
    margin: 8px 0 0;
    padding: 10px 12px;
    border-radius: 10px;
    background: #eef4f6;
    color: #0a5a72;
    font-size: .86rem;
    line-height: 1.4;
}
.public-status-badge--demo { background: #eef4f6; color: #0a5a72; }
.catalog-result-card__content { min-width: 0; padding: 18px; }
.catalog-result-card__content h2 { margin: 0 0 9px; font-size: .95rem; min-height: 2.7em; line-height: 1.35; display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow-wrap: anywhere; }
.catalog-result-card__content h2 a { color: var(--alt-public-text); text-decoration: none; }
.catalog-result-card__facts, .catalog-result-card__tags { display: flex; flex-wrap: wrap; gap: 7px; }
.catalog-result-card__facts { color: #35566a; font-size: .68rem; }
.catalog-result-card__content > p { margin: 10px 0; color: var(--alt-public-muted); font-size: .7rem; }
.catalog-result-card__tags span { border-radius: 5px; padding: 4px 8px; background: #edf2f6; color: #41576a; font-size: .62rem; }
.catalog-result-card__price { padding: 18px; display: flex; flex-direction: column; align-items: stretch; justify-content: center; }
.catalog-result-card__price p { margin: 0; font-size: .72rem; }
.catalog-result-card__price p strong { font-size: 1.18rem; }
.catalog-result-card__price .public-multi-discount { margin-top: 6px; }
.catalog-result-card__price .public-primary-button { min-height: 38px; margin-top: 12px; font-size: .7rem; }
.catalog-empty { padding: 55px 24px; display: grid; justify-items: center; text-align: center; }
.catalog-empty > span { font-size: 2rem; }
.catalog-empty h2 { font-size: 1.1rem; margin: 12px 0 4px; }
.catalog-empty p { color: var(--alt-public-muted); font-size: .78rem; }
.catalog-empty .public-secondary-button { width: auto; }
.catalog-pagination { display: flex; justify-content: center; gap: 6px; margin: 22px 0; }
.catalog-pagination a { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 6px; color: var(--alt-public-text); text-decoration: none; font-size: .72rem; }
.catalog-pagination a:hover, .catalog-pagination a.is-active { background: var(--alt-public-navy-2); color: #fff; }
.catalog-mobile-actions { display: none; }

/* Search results share the catalog visual language without changing endpoints. */
.is-public .search-results-page { margin: 0; }
.is-public .search-results-layout { display: grid; grid-template-columns: 245px minmax(0, 1fr); gap: 18px; align-items: start; }
.is-public .search-sidebar { border: 1px solid var(--alt-public-border); border-radius: 9px; background: #fff; overflow: hidden; padding: 0; }
.is-public .search-sidebar__section { margin: 0; padding: 13px 14px; border: 0; border-bottom: 1px solid var(--alt-public-border); border-radius: 0; box-shadow: none; }
.is-public .search-sidebar__section:last-child { border-bottom: 0; }
.is-public .search-sidebar__title { margin: 0 0 9px; padding: 0 0 7px; border-bottom: 1px solid #edf1f3; color: var(--alt-public-text); font-size: .78rem; }
.is-public .search-sidebar__list a { color: #3e596d; font-size: .7rem; border-radius: 5px; }
.is-public .search-sidebar__list li.is-child a { padding-left: calc(8px + (var(--cat-depth, 1) * 10px)); }
.search-price-basis, .search-price-hint, .search-empty-reason { margin: 0 0 8px; color: var(--alt-public-muted); font-size: .66rem; line-height: 1.35; }
.search-active-ops__chip { display: inline-flex; align-items: center; gap: 4px; margin: 0 4px 4px 0; padding: 3px 8px; border-radius: 999px; background: #eaf3f6; color: var(--alt-public-navy); font-size: .68rem; text-decoration: none; }
.search-active-ops__reset { margin-left: 6px; font-size: .68rem; }
.search-badge--featured { background: #fff4d6; color: #8a5a00; }
.search-badge--bump { background: #eef2ff; color: #3949ab; }
.neg-open {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 4px 0 0;
  color: #5a7384;
  font-size: .68rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: .01em;
}
.neg-open svg { width: 14px; height: 14px; flex: 0 0 auto; }
.search-result-item__badges .neg-open {
  margin: 0;
  padding: 2px 7px;
  border-radius: 999px;
  background: #eef4f6;
  color: #4a6576;
}
.public-booking-card .neg-open { margin: 0 0 8px; font-size: .78rem; }
.public-mobile-cta .neg-open { display: flex; margin: 2px 0 0; }
.home-card .neg-open, .public-item-card .neg-open, .catalog-result-card__price .neg-open { margin-top: 2px; }
.neg-offer-link { margin: 0 0 10px; }
.neg-offer-preview { margin: 8px 0; color: #1f3a4d; font-weight: 600; }
.search-pagination { display: flex; flex-wrap: wrap; gap: 6px; padding: 12px 0 24px; }
.search-pagination a, .search-pagination span { min-width: 32px; padding: 6px 8px; text-align: center; border-radius: 6px; border: 1px solid var(--alt-public-border); }
.search-pagination span.is-active { background: var(--alt-public-navy); color: #fff; border-color: var(--alt-public-navy); }
.is-public .search-sidebar__list li.active a, .is-public .search-sidebar__list a:hover { background: #eaf3f6; color: var(--alt-public-navy); }
.search-sidebar__form { display: block; }
.search-sidebar__form .catalog-price-fields { gap: 7px; }
.search-sidebar__form .catalog-price-fields label { font-size: .66rem; }
.search-sidebar__form input[type="number"] { min-height: 36px; padding: 6px 7px; }
.search-sidebar__options label { display: flex; align-items: flex-start; gap: 7px; margin: 0; padding: 4px 0; color: #3e596d; font-size: .7rem; line-height: 1.3; cursor: pointer; }
.search-sidebar__options input { flex: 0 0 auto; margin: 2px 0 0; }
.search-sidebar__options label.is-disabled { opacity: .48; cursor: not-allowed; }
.search-sidebar__apply { padding: 13px 14px; }
.search-sidebar__apply .public-secondary-button { width: 100%; }
.is-public .search-main { min-width: 0; }
.is-public .search-header { min-height: 58px; display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; padding: 0 4px 10px; border: 0; }
.search-header__summary { min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 3px 14px; }
.search-header__summary h1 { flex: 1 0 100%; }
.is-public .search-header h1 { margin: 0; color: var(--alt-public-text); font-size: 1.4rem; }
.is-public .search-count { margin: 3px 0 0; }
.search-sort-form label { display: flex; align-items: center; gap: 8px; color: var(--alt-public-muted); font-size: .7rem; }
.search-sort-form select { min-height: 34px; border: 1px solid var(--alt-public-border); border-radius: 6px; padding: 5px 28px 5px 8px; background: #fff; color: var(--alt-public-text); }
.is-public .search-results-list { display: grid; gap: 10px; }
.is-public .search-result-item { position: relative; display: grid; grid-template-columns: 220px minmax(0, 1fr) 180px; height: 168px; min-height: 168px; padding: 0; overflow: hidden; border: 1px solid var(--alt-public-border); border-radius: 9px; box-shadow: none; color: var(--alt-public-text); }
.is-public .search-result-item__main { display: contents; }
.search-result-item__hit { position: absolute; inset: 0; z-index: 1; }
.search-result-item__favorite {
    position: absolute; top: 8px; right: 8px; z-index: 3;
    display: grid; width: 36px; height: 36px; padding: 7px; place-items: center;
    color: var(--alt-public-navy); background: rgba(255,255,255,.94);
    border: 1px solid rgba(8,61,77,.14); border-radius: 50%; cursor: pointer;
}
.search-result-item__favorite svg { width: 100%; height: 100%; fill: #fff; stroke: currentColor; stroke-width: 1.8; }
.search-result-item__favorite.is-active { color: var(--alt-public-navy); }
.search-result-item__favorite.is-active svg { fill: currentColor; }
.search-result-item .ui-info-tip { position: relative; z-index: 3; }
.is-public .search-result-item:hover { transform: none; box-shadow: var(--alt-public-shadow); }
.is-public .search-result-item__image { width: auto; min-width: 0; min-height: 0; height: 100%; border-radius: 0; overflow: hidden; }
.is-public .search-result-item__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.is-public .search-result-item__content { min-height: 0; padding: 13px 16px; overflow: hidden; }
.is-public .search-result-item__title { min-height: 1.3em; margin-bottom: 4px; display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--alt-public-text); font-size: .95rem; font-weight: 700; line-height: 1.3; }
.is-public .search-result-item__badges { max-height: 24px; margin-top: 3px; gap: 4px; overflow: hidden; }
.is-public .search-badge { padding: 2px 6px; font-size: .62rem; }
.is-public .search-result-item__desc { min-height: 2.7em; margin: 6px 0 0; display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--alt-public-muted); font-size: .7rem; line-height: 1.35; }
.is-public .search-result-item__desc.is-empty { visibility: hidden; }
.search-result-item__rating { min-height: 18px; display: flex; align-items: center; gap: 4px; color: var(--alt-public-muted); font-size: .68rem; }
.search-result-item__rating .public-stars { color: #d88900; }
.is-public .search-result-item__price-col { width: 180px; padding: 16px; align-items: flex-end; justify-content: center; }
.is-public .search-result-item__price { color: var(--alt-public-text); font-size: 1.18rem; }
.is-public .search-result-item__meta { max-height: 20px; gap: 8px; padding-top: 3px; flex-wrap: nowrap; overflow: hidden; white-space: nowrap; font-size: .67rem; }
.is-public .search-empty { border: 1px solid var(--alt-public-border); border-radius: 9px; background: #fff; }
.search-mobile-actions { display: none; }

/* Public profiles, authentication and informational pages */
.public-auth-card { width: min(520px, 100%); margin: 34px auto 70px; padding: 30px; }
.public-auth-card--wide { width: min(820px, 100%); }
.public-auth-card h2 { color: var(--alt-public-text); font-size: 1.45rem; }
.public-auth-card form > label { display: block; color: #40586b; font-size: .78rem; font-weight: 650; }
.public-auth-card input:not([type="checkbox"]):not([type="radio"]), .public-auth-card select { width: 100%; min-height: 44px; border: 1px solid var(--alt-public-border); border-radius: 7px; padding: 8px 10px; }
.public-auth-card form > button[type="submit"], .public-auth-card .btn-primary { min-height: 43px; border: 0; border-radius: 7px; padding: 9px 18px; background: var(--alt-public-navy-2); color: #fff; font-weight: 700; }
.public-auth-card a { color: #075e97; }
.public-auth-card .input-group {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    align-items: stretch;
}
.public-auth-card .input-group .form-control {
    width: auto;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 44px;
}
.public-register-form .yor-pw-reveal,
.public-auth-card .yor-pw-reveal {
    flex: 0 0 44px;
    min-width: 44px;
    min-height: 44px;
    border-color: var(--alt-public-border);
    background: #fff;
}
.public-required { color: #9a2222; font-weight: 700; }
.password-reqs {
    list-style: none;
    margin: 0 0 .35rem;
    padding: 0;
    font-size: .8rem;
    line-height: 1.4;
}
.password-reqs li { display: flex; gap: .35rem; align-items: baseline; }
.password-reqs li::before { content: "○"; font-size: .75rem; }
.password-reqs li.is-ok { color: #118c4f; }
.password-reqs li.is-ok::before { content: "✓"; }
.password-reqs li.is-fail { color: #9a2222; }
.password-reqs li.is-fail::before { content: "✕"; }
.password-reqs li.is-miss { color: #6c757d; }
#reg_username_status,
.public-username-status {
    margin-top: .15rem;
    overflow-wrap: anywhere;
    min-height: 1.2em;
}
#reg_username_status.is-ok,
.public-username-status.is-ok { color: #118c4f; }
#reg_username_status.is-fail,
.public-username-status.is-fail { color: #9a2222; }
#reg_username_status.is-miss,
.public-username-status.is-miss { color: #6c757d; }
.public-register-form input[aria-invalid="true"],
.public-register-form .form-check-input[aria-invalid="true"] {
    border-color: #b42318;
    box-shadow: 0 0 0 2px rgba(180, 35, 24, .12);
}
.public-register-form .js-legal-error { margin: .35rem 0 0; }
body.is-legal-modal-open { overflow: hidden; }
.public-legal-modal {
    width: min(720px, calc(100vw - 24px));
    max-width: calc(100vw - 24px);
    height: min(86dvh, 860px);
    max-height: calc(100dvh - 24px);
    border: 0;
    border-radius: 12px;
    padding: 0;
    color: var(--alt-public-text);
    box-shadow: 0 24px 80px rgba(0,0,0,.28);
}
.public-legal-modal::backdrop { background: rgba(2, 20, 32, .68); }
.public-legal-modal__bar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--alt-public-border, #d5dee4);
}
.public-legal-modal__title { flex: 1 1 auto; margin: 0; font-size: 1.1rem; }
.public-legal-modal__x {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border: 0;
    background: transparent;
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
}
.public-legal-modal__body {
    overflow: auto;
    padding: 16px 18px 8px;
    min-height: 120px;
    max-height: calc(86dvh - 140px);
    -webkit-overflow-scrolling: touch;
}
.public-legal-modal__foot {
    display: flex;
    justify-content: flex-end;
    padding: 12px 16px 16px;
    border-top: 1px solid var(--alt-public-border, #d5dee4);
}
@media (max-width: 640px) {
    .public-legal-modal {
        width: 100vw;
        max-width: 100vw;
        height: 100dvh;
        max-height: 100dvh;
        border-radius: 0;
    }
    .public-legal-modal__body { max-height: calc(100dvh - 140px); }
}
.public-booking-review { width: min(800px, 100%); margin: 28px auto 60px; }
.public-booking-review > h1 { font-size: 1.55rem; }
.public-booking-review .card { max-width: none !important; border-color: var(--alt-public-border); border-radius: 10px; box-shadow: 0 3px 16px rgba(8,48,70,.05); }
.public-booking-review form { max-width: none !important; padding: 20px; border: 1px solid var(--alt-public-border); border-radius: 10px; }
.booking-landlord-identity {
    display: block !important;
    max-width: none;
    margin: 0 0 1rem;
    padding: 16px 18px;
    border: 1px solid var(--alt-public-border);
    border-radius: 10px;
    background: #f7fbfc;
}
.booking-landlord-identity__facts { margin: 0 0 .75rem; padding-left: 1.1rem; }
.booking-landlord-identity__note { font-size: .92rem; line-height: 1.45; }
.legal-notice-list { display: grid; gap: .65rem; }
.legal-notice-list__lead { font-weight: 600; margin-bottom: .25rem; }
.legal-notice { align-items: flex-start; }
.legal-notice .legal-notice__text p { margin: 0; display: inline; }
.legal-notice .legal-notice__text p + p { display: block; margin-top: .25em; }
.public-profile { display: grid; gap: 16px; margin-bottom: 50px; }
.public-profile__hero { display: flex; align-items: center; gap: 18px; padding: 24px; }
.public-profile__hero > img, .public-profile__hero > span { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; display: grid; place-items: center; background: #e2eef2; color: var(--alt-public-navy); font-size: 1.6rem; font-weight: 800; }
.public-profile__hero h1 { margin: 0; font-size: 1.55rem; }
.public-profile__hero p { margin: 5px 0 0; color: var(--alt-public-muted); font-size: .78rem; }
.public-profile__tabs { display: flex; gap: 8px; overflow-x: auto; }
.public-profile__tabs a { flex: 0 0 auto; padding: 9px 15px; border-radius: 999px; color: var(--alt-public-text); background: #edf2f5; text-decoration: none; font-size: .75rem; font-weight: 700; }
.public-profile__tabs a.is-active { color: #fff; background: var(--alt-public-navy-2); }
.public-profile__content { padding: 24px; }
.public-profile__content .public-section-heading > span { color: var(--alt-public-muted); font-size: .75rem; }
.public-profile__contact { max-width: 560px; padding: 20px 0; }
.public-profile__contact h2 { font-size: 1.1rem; }
.public-profile__contact p { color: var(--alt-public-muted); font-size: .82rem; line-height: 1.6; }
.public-profile__contact .public-primary-button { width: auto; }
.public-profile__bio { max-width: 42rem; margin-top: 10px !important; color: var(--alt-public-text) !important; font-size: .88rem !important; line-height: 1.5; }
.public-provider-info { display: grid; grid-template-columns: minmax(8rem, 14rem) 1fr; gap: 6px 16px; margin: 16px 0 24px; }
.public-provider-info dt { color: var(--alt-public-muted); font-size: .75rem; }
.public-provider-info dd { margin: 0; font-size: .88rem; }
.public-review__dir { margin: 0; color: var(--alt-public-muted); font-size: .72rem; }
.public-review__reply time { display: block; color: var(--alt-public-muted); font-size: .72rem; }
.search-result-item__rating-kind { color: var(--alt-public-muted); font-size: .68rem; }
.is-public main > .container.py-5 { max-width: 100%; padding-top: 24px !important; }
.is-public main > .container.py-5 .card { border-color: var(--alt-public-border); border-radius: 10px !important; box-shadow: 0 3px 16px rgba(8,48,70,.05) !important; }
.is-public main > .container.py-5 .card-header { background: var(--alt-public-navy-2) !important; }
.is-public .accordion-button:not(.collapsed) { background: #eaf3f6 !important; color: var(--alt-public-navy) !important; }
.public-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}
.public-info-page { width: min(760px, 100%); margin: 28px auto 60px; }
.public-info-page > header { text-align: center; margin-bottom: 24px; }
.public-info-page > header h1 { margin: 0; font-size: 1.7rem; }
.public-info-page > header p, .public-info-page__hint { color: var(--alt-public-muted); font-size: .82rem; }
.public-info-card { padding: 24px; }
.public-info-card h2 { margin: 0 0 16px; font-size: 1.05rem; }
.public-info-card .public-primary-button { width: 100%; }
.public-alert--success { background: var(--alt-public-green-soft); color: #08713f; margin-bottom: 12px; }
.public-alert--error { background: #fee8e8; color: #9a2222; margin-bottom: 12px; }
.public-info-page__hint { text-align: center; margin-top: 16px; }

.public-faq { width: min(880px, 100%); margin: 28px auto 60px; }
.public-faq > header { text-align: center; margin-bottom: 22px; }
.public-faq > header h1 { margin: 0; font-size: 1.7rem; color: var(--alt-public-navy); }
.public-faq > header p { margin: 8px 0 0; color: var(--alt-public-muted); font-size: .88rem; }
.public-faq__search { display: block; margin: 16px auto 0; width: min(420px, 100%); text-align: left; }
.public-faq__search input {
    width: 100%; min-height: 42px; padding: 8px 14px; border: 1px solid var(--alt-public-border);
    border-radius: 10px; font-size: .9rem;
}
.public-faq__search-empty { margin-top: 10px; color: var(--alt-public-muted); font-size: .82rem; }
.public-faq__item, .public-faq__category { scroll-margin-top: 88px; }
.visually-hidden {
    position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.faq-help {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.15rem; height: 1.15rem; margin-left: .25rem; vertical-align: middle;
    color: var(--alt-public-muted, #5b6d73); text-decoration: none; border-radius: 999px;
}
.faq-help:hover, .faq-help:focus-visible { color: var(--alt-public-navy, #083d4d); outline: none; }
.faq-help .app-icon { width: 1.05rem; height: 1.05rem; display: block; }
.faq-help .app-icon svg { width: 100%; height: 100%; }
.public-faq .public-breadcrumb { justify-content: center; margin-bottom: 18px; }
.public-faq__chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 22px; }
.public-faq__chips a {
    display: inline-flex; align-items: center; gap: 6px;
    min-height: 36px; padding: 6px 14px; border: 1px solid var(--alt-public-border);
    border-radius: 999px; background: #fff; color: var(--alt-public-text);
    text-decoration: none; font-size: .78rem; font-weight: 650;
}
.public-faq__chips a span {
    min-width: 18px; padding: 0 6px; border-radius: 999px;
    background: var(--alt-public-soft, #eef3f4); font-size: .68rem;
}
.public-faq__chips a:hover, .public-faq__chips a.is-active {
    color: #fff; background: var(--alt-public-navy-2, #083d4d); border-color: transparent;
}
.public-faq__chips a.is-active span, .public-faq__chips a:hover span { background: rgba(255,255,255,.2); color: #fff; }
.public-faq__category { padding: 0; overflow: hidden; margin-bottom: 16px; }
.public-faq__category-head { padding: 18px 20px 12px; }
.public-faq__category-head h2 { margin: 0; font-size: 1.05rem; }
.public-faq__category-head h2 a { color: inherit; text-decoration: none; }
.public-faq__category-head p { margin: 6px 0 0; color: var(--alt-public-muted); font-size: .8rem; }
.public-faq__item { border-top: 1px solid var(--alt-public-border); }
.public-faq__item summary {
    list-style: none; display: flex; align-items: center; justify-content: space-between;
    gap: 12px; padding: 14px 20px; cursor: pointer; font-size: .88rem; font-weight: 650;
}
.public-faq__item summary::-webkit-details-marker { display: none; }
.public-faq__item summary::after { content: '+'; color: var(--alt-public-muted); font-weight: 500; }
.public-faq__item[open] summary { background: #eaf3f6; color: var(--alt-public-navy); }
.public-faq__item[open] summary::after { content: '–'; }
.public-faq__answer { padding: 4px 20px 18px; color: var(--alt-public-text); font-size: .86rem; line-height: 1.7; overflow-wrap: anywhere; word-break: break-word; }
.public-faq__answer .faq-query, code.faq-query {
    display: inline-block; max-width: 100%;
    padding: 1px 6px; border-radius: 4px;
    background: #eef3f6; font-size: .84em;
    white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word;
}
.search-active-ops { margin: 8px 0 4px; font-size: .82rem; color: #4a5d66; }
.search-active-ops__chip {
    display: inline-block; margin: 2px 4px 2px 0; padding: 2px 8px;
    border-radius: 999px; background: #e8eef1; font-size: .8rem;
}
.public-share { max-width: 720px; margin: 0 auto 40px; }
.public-share__modes {
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 0 14px;
}
.public-share__mode {
    min-height: 48px; border-radius: 10px; border: 1px solid var(--alt-public-border);
    background: #fff; color: var(--alt-public-navy); font-weight: 600; cursor: pointer;
}
.public-share__mode.is-active {
    background: var(--alt-public-navy); color: #fff; border-color: var(--alt-public-navy);
}
.public-share__preview-frame video { width: 100%; height: auto; display: block; background: #000; }
.public-share__head h1 { margin: 0 0 8px; font-size: 1.45rem; color: var(--alt-public-navy); }
.public-share__head p { margin: 0 0 18px; color: var(--alt-public-muted); }
.public-share__block, .public-share__preview { padding: 16px 18px; margin-bottom: 14px; }
.public-share__label { margin: 0 0 10px; font-weight: 600; font-size: .88rem; }
.public-share__preview-frame {
    position: relative; background: #004d67; border-radius: 10px; overflow: hidden;
    min-height: 180px; display: flex; align-items: center; justify-content: center;
}
.public-share__preview-frame img { width: 100%; height: auto; display: block; }
.public-share__placeholder { color: #fff; padding: 24px; text-align: center; }
.public-share__thumbs { display: flex; flex-wrap: wrap; gap: 8px; }
.public-share__thumb {
    border: 2px solid transparent; border-radius: 8px; padding: 0; background: none; cursor: pointer;
    width: 72px; height: 72px; overflow: hidden;
}
.public-share__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.public-share__thumb.is-active { border-color: var(--alt-public-navy); }
.public-share__thumb.is-main { box-shadow: 0 0 0 2px var(--alt-public-navy); }
.public-share__layouts { display: flex; flex-wrap: wrap; gap: 12px 18px; }
.public-share__layouts label {
    display: inline-flex; align-items: center; gap: 8px;
    min-height: 44px; padding: 6px 8px; cursor: pointer;
}
.public-share__text {
    width: 100%; min-height: 110px; border: 1px solid var(--alt-public-border);
    border-radius: 8px; padding: 10px; font: inherit; resize: vertical;
}
.public-share__hint { margin: 8px 0 12px; font-size: .85rem; line-height: 1.4; color: var(--alt-public-muted); }
.public-share__graphics { margin: 10px 0 0; font-size: .85rem; }
.public-share__formats { display: flex; flex-wrap: wrap; gap: 8px; }
.public-share__chip {
    display: flex; flex-direction: column; gap: 2px; min-height: 48px; min-width: 44%;
    padding: 8px 10px; border: 1px solid var(--alt-public-border); border-radius: 10px;
    font-size: .82rem; font-weight: 600; cursor: pointer;
}
.public-share__chip small { font-weight: 500; color: var(--alt-public-muted); }
.public-share__chip:has(input:checked) { border-color: var(--alt-public-navy); background: #eef5f8; }
.public-share__chip input { accent-color: var(--alt-public-navy); }
.public-share__crop { display: grid; gap: 8px; margin-top: 12px; }
.public-share__crop label { display: grid; gap: 4px; font-size: .8rem; color: var(--alt-public-muted); }
.public-share__crop input[type="range"] { width: 100%; min-height: 32px; }
.public-share__thumbs { display: flex; flex-wrap: wrap; gap: 8px; }
.public-share__thumb { width: 88px; height: 88px; }
.public-share__actions {
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 8px 0 16px;
}
.public-share__btn {
    display: flex; align-items: center; justify-content: center;
    min-height: 48px; padding: 10px 12px; border-radius: 10px;
    border: 1px solid var(--alt-public-border); background: #fff;
    color: var(--alt-public-navy); font-weight: 600; text-decoration: none; cursor: pointer;
}
.public-share__btn--primary { background: var(--alt-public-navy); color: #fff; border-color: var(--alt-public-navy); }
.public-share__status { margin: 0 0 18px; font-size: .88rem; color: var(--alt-public-navy); }
.public-share__continue { text-align: center; margin: 8px 0 24px; }
.public-share__continue a { color: var(--alt-public-muted); }
@media (min-width: 700px) {
    .public-share__actions { grid-template-columns: 1fr 1fr 1fr; }
}
.public-faq__contact { padding: 24px; text-align: center; }
.public-faq__contact h2 { margin: 0 0 8px; font-size: 1.05rem; color: var(--alt-public-navy); }
.public-faq__contact p { margin: 0 0 16px; color: var(--alt-public-muted); font-size: .84rem; }
.public-faq__contact .public-primary-button { width: auto; display: inline-flex; }

@media (max-width: 620px) {
    .public-faq { margin: 12px 0 28px; padding-inline: 12px; }
}

@media (max-width: 1180px) {
    .public-item-detail { grid-template-columns: minmax(0, 1fr) 340px; }
    .public-gallery { grid-template-columns: 90px minmax(0, 1fr); height: 520px; }
    .public-item-card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .public-footer__grid { grid-template-columns: repeat(4, 1fr); }
    .public-footer__note { grid-column: 1 / -1; }
}

@media (max-width: 960px) {
    .is-public .yor-header__top-inner, .is-public .yor-header__search-inner, .is-public .public-main, .public-footer__grid { width: min(100% - 32px, 900px); }
    .public-item-detail { grid-template-columns: 1fr; }
    .public-item-detail__aside { position: static; grid-template-columns: 1fr 1fr; }
    .public-booking-card { grid-column: 1 / -1; }
    .public-gallery { height: 560px; }
    .public-review-grid { grid-template-columns: repeat(2, 1fr); }
    .public-item-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .catalog-layout { grid-template-columns: 220px minmax(0, 1fr); }
    .catalog-result-card { grid-template-columns: 170px minmax(0, 1fr); }
    .catalog-result-card__price { grid-column: 2; padding-top: 0; flex-direction: row; align-items: center; gap: 12px; justify-content: space-between; }
    .catalog-result-card__price .public-primary-button { width: auto; margin: 0; }
    .is-public .search-results-layout { grid-template-columns: 220px minmax(0, 1fr); }
    .is-public .search-result-item { grid-template-columns: 170px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; height: 188px; }
    .is-public .search-result-item__image { grid-row: 1 / 3; }
    .is-public .search-result-item__price-col { width: auto; grid-column: 2; padding: 0 16px 12px; border-left: 0; align-items: flex-start; }
}

@media (max-width: 720px) {
    body.is-public { padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px)); }
    .is-public .yor-header__top-inner, .is-public .yor-header__search-inner, .is-public .public-main, .public-footer__grid { width: 100%; }
    .is-public .yor-header__top { padding-top: max(8px, env(safe-area-inset-top, 0px)); padding-bottom: 8px; }
    .is-public .yor-header__top-inner { min-height: 0; padding-inline: 12px; align-items: center; flex-wrap: wrap; gap: 8px; }
    .is-public .logo--wordmark { flex-direction: column; align-items: flex-start; gap: 1px; }
    .is-public .logo--wordmark .logo__img { height: 22px; max-width: 96px; }
    .is-public .logo__slogan { margin: 0; max-width: 9rem; font-size: .58rem; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .is-public .yor-header__actions { flex: 1 1 auto; margin-left: 0; min-width: 0; display: flex; align-items: center; gap: 8px; }
    .is-public .yor-header__tools { margin-left: auto; display: flex; align-items: center; gap: 2px; }
    .is-public .yor-notify { order: 1; }
    .is-public .yor-lang-dropdown { order: 2; display: block; }
    .is-public header .yor-nav { display: none !important; }
    .is-public .yor-lang-dropdown__current { display: none; }
    .is-public .yor-hamburger { margin-left: 0; color: var(--alt-public-navy); }
    body.is-public.nav-open header .yor-nav { display: flex !important; position: absolute; z-index: 1400; top: 72px; right: 12px; left: 12px; width: auto; margin: 0; padding: 12px; gap: 5px; align-items: stretch; background: #fff; border: 1px solid var(--alt-public-border); border-radius: 10px; box-shadow: var(--alt-public-shadow); }
    body.is-public.nav-open header .yor-nav a { min-height: 42px; display: flex; align-items: center; padding: 8px 12px; border-radius: 7px; }
    .is-public .yor-header__search { padding: 10px 12px 0; }
    .is-public .yor-header__search--compact .yor-searchbar { box-shadow: none; }
    .is-public .yor-header__search--compact .yor-searchbar__fields { display: grid; grid-template-columns: 1fr; }
    .is-public .yor-header__search--compact .yor-searchbar__field { min-height: 48px; border-right: 0; border-bottom: 1px solid var(--alt-public-border); }
    .is-public .yor-header__search--compact .yor-searchbar__field:last-of-type { border-bottom: 0; }
    .is-public .yor-header__search--compact .yor-searchbar__field--location {
        flex-wrap: wrap;
        row-gap: 8px;
    }
    .is-public .public-main { margin-top: 14px !important; }
    .public-breadcrumb { padding: 0 14px; margin-bottom: 14px; overflow-x: auto; flex-wrap: nowrap; }
    .public-breadcrumb > * { flex: 0 0 auto; }
    .public-breadcrumb [aria-current="page"] { max-width: 180px; }
    .public-item-detail__primary { gap: 12px; }
    .public-gallery { display: block; height: auto; }
    .public-gallery__thumbs { display: none; }
    .public-gallery__stage { height: min(72vw, 460px); border-radius: 0; }
    .public-gallery__arrow { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; }
    .public-item-heading, .public-item-copy, .public-availability, .public-reviews, .public-booking-card, .public-provider-card, .public-location-card { border-radius: 0; border-left: 0; border-right: 0; padding: 18px 16px; box-shadow: none; }
    .content-page { margin: 16px auto 40px; }
    .content-page__body { padding: 18px 16px 22px; }
    .public-bundle-items { border-radius: 0; border-left: 0; border-right: 0; padding: 18px 16px; box-shadow: none; }
    .public-item-heading__top { gap: 8px; }
    .public-item-heading h1 { font-size: 1.22rem; }
    .public-facts-strip { grid-template-columns: repeat(2, 1fr); margin-inline: -16px; }
    .public-facts-strip span:nth-child(2n) { border-right: 0; }
    .public-facts-strip span:nth-child(n+3) { border-top: 1px solid var(--alt-public-border); }
    .public-item-detail__aside { grid-template-columns: 1fr; gap: 12px; }
    .public-booking-card { grid-column: auto; }
    .public-delivery-options, .public-booking-dates { grid-template-columns: 1fr 1fr; }
    #itemBkCalMonths { grid-template-columns: 1fr; }
    #itemBkCalMonths > :last-child { display: none; }
    .public-section-heading { align-items: flex-start; flex-direction: column; }
    .public-calendar-track { grid-template-columns: 1fr; }
    .public-review-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; }
    .public-review { flex: 0 0 84%; scroll-snap-align: start; }
    .public-item-card-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 14px 8px; }
    .public-item-card { flex: 0 0 46%; scroll-snap-align: start; }
    .public-similar h2 { padding-inline: 16px; }
    .public-similar { margin-bottom: 26px; }
    .public-footer { margin-top: 24px; }
    .public-footer__grid { padding: 28px 18px; grid-template-columns: 1fr 1fr; }
    .public-footer__note { grid-column: 1 / -1; }
    .public-mobile-nav { position: fixed; z-index: 1000; inset: auto 0 0; height: calc(62px + env(safe-area-inset-bottom, 0px)); padding-bottom: env(safe-area-inset-bottom, 0px); display: grid; grid-template-columns: repeat(var(--public-bottom-cols, 5), minmax(0, 1fr)); background: rgba(255,255,255,.98); border-top: 1px solid var(--alt-public-border); box-shadow: 0 -6px 22px rgba(8,48,70,.08); }
    .public-mobile-nav a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-width: 0; padding: 4px 2px; color: var(--alt-public-navy); text-decoration: none; font-size: .62rem; text-align: center; line-height: 1.15; overflow: hidden; }
    .public-mobile-nav a span { font-size: 1.2rem; line-height: 1; }
    .public-mobile-nav a.is-active { font-weight: 700; }
    .public-mobile-nav[data-cols="6"] a { font-size: .52rem; padding-inline: 1px; }
    .public-mobile-nav[data-cols="6"] a span { font-size: 1.05rem; }
    .public-mobile-cta { position: fixed; z-index: 950; left: 0; right: 0; bottom: calc(62px + env(safe-area-inset-bottom, 0px)); min-height: 66px; padding: 9px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #fff; border-top: 1px solid var(--alt-public-border); box-shadow: 0 -6px 22px rgba(8,48,70,.08); }
    .public-mobile-cta > div { display: flex; flex-direction: column; }
    .public-mobile-cta span { color: var(--alt-public-muted); font-size: .68rem; }
    .public-mobile-cta .public-primary-button { width: auto; min-height: 42px; font-size: .74rem; }
    body.is-public:has(.public-mobile-cta) { padding-bottom: calc(132px + env(safe-area-inset-bottom, 0px)); }
    .catalog-heading { padding: 0 14px; align-items: flex-start; }
    .catalog-heading h1 { font-size: 1.3rem; }
    .catalog-heading > p { display: none; }
    .catalog-chips { padding: 0 14px 12px; }
    .catalog-chips a { padding: 8px 13px; font-size: .7rem; }
    .catalog-mobile-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0 14px 14px; }
    .catalog-mobile-actions button { min-height: 42px; border: 1px solid #9fb7c6; border-radius: 7px; background: #fff; color: var(--alt-public-navy); font-weight: 700; font-size: .72rem; }
    .catalog-layout { display: block; }
    .catalog-sidebar { position: fixed; z-index: 1200; inset: 0 0 0 auto; width: min(88vw, 360px); border: 0; border-radius: 0; overflow: auto; transform: translateX(105%); transition: transform .2s ease; box-shadow: -20px 0 60px rgba(0,0,0,.2); }
    .catalog-sidebar.is-open { transform: translateX(0); }
    .catalog-sidebar__mobile-head { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; padding: 10px 12px 10px 16px; background: #fff; border-bottom: 1px solid var(--alt-public-border); }
    .catalog-sidebar__close {
        display: inline-flex; align-items: center; justify-content: center;
        width: 44px; height: 44px; min-width: 44px; min-height: 44px;
        margin: 0; padding: 0; border: 0; background: transparent;
        color: inherit; font-size: 1.6rem; line-height: 1; touch-action: manipulation;
    }
    .catalog-toolbar { padding: 0 14px 10px; }
    .catalog-toolbar > span { display: none; }
    .catalog-toolbar form, .catalog-toolbar label { width: 100%; }
    .catalog-toolbar select { margin-left: auto; }
    .catalog-result-list { gap: 0; }
    .catalog-result-card { grid-template-columns: 136px minmax(0, 1fr); min-height: 136px; border-radius: 0; border-left: 0; border-right: 0; border-bottom: 0; }
    .catalog-result-card:last-child { border-bottom: 1px solid var(--alt-public-border); }
    .catalog-result-card__content { padding: 12px; }
    .catalog-result-card__content h2 { font-size: .82rem; line-height: 1.35; }
    .catalog-result-card__facts { font-size: .6rem; }
    .catalog-result-card__tags { display: none; }
    .catalog-result-card__price { grid-column: 2; padding: 0 12px 10px; display: block; }
    .catalog-result-card__price p strong { font-size: .9rem; }
    .catalog-result-card__price small, .catalog-result-card__price .public-primary-button { display: none; }
    .catalog-pagination { padding-inline: 14px; }
    .search-mobile-actions { display: grid; }
    .is-public .search-results-layout { display: block; }
    .is-public .search-sidebar { position: fixed; z-index: 1200; inset: 0 0 0 auto; width: min(88vw, 360px); border: 0; border-radius: 0; overflow: auto; transform: translateX(105%); transition: transform .2s ease; box-shadow: -20px 0 60px rgba(0,0,0,.2); }
    .is-public .search-sidebar.is-open { transform: translateX(0); }
    .is-public .search-header { padding: 0 14px 10px; align-items: flex-start; flex-wrap: wrap; }
    .is-public .search-header h1 { font-size: 1.2rem; }
    .search-sort-form { width: 100%; display: block; }
    .search-sort-form label { justify-content: space-between; }
    .is-public .search-results-list { gap: 0; }
    .is-public .search-result-item { grid-template-columns: 1fr; height: auto; min-height: 0; border-radius: 0; border-left: 0; border-right: 0; border-bottom: 0; }
    .is-public .search-result-item:last-child { border-bottom: 1px solid var(--alt-public-border); }
    .is-public .search-result-item__image { width: 100%; height: auto; aspect-ratio: 4 / 3; grid-row: auto; border-right: 0; border-bottom: 1px solid var(--alt-public-border); }
    .is-public .search-result-item__content { padding: 13px 14px 9px; }
    .is-public .search-result-item__title { font-size: .9rem; }
    .is-public .search-result-item__badges { display: flex; max-height: 42px; }
    .is-public .search-result-item__desc { font-size: .72rem; }
    .is-public .search-result-item__meta { max-height: none; flex-wrap: wrap; white-space: normal; }
    .is-public .search-result-item__price-col { width: auto; grid-column: 1; min-height: 48px; padding: 8px 14px 13px; border: 0; border-top: 1px solid #edf1f3; flex-direction: row; justify-content: space-between; align-items: center; }
    .is-public .search-result-item__deposit { display: block; margin: 0; text-align: right; }
    .is-public .search-result-item__price-unit { display: inline; margin-left: 3px; }
    .is-public .search-result-item__price { text-align: left; }
    .is-public .search-sidebar__apply { position: sticky; bottom: 0; background: #fff; border-top: 1px solid var(--alt-public-border); }
    .public-auth-card { margin: 12px 0 96px; width: 100% !important; padding: 22px 16px; border-radius: 0; border-left: 0; border-right: 0; box-shadow: none; }
    .public-booking-review { margin-top: 12px; padding: 0 14px; }
    .booking-landlord-identity {
        display: block !important;
        visibility: visible !important;
        position: static !important;
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
        clip: auto !important;
        margin: 0 0 14px;
        padding: 14px;
        border-radius: 8px;
    }
    .public-profile__hero, .public-profile__content { border-radius: 0; border-left: 0; border-right: 0; box-shadow: none; }
    .public-profile__tabs { padding-inline: 14px; }
    .public-profile__content .public-item-card-grid { padding-inline: 0; }
    .public-profile__content .public-item-card { flex-basis: 65%; }
    .public-info-page { margin: 12px 0 28px; }
    .public-info-page > header { padding-inline: 16px; }
    .public-info-card { border-radius: 0; border-left: 0; border-right: 0; box-shadow: none; padding: 20px 16px; }
}

@media (max-width: 360px) {
    .is-public .logo__slogan { max-width: 7.5rem; font-size: .55rem; }
    .is-public .yor-nav__cta { padding: 7px 10px; min-height: 34px; }
}

@media (max-width: 430px) {
    .public-provider-actions, .public-delivery-options { grid-template-columns: 1fr; }
    .public-booking-dates { gap: 6px; }
    .public-booking-dates input { padding-inline: 6px; font-size: .75rem; }
    .public-item-card { flex-basis: 64%; }
    .public-footer__grid { grid-template-columns: 1fr; }
    .public-footer__note { grid-column: auto; }
}

@media (display-mode: standalone) {
    .is-public .yor-header__top { padding-top: env(safe-area-inset-top, 0px); }
    .public-mobile-nav { padding-bottom: env(safe-area-inset-bottom, 0px); }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .public-item-card { transition: none; }
}

/* Anbieter-Rechtstexte auf Objekt-/Bundle-Seite */
.public-provider-legal {
    margin: 18px 0 28px;
}
.public-provider-legal__lead {
    margin: 0 0 12px;
    color: var(--alt-public-muted, #63727b);
    font-size: .8rem;
}
.public-provider-legal__grid {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.public-legal-box {
    border: 1px solid var(--alt-public-border, #dde3e7);
    border-radius: 10px;
    background: #fff;
    overflow: hidden;
}
.public-legal-box > summary {
    cursor: pointer;
    list-style: none;
    padding: 12px 14px;
    font-size: .88rem;
    font-weight: 700;
    color: var(--alt-public-text, #102a38);
}
.public-legal-box > summary::-webkit-details-marker { display: none; }
.public-legal-box > summary::after {
    content: '+';
    float: right;
    color: var(--alt-public-muted, #63727b);
    font-weight: 600;
}
.public-legal-box[open] > summary::after { content: '–'; }
.public-legal-box__body {
    padding: 0 14px 14px;
    color: var(--alt-public-text, #102a38);
    font-size: .82rem;
    line-height: 1.55;
}
.public-richtext p { margin: 0 0 .65em; }
.public-richtext p:last-child { margin-bottom: 0; }
.public-richtext p:has(> strong:only-child),
.public-richtext p:has(> b:only-child) { margin-bottom: .12em; }
.public-richtext p:has(> br:only-child) {
  height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  line-height: 0;
  overflow: hidden;
  visibility: hidden;
}
.public-richtext h2, .public-richtext h3, .public-richtext h4, .public-richtext h5, .public-richtext h6 { margin: 1em 0 .4em; line-height: 1.3; }
.public-richtext ul,
.public-richtext ol { margin: 0 0 .65em; padding-left: 1.2em; }
.public-richtext li { margin: 0 0 .3em; }
.public-richtext a { color: var(--alt-public-primary, #083d4d); }
.public-richtext strong, .public-richtext b { font-weight: 700; }

.public-remember {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    margin: 8px 0 16px;
    cursor: pointer;
}
.public-remember input {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
}
.public-login-form label { margin-bottom: 12px; }
.public-login-form__forgot { margin: -4px 0 10px; font-size: .88rem; }
.public-auth-alerts { margin: 0 0 16px; }
.public-auth-alerts.is-empty { margin: 0; }
.public-auth-alert,
.public-auth-card .alert {
    position: relative;
    z-index: 5;
    display: block;
    margin: 0 0 12px;
    padding: 12px 14px;
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: .92rem;
    line-height: 1.45;
    font-weight: 650;
    scroll-margin-top: calc(12px + env(safe-area-inset-top, 0px));
}
.public-auth-alert:last-child,
.public-auth-card .alert:last-child { margin-bottom: 0; }
.public-auth-alert--error,
.public-auth-card .alert-danger {
    background: #fee8e8;
    color: #8a1f1f;
    border-color: #f3c1c1;
}
.public-auth-alert--success,
.public-auth-card .alert-success {
    background: var(--alt-public-green-soft, #e6f6ee);
    color: #08713f;
    border-color: #b7e3c9;
}
.public-auth-alert--warning,
.public-auth-card .alert-warning {
    background: #fff6e5;
    color: #8a5a00;
    border-color: #f3d9a3;
}
.public-auth-card .alert-info {
    background: #e8f3f8;
    color: #0b4e6b;
    border-color: #bdd7e4;
}
.public-field-error {
    display: block;
    position: relative;
    z-index: 1;
    margin: .45rem 0 0;
    padding: 0;
    height: auto;
    max-height: none;
    overflow: visible;
    overflow-wrap: anywhere;
    word-break: break-word;
    color: #9a2222;
    font-size: .86rem;
    font-weight: 650;
    line-height: 1.45;
}
.public-field-error.is-hidden { display: none; }
.public-register-form,
.public-register-form .mb-3,
.public-register-form .input-group {
    overflow: visible;
}
.public-register-form .mb-3 {
    margin-bottom: 1.15rem;
}
.public-register-form .input-group + .public-field-error,
.public-register-form .form-control + .public-field-error {
    margin-top: .55rem;
}
.public-username-suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin: 0 0 12px;
}
.public-username-suggestions.is-hidden { display: none; }
.public-username-suggestions .js-username-suggest {
    border-radius: 999px;
    font-size: .78rem;
}
.public-verify-card h1 { font-size: 1.45rem; line-height: 1.3; }
.public-verify-email { font-weight: 650; }
.public-verify-details { border: 1px solid var(--alt-public-border, #d5e2ea); border-radius: 10px; padding: 10px 14px; }
.public-verify-details summary { cursor: pointer; font-weight: 650; }
@media (max-width: 720px) {
    .public-verify-card h1 { font-size: 1.25rem; }
}
.public-login-form input[aria-invalid="true"] {
    border-color: #b42318;
    box-shadow: 0 0 0 3px rgba(180, 35, 24, .16);
}
@media (max-width: 720px) {
    .public-auth-alert,
    .public-auth-card .alert {
        position: sticky;
        top: env(safe-area-inset-top, 0px);
        z-index: 40;
        box-shadow: 0 4px 16px rgba(16, 42, 56, .08);
    }
    .public-auth-card { overflow: visible; }
}
.item-mobile-bar { display: none; }
.public-review__reply {
    margin-top: 10px;
    padding: 10px 12px;
    background: var(--alt-public-soft);
    border-left: 3px solid var(--alt-public-navy-2);
    border-radius: 0 6px 6px 0;
}
.public-review__reply strong {
    display: block;
    margin-bottom: 4px;
    font-size: .72rem;
    color: var(--alt-public-navy-2);
}
.public-review__reply-form {
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.public-review__reply-form textarea {
    width: 100%;
    min-height: 64px;
    padding: 8px 10px;
    border: 1px solid var(--alt-public-border);
    border-radius: 6px;
}

.maint-banner {
    background: #083d4d;
    color: #fff;
    padding: 10px 16px;
}
.maint-banner__inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    max-width: 1100px;
    margin: 0 auto;
}
.maint-banner p { margin: 4px 0 0; font-size: .82rem; line-height: 1.4; }
.maint-banner__close {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
}

.site-notice--inline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 auto;
    min-width: 0;
    max-width: min(340px, 34vw);
    min-height: 28px;
    padding: 3px 10px;
    border-radius: 999px;
    background: #eef4f6;
    color: #0a5a72;
    text-decoration: none;
    overflow: hidden;
    font-size: .76rem;
    line-height: 1.3;
}
.site-notice--inline .site-notice__text {
    margin: 0;
    flex: 1 1 auto;
    min-width: 4.5rem;
    text-align: left;
    font-size: .76rem;
    font-weight: 650;
    line-height: 1.3;
    color: inherit;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.site-notice__image {
    display: block;
    flex: 0 0 auto;
    height: 28px;
    width: auto;
    max-width: 72px;
    object-fit: contain;
}

@media (max-width: 960px) {
    body.is-item-detail .site-header { display: none !important; }
    body.is-item-detail .item-mobile-bar {
        display: flex;
        position: sticky;
        top: 0;
        z-index: 1100;
        align-items: center;
        gap: 4px;
        min-height: calc(48px + env(safe-area-inset-top, 0px));
        padding: env(safe-area-inset-top, 0px) 8px 4px;
        background: #fff;
        border-bottom: 1px solid var(--alt-public-border, #edf1f4);
        box-shadow: 0 1px 0 rgba(8, 48, 70, .04);
    }
    body.is-item-detail.is-public .public-main {
        margin-top: 0 !important;
        width: 100%;
        padding-top: 0;
    }
    body.is-item-detail .public-breadcrumb { display: none; }
    .item-mobile-bar__spacer { flex: 1 1 auto; }
    .item-mobile-bar__btn,
    .item-mobile-bar .yor-notify__trigger,
    .item-mobile-bar .yor-notify--link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        margin: 0;
        padding: 0;
        color: var(--alt-public-navy, #083d4d);
        background: transparent;
        border: 0;
        border-radius: 10px;
        text-decoration: none;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    .item-mobile-bar__btn:hover,
    .item-mobile-bar .yor-notify__trigger:hover,
    .item-mobile-bar .yor-notify--link:hover {
        background: #eef3f4;
    }
    .item-mobile-bar .app-icon,
    .item-mobile-bar .app-icon svg {
        display: block;
        width: 22px;
        height: 22px;
    }
    .item-mobile-bar .yor-notify { position: relative; }
    .item-mobile-bar .yor-notify__trigger { list-style: none; }
    .item-mobile-bar .yor-notify__trigger::-webkit-details-marker { display: none; }
    .item-mobile-bar .yor-notify__count {
        position: absolute;
        top: 6px;
        right: 6px;
        min-width: 16px;
        height: 16px;
        padding: 0 4px;
        border-radius: 999px;
        background: #2b7fb5;
        color: #fff;
        font-size: .62rem;
        font-weight: 700;
        line-height: 16px;
        text-align: center;
    }
    .item-mobile-bar .yor-notify__menu {
        position: absolute;
        right: 0;
        top: calc(100% + 4px);
        z-index: 80;
        min-width: 240px;
        padding: 8px;
        background: #fff;
        border: 1px solid var(--alt-public-border, #edf1f4);
        border-radius: 10px;
        box-shadow: 0 12px 30px rgba(10, 35, 45, .16);
    }
    .item-mobile-bar .yor-notify__menu a,
    .item-mobile-bar .yor-notify__menu p {
        display: block;
        padding: 10px 12px;
        margin: 0;
        color: var(--alt-public-navy, #083d4d);
        text-decoration: none;
        font-size: .84rem;
        font-weight: 600;
        border-radius: 6px;
    }
    .item-mobile-bar .yor-notify__menu a:hover { background: #eef3f4; }
    .item-mobile-bar .yor-notify__menu p { color: var(--alt-public-muted, #5b6b70); font-weight: 500; }
}

.trust-card { font-size: .84rem; }
.trust-card__id { display: flex; gap: 10px; align-items: center; }
.trust-card__id img, .trust-card__id > span {
  width: 44px; height: 44px; border-radius: 50%; object-fit: cover; background: #eef3f4;
  display: grid; place-items: center; font-weight: 700;
}
.trust-card__id p { margin: 0; }
.trust-card__meta { list-style: none; padding: 0; margin: 8px 0 0; color: var(--alt-public-muted, #5b6b70); }
.trust-card__meta li { margin: 0 0 4px; }
.trust-card__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.trust-card--compact .trust-card__actions { margin-top: 6px; }
.yor-notify__trigger.is-nudge, .app-icon-btn.is-nudge {
  animation: alt-bell-nudge .7s ease-in-out 1;
}
@keyframes alt-bell-nudge {
  0%, 100% { transform: rotate(0); }
  25% { transform: rotate(-12deg); }
  50% { transform: rotate(10deg); }
  75% { transform: rotate(-6deg); }
}
@media (prefers-reduced-motion: reduce) {
  .yor-notify__trigger.is-nudge, .app-icon-btn.is-nudge { animation: none; }
}

.public-profile__hero { display: grid; gap: 16px; }
.public-profile__hero .trust-card { margin-top: 4px; }
.public-profile__tabs a.is-active { font-weight: 700; }
.public-review__report { margin-top: 10px; font-size: .72rem; }
.public-review__report form { display: grid; gap: 8px; margin-top: 8px; }
.public-review__report select, .public-review__report textarea { width: 100%; }

.deposit-card-required {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #0b4a7a;
    font-weight: 700;
}
.deposit-card-required .app-icon {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    color: currentColor;
}
.deposit-card-required .app-icon svg {
    display: block;
    width: 100%;
    height: 100%;
}
.deposit-card-required--badge {
    margin-top: 4px;
    padding: 4px 8px;
    border-radius: 6px;
    background: #eef6ff;
    border: 1px solid #c5daf5;
    font-size: .72rem;
    line-height: 1.2;
    white-space: nowrap;
}
.deposit-card-required--explain {
    display: grid;
    gap: 6px;
    margin: 8px 0 16px;
    padding: 12px;
    border-radius: 8px;
    background: #eef6ff;
    border: 1px solid #c5daf5;
    color: var(--alt-public-text);
}
.deposit-card-required__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: .9rem;
    font-weight: 800;
}
.deposit-card-required__body,
.deposit-card-required__amount,
.deposit-card-required__orient {
    margin: 0;
    font-size: .78rem;
    font-weight: 500;
    line-height: 1.4;
}
#bookingShorterOffer {
    margin-top: 8px;
}
.deposit-card-required--booking {
    margin-top: 8px;
    font-size: .85rem;
}
.search-result-item__deposit .deposit-card-required--badge {
    display: flex;
    margin-top: 6px;
    white-space: normal;
}
@media (max-width: 767px) {
    .deposit-card-required--badge {
        font-size: .78rem;
        padding: 6px 10px;
    }
    .search-result-item__deposit .deposit-card-required--badge {
        justify-content: flex-end;
    }
    .public-item-card .deposit-card-required--badge {
        display: inline-flex;
        max-width: 100%;
    }
}

.alt-map-consent {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 8px;
    min-height: 160px;
    padding: 16px;
    background: #f4f7f8;
    border-radius: 8px;
}

@media (max-width: 720px) {
    #itemBkCalMonths { grid-template-columns: 1fr; }
    .public-booking-calendar { margin-inline: -16px; padding: 8px 0; border-inline: 0; border-radius: 0; }
    .public-booking-calendar__grid { gap: 0; }
    .public-booking-calendar__grid > span { aspect-ratio: auto; min-height: 1.4rem; }
    .public-booking-calendar__grid > button { aspect-ratio: auto; width: 100%; min-width: 0; height: 44px; min-height: 44px; }
}

@media (max-width: 767px) {
    .is-public .yor-searchbar__fields { display: grid; grid-template-columns: 1fr 1fr; min-height: 0; gap: 0; }
    .is-public .yor-searchbar__field--category,
    .is-public .yor-searchbar__field--location { display: none !important; }
    .is-public .yor-searchbar__field--query,
    .is-public .yor-searchbar__submit { grid-column: 1 / -1; }
    .is-public .yor-searchbar__field--query { min-height: 44px; height: 44px; padding: 0 10px; box-sizing: border-box; }
    .is-public .yor-searchbar__field--date-split { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; min-height: 44px; height: 44px; padding: 0; box-sizing: border-box; }
    .is-public .yor-date-trigger {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 6px;
        height: 44px;
        min-height: 44px;
        max-height: 44px;
        padding: 0 10px;
        box-sizing: border-box;
    }
    .is-public .yor-searchbar__submit,
    .is-public .yor-header__search--compact .yor-searchbar__submit { display: block; width: calc(100% - 12px); min-height: 44px; margin: 6px; }
    .is-public .yor-header__search { padding: 6px 12px 0; }
    .is-public .search-header { flex-direction: column; align-items: stretch; gap: 8px; }
    .search-header__tools { order: -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) auto; gap: 8px; width: 100%; align-items: center; }
    .search-toolbar__filter { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; border: 1px solid #9fb7c6; border-radius: 7px; background: #fff; color: var(--alt-public-navy); font-weight: 700; font-size: .72rem; }
    .search-sort-form { width: auto; min-width: 0; }
    .search-sort-form__label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
    .search-sort-form select { width: 100%; min-height: 42px; }
    .search-header__tools .listing-view-toggle { margin: 0; }
    .search-header__tools .listing-view-toggle a { min-height: 42px; display: inline-flex; align-items: center; padding: 8px 10px; }
    .search-origin__actions, .search-origin__plz { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
    .search-origin__plz input { min-height: 42px; width: 8rem; max-width: 100%; }
    .catalog-mobile-actions [data-catalog-sort-open] { display: none; }
}
@media (min-width: 768px) {
    .search-toolbar__filter { display: none; }
    .search-header__tools { display: flex; align-items: flex-end; gap: 12px; }
}
.search-origin { margin: 0 0 10px; }
.search-origin p, .search-origin__note { margin: 0 0 8px; }
.search-origin__denied { margin-top: 8px; font-size: .78rem; }
@media (max-width: 380px) {
    .search-header__tools { grid-template-columns: 1fr 1fr; }
    .search-header__tools .listing-view-toggle { grid-column: 1 / -1; justify-content: stretch; }
    .search-header__tools .listing-view-toggle a { flex: 1 1 auto; justify-content: center; }
}
/* compact-search-row */

.listing-view-toggle__sep { display: none; }
.listing-filter-bar__panel { display: contents; }
@media (max-width: 767px) {
    .is-public .yor-searchbar__fields > input[type="hidden"] { display: none !important; }
    .is-home .public-main { margin-top: 8px !important; }
    .is-public .search-header { gap: 0; padding-bottom: 0; }
    .search-header__summary { order: 1; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0 0 8px; }
    .search-header__summary h1 { margin: 0; font-size: 1.05rem; min-width: 0; }
    .search-count { margin: 0; flex: 0 0 auto; }
    .search-header__tools { order: 2; margin: 0 0 12px; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) auto; }
    .search-header__meta { order: 3; margin: -4px 0 12px; }
    .search-header__meta:not(:has(.search-origin, .search-active-ops, .search-empty-reason)) { display: none; }
    .search-toolbar__filter, .search-sort-form select { min-height: 44px; }
    .search-header__tools .listing-view-toggle a { min-width: 44px; min-height: 44px; }
    .listing-view-toggle { border: 0; background: transparent; border-radius: 0; overflow: visible; gap: 0; margin: 0; }
    .listing-view-toggle__sep { display: block; color: #9fb7c6; font-weight: 700; line-height: 1; }
    .listing-view-toggle a { min-width: 44px; min-height: 44px; padding: 0 6px; background: transparent; color: #5c7380; }
    .listing-view-toggle a.is-active { background: transparent; color: var(--alt-public-navy, #083d4d); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
    .is-public .search-sidebar,
    .catalog-sidebar { bottom: calc(62px + env(safe-area-inset-bottom, 0px)); }
    .catalog-heading { display: block; margin: 0 0 8px; }
    .catalog-heading__titles { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
    .catalog-heading__titles h1 { margin: 0; font-size: 1.05rem; min-width: 0; }
    .catalog-heading__count { margin: 0; }
    .catalog-mobile-actions { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) auto; align-items: center; gap: 8px; margin: 0 14px 12px; padding: 0; }
    .catalog-mobile-actions button, .catalog-mobile-actions select { min-height: 44px; }
    .catalog-mobile-actions__sort select { width: 100%; min-height: 44px; }
    .catalog-mobile-actions .listing-filter-bar__sort-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
    .catalog-toolbar .listing-filter-bar__panel { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
    .catalog-sidebar .listing-filter-bar__panel { position: static; width: auto; height: auto; overflow: visible; clip: auto; display: block; padding: 0 15px 16px; }
    .catalog-chips { padding-bottom: 8px; }
    .search-results-list, .catalog-result-list { margin-top: 0; }
}
@media (max-width: 380px) {
    .search-header__tools { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) auto; }
    .search-header__tools .listing-view-toggle { grid-column: auto; }
}

.search-results-split {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 10px 0 6px;
    padding: 0;
    color: #8a9aa3;
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.2;
}
.search-results-split::after {
    content: "";
    flex: 1 1 auto;
    height: 1px;
    background: #dce3e7;
}

@media (max-width: 767px) {
    body.has-public-shell.is-public:has(.search-results-page) > main.container.public-main {
        margin-top: 10px !important;
        padding-top: 0;
    }
    .is-public .search-header {
        padding: 0 12px;
        gap: 0;
        margin: 0;
        min-height: 0;
        align-items: stretch;
        flex-direction: column;
    }
    .search-header__summary {
        order: 1;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
        margin: 0 0 8px;
    }
    .search-header__summary h1,
    .is-public .search-header h1 {
        flex: none;
        width: 100%;
        margin: 0;
        font-size: 1.1875rem;
        line-height: 1.25;
        font-weight: 700;
    }
    .is-public .search-count,
    .search-count {
        margin: 0;
        font-size: .75rem;
        font-weight: 500;
        color: var(--alt-public-muted);
    }
    .search-header__tools {
        order: 2;
        margin: 0 0 10px;
        width: 100%;
    }
    .is-public .search-results-list {
        gap: 8px;
        padding: 0 12px 12px;
        margin-top: 0;
    }
    .is-public .search-result-item {
        display: grid;
        grid-template-columns: minmax(112px, 40%) minmax(0, 1fr);
        grid-template-rows: minmax(132px, auto);
        height: auto;
        min-height: 132px;
        max-height: none;
        border-radius: 8px;
        border: 1px solid var(--alt-public-border);
        overflow: hidden;
    }
    .is-public .search-result-item:last-child { border-bottom: 1px solid var(--alt-public-border); }
    .is-public .search-result-item__image {
        grid-column: 1;
        grid-row: 1;
        width: auto;
        height: 100%;
        min-height: 132px;
        aspect-ratio: auto;
        border: 0;
        border-radius: 8px 0 0 8px;
        overflow: hidden;
        position: relative;
    }
    .is-public .search-result-item__image img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 0;
    }
    .is-public .search-result-item__owner { display: none; }
    .is-public .search-result-item__badge,
    .is-public .search-result-item__favorite {
        z-index: 3;
    }
    .search-results-split {
        margin: 6px 0 2px;
        font-size: 12px;
    }
    .is-public .search-result-item__main {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        min-width: 0;
        padding: 8px 10px;
        gap: 2px;
    }
    .is-public .search-result-item__content {
        display: contents;
    }
    .is-public .search-result-item__title {
        order: 1;
        margin: 0;
        font-size: .9rem;
        font-weight: 700;
        line-height: 1.25;
        min-height: 0;
        -webkit-line-clamp: 2;
        line-clamp: 2;
    }
    .is-public .search-result-item__price-col {
        order: 2;
        width: auto;
        min-height: 0;
        margin: 0;
        padding: 0;
        border: 0;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 2px;
    }
    .is-public .search-result-item__price {
        font-size: 1rem;
        font-weight: 700;
        line-height: 1.2;
        text-align: left;
    }
    .is-public .search-result-item__price-unit {
        display: inline;
        margin-left: 3px;
        font-size: .72rem;
        font-weight: 600;
        color: var(--alt-public-muted);
    }
    .is-public .search-result-item__meta {
        order: 3;
        max-height: none;
        margin: 0;
        padding: 0;
        flex-wrap: nowrap;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        font-size: .68rem;
    }
    .is-public .search-result-item__rating {
        order: 4;
        min-height: 0;
        margin: 0;
        font-size: .65rem;
    }
    .is-public .search-result-item__badges {
        order: 5;
        display: flex;
        max-height: 22px;
        margin: 0;
        overflow: hidden;
    }
    .is-public .search-result-item__desc {
        order: 6;
        min-height: 0;
        margin: 0;
        font-size: .68rem;
        -webkit-line-clamp: 1;
        line-clamp: 1;
    }
    .is-public .search-result-item__desc.is-empty { display: none; }
    .is-public .search-result-item__deposit {
        display: block;
        margin: 2px 0 0;
        text-align: left;
    }
    .search-result-item__deposit .deposit-card-required--badge {
        display: inline-flex;
        margin-top: 2px;
        padding: 2px 6px;
        font-size: .62rem;
        justify-content: flex-start;
    }
    .is-public .search-result-item__savings { font-size: .65rem; }
    .search-result-item__favorite { width: 32px; height: 32px; top: 6px; right: 6px; }
    .catalog-result-list { gap: 8px; padding: 0 12px 12px; }
    .catalog-result-card {
        grid-template-columns: minmax(112px, 40%) minmax(0, 1fr);
        min-height: 132px;
        border-radius: 8px;
        border: 1px solid var(--alt-public-border);
    }
}
