/* ============================================================
 * RC40 FRONTEND UI/UX CONSOLIDATION
 * Interaction, accessibility and responsive-state refinement on top of the
 * approved 2026-08-28 visual references. Geometry of approved desktop boards
 * remains Elementor-owned; this section standardises focus, overlays, mobile
 * sheets and interaction feedback without changing commercial semantics.
 * ============================================================ */
:root{
  --vx-focus:rgb(20 167 168 / 34%);
  --vx-overlay:rgb(7 29 52 / 48%);
  --vx-ease:cubic-bezier(.2,.7,.2,1);
}
html.viviare-overlay-open,html.viviare-overlay-open body{overflow:hidden;overscroll-behavior:none}
.viviare-ui-backdrop{position:fixed;z-index:996;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;background:var(--vx-overlay);cursor:default;opacity:1;transition:opacity .18s var(--vx-ease)}
.viviare-ui-backdrop[hidden]{display:none}
:where(.elementor) :where(a,button,input,select,textarea):focus-visible,
.viviare-mobile-bottom-nav a:focus-visible,
.viviare-listing-filter-toggle:focus-visible,
.viviare-listing-map-toggle:focus-visible{outline:3px solid var(--vx-focus);outline-offset:2px}
:where(.elementor) :where(.viviare-site-header){transition:min-height .2s var(--vx-ease),box-shadow .2s var(--vx-ease),border-color .2s var(--vx-ease),background-color .2s var(--vx-ease)}
:where(.elementor) :where(.viviare-site-header).is-scrolled{border-bottom-color:#d8e3e8;background:rgb(255 255 255 / 96%);box-shadow:0 7px 22px rgb(13 49 88 / 8%);backdrop-filter:blur(14px)}
:where(.elementor) :where(.viviare-header-nav) .elementor-button,
.viviare-search-pattern__submit,
.viviare-result-card,
.viviare-entity-card,
.viviare-review-card{transition:transform .18s var(--vx-ease),box-shadow .18s var(--vx-ease),border-color .18s var(--vx-ease),background-color .18s var(--vx-ease),color .18s var(--vx-ease)}
@media (hover:hover) and (pointer:fine){
  .viviare-result-card:hover,.viviare-entity-card:hover{border-color:#cbdbe2;box-shadow:0 10px 26px rgb(13 49 88 / 9%);transform:translateY(-1px)}
  .viviare-review-card:hover{border-color:#d5e2e7;box-shadow:0 8px 22px rgb(13 49 88 / 7%)}
  .viviare-search-pattern__submit:hover{filter:brightness(.96);box-shadow:0 6px 16px rgb(13 49 88 / 14%);transform:translateY(-1px)}
}
.viviare-listing-sidebar__close{display:none}
.viviare-mobile-bottom-nav a{position:relative;min-height:50px;border-radius:8px}
.viviare-mobile-bottom-nav a.is-active:after{content:"";position:absolute;top:2px;width:22px;height:2px;border-radius:999px;background:currentColor}
.viviare-mobile-bottom-nav a:active{background:#f1f7f8}
.viviare-entity-gallery__item img,.viviare-entity-card__media img,.viviare-result-card__media img{transition:transform .35s var(--vx-ease)}
@media (hover:hover) and (pointer:fine){.viviare-entity-card:hover .viviare-entity-card__media img,.viviare-result-card:hover .viviare-result-card__media img{transform:scale(1.015)}}

@media (max-width:900px){
  :where(.elementor) :where(.viviare-site-header){z-index:1000}
  :where(.elementor) :where(.viviare-site-header).is-menu-open{box-shadow:none}
  :where(.elementor) :where(.viviare-header-nav){z-index:1001;max-height:calc(100dvh - 58px - env(safe-area-inset-bottom));overflow:auto;border-bottom:1px solid var(--vx-line);box-shadow:0 18px 36px rgb(13 49 88 / 18%)}
  :where(.elementor) :where(.viviare-header-nav) .elementor-button{min-height:48px;border-radius:8px;font-size:15px}
  :where(.elementor) :where(.viviare-header-nav) .elementor-button:active{background:#eef7f8}

  .viviare-listing-mobile-tools{position:sticky;z-index:20;top:64px;padding:4px 0;background:rgb(255 255 255 / 94%);backdrop-filter:blur(10px)}
  .viviare-listing-filter-toggle,.viviare-listing-map-toggle{touch-action:manipulation}
  .viviare-search-results--stay-list.is-mobile-filter-ready .viviare-listing-sidebar,
  .viviare-search-results--stay-list.is-mobile-filter-ready .viviare-listing-sidebar.is-open{position:fixed;z-index:1002;right:0;bottom:0;left:0;display:block;max-height:min(82dvh,720px);margin:0;padding:18px 16px calc(22px + env(safe-area-inset-bottom));overflow:auto;border:0;border-top:1px solid #dce5ea;border-radius:18px 18px 0 0;background:#fff;box-shadow:0 -18px 48px rgb(13 49 88 / 20%);transform:translateY(105%);visibility:hidden;transition:transform .24s var(--vx-ease),visibility .24s}
  .viviare-search-results--stay-list.is-mobile-filter-ready .viviare-listing-sidebar.is-open{transform:translateY(0);visibility:visible}
  .viviare-listing-sidebar__close{position:sticky;z-index:2;top:0;float:right;display:grid;width:38px;height:38px;place-items:center;margin:-7px -5px 3px 8px;padding:0;border:1px solid var(--vx-line);border-radius:999px;background:#fff;color:var(--vx-stay);font-size:24px;line-height:1;cursor:pointer}
  .viviare-listing-sidebar__head{padding-top:5px;padding-right:42px}
  .viviare-listing-filter-group{grid-template-columns:1fr 1fr;gap:10px;padding:16px 0}
  .viviare-listing-filter-group label{font-size:12px;line-height:1.35}
  .viviare-listing-filter-group input,.viviare-listing-filter-group select{min-height:44px;font-size:13px}
  .viviare-listing-sidebar .viviare-btn{min-height:46px;font-size:13px}

  .viviare-search-pattern .viviare-field{touch-action:manipulation}
  .viviare-search-pattern .viviare-field input,.viviare-search-pattern .viviare-field select{font-size:16px}
  .viviare-search-pattern__submit{min-height:48px;font-size:13px}

  :where(.elementor) :where(.viviare-single8-tabs){scroll-padding-inline:16px;scroll-snap-type:x proximity}
  :where(.elementor) :where(.viviare-single8-tab){scroll-snap-align:start}
  .viviare-booking-panel input,.viviare-booking-panel select{font-size:16px}
  .viviare-booking-panel .viviare-btn,.viviare-booking-panel button[type=submit]{min-height:48px}
}

@media (max-width:767px){
  .viviare-mobile-bottom-nav{z-index:998;box-shadow:0 -8px 24px rgb(13 49 88 / 9%)}
  .viviare-mobile-bottom-nav a{min-height:54px}
  .viviare-result-card__body{min-width:0}
  .viviare-result-card h3,.viviare-entity-card h3{overflow-wrap:anywhere}
  .viviare-listing-toolbar{gap:8px}
  .viviare-listing-toolbar select{max-width:160px}
  .viviare-entity-gallery__count{min-height:34px;display:inline-flex;align-items:center}
  .viviare-favorite-button,:where(.elementor) :where(.viviare-single8-share) .elementor-button{min-height:44px}
}

@media (prefers-reduced-motion:reduce){
  .viviare-ui-backdrop,
  :where(.elementor) :where(.viviare-site-header),
  :where(.elementor) :where(.viviare-header-nav) .elementor-button,
  .viviare-search-pattern__submit,
  .viviare-result-card,
  .viviare-entity-card,
  .viviare-review-card,
  .viviare-entity-gallery__item img,
  .viviare-entity-card__media img,
  .viviare-result-card__media img{transition:none}
  .viviare-result-card:hover,.viviare-entity-card:hover{transform:none}
}
