/*
 * Sedunia Travel — Mobile Experience Layer
 * Pure CSS overrides, scoped to mobile/tablet breakpoints.
 * Loads after all theme styles. No desktop rules, no DB/SEO impact.
 */

/* ============================================================
   A. MOBILE NAVIGATION (applies up to 1024px, where the
      desktop menu is hidden by the theme)
   ============================================================ */
@media (max-width: 1024px) {

  /* The drawer's look & feel is owned by the existing patches in
     style.css + Customizer CSS. This layer only guarantees the
     OPEN/CLOSE mechanics work (the legacy JS toggle is unreliable —
     sedunia-mobile.js owns the toggle now). */
  body#new-design.offcanvas_active .canvas_mobile__only.offcanvas_active {
    transform: translateX(0) !important;
    -webkit-transform: translateX(0) !important;
    visibility: visible !important;
    box-shadow: 0 0 40px rgba(0, 0, 0, 0.35) !important;
  }

  /* Don't shove the whole page sideways (caused overflow + felt broken) */
  body#new-design.offcanvas_active .mobile__only__main.offcanvas_active,
  body#new-design.offcanvas_active .page_wrapper.offcanvas_active {
    transform: none !important;
    -webkit-transform: none !important;
  }

  /* Header must be fully opaque — the Customizer CSS sets
     rgba(255,255,255,.98) which lets content bleed through.
     html-prefixed selector outranks it. */
  html body#new-design .mobile__only__main,
  html body#new-design.sticky .mobile__only__main,
  html body#new-design.offcanvas_active .mobile__only__main {
    background: #ffffff !important;
  }

  /* Dark backdrop behind the open menu (injected by sedunia-mobile.js) */
  .sed-menu-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 100000;
    opacity: 0;
    pointer-events: none;
    transition: opacity 250ms ease;
  }
  body.offcanvas_active .sed-menu-backdrop {
    opacity: 1;
    pointer-events: auto;
  }
}

/* ============================================================
   B. PHONE LAYOUT (≤ 768px) — the "different design" layer
   ============================================================ */
