/* ==========================================================================
   THUI capabilities — reusable across every vertical (Hotel, Tour, Destination, Homepage...).
   Moved here so no reusable functionality lives inside a single page template.
   ========================================================================== */

/* Gallery */
.tvh-gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 140px; gap: .5rem; border-radius: var(--thui-radius-lg); overflow: clip; }
.tvh-gallery img { inline-size: 100%; block-size: 100%; object-fit: cover; display: block; }
.tvh-gallery a:first-child { grid-row: span 2; grid-column: span 1; }
@media (max-width: 700px) { .tvh-gallery { grid-template-columns: 1fr 1fr; } .tvh-gallery a:first-child { grid-column: span 2; } }

/* Quick facts */
.tvh-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .8rem; }
.tvh-facts__item { background: var(--thui-color-surface); border: 1px solid var(--thui-color-border);
  border-radius: var(--thui-radius-md); padding: .9rem 1rem; }
.tvh-facts__label { display: block; font-size: var(--thui-fs-xs); color: var(--thui-color-text-muted); text-transform: uppercase; letter-spacing: .04em; }
.tvh-facts__value { font-weight: var(--thui-fw-semibold); color: var(--thui-color-ink); }

/* Amenities */
.tvh-amenities { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .5rem; }
.tvh-amenities li { position: relative; padding-inline-start: 1.5rem; color: var(--thui-color-text); }
.tvh-amenities li::before { content: "\2713"; position: absolute; inset-inline-start: 0; color: var(--thui-color-primary); font-weight: 800; }

/* Price Badge */
.thui-price-badge { display: inline-flex; align-items: baseline; gap: .35rem;
  background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.28); color: #fff;
  border-radius: 999px; padding: .35rem .8rem; }
.thui-price-badge small { opacity: .85; font-size: var(--thui-fs-xs); }
.thui-price-badge b { font-family: var(--thui-font-display); font-size: var(--thui-fs-xl); }

/* Breadcrumb */
.thui-breadcrumb { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; font-size: var(--thui-fs-sm); color: var(--thui-color-text-muted); margin-block: var(--thui-space-3); }
.thui-breadcrumb a { color: var(--thui-color-text-muted); text-decoration: none; }
.thui-breadcrumb a:hover { color: var(--thui-color-primary); }
.thui-breadcrumb__sep { opacity: .5; }
.thui-breadcrumb__current { color: var(--thui-color-ink); font-weight: var(--thui-fw-semibold); }

/* Inline note (shared) */
.thui-note-inline { color: var(--thui-color-text-muted); font-size: var(--thui-fs-sm); margin-block-start: .6rem; }
