/* Shared responsive contract for the Travlla header and system pages. */
body.layout-43 #content, body.layout-43 [class*="col-"], body.layout-43 .form-group { min-width:0; }
body.layout-43 #content :is(img,video,iframe) { max-width:100%; }
body.layout-43 #content :is(input,select,textarea) { max-width:100%; }
body.layout-43 .table-responsive { max-width:100%; overflow-x:auto; }
body.layout-43 .pagination { flex-wrap:wrap; }
body.layout-43 .layout43-menu-toggle { display:none; }

/* Bootstrap's old -15px row gutters must have matching container padding. */
body.layout-43:not(.common-home) #wrapper > .container { padding-inline:15px; }
body.layout-43 .product-listing > .row { margin-inline:0; }
body.layout-43 .product-listing #content { padding-inline:0; }
body.layout-43 .products-category > .row,
body.layout-43 .product-filter > .row { margin-inline:0; }
body.layout-43 .product-filter-top > .row { display:flex; flex-wrap:wrap; gap:12px 20px; align-items:center; }
body.layout-43 .product-filter-top :is(.view-mode,.short-by-show) { width:auto; max-width:100%; padding:0; margin:0; flex:1 1 auto; }
body.layout-43 .product-filter-top .list-view { display:flex; flex-wrap:wrap; align-items:center; gap:3px; margin:0; }
body.layout-43 .product-filter-top .short-by-show { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px 14px; }
body.layout-43 .product-filter-top .form-group { display:flex; align-items:center; gap:6px; margin:0; float:none; }
body.layout-43 .product-filter-top label { margin:0; white-space:nowrap; }
body.layout-43 .product-filter-top select { width:auto; min-width:64px; min-height:40px; }
body.layout-43 .product-filter-top .short-by select { width:150px; }
body.layout-43 .product-filter-top .product-compare { display:flex!important; }
body.layout-43 .product-filter-top .btn { min-height:36px; }
/* Honour the category view buttons at tablet widths.  The Home 43 carousel
   settings are deliberately untouched. */
@media (min-width:576px) and (max-width:991px) {
  body.layout-43 .product-listing .list-view .btn-view.hidden-sm,
  body.layout-43 .product-listing .list-view .btn-view.hidden-xs { display:block!important; }
  body.layout-43 .product-listing .products-list > .layout43-catalog-card.product-grid-2 { flex-basis:calc(50% - 24px)!important; max-width:calc(50% - 24px)!important; }
  body.layout-43 .product-listing .products-list > .layout43-catalog-card.product-grid-3 { flex-basis:calc(33.333333% - 24px)!important; max-width:calc(33.333333% - 24px)!important; }
  body.layout-43 .product-listing .products-list > .layout43-catalog-card.product-grid-4 { flex-basis:calc(25% - 24px)!important; max-width:calc(25% - 24px)!important; }
  body.layout-43 .product-listing .products-list > .layout43-catalog-card.product-grid-5 { flex-basis:calc(20% - 24px)!important; max-width:calc(20% - 24px)!important; }
}

/* These rules belong only to the category/search result list.  Homepage
   carousels use the same product-card markup but their visible column count
   is configured in the Home 43 modules, so they must keep their own sizing. */