@media (max-width: 768px) {

  /* ---------- B0. Global safety & polish ---------- */
  html, body {
    overflow-x: hidden !important;
  }
  .page_wrapper img {
    max-width: 100%;
    height: auto;
  }
  input[type="text"], input[type="email"], input[type="tel"],
  input[type="search"], textarea, select {
    font-size: 16px !important; /* prevents iOS auto-zoom */
  }
  .page_wrapper h1 { font-size: clamp(1.7rem, 7vw, 2.2rem); }
  .page_wrapper h2 { font-size: clamp(1.45rem, 6vw, 1.9rem); }
  .page_wrapper h3 { font-size: clamp(1.2rem, 5vw, 1.5rem); }

  /* Headline word-wrap fix ("G Adventur-es") */
  .page-title,
  .page_wrapper h1, .page_wrapper h2, .page_wrapper h3 {
    word-break: normal !important;
    overflow-wrap: break-word;
    hyphens: none !important;
    line-height: 1.2;
  }

  /* Collapse stacked wrapper paddings (page_wrapper + #primary + #main
     each added 16px per side = 96px lost on a 375px phone) */
  .page_wrapper,
  #primary.content-area,
  #main.site-main,
  body#new-design .page_wrapper,
  body#new-design .content-area,
  body#new-design .site-main {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* Elementor containers: kill oversized side paddings on phones */
  .page_wrapper .e-con.e-parent {
    padding-left: 0;
    padding-right: 0;
  }
  .page_wrapper .e-con-inner {
    padding-left: 16px;
    padding-right: 16px;
  }
  /* Non-Elementor content that relied on wrapper padding */
  .page_wrapper .site-main > *:not(.page-banner):not(.elementor):not(.single_banner):not(.single_content) {
    padding-left: 16px;
    padding-right: 16px;
  }

  /* Disable parallax weirdness on touch */
  .init_jarallax,
  .jarallax {
    background-attachment: scroll !important;
  }
  .jarallax-container {
    display: none !important;
  }
  .init_jarallax {
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
  }

  /* ---------- B1. HOMEPAGE HERO — full-screen immersive ---------- */
  #main__banner .e-con,
  #main__banner .e-con-inner,
  #main__banner .elementor-widget,
  #main__banner .elementor-widget-container {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  /* Break heroes/banners out of the padded page wrappers to full-bleed */
  #main__banner,
  .page_wrapper .page-banner,
  .page_wrapper .single_banner {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 0 !important;
  }
  #main__banner .header_slider,
  #main__banner .header_slider .owl-stage-outer,
  #main__banner .header_slider .owl-item,
  #main__banner .maintopbanner {
    height: calc(100vh - var(--sed-header-h, 94px)) !important;
    height: calc(100svh - var(--sed-header-h, 94px)) !important;
    min-height: 480px;
  }
  #main__banner .header_slider .owl-stage {
    height: 100% !important;
  }
  #main__banner .maintopbanner {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-size: cover !important;
    background-position: center !important;
  }
  #main__banner .maintopbanner .overlay {
    background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.35) 55%, rgba(0,0,0,0.6) 100%) !important;
    z-index: 0 !important;
  }
  #main__banner .slider_item_content {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 0 22px !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center;
    gap: 18px;
  }
  #main__banner .content_img_wrapper img {
    max-width: 92vw !important;
    max-height: 46svh;
    width: auto !important;
    height: auto !important;
    object-fit: contain;
    margin: 0 auto;
  }
  #main__banner .content_button .btn-style,
  #main__banner .content_button button {
    font-size: 16px !important;
    padding: 14px 28px !important;
    min-height: 48px;
    border-radius: 999px !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.3);
  }
  /* Hide PREVIOUS/NEXT text arrows; keep swipe + dots */
  #main__banner .header_slider .owl-nav {
    display: none !important;
  }
  #main__banner .header_slider .owl-dots {
    position: absolute;
    bottom: max(18px, env(safe-area-inset-bottom));
    left: 0;
    right: 0;
    display: flex !important;
    justify-content: center;
    gap: 6px;
    z-index: 5;
  }
  #main__banner .header_slider .owl-dots .owl-dot span {
    width: 8px;
    height: 8px;
    margin: 0 3px;
    background: rgba(255, 255, 255, 0.55);
  }
  #main__banner .header_slider .owl-dots .owl-dot.active span {
    background: #ffffff;
    width: 22px;
    border-radius: 999px;
  }

  /* ---------- B2. TOUR CARDS (home carousels + listing grids) ---------- */
  .btSingleTourBlock {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto 6px !important;
  }
  .btSingleTourBlock .btSingleTourBlockInner {
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(20, 40, 30, 0.10);
    background: #fff;
  }
  .btSingleTourBlock .btSingleTourImage img {
    width: 100% !important;
    aspect-ratio: 16 / 10;
    height: auto !important;
    object-fit: cover;
    display: block;
  }
  .btSingleTourBlock h1, .btSingleTourBlock h2, .btSingleTourBlock h3,
  .btSingleTourBlock h4, .btSingleTourBlock .tour_title, .btSingleTourBlock .TourTitle {
    font-size: 17px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
    max-height: none !important;
    height: auto !important;
  }
  /* hide orphan "Starts From" label when the tour has no price */
  .btSingleTourPrice .btTourOffertitle:only-child {
    visibility: hidden;
  }

  /* brand logo on cards: neat compact chip, top-right */
  .btSingleTourBlock .btSingleTourImage {
    position: relative;
  }
  .btSingleTourBlock .brand-logo,
  .btSingleTourBlock .tourbrandlogo {
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    left: auto !important;
    bottom: auto !important;
    transform: none !important;
    margin: 0 !important;
    max-width: 120px !important;
    width: auto !important;
  }
  .btSingleTourBlock .brand-logo .taxo-image-brand,
  .btSingleTourBlock .tourbrandlogo .taxo-image-brand {
    background: rgba(255, 255, 255, 0.94);
    border-radius: 8px;
    padding: 5px 9px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  }
  .btSingleTourBlock .brand-logo img,
  .btSingleTourBlock .tourbrandlogo img {
    max-height: 38px !important;
    max-width: 120px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain;
    display: block;
  }

  /* generic card grids (taxonomy listings) go single column */
  .btTourGrid, .tour_grid, .btRelatedTours .btTourGrid,
  [class*="tour_listing"], .tours_wrapper {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
  .cols_4, .cols_3, .cols_2 {
    width: 100% !important;
  }

  /* carousels: give items breathing room, center dots */
  .page_wrapper .owl-carousel:not(.header_slider) .owl-dots {
    margin-top: 14px;
  }
  .page_wrapper .owl-carousel:not(.header_slider) .owl-nav {
    display: none !important;
  }

  /* Load more button */
  .page_wrapper .load_more, .page_wrapper [class*="load_more"] {
    min-height: 48px;
    border-radius: 999px !important;
    padding: 12px 30px !important;
    font-size: 16px !important;
  }

  /* ---------- B3. PAGE BANNERS (destination / brand / generic) ---------- */
  .page_wrapper .page-banner {
    min-height: 300px;
    height: 38svh;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    position: relative;
    isolation: isolate;
  }
  /* readable gradient behind title */
  .page_wrapper .page-banner::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.05) 30%, rgba(0,0,0,0.55) 100%);
    z-index: -1;
  }
  .page_wrapper .page-banner .page-header {
    padding: 0 20px 26px !important;
    width: 100%;
    text-align: left;
  }
  .page_wrapper .page-banner .page-title {
    font-size: clamp(2rem, 9vw, 2.6rem) !important;
    color: #fff !important;
    margin: 6px 0 0 !important;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
  }
  .page_wrapper .page-banner .breadcrumb {
    font-size: 13px !important;
    opacity: 0.92;
  }
  .page_wrapper .page-banner .breadcrumb,
  .page_wrapper .page-banner .breadcrumb a {
    color: #fff !important;
  }
  #main.site-main {
    padding-top: 0 !important;
  }

  /* Category description + search */
  .cat_description {
    text-align: left !important;
    font-size: 15px !important;
    line-height: 1.75 !important;
    padding: 0 20px !important;
  }
  .cat_texonomy_search {
    margin-top: 20px !important;
    padding: 0 16px;
  }
  .custom_search_form input[type="text"] {
    min-height: 50px;
  }

  /* ---------- B4. BRANDS LISTING (Elementor page) ---------- */
  .brand_hover_effect {
    margin-bottom: 30px !important;
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
  }
  /* collapse fixed heights / widths inside each brand block */
  .brand_hover_effect .e-con,
  .brand_hover_effect .e-con-inner,
  .brand_hover_effect .elementor-widget,
  .brand_hover_effect .elementor-widget-container {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .brand_hover_effect .e-con {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin: 0 !important;
  }
  /* the floating logo card: make it a neat centered badge above the photo */
  .brand_hover_effect .elementor-absolute {
    position: relative !important;
    inset: auto !important;
    transform: none !important;
    margin: -40px auto 0 !important;
    z-index: 3;
    text-align: center;
  }
  .brand_hover_effect .elementor-absolute img {
    max-width: 190px !important;
    max-height: 74px;
    object-fit: contain;
    background: #fff;
    border-radius: 12px;
    padding: 10px 16px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
  }
  /* the <a> wrapper must be block-level, otherwise it shrink-wraps to
     0px before the lazy image loads and the image never intersects */
  .brand_hover_effect .elementor-widget-image:not(.elementor-absolute) a {
    display: block !important;
    width: 100% !important;
  }
  .brand_hover_effect .elementor-widget-image:not(.elementor-absolute) img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    border-radius: 14px;
  }
  .brand_hover_effect .elementor-widget-text-editor {
    padding: 18px 4px 0 !important;
    font-size: 15px;
    line-height: 1.7;
  }

  /* ---------- B5. SINGLE TOUR PAGE ---------- */
  .single_banner {
    height: 46svh !important;
    min-height: 340px !important;
    max-height: 480px;
  }
  .single_banner .banner_bg,
  .single_banner .banner_slider1,
  .single_banner .owl-stage-outer,
  .single_banner .owl-item,
  .single_banner .slide-item {
    height: 100% !important;
    width: 100% !important;
    background-size: cover !important;
    background-position: center !important;
  }
  body#new-design .single_banner {
    position: relative;
    overflow: hidden;
  }
  body#new-design .single_banner .banner_content {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    transform: none !important;
    -webkit-transform: none !important;
    width: 100% !important;
    display: flex;
    align-items: flex-end;
    height: 100% !important;
    padding: 0 20px 64px !important;
    background: linear-gradient(180deg, rgba(0,0,0,0.0) 35%, rgba(0,0,0,0.6) 100%);
  }
  body#new-design .single_banner .banner_content h1,
  body#new-design .single_banner .banner_content h2 {
    font-size: clamp(1.35rem, 6vw, 1.8rem) !important;
    line-height: 1.25 !important;
    color: #fff !important;
    text-align: left !important;
    margin: 0 !important;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
  }
  .single_banner .banner_content h1,
  .single_banner .banner_content .page-title {
    font-size: clamp(1.45rem, 6.4vw, 1.9rem) !important;
    line-height: 1.25 !important;
    color: #fff !important;
    text-align: left !important;
    margin: 0 !important;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
  }

  /* Info / price card: full-width clean block instead of offset box */
  body#new-design .single_content {
    display: flex;
    flex-direction: column;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 16px 20px !important;
    box-sizing: border-box;
  }
  body#new-design .single_content .SingleTourInfo {
    width: 100% !important;
    max-width: 100% !important;
    margin: -44px 0 12px !important;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
    padding: 6px 4px !important;
    position: relative;
    z-index: 5;
  }
  .single_content .SingleTourInfoInner {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 2px 10px;
    padding: 14px 14px 6px !important;
    width: 100% !important;
  }
  .single_content .TourIcon {
    display: flex !important;
    align-items: center;
    gap: 10px;
    padding: 8px 4px !important;
    margin: 0 !important;
    width: auto !important;
  }
  .single_content .TourIcon.TourPrice {
    grid-column: 1 / -1;
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
    padding-bottom: 12px !important;
  }
  .single_content .TourIcon .btIcon {
    font-size: 20px !important;
    flex: 0 0 34px;
  }
  .single_content .TourTitle {
    font-size: 12px !important;
    opacity: 0.9;
    letter-spacing: 0.4px;
  }
  .single_content .TourDesc {
    font-size: 17px !important;
    line-height: 1.3 !important;
  }
  .single_content .TourDesc.TourDescNew {
    font-size: 24px !important;
  }
  .single_content .btTourBook {
    grid-column: 1 / -1;
    padding: 8px 14px 16px !important;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .single_content .btTourBook a {
    width: 100% !important;
    margin: 0 !important;
  }
  .single_content .btTourBook .book_tour,
  .single_content .btTourBook a > span,
  .single_content .book_tour {
    display: flex !important;
    justify-content: center;
    min-height: 48px;
    align-items: center;
    border-radius: 10px !important;
    font-size: 16px !important;
  }

  /* Tabs: horizontal swipeable pill bar */
  .btTourTabs .bt_bb_tabs_header {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 8px;
    padding: 6px 16px 10px !important;
    margin: 0 !important;
    scroll-padding-left: 16px;
  }
  .btTourTabs .bt_bb_tabs_header::-webkit-scrollbar {
    display: none;
  }
  .btTourTabs .bt_bb_tabs_header li {
    flex: 0 0 auto !important;
    width: auto !important;
    margin: 0 !important;
    padding: 10px 18px !important;
    border-radius: 999px !important;
    background: #f1f4f2;
    border: none !important;
    white-space: nowrap;
  }
  .btTourTabs .bt_bb_tabs_header li span {
    font-size: 14.5px !important;
  }
  .btTourTabs .bt_bb_tabs_header li.on {
    background: linear-gradient(90deg, #1976bc, #67ad45);
  }
  .btTourTabs .bt_bb_tabs_header li.on span {
    color: #fff !important;
  }

  /* Tab content breathing room */
  .btTourTabs .bt_bb_tabs_tabs {
    padding: 6px 16px !important;
  }
  .btTourTabs .bt_bb_tabs_tabs table {
    display: block;
    overflow-x: auto;
    width: 100% !important;
  }

  /* Itinerary steps & lists */
  .single_content ul, .single_content ol {
    padding-left: 20px;
  }

  /* Sticky bottom CTA on tour pages (injected by sedunia-mobile.js) */
  .sed-sticky-cta {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99980;
    display: flex;
    gap: 10px;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(8px);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.12);
  }
  .sed-sticky-cta .sed-cta-price {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 96px;
  }
  .sed-sticky-cta .sed-cta-price small {
    font-size: 11px;
    color: #667;
    line-height: 1.1;
  }
  .sed-sticky-cta .sed-cta-price strong {
    font-size: 15px;
    color: #0c6b3d;
    line-height: 1.2;
  }
  .sed-sticky-cta .sed-cta-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(90deg, #1976bc, #67ad45);
    color: #fff !important;
    font-weight: 700;
    font-size: 16px;
    border-radius: 12px;
    min-height: 48px;
    text-decoration: none !important;
  }
  body.sed-has-sticky-cta .page_wrapper {
    padding-bottom: 76px;
  }
  /* keep WhatsApp bubble above the CTA bar on tour pages */
  body.sed-has-sticky-cta #qlwapp,
  body.sed-has-sticky-cta .qlwapp,
  body.sed-has-sticky-cta .joinchat,
  body.sed-has-sticky-cta [class*="whatsapp"],
  body.sed-has-sticky-cta .uftw-widget {
    bottom: 84px !important;
  }

  /* Injected hero dots + autoplay (owl ships dots:false on this widget) */
  .sed-hero-dots {
    position: absolute;
    bottom: max(16px, env(safe-area-inset-bottom));
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    gap: 8px;
    z-index: 6;
    pointer-events: auto;
  }
  .sed-hero-dots button {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    border: 0;
    padding: 0;
    background: rgba(255, 255, 255, 0.55);
    transition: all 250ms ease;
  }
  .sed-hero-dots button.on {
    width: 24px;
    background: #ffffff;
  }

  /* Tour promo headline (fixed 45.5px in minified css) */
  .single_content .headline .headline_content {
    font-size: clamp(1.5rem, 6.5vw, 2rem) !important;
    line-height: 1.25 !important;
  }
  .single_content .btTourIncludes h3 {
    font-size: 20px !important;
    line-height: 1.4 !important;
  }

  /* Hotels tab: fixed 390px images + absolute overlay panels */
  .single_content .hwrap img,
  .single_content .fixed_height_img {
    height: auto !important;
    min-height: 0 !important;
    max-height: 240px !important;
    object-fit: cover;
    width: 100% !important;
  }
  .single_content .hotel_cols {
    width: 100% !important;
  }
  .single_content .servicepanel {
    position: static !important;
    height: auto !important;
  }

  /* A&K brand page (fully inline-styled, needs !important) */
  .ak-container {
    padding: 0 16px !important;
  }
  .ak-title {
    font-size: 24px !important;
    letter-spacing: 1px !important;
  }
  .ak-tile {
    height: 300px !important;
  }
  .ak-carousel-images {
    min-height: 0 !important;
  }
  .ak-carousel-images img {
    max-height: 280px;
    object-fit: cover;
  }
  .ak-logo-badge-container {
    flex: 0 0 auto !important;
    max-width: 160px;
    margin: 0 auto;
  }
  .ak-journey-finder-section,
  .ak-why-section {
    padding: 40px 0 30px !important;
    margin: 20px 0 !important;
  }

  /* Rovos Rail temp template (only has a 900px breakpoint) */
  .rovos-temp-container .rvr-temp-hero {
    min-height: 62svh !important;
    padding: 40px 18px !important;
  }
  .rovos-temp-container section,
  .rovos-temp-container [class*="rvr-temp-"][class*="section"] {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
  .rvr-temp-journeys-grid,
  .rvr-temp-heritage-grid,
  .rvr-temp-suites-grid {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  /* Footer partner/cert logos: stop square-cropping */
  .footer_cols img,
  footer .footer_cols img {
    height: auto !important;
    max-height: 80px;
    width: auto !important;
    object-fit: contain;
  }

  /* Page-title line-height collision fix (font.css sets 35px/31px) */
  .page_wrapper .page-banner .page-header .page-title {
    line-height: 1.18 !important;
  }

  /* ---------- B6. FLOATING WIDGETS ---------- */
  /* AI banner: compact pill, keep out of the way */
  .uftw-widget, [class*="floating-widget"], [id*="floating_widget"] {
    max-width: 78vw !important;
  }

  /* ---------- B7. FOOTER ---------- */
  .page_wrapper ~ footer .e-con-inner,
  footer .e-con-inner {
    padding-left: 18px;
    padding-right: 18px;
  }
  footer .elementor-widget {
    text-align: left;
  }
  footer a, footer p, footer li {
    font-size: 14.5px !important;
    line-height: 1.9 !important;
  }

  /* ---------- B8. Misc known offenders ---------- */
  /* Search bar on home */
  .custom_search_form {
    padding: 0 !important;
  }
  /* newsletter grid */
  .construction-form-grid {
    width: 100% !important;
  }
  /* generic: sections shouldn't have enormous vertical padding on phones */
  .page_wrapper section.elementor-section,
  .page_wrapper .e-con.e-parent {
    --padding-top: min(var(--padding-top, 40px), 48px);
    --padding-bottom: min(var(--padding-bottom, 40px), 48px);
  }
}

/* ============================================================
   C. SMALL PHONES (≤ 430px) — tightening
   ============================================================ */
@media (max-width: 430px) {
  .mobile__only__main .logo img {
    max-width: 148px !important;
  }
  #main__banner .content_img_wrapper img {
    max-width: 94vw !important;
  }
  .single_content .SingleTourInfoInner {
    grid-template-columns: 1fr 1fr;
  }
  .page_wrapper .e-con-inner {
    padding-left: 14px;
    padding-right: 14px;
  }
}
