/* =========================================================
   EcoSapa Tour Pages v0.35.5 — HARD-LOCKED CATEGORY VISUAL CARDS
   Applies to visual taxonomy blocks on every Tour catalogue.
   Loads after the global typography lock so overlay copy can never
   be pushed back to dark/low-contrast theme defaults.
   ========================================================= */
body.ecotravel-tour-shell-resolver .es-visual-tax{
  margin-top:54px!important;
  margin-bottom:54px!important;
}
body.ecotravel-tour-shell-resolver .es-visual-tax .es-section-heading{
  margin:0 0 22px!important;
  text-align:center!important;
}
body.ecotravel-tour-shell-resolver .es-visual-tax .es-section-heading h2{
  margin:0!important;
  color:#34495a!important;
  font-size:28px!important;
  line-height:1.24!important;
  font-weight:800!important;
  letter-spacing:-.022em!important;
}
body.ecotravel-tour-shell-resolver .es-visual-tax__grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}
body.ecotravel-tour-shell-resolver .es-tour-places .es-visual-tax__grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
body.ecotravel-tour-shell-resolver .es-visual-tax--count-1 .es-visual-tax__grid{
  grid-template-columns:minmax(0,430px)!important;
  justify-content:center!important;
}
body.ecotravel-tour-shell-resolver .es-visual-tax--count-2 .es-visual-tax__grid{
  grid-template-columns:repeat(2,minmax(0,430px))!important;
  justify-content:center!important;
}
body.ecotravel-tour-shell-resolver .es-visual-card{
  position:relative!important;
  display:block!important;
  min-height:220px!important;
  border:1px solid rgba(25,51,67,.10)!important;
  border-radius:16px!important;
  overflow:hidden!important;
  isolation:isolate!important;
  background-color:#dfe7eb!important;
  background-image:var(--es-card-image)!important;
  background-position:center!important;
  background-size:cover!important;
  text-decoration:none!important;
  box-shadow:0 12px 32px rgba(23,43,56,.09)!important;
  transform:translateZ(0)!important;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease!important;
}
body.ecotravel-tour-shell-resolver .es-tour-places .es-visual-card{
  min-height:235px!important;
}
body.ecotravel-tour-shell-resolver .es-visual-card__shade{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  background:
    linear-gradient(180deg,rgba(8,24,34,.04) 0%,rgba(8,24,34,.12) 40%,rgba(8,24,34,.82) 100%)!important;
  transition:background .22s ease!important;
}
body.ecotravel-tour-shell-resolver .es-visual-card::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  height:3px!important;
  z-index:3!important;
  background:#ed1c24!important;
  transform:scaleX(0)!important;
  transform-origin:left center!important;
  transition:transform .22s ease!important;
}
body.ecotravel-tour-shell-resolver .es-visual-card__content{
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  z-index:2!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:7px!important;
  padding:22px!important;
  color:#fff!important;
}
body.ecotravel-tour-shell-resolver .es-content-section .es-visual-card strong,
body.ecotravel-tour-shell-resolver .es-visual-card strong{
  display:block!important;
  margin:0!important;
  color:#fff!important;
  font-size:19px!important;
  line-height:1.25!important;
  font-weight:800!important;
  letter-spacing:-.012em!important;
  text-shadow:0 2px 12px rgba(0,0,0,.35)!important;
}
body.ecotravel-tour-shell-resolver .es-visual-card small{
  display:inline-flex!important;
  align-items:center!important;
  min-height:25px!important;
  margin:0!important;
  padding:4px 9px!important;
  border:1px solid rgba(255,255,255,.24)!important;
  border-radius:999px!important;
  background:rgba(8,24,34,.58)!important;
  color:#fff!important;
  font-size:12.5px!important;
  line-height:1.2!important;
  font-weight:700!important;
  box-shadow:0 2px 8px rgba(0,0,0,.12)!important;
  backdrop-filter:blur(5px)!important;
  -webkit-backdrop-filter:blur(5px)!important;
}
body.ecotravel-tour-shell-resolver .es-visual-card:hover,
body.ecotravel-tour-shell-resolver .es-visual-card:focus-visible{
  transform:translateY(-4px)!important;
  border-color:rgba(237,28,36,.24)!important;
  box-shadow:0 18px 40px rgba(23,43,56,.15)!important;
}
body.ecotravel-tour-shell-resolver .es-visual-card:hover .es-visual-card__shade,
body.ecotravel-tour-shell-resolver .es-visual-card:focus-visible .es-visual-card__shade{
  background:linear-gradient(180deg,rgba(8,24,34,.02) 0%,rgba(8,24,34,.10) 38%,rgba(8,24,34,.88) 100%)!important;
}
body.ecotravel-tour-shell-resolver .es-visual-card:hover::after,
body.ecotravel-tour-shell-resolver .es-visual-card:focus-visible::after{
  transform:scaleX(1)!important;
}
body.ecotravel-tour-shell-resolver .es-visual-card:focus-visible{
  outline:3px solid rgba(237,28,36,.18)!important;
  outline-offset:3px!important;
}
@media(max-width:980px){
  body.ecotravel-tour-shell-resolver .es-visual-tax__grid,
  body.ecotravel-tour-shell-resolver .es-tour-places .es-visual-tax__grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.ecotravel-tour-shell-resolver .es-visual-tax--count-1 .es-visual-tax__grid{
    grid-template-columns:minmax(0,430px)!important;
  }
}
@media(max-width:640px){
  body.ecotravel-tour-shell-resolver .es-visual-tax{
    margin-top:40px!important;
    margin-bottom:42px!important;
  }
  body.ecotravel-tour-shell-resolver .es-visual-tax .es-section-heading{
    margin-bottom:16px!important;
    text-align:left!important;
  }
  body.ecotravel-tour-shell-resolver .es-visual-tax .es-section-heading h2{
    font-size:24px!important;
  }
  body.ecotravel-tour-shell-resolver .es-visual-tax__grid,
  body.ecotravel-tour-shell-resolver .es-tour-places .es-visual-tax__grid,
  body.ecotravel-tour-shell-resolver .es-visual-tax--count-1 .es-visual-tax__grid,
  body.ecotravel-tour-shell-resolver .es-visual-tax--count-2 .es-visual-tax__grid{
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
  body.ecotravel-tour-shell-resolver .es-visual-card,
  body.ecotravel-tour-shell-resolver .es-tour-places .es-visual-card{
    min-height:205px!important;
  }
  body.ecotravel-tour-shell-resolver .es-visual-card__content{
    padding:18px!important;
  }
  body.ecotravel-tour-shell-resolver .es-content-section .es-visual-card strong,
  body.ecotravel-tour-shell-resolver .es-visual-card strong{
    font-size:18px!important;
  }
}
