/* Shared package card (homepage carousel and trekking collections): photo, title, short description, price and arrow. */
.lux-package { position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden; border-radius: 26px; background: #FFFFFF; color: #231F20; text-decoration: none; box-shadow: 0 1px 0 rgba(35, 31, 32, .05), 0 26px 50px -30px rgba(35, 31, 32, .42); transition: transform .5s cubic-bezier(.2, .8, .2, 1), box-shadow .5s ease; }
.lux-package:hover, .lux-package:focus-visible { transform: translateY(-8px); box-shadow: 0 1px 0 rgba(35, 31, 32, .05), 0 42px 70px -32px rgba(35, 31, 32, .55); }
.lux-package:focus-visible { outline: 2px solid #6B9A40; outline-offset: 4px; }
.lux-package .lux-package__media { position: relative; overflow: hidden; aspect-ratio: 4 / 3.2; background: #231F20; }
.lux-package .lux-package__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2, .8, .2, 1); }
.lux-package:hover .lux-package__media img, .lux-package:focus-visible .lux-package__media img { transform: scale(1.07); }
.lux-package .lux-package__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(35, 31, 32, 0) 62%, rgba(35, 31, 32, .28) 100%); }
.lux-package .lux-package__body { display: flex; flex: 1; flex-direction: column; gap: .7rem; padding: 1.5rem; }
.lux-package .lux-package__title { margin: 0; color: #231F20; font-family: 'Poppins', sans-serif; font-size: clamp(1.1rem, 1.35vw, 1.28rem) !important; font-weight: 700 !important; letter-spacing: -.01em; line-height: 1.25 !important; text-transform: none; transition: color .35s ease; }
.lux-package:hover .lux-package__title, .lux-package:focus-visible .lux-package__title { color: #755431; }
.lux-package .lux-package__description { display: -webkit-box; overflow: hidden; margin: 0; color: rgba(35, 31, 32, .7); font-size: .82rem; line-height: 1.7; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.lux-package .lux-package__footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 1.1rem; border-top: 1px solid #E7E2D8; }
.lux-package .lux-package__meta { display: grid; gap: .15rem; }
.lux-package .lux-package__meta small { color: rgba(35, 31, 32, .55); font-size: .6rem; font-weight: 600 !important; letter-spacing: .16em; text-transform: uppercase; }
.lux-package .lux-package__meta strong { color: #755431; font-family: 'Poppins', sans-serif; font-size: 1.02rem; font-weight: 700 !important; letter-spacing: -.01em; line-height: 1.15; }
.lux-package .lux-package__go { display: grid; flex: 0 0 auto; width: 48px; height: 48px; place-items: center; border-radius: 50%; background: #755431; color: #FFFFFF; transition: background .35s ease, transform .45s cubic-bezier(.2, .8, .2, 1); }
.lux-package .lux-package__go svg { width: 20px; height: 20px; }
.lux-package:hover .lux-package__go, .lux-package:focus-visible .lux-package__go { background: #231F20; transform: rotate(-45deg); }

.lux-package .lux-package__tag { position: absolute; top: 1rem; left: 1rem; max-width: calc(100% - 2rem); overflow: hidden; padding: .45rem .85rem; border-radius: 999px; background: rgba(35, 31, 32, .38); color: #FFFFFF; font-size: .62rem; font-weight: 600; letter-spacing: .16em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; box-sizing: border-box; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.lux-package .lux-package__route { display: flex; align-items: flex-start; gap: .45rem; margin: 0; color: #3E6423; font-size: .74rem; font-weight: 500; line-height: 1.55; }
.lux-package .lux-package__route svg { flex: 0 0 auto; width: .85rem; height: .85rem; margin-top: .2rem; }
.lux-package .lux-package__route span { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }

/* Grid layout for pages that list packages instead of scrolling them. */
.lux-package-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 1.8vw, 1.6rem); }
.lux-package-grid > :not(.lux-package) { grid-column: 1 / -1; }

@media (max-width: 1023px) {
    .lux-package-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 639px) {
    .lux-package-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    .lux-package, .lux-package .lux-package__media img, .lux-package .lux-package__go { transition: none; }
}
