/* Phase G: low-risk performance, accessibility, and responsive safeguards. */
:root {
  --tv-focus: #0b63ce;
}

@media (max-width: 768px) {
  .city-search,
  .search-1-parent,
  .places-to-go,
  .trip-page .Rating,
  .trip-page textarea,
  .trip-page .book-now-btn,
  .trip-page .frame-wrapper2,
  .containe {
    box-sizing: border-box;
    max-width: 100%;
  }

  .city-search,
  .trip-page .Rating,
  .trip-page .frame-wrapper2,
  .containe {
    overflow-x: hidden;
  }

  .containe {
    width: 100%;
    left: 0;
    margin-right: 0;
    margin-left: 0;
  }
}

html {
  overflow-x: hidden;
}

body {
  min-width: 0;
  overflow-x: clip;
}

main[role="main"] {
  display: block;
  min-width: 0;
}

img {
  max-width: 100%;
  height: auto;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--tv-focus);
  outline-offset: 3px;
}

.stock-photo-225618327-icon {
  aspect-ratio: 1920 / 860;
  object-fit: cover;
}

.thumbnail > img,
.mx-trip-image,
.city-city-cart > img,
.category-products-cart > img,
.image-placeholder-icon,
.image-placeholder-icon4,
.img-news {
  object-fit: cover;
}

.thumbnail > img,
.mx-trip-image {
  aspect-ratio: 4 / 3;
}

.city-city-cart > img,
.category-products-cart > img {
  aspect-ratio: 2 / 1;
}

.reviews-empty,
.tv-empty-state {
  padding: 1.5rem;
  border: 1px solid #d9e0e8;
  border-radius: 12px;
  background: #f8fafc;
  text-align: center;
}

.reviews-empty-stars {
  color: #697586;
  letter-spacing: .15em;
}

.tv-submit-busy {
  cursor: wait !important;
  opacity: .7;
  pointer-events: none;
}

@media (max-width: 414px) {
  input,
  select,
  textarea,
  button {
    max-width: 100%;
  }

  .region-book {
    gap: .75rem;
  }

  .quick-and-easy-travelvego-parent {
    box-sizing: border-box;
    width: calc(100vw - 32px);
    max-width: 100%;
  }

  .quick-and-easy,
  .pick-an-item,
  .city-city h2,
  .mx-trips-heading,
  .heading h2 {
    max-width: 100%;
    overflow-wrap: anywhere;
    text-align: center;
  }

  .quick-and-easy {
    font-size: clamp(1.45rem, 8vw, 1.9rem);
  }

  .frame-parent2,
  .frame-parent3,
  .section-title-parent,
  .city-city {
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
  }
}