body.layout-43 .product-listing .products-list { margin-inline:-12px!important; align-items:stretch; }
body.layout-43 .product-listing .layout43-catalog-card { container-type:inline-size; }
body.layout-43 .product-listing .layout43-catalog-card__media { height:auto; min-height:0; aspect-ratio:4 / 3; flex-shrink:0; }
body.layout-43 .product-listing .layout43-catalog-card__media img { margin:0!important; padding:0!important; border:0; }
body.layout-43 .product-listing .layout43-catalog-card__destination { margin-top:0; min-height:0; padding:12px 18px; background:#397b7e; }
body.layout-43 .product-listing .layout43-catalog-card__body,
body.layout-43 .product-listing .layout43-store-card .layout43-catalog-card__body { height:auto; min-height:0; padding:20px; gap:20px; }
body.layout-43 .product-listing .layout43-catalog-card__summary { min-height:0; flex-wrap:wrap; }
body.layout-43 .product-listing .layout43-catalog-card__summary h4 { min-width:110px; overflow-wrap:anywhere; }
body.layout-43 .product-listing .layout43-catalog-card__footer { flex-wrap:wrap; align-items:center; gap:10px; }
body.layout-43 .product-listing .layout43-catalog-card__action { white-space:nowrap; padding-inline:20px; }
body.layout-43 .product-listing .layout43-catalog-card__duration { top:16px; max-width:calc(100% - 48px); padding:10px 12px; font-size:13px; }
body.layout-43 .product-listing .products-list > .layout43-catalog-card:is(.product-list,.product-table) { flex-basis:calc(100% - 24px); max-width:calc(100% - 24px); }
@container (max-width: 260px) {
  body.layout-43 .product-listing .layout43-catalog-card__summary { flex-direction:column; gap:12px; }
  body.layout-43 .product-listing .layout43-catalog-card__body { padding:16px; }
  body.layout-43 .product-listing .layout43-catalog-card__price strong { font-size:23px; }
}
@media(min-width:768px) {
  body.layout-43 .product-listing .products-list > .layout43-catalog-card:is(.product-list,.product-table) { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); }
  body.layout-43 .product-listing .layout43-catalog-card:is(.product-list,.product-table) .layout43-catalog-card__media { grid-column:1; grid-row:1 / 3; height:100%; min-height:240px; aspect-ratio:auto; }
  body.layout-43 .product-listing .layout43-catalog-card:is(.product-list,.product-table) .layout43-catalog-card__destination { grid-column:2; }
  body.layout-43 .product-listing .layout43-catalog-card:is(.product-list,.product-table) .layout43-catalog-card__body { grid-column:2; }
}
/* The testimonial component was designed as a three-column desktop scene.
   Reflow its media, text and thumbnail rail before its fixed desktop offsets
   can push controls outside a phone viewport. */
