/* ============================================================
   Tripsorb — premium polish (v0.51.0). ADDITIVE ONLY.
   Loaded after the base styles. Same logo, same brand colours —
   this only adds depth, motion and tactility. Safe to remove.
   ============================================================ */

/* Listing cards: lift + soft depth + slow image zoom on hover */
.listing { transition: transform .22s ease, box-shadow .22s ease; }
.listing:hover { transform: translateY(-4px); box-shadow: 0 22px 46px -18px rgba(20,33,61,.40); }
.listing .ph { overflow: hidden; }
.listing .ph-img { transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.listing:hover .ph-img { transform: scale(1.06); }

/* Buttons: subtle tactile micro-lift */
.btn, .btn-grad, .btn-primary { transition: transform .15s ease, box-shadow .2s ease, filter .2s ease; }
.btn:hover, .btn-grad:hover, .btn-primary:hover { transform: translateY(-1px); }

/* Content cards / quotes / boxes: gentle depth on hover */
.wcard, .tquote, .cbox, .tcard, .bcard2 { transition: transform .22s ease, box-shadow .22s ease; }
.wcard:hover, .tquote:hover, .bcard2:hover { transform: translateY(-3px); box-shadow: 0 16px 34px -16px rgba(20,33,61,.30); }

/* Sticky nav: faint glass once scrolled (state toggled by existing JS) */
#siteNav.scrolled { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 8px 30px -16px rgba(20,33,61,.35); }

/* Hero image bands: ensure focal-aware fill + a readable scrim */
.lhero.has-hero { position: relative; background-size: cover; background-repeat: no-repeat; color: #fff; }
.lhero.has-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,33,61,.30), rgba(20,33,61,.78)); z-index: 0; }
.lhero.has-hero > * { position: relative; z-index: 1; }
.lhero.has-hero a { color: #fff; }

/* Accessible focus visibility */
a:focus-visible, button:focus-visible, .btn:focus-visible { outline: 2px solid var(--ts-coral, #FF5B41); outline-offset: 2px; }
