/* ==========================================================================
   THUI shared layout patterns — composed by every vertical (Transfer, Hotel, ...).
   Extracted so verticals are compositions of ONE component library, not lookalikes.
   ========================================================================== */

/* Hero: always legible on the brand gradient, with OR without a photo. */
.tvh-hero { position: relative; margin-block-end: var(--thui-space-6); min-block-size: 340px;
  display: flex; align-items: flex-end; color: #fff; border-radius: var(--thui-radius-lg); overflow: clip;
  background: linear-gradient(135deg, #0f766e 0%, #115e59 45%, #12263a 100%); }
.tvh-hero .thui-hero__bg { position: absolute; inset: 0; }
.tvh-hero .thui-hero__bg img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.tvh-hero .thui-hero__scrim { position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(15,23,42,.82) 0%, rgba(15,23,42,.5) 55%, rgba(15,23,42,.18) 100%); }
.tvh-hero .thui-hero__body { position: relative; z-index: 1; padding: var(--thui-space-7); max-inline-size: 760px; }
.tvh-hero .thui-hero__eyebrow { color: #ffd66b; font-weight: 700; letter-spacing: .04em; }
.tvh-hero .thui-hero__title { color: #fff; font-size: clamp(1.6rem, 3.4vw, 2.6rem); line-height: 1.12; margin-block: .4rem .6rem; }
.tvh-hero .thui-hero__price { color: rgba(255,255,255,.92); margin-block: .8rem 1rem; }
.tvh-hero .thui-hero__price b { color: #fff; font-family: var(--thui-font-display); font-size: var(--thui-fs-2xl); }
.tvh-hero .thui-badge--primary { background: rgba(255,255,255,.16); color: #fff; border: 1px solid rgba(255,255,255,.28); }

/* Trust row */
.tvh-trust { display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--thui-space-3); }
.tvh-trust__item { display: flex; align-items: center; gap: .5rem; background: var(--thui-color-surface);
  border: 1px solid var(--thui-color-border); border-radius: var(--thui-radius-md); padding: .7rem .8rem; font-size: var(--thui-fs-sm); }
.tvh-trust__item b { color: var(--thui-color-ink); font-weight: var(--thui-fw-semibold); }
@media (max-width: 900px) { .tvh-trust { grid-template-columns: repeat(2, 1fr); } }

/* Map */
.tvh-map { border-radius: var(--thui-radius-lg); overflow: clip; border: 1px solid var(--thui-color-border); aspect-ratio: 16/7; }
.tvh-map iframe { inline-size: 100%; block-size: 100%; border: 0; }

/* FAQ */
.tvh-faq__item { border-bottom: 1px solid var(--thui-color-border); }
.tvh-faq__item summary { cursor: pointer; padding: 1rem 0; font-weight: var(--thui-fw-semibold); color: var(--thui-color-ink); list-style: none; display: flex; justify-content: space-between; }
.tvh-faq__item summary::after { content: "+"; color: var(--thui-color-accent); font-size: 1.3rem; }
.tvh-faq__item[open] summary::after { content: "\2013"; }
.tvh-faq__item > div { padding-block-end: 1rem; color: var(--thui-color-text-muted); }
