/* Destinations page: header, search and the bento grid */
.vy-dests { padding-block: clamp(28px, 5vw, 56px) clamp(40px, 6vw, 72px); }
.vy-dests__head { margin-bottom: 32px; }
.vy-dests__head h1 { font-size: clamp(34px, 5vw, 60px); }
.vy-dests__head p { color: var(--vy-muted); max-width: 52ch; margin-top: 12px; font-size: clamp(16px, 1.5vw, 19px); }
.vy-dests__search { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; margin-top: 24px; }
.vy-dests__search input { flex: 1 1 280px; max-width: 420px; padding: 14px 20px; border: 1px solid var(--vy-line); border-radius: 999px; background: var(--vy-surface); color: var(--vy-ink); font: 16px var(--vy-body); }
.vy-dests__search input:focus-visible { outline: 3px solid var(--vy-sea); outline-offset: 2px; }
.vy-dests__total { color: var(--vy-muted); font-size: 14px; font-variant-numeric: tabular-nums; }
.vy-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.vy-dests__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 240px; grid-auto-flow: dense; gap: 16px; }
.vy-dtile { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: flex-end; padding: 22px; border-radius: var(--vy-radius); color: #fff !important; background: #1E3B41; }
.vy-dtile--xl { grid-column: span 2; grid-row: span 2; }
.vy-dtile--wide { grid-column: span 2; }
.vy-dtile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .6s ease; }
.vy-dtile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 40%, rgba(6, 22, 26, .8)); }
.vy-dtile:hover img, .vy-dtile:focus-visible img { transform: scale(1.05); }
.vy-dtile:focus-visible { outline: 3px solid var(--vy-accent); outline-offset: 3px; }
.vy-dtile[hidden] { display: none; }
.vy-dtile h2 { font-size: clamp(20px, 2vw, 26px); color: #fff; }
.vy-dtile--xl h2 { font-size: clamp(28px, 3.2vw, 42px); }
.vy-dtile__body span { display: block; margin-top: 4px; font-size: 14px; opacity: .92; font-variant-numeric: tabular-nums; }
.vy-dtile__body i { font-style: normal; opacity: .7; }

.vy-dests__none { margin-top: 24px; color: var(--vy-muted); }
.vy-dests__none[hidden] { display: none; }
.vy-dests__empty { padding: 56px 24px; text-align: center; border: 1px dashed var(--vy-line); border-radius: var(--vy-radius); }
.vy-dests__empty p { color: var(--vy-muted); margin: 10px 0 20px; }

.vy-dests__cta { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 20px 32px; margin-top: clamp(40px, 6vw, 72px); padding: clamp(24px, 4vw, 40px); border-radius: var(--vy-radius); background: var(--vy-accent-soft); }
.vy-dests__cta h2 { font-size: clamp(24px, 2.6vw, 34px); }
.vy-dests__cta p { color: var(--vy-muted); max-width: 52ch; margin-top: 8px; }

@media (max-width: 1000px) {
  .vy-dests__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 200px; }
  .vy-dtile--xl { grid-column: 1 / -1; }
  .vy-dtile--wide { grid-column: auto; }
}
@media (max-width: 560px) {
  .vy-dests__grid { grid-template-columns: 1fr; grid-auto-rows: 220px; }
  .vy-dtile--xl { grid-column: auto; grid-row: span 1; }
}
@media (prefers-reduced-motion: reduce) { .vy-dtile img { transition: none; } .vy-dtile:hover img { transform: none; } }
