/* Hyper Era Tours — Theme V7 maintenance fixes
   Prevents visible accessibility link, removes reveal-related blank areas,
   tightens hero-to-content spacing and provides stable page-wide fallbacks. */

:root{
  --v7-shell:#063844;
  --v7-gold:#f6bd55;
  --v7-paper:#f7faf9;
  --v7-line:#d9e5e7;
}

/* Accessibility: invisible during normal browsing, visible only for keyboard focus. */
.skip-link{
  position:fixed!important;
  top:0!important;
  left:0!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  border:0!important;
  box-shadow:none!important;
  z-index:10000!important;
}
.skip-link:focus,
.skip-link:focus-visible{
  top:12px!important;
  left:12px!important;
  width:auto!important;
  height:auto!important;
  padding:12px 16px!important;
  margin:0!important;
  overflow:visible!important;
  clip:auto!important;
  clip-path:none!important;
  white-space:normal!important;
  color:#10272c!important;
  background:#fff!important;
  border:2px solid var(--v7-gold)!important;
  box-shadow:0 12px 30px rgba(0,0,0,.22)!important;
  text-transform:none!important;
  font:700 .82rem/1.2 'Montserrat',sans-serif!important;
}

/* Progressive enhancement safety.
   Content must never become blank when app.js is delayed, cached or unavailable. */
[data-reveal],
[data-reveal].is-visible{
  opacity:1!important;
  transform:none!important;
  visibility:visible!important;
}

html{scroll-padding-top:110px}
body{overflow-x:hidden}
#main-content{display:block;min-height:1px;overflow:clip}

/* Hero and first-content join: no dead/blank band below the slider. */
.home-page #main-content{background:var(--v7-paper)}
.home-page .luxury-hero{
  margin:0!important;
  min-height:620px;
  max-height:820px;
}
.home-page .luxury-search-wrap{
  position:relative!important;
  z-index:20!important;
  margin-top:-66px!important;
  margin-bottom:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
}
.home-page .luxury-tour-search{
  margin:0!important;
  visibility:visible!important;
  opacity:1!important;
}
.home-page .luxury-popular-searches{
  margin:0!important;
  min-height:42px;
}
.home-page .luxury-destinations{
  margin-top:0!important;
  padding-top:72px!important;
}
.home-page .luxury-search-wrap + .luxury-destinations{
  border-top:0!important;
}

/* Keep all major public page headings and descriptions consistently centered. */
.page-hero .container,
.luxury-section-head,
.luxury-mini-head,
.is-inner main>.section>.container>header{
  text-align:center!important;
}
.page-hero p,
.luxury-section-head p,
.luxury-mini-head p{
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Stable empty states and cards when a database has no records. */
.empty-state{
  width:100%;
  min-height:150px;
  display:grid;
  place-items:center;
  text-align:center;
  background:#fff;
  border:1px dashed var(--v7-line);
}
.cards:empty,
.luxury-package-grid:empty,
.gallery-grid:empty{
  min-height:0!important;
  margin:0!important;
  padding:0!important;
}

/* Header and footer remain exactly matched even if an older CSS file is cached. */
.luxury-header,
.is-inner .luxury-header,
.luxury-header.is-scrolled,
.luxury-footer{background-color:var(--v7-shell)!important}

@media(max-width:900px){
  .luxury-header,
  .is-inner .luxury-header,
  .luxury-header.is-scrolled,
  .luxury-main-nav,
  .mobile-menu-head{background-color:var(--v7-shell)!important}
}

/* Mobile join and spacing fixes. */
@media(max-width:900px){
  html{scroll-padding-top:86px}
  .home-page .luxury-hero{height:680px!important;min-height:680px!important}
  .home-page .luxury-search-wrap{margin-top:-54px!important}
  .home-page .luxury-destinations{padding-top:62px!important}
}
@media(max-width:680px){
  .home-page .luxury-hero{height:640px!important;min-height:640px!important}
  .home-page .luxury-search-wrap{margin-top:-38px!important;padding-inline:14px!important}
  .home-page .luxury-popular-searches{padding-top:9px!important;min-height:34px}
  .home-page .luxury-destinations{padding-top:52px!important}
  .page-hero{padding-top:64px!important;padding-bottom:54px!important}
}
@media(max-width:420px){
  .home-page .luxury-hero{height:610px!important;min-height:610px!important}
  .home-page .luxury-search-wrap{margin-top:-30px!important}
  .home-page .luxury-destinations{padding-top:46px!important}
}