@media(max-width:991px) {
  body.layout-43 .trv-testimonial-st2-wrap { padding:56px 0!important; }
  body.layout-43 .trv-testimonial-st2 { width:auto!important; max-width:none!important; margin:0 15px!important; }
  body.layout-43 .trv-testimonial-st2 .testimonial-content-sld { height:auto!important; min-height:0!important; overflow:hidden!important; }
  body.layout-43 .trv-testimonial-st2 .swiper-wrapper { align-items:stretch!important; }
  body.layout-43 .trv-testimonial-st2 .swiper-slide { height:auto!important; }
  body.layout-43 .trv-testimonial-st2 .trv-testimo-bx2 { display:flex!important; flex-direction:column!important; gap:22px; width:100%!important; height:auto!important; min-height:0!important; padding:0!important; }
  body.layout-43 .trv-testimonial-st2 .trv-testimo-bx2 .media { width:100%!important; margin:0!important; }
  body.layout-43 .trv-testimonial-st2 .trv-testimo-bx2 .media img { display:block; width:100%!important; height:auto!important; max-height:320px; object-fit:cover; border-radius:22px; }
  body.layout-43 .trv-testimonial-st2 .trv-testimo-bx2 .info { width:100%!important; margin:0!important; padding:0!important; }
  body.layout-43 .trv-testimonial-st2 .trv-testimo-head { display:flex!important; align-items:flex-start; gap:12px; }
  body.layout-43 .trv-testimonial-st2 .trv-testimo-head .left-part { min-width:0; }
  body.layout-43 .trv-testimonial-st2 .trv-testimo-head .right-part { margin-left:auto; flex:0 0 auto; }
  body.layout-43 .trv-testimonial-st2 .trv-testimo-head .right-part img { width:44px!important; height:44px!important; }
  body.layout-43 .trv-testimonial-st2 .trv-testimo-bx2 p { max-width:none!important; overflow-wrap:anywhere; }
  body.layout-43 .trv-testimonial-st2 .testimonial-content-sld-control { position:static!important; display:flex!important; gap:10px; width:auto!important; height:auto!important; margin:22px 0 0!important; }
  body.layout-43 .trv-testimonial-st2 .testimonial-thum-sld { display:none!important; }
  body.layout-43 .trv-testimonial-st2 .rating { position:static!important; margin-top:14px!important; }
}
@media(min-width:992px) and (max-width:1199px) {
  html body:is(.layout-43,.header-43) #header.travlla43-header .header-middle > .container-full { padding-inline:22px!important; }
  html body:is(.layout-43,.header-43) #header.travlla43-header .header-middle > .container-full > .row { display:grid!important; grid-template-columns:130px minmax(0,1fr) auto!important; gap:8px!important; }
  html body:is(.layout-43,.header-43) #header.travlla43-header :is(.navbar-logo,.main-menu,.middle2) { width:auto!important; max-width:none!important; min-width:0!important; padding:0!important; }
  html body:is(.layout-43,.header-43) #header.travlla43-header .main-menu ul.megamenu { justify-content:space-around!important; gap:0!important; }
  html body:is(.layout-43,.header-43) #header.travlla43-header .main-menu ul.megamenu > li > a { padding:10px 5px!important; font-size:14px!important; }
  html body:is(.layout-43,.header-43) #header.travlla43-header .travlla43-icons { gap:2px!important; }
}
@media(max-width:1199px) {
  html body:is(.layout-43,.header-43) #header.travlla43-header { width:100%!important; left:0!important; right:0!important; padding:0!important; }
  html body.layout-43:not(.common-home) #header.travlla43-header { width:100%!important; left:0!important; right:0!important; }
  html body:is(.layout-43,.header-43) #header.travlla43-header .header-middle > .container-full { box-sizing:border-box!important; width:100%!important; margin:0!important; padding:0 15px!important; }
  html body:is(.layout-43,.header-43) #header.travlla43-header .header-middle > .container-full > .row { display:flex!important; flex-wrap:wrap!important; min-height:78px!important; padding:8px 0!important; margin:0!important; gap:8px; }
  html body:is(.layout-43,.header-43) #header.travlla43-header .navbar-logo { position:static!important; transform:none!important; flex:1 1 auto!important; width:auto!important; max-width:none!important; padding:0!important; order:0; }
  html body:is(.layout-43,.header-43) #header.travlla43-header .navbar-logo::before { display:none!important; }
  html body:is(.layout-43,.header-43) #header.travlla43-header .navbar-logo img { width:120px!important; max-width:100%!important; height:auto!important; }
  html body:is(.layout-43,.header-43) #header.travlla43-header .middle2 { position:static!important; transform:none!important; width:auto!important; flex:0 1 auto!important; padding:0!important; order:1; }
  html body:is(.layout-43,.header-43) #header.travlla43-header .travlla43-icons { flex-wrap:wrap; gap:4px!important; margin:0!important; }
  html body:is(.layout-43,.header-43) #header.travlla43-header .travlla43-icons > li { margin:0!important; }
  html body:is(.layout-43,.header-43) #header.travlla43-header .layout43-menu-toggle { display:inline-flex; align-items:center; justify-content:center; order:2; flex:0 0 44px; width:44px; height:44px; padding:0; border:1px solid currentColor; border-radius:8px; background:transparent; color:inherit; font-size:25px; }
  html body:is(.layout-43,.header-43) #header.travlla43-header #layout43-navigation { display:none!important; position:static!important; transform:none!important; order:3; flex:0 0 100%!important; width:100%!important; padding:0!important; max-height:65vh; overflow-y:auto; }
  html body:is(.layout-43,.header-43) #header.travlla43-header.navigation-open #layout43-navigation { display:block!important; }
  html body:is(.layout-43,.header-43) #layout43-navigation :is(.navbar-header,#remove-megamenu,.close-menu) { display:none!important; }
  html body:is(.layout-43,.header-43) #layout43-navigation :is(.megamenu-wrapper,.megamenu-pattern,.container,.container-megamenu,.travlla43-menu-block,nav) { position:static!important; width:100%!important; max-width:100%!important; margin:0!important; padding:0!important; transform:none!important; visibility:visible!important; opacity:1!important; background:transparent!important; box-shadow:none!important; }
  html body:is(.layout-43,.header-43) #layout43-navigation :is(ul.megamenu,.travlla43-menu) { display:flex!important; flex-direction:column; align-items:stretch!important; width:100%!important; margin:0!important; padding:0!important; gap:0!important; }
  html body:is(.layout-43,.header-43) #layout43-navigation ul.megamenu > li { width:100%!important; float:none!important; margin:0!important; }
  html body:is(.layout-43,.header-43) #layout43-navigation a { display:block!important; white-space:normal!important; min-height:44px; padding:12px!important; color:inherit!important; }
  html body.common-home:is(.layout-43,.header-43) #layout43-navigation a,
  html body.common-home:is(.layout-43,.header-43) #layout43-navigation a :is(strong,span,i) { color:#fff!important; }
  html body:is(.layout-43,.header-43) #layout43-navigation .sub-menu { position:static!important; display:block!important; width:100%!important; max-width:100%!important; opacity:1!important; visibility:visible!important; transform:none!important; }
  body.layout-43 .product-filter-top .short-by-show { justify-content:flex-start; flex-basis:100%; }
}
@media(max-width:575px) {
  html body:is(.layout-43,.header-43) #header.travlla43-header .middle2 { order:3; flex-basis:100%!important; justify-content:flex-end; }
  html body:is(.layout-43,.header-43) #header.travlla43-header #layout43-navigation { order:4; }
  body.layout-43:not(.common-home) #content .row { margin-inline:0; }
  body.layout-43 .product-filter-top .short-by { flex:1 1 100%; }
  body.layout-43 .product-filter-top .short-by select { flex:1; width:0; }
  body.layout-43 .product-filter-top .view-mode { flex-basis:100%; }
  body.layout-43 #content .buttons { display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; }
}
@media(max-width:767px) {
  body.layout-43.common-home .trv-banner-1-text-large { left:0!important; margin-inline:0!important; max-width:100%; font-size:clamp(40px,16vw,100px); }
  body.layout-43.common-home .trv-year-media { width:100%!important; max-width:260px; margin-inline:auto!important; left:0!important; transform:none!important; }
}

