/* Responsive improvements layered over the original design. */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 76px; }
body { max-width: 100%; overflow-x: hidden; }
img, svg, video, iframe { max-width: 100%; }
img { height: auto; }
input, select, textarea, button { max-width: 100%; }
input, select, textarea, button { font: inherit; }
:focus-visible { outline: 3px solid #1769aa; outline-offset: 2px; }

/* Keep the existing colours, layout and typography while avoiding overflow. */
.container { width: 100%; }
header .row, .mobileheader .row { row-gap: 10px; }
.sliderform { width: 100%; max-width: 390px; }
.servicebox { align-items: stretch; }
.servicebox .serviceslist { min-width: 0; }
.review-section, .review-header, .review-item { min-width: 0; }
.review-item .platform { flex-shrink: 0; }

@media (max-width: 767px) {
  html { scroll-padding-top: 58px; }
  .container { padding-left: 16px; padding-right: 16px; }
  header .row { justify-content: center; text-align: center; }
  header .col-md-2, header .col-sm-2,
  header .col-md-7, header .col-sm-7,
  header .col-md-3, header .col-sm-3 { width: 100%; }
  .mobileheader { padding: 10px 12px; }
  .mobileheader .row { margin-left: 0; margin-right: 0; }
  .mobileheader p { line-height: 1.55; }
  .menu { max-width: 100%; }
  .menu ul.topmenu { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .menu ul.topmenu li a { white-space: nowrap; }
  .sliderform { margin: 16px auto; padding: 16px; }
  .slider_ctn h2 { line-height: 1.2; overflow-wrap: anywhere; }
  .servicebox { gap: 12px; }
  .servicebox .serviceslist { flex: 1 1 calc(50% - 12px); width: auto; }
  .careprovider ul li { min-width: 0; }
  .review-left, .review-right { flex: 1 1 100%; padding: 16px; border-right: 0; }
  .review-item { gap: 8px; }
  .review-item .platform { width: auto; min-width: 110px; }
  .progress-bar { margin: 0 5px; }
  .details_form { padding: 16px; }
  .details_form .row > [class*="col-"] { width: 100%; }
  .itineraryslide img { height: auto; max-height: 400px; object-fit: cover; }
  .packagemenu { max-width: 100vw; }
}

@media (max-width: 420px) {
  .servicebox .serviceslist { flex-basis: 100%; }
  .review-info h3 { font-size: 16px; }
  .review-rating { text-align: left; }
  .review-item .platform { min-width: 95px; font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* SEO heading: retain the original hero typography while using a semantic H1. */
.slider_ctn h1.hero-title { font-size: 2.3rem; color: #fff; font-weight: 700; line-height: 1.2; text-shadow: 1px 7px 6px rgba(0,0,0,0.4); margin: 0 0 1rem; }
@media (max-width: 767px) { .slider_ctn h1.hero-title { font-size: clamp(1.75rem, 6vw, 2.3rem); overflow-wrap: anywhere; } }
