/* Abyssinia Journeys — smoothness/performance layer v6 */
html{scrollbar-gutter:stable;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a,button,[role="button"],input,select,textarea{touch-action:manipulation}
img{height:auto}

/* Navigation is fully native: no progress bar, no root fade, no click interception. */

/* Sticky navigation stays compositor-friendly. */
.site-nav,.site-top{backface-visibility:hidden;-webkit-backface-visibility:hidden}
/* Keep the header compositor-friendly without killing the Harar promo motion.
   The previous blanket animation:none rule disabled every animation inside .site-top
   whenever this full-site stylesheet was present. */
html body .site-top .promo-banner::after,
html body .site-top .promo-badge{animation:none!important;will-change:auto!important}
html body .site-nav,html body .site-top,html body .site-nav .nav-dropdown-menu{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}

/* Mobile drawers previously animated max-height, forcing layout on every animation frame.
   Open/close instantly in geometry and use only a tiny opacity transition. */
@media (max-width:1080px){
  .site-nav{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  html body .site-nav .navlinks,
  html body .site-nav.aj-nav-compact .navlinks,
  html body .site-nav .navlinks.aj-separate-menus,
  html body .site-nav.aj-nav-compact .navlinks.aj-separate-menus{
    transition:opacity .11s ease-out,visibility 0s linear .11s!important;
  }
  html body .site-nav .navlinks.open,
  html body .site-nav.aj-nav-compact .navlinks.open,
  html body .site-nav .navlinks.aj-separate-menus.open,
  html body .site-nav.aj-nav-compact .navlinks.aj-separate-menus.open{
    transition:opacity .11s ease-out,visibility 0s!important;
  }
  html body .site-nav .navlinks .nav-dropdown-menu,
  html body .site-nav.aj-nav-compact .navlinks .nav-dropdown-menu,
  html body .site-nav .navlinks .nav-dropdown:hover>.nav-dropdown-menu,
  html body .site-nav .navlinks .nav-dropdown:focus-within>.nav-dropdown-menu{
    transition:none!important;
  }
}

/* Let the browser skip rendering long off-screen sections. */
@supports (content-visibility:auto){
  .section{content-visibility:auto;contain-intrinsic-size:auto 820px}
  footer.site-footer{content-visibility:auto;contain-intrinsic-size:auto 520px}
}

/* Avoid expensive hover transforms on touch devices. */
@media (hover:none){
  .trip-card:hover,.category-card:hover,.btn:hover,.service-card:hover{transform:none!important}
}

/* Keep anchor navigation usable below the sticky header. */
html{scroll-padding-top:112px}
.home-section-bar{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:rgba(248,245,239,.985)!important}

@media (max-width:820px){
  html{scroll-padding-top:84px}
  html body .site-nav,
  html body .site-nav.scrolled,
  html body.top-strip-collapsed .site-nav,
  html body.top-strip-collapsed .site-nav.scrolled,
  .hero-panel,.hero-kicker,.reisearten-carousel-btn,.reisearten-carousel-dots,
  .service-card,.price-overview-card,.langmenu,.currmenu{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
}

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

/* Harar promo motion exception — required when the complete site bundle is present. */
html body .site-top .aj-harar-promo::before{
  animation:ajHararShine 7.5s ease-in-out infinite!important;
  will-change:transform,opacity!important;
}
html body .site-top .aj-harar-badge{
  animation:ajHararBadgeGlow 3.4s ease-in-out infinite!important;
  will-change:transform,box-shadow!important;
}
html body .site-top .aj-harar-scene{
  animation:ajHararSceneDrift 11s ease-in-out infinite alternate!important;
  will-change:transform!important;
}
html body .site-top .aj-harar-route{
  animation:ajHararLinePulse 4.6s ease-in-out infinite!important;
  will-change:transform,opacity!important;
}
html body .site-top .aj-harar-moving-plane{
  animation:ajHararPlaneMove 7s ease-in-out infinite!important;
  will-change:transform,opacity!important;
}

/* v4 — isolate repaints inside media-heavy cards without changing layout. */
.trip-media,.popular-trip-media,.reiseart-card-media,.hero-art-frame,
.gallery-item,.trip-gallery-item,.aj-trip-gallery-item,.overview-image{
  contain:paint;
}
.trip-card,.popular-trip-card,.reiseart-card,.category-card,.service-card,.tip-card{
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}

/* Keep horizontal rails on the compositor and prevent page overscroll from
   fighting a deliberate horizontal swipe. */
.popular-trips-viewport,.reisearten-card-viewport,.reisearten-carousel-viewport{
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
}

/* On mobile/tablet, geometry changes in drawers are instant; opacity supplies
   the visual transition. This avoids relayout on every max-height frame. */
@media (max-width:1080px){
  html body .site-nav .navlinks,
  html body .site-nav.aj-nav-compact .navlinks,
  html body .site-nav .navlinks.aj-separate-menus,
  html body .site-nav.aj-nav-compact .navlinks.aj-separate-menus{
    transition:opacity .12s ease-out,visibility 0s linear .12s!important;
  }
  html body .site-nav .navlinks.open,
  html body .site-nav.aj-nav-compact .navlinks.open,
  html body .site-nav .navlinks.aj-separate-menus.open,
  html body .site-nav.aj-nav-compact .navlinks.aj-separate-menus.open{
    transition:opacity .12s ease-out,visibility 0s!important;
  }
}

/* v5 — continuous decorative motion only runs while its host is near view. */
.site-top.aj-motion-paused .aj-harar-promo::before,
.site-top.aj-motion-paused .aj-harar-badge,
.site-top.aj-motion-paused .aj-harar-scene,
.site-top.aj-motion-paused .aj-harar-route,
.site-top.aj-motion-paused .aj-harar-moving-plane,
.home-hero.aj-motion-paused .scroll-cue::after,
.aj-route-diamir.aj-motion-paused .aj-route-scroll-hint{
  animation-play-state:paused!important;
}