/* Home 43 keeps the administrator-selected Swiper column count.  Between
   480px and 767px some modules intentionally render two cards; reflow only
   the contents of those narrow cards so price, duration and reviews remain
   readable without changing slidesPerView. */
@media (min-width:480px) and (max-width:767px) {
  body.layout-43 .home43-tour-module .trv-popular-tour-st1 { margin-inline:8px!important; }
  body.layout-43 .home43-tour-module .trv-content { min-height:0!important; padding:18px 16px!important; }
  body.layout-43 .home43-tour-module .trv-content-head-section { display:block!important; margin-bottom:16px!important; }
  body.layout-43 .home43-tour-module .trv-content-head-section .trv-tour-price { display:flex!important; flex-wrap:wrap!important; align-items:baseline!important; column-gap:7px; row-gap:2px; width:100%!important; }
  body.layout-43 .home43-tour-module .trv-tour-price .price { flex:0 0 auto; white-space:nowrap; font-size:29px!important; line-height:1!important; }
  body.layout-43 .home43-tour-module .trv-tour-price .price-old { flex:0 0 auto; width:auto!important; height:auto!important; white-space:nowrap; }
  body.layout-43 .home43-tour-module .trv-tour-price .price-duration { flex:0 0 100%; white-space:nowrap; }
  body.layout-43 .home43-tour-module .trv-tour-info { width:100%!important; margin-top:14px!important; }
  /* Round 24: the desktop card keeps "Book Now" and the review count on the SAME
     line (measured at 1440px: both sit inside one 52px `.trv-content-bottom-section`
     row, space-between).  This 480-767px block used to stack them, so a phone
     showed the button on its own line with "(0 Reviews)" underneath.  Restore the
     desktop row and let the rating shrink-wrap instead of claiming full width. */
  body.layout-43 .home43-tour-module .trv-content-bottom-section { display:flex!important; flex-wrap:nowrap!important; flex-direction:row!important; align-items:center!important; justify-content:space-between!important; gap:12px; }
  body.layout-43 .home43-tour-module .trv-tour-rating { display:flex!important; flex-direction:column!important; align-items:flex-start!important; gap:4px; width:auto!important; margin:0!important; }
  body.layout-43 .home43-tour-module .trv-tour-review-count,
  body.layout-43 .home43-tour-module .trv-review-rating { white-space:nowrap; }
}
