/* Selected criteria stay visible beside the results, including without JS. */
.active-filters { margin:0 0 16px; padding:14px 16px; border:1px solid #c8e9ef; border-radius:18px; background:#f1fafc; }
.active-filters > p { margin:0; font-size:.9rem; color:var(--ink-soft); }
.active-filters > p strong { color:var(--ink); }
.active-filters__chips { display:flex; flex-wrap:wrap; gap:8px; }
.active-filters__chips:not(:empty) { margin-top:10px; }
.active-filters__chips.is-empty { display:none; }
.active-filter-chip { display:inline-flex; align-items:center; gap:10px; min-height:40px; padding:7px 12px; border:1px solid #aedbe5; border-radius:999px; background:#fff; color:var(--ink); font-size:.8rem; line-height:1.3; text-decoration:none; }
.active-filter-chip span { font-size:1.25rem; line-height:1; }
.active-filter-chip:hover { background:#dff8fb; }
.active-filters__clear { align-self:center; padding:10px 8px; color:var(--ink); font-weight:800; font-size:.8rem; text-decoration:underline; }
.active-filters > small { display:block; margin-top:8px; color:var(--ink-soft); }
.filter-date-context { display:flex; flex-wrap:wrap; align-items:center; gap:10px; grid-column:1 / -1; font-size:.8rem; }
.filter-date-context:empty { display:none; }
.active-filters a:focus-visible { outline:3px solid var(--turquoise-dark); outline-offset:3px; }
.motion-filter-sheet form { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 12px; }
.motion-filter-sheet form > label { min-width:0; font-size:.85rem; }
.motion-filter-sheet form > fieldset,.motion-filter-sheet .catalog-filters__actions { grid-column:1 / -1; }
.motion-filter-sheet .catalog-filters__actions { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.motion-filter-sheet select { text-overflow:ellipsis; }
.motion-filter-sheet > header { position:sticky; top:-22px; z-index:2; padding-block:10px; background:#fff; }
.motion-filter-sheet .catalog-filters__actions { position:sticky; bottom:calc(-20px - env(safe-area-inset-bottom)); z-index:2; padding:14px 0 calc(14px + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid #dcecf0; }
/* PhotoSwipe owns its viewport, gestures and zoom. No card-shaped image frame. */
.pswp { --pswp-bg:#10171b; z-index:10020; }
.pswp .pswp__button { box-shadow:none; border:0; border-radius:0; min-height:50px; }
.pswp .pswp__img { max-width:none; border-radius:0; }
.pswp .pswp__counter { font-family:var(--body); }
.pswp .pswp__error-msg { color:#fff; }
/* Plain dialog remains a functional fallback if the gallery module cannot load. */
.theme-two .lightbox { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; }
.theme-two .lightbox figure { margin:0; width:100%; height:auto; background:transparent; }
.theme-two .lightbox figure img { display:block; width:100%; height:auto; max-height:80dvh; object-fit:contain; border-radius:0; }
@media(max-width:860px) {
 .theme-two .similar-grid { display:grid; grid-template-columns:minmax(0,1fr); overflow:visible; scroll-snap-type:none; padding:0; gap:18px; }
 .theme-two .similar-card { min-width:0; width:100%; scroll-snap-align:none; }
}
@media(max-width:620px) {
 .theme-two .detail-hero__intro .detail-facts { width:100%; margin:0; gap:8px; }
 .theme-two .detail-hero__intro .detail-facts > span { grid-template-columns:32px auto; grid-template-rows:32px auto; gap:4px; padding:12px 8px; border-radius:18px; align-items:center; align-content:center; min-height:82px; box-shadow:0 5px 14px rgb(5 43 66 / .05); }
 .theme-two .detail-hero__intro .detail-facts i { width:32px; height:32px; margin:0; border-radius:10px; }
 .theme-two .detail-hero__intro .detail-facts i .icon { width:22px; height:22px; }
 .theme-two .detail-hero__intro .detail-facts b { font-size:1.3rem; line-height:1; }
 .theme-two .detail-hero__intro .detail-facts small { grid-column:1 / -1; font-size:.74rem; line-height:1.25; }
 .theme-two .detail-title h1 { font-size:clamp(2.4rem,10.5vw,3.2rem); line-height:1.12; }
 .theme-two .detail-hero__intro { gap:18px; }
 .theme-two .property-details { grid-template-columns:minmax(0,1fr); gap:0; padding:8px 16px; }
 .theme-two .property-details > div { grid-template-columns:24px minmax(0,1fr) auto; align-items:center; gap:10px; padding:12px 0; border-bottom:1px solid rgb(7 50 74 / .10); }
 .theme-two .property-details > div:last-child { border-bottom:0; }
 .theme-two .property-details > div > span { display:flex; grid-column:1; }
 .theme-two .property-details dt { grid-column:2; font-size:.83rem; }
 .theme-two .property-details dd { grid-column:3; text-align:right; max-width:170px; font-size:.88rem; }
 .theme-two .property-details .icon { width:22px; height:22px; }
 .theme-two .mobile-booking-bar { background:#096a87; border:1px solid #6ac0d1; box-shadow:0 5px 18px rgb(5 43 66 / .18); bottom:calc(92px + env(safe-area-inset-bottom)); padding:10px 14px; gap:10px; }
 .theme-two .mobile-booking-bar p { min-width:0; }
 .theme-two .mobile-booking-bar p b { font-size:clamp(1.15rem,5vw,1.4rem); line-height:1.2; overflow-wrap:anywhere; }
 .theme-two .mobile-booking-bar p > span { color:#e0f7fc; font-size:.78rem; }
 .theme-two .mobile-booking-bar .button { padding-inline:20px; flex-shrink:0; }
 .active-filters { padding:12px; }
 .active-filter-chip { min-height:44px; }
 .theme-two .catalog-filters > summary span { display:block; font-size:.72rem; }
}
