/* Ahsante Tour Packages — homepage extras: departures bar, blog carousel */

.atp-x {
	--x-ink: #0D2B3A;
	--x-deep: #0B2230;
	--x-body: #5C7684;
	--x-green: #24804A;
	--x-green-dark: #1C6639;
	--x-mint: #6FD69B;
	--x-sand: #F3EDE3;
	--x-clay: #B0643A;
	--x-line: #E3E9ED;
	--x-head: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
	--x-text: 'Sora', system-ui, -apple-system, sans-serif;
	display: block;
	font-family: var(--x-text) !important;
	color: var(--x-ink) !important;
	box-sizing: border-box;
}
.atp-x *, .atp-x *::before, .atp-x *::after { box-sizing: border-box; }
.atp-x a { text-decoration: none !important; }
.atp-x__wrap { width: 100% !important; max-width: 1280px !important; margin: 0 auto !important; padding: 0 24px !important; }
.atp-x__kicker { font-family: var(--x-head) !important; font-weight: 700 !important; font-size: 12px !important; letter-spacing: .18em !important; text-transform: uppercase !important; color: var(--x-green) !important; margin: 0 0 8px !important; }
.atp-x__h2 { font-family: var(--x-head) !important; font-weight: 800 !important; font-size: clamp(24px, 2.6vw, 34px) !important; line-height: 1.1 !important; letter-spacing: -.02em !important; color: var(--x-ink) !important; margin: 0 !important; text-wrap: balance; }
.atp-x__btn { display: inline-flex !important; align-items: center; justify-content: center; min-height: 48px; padding: 0 26px !important; border-radius: 999px !important; background: var(--x-green) !important; color: #fff !important; font-family: var(--x-head) !important; font-weight: 700 !important; font-size: 15px !important; transition: background .2s; }
.atp-x__btn:hover { background: var(--x-green-dark) !important; color: #fff !important; }

/* Departures ------------------------------------------------------------- */
.atp-dep { padding: 36px 0 !important; }
.atp-dep--dark { background: var(--x-deep) !important; }
.atp-dep--white { background: #fff !important; }
.atp-dep--sand { background: var(--x-sand) !important; }
.atp-dep__wrap { display: grid !important; grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); gap: 28px 40px; align-items: center; }
.atp-dep--dark .atp-x__kicker { color: var(--x-mint) !important; }
.atp-dep--dark .atp-x__h2 { color: #fff !important; }
.atp-dep__note { margin: 10px 0 0 !important; font-size: 14px !important; line-height: 1.55 !important; color: var(--x-body) !important; }
.atp-dep--dark .atp-dep__note { color: #9FBACB !important; }
.atp-dep__intro .atp-x__btn { margin-top: 18px !important; }
.atp-dep__list { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }

.atp-dep__card { display: flex !important; flex-direction: column; gap: 4px; padding: 16px 18px 16px !important; border-radius: 14px !important; background: #fff !important; border: 1px solid var(--x-line) !important; color: var(--x-ink) !important; transition: transform .2s, border-color .2s, background .2s; }
.atp-dep__card:hover { transform: translateY(-2px); border-color: var(--x-green) !important; }
.atp-dep--dark .atp-dep__card { background: rgba(255,255,255,.06) !important; border-color: rgba(255,255,255,.14) !important; color: #fff !important; }
.atp-dep--dark .atp-dep__card:hover { background: rgba(255,255,255,.1) !important; border-color: var(--x-mint) !important; }

.atp-dep__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.atp-dep__soon { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 999px; background: rgba(36,128,74,.12); color: var(--x-green-dark) !important; font-family: var(--x-head); font-weight: 700; font-size: 12px; white-space: nowrap; }
.atp-dep--dark .atp-dep__soon { background: rgba(111,214,155,.16); color: var(--x-mint) !important; }
.atp-dep__label { font-size: 12px; color: var(--x-body) !important; text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.atp-dep--dark .atp-dep__label { color: #9FBACB !important; }
.atp-dep__date { font-family: var(--x-head); font-weight: 800; font-size: 19px; line-height: 1.2; }
.atp-dep__days { font-size: 13px; color: var(--x-body) !important; }
.atp-dep--dark .atp-dep__days { color: #9FBACB !important; }
.atp-dep__route { font-family: var(--x-head); font-weight: 700; font-size: 15px; margin-top: 6px; }
.atp-dep__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--x-line); }
.atp-dep--dark .atp-dep__foot { border-top-color: rgba(255,255,255,.12); }
.atp-dep__places { display: flex; flex-direction: column; gap: 6px; font-family: var(--x-head); font-weight: 700; font-size: 12px; color: var(--x-green-dark) !important; min-width: 0; flex: 1; }
.atp-dep--dark .atp-dep__places { color: var(--x-mint) !important; }
.atp-dep__places.is-low { color: var(--x-clay) !important; }
.atp-dep--dark .atp-dep__places.is-low { color: #F0A57A !important; }
.atp-dep__bar { display: block; height: 4px; max-width: 120px; border-radius: 4px; background: var(--x-line); overflow: hidden; }
.atp-dep--dark .atp-dep__bar { background: rgba(255,255,255,.14); }
.atp-dep__bar i { display: block; height: 100%; border-radius: 4px; background: currentColor; }
.atp-dep__price { font-family: var(--x-head); font-weight: 800; font-size: 18px; white-space: nowrap; }
.atp-dep__price small { font-family: var(--x-text); font-weight: 400; font-size: 12px; color: var(--x-body); }
.atp-dep--dark .atp-dep__price small { color: #9FBACB; }
.atp-dep__card.is-full { opacity: .6; }

@media (max-width: 860px) {
	.atp-dep__wrap { grid-template-columns: minmax(0, 1fr); }
	.atp-dep__list { grid-auto-flow: column; grid-auto-columns: minmax(250px, 82%); grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; }
	.atp-dep__card { scroll-snap-align: start; }
}

/* Blog carousel ---------------------------------------------------------- */
.atp-blog { padding: clamp(48px, 6vw, 88px) 0 !important; }
.atp-blog--sand { background: var(--x-sand) !important; }
.atp-blog--white { background: #fff !important; }
.atp-blog--grey { background: #F7F9FA !important; }
.atp-blog__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px 32px; flex-wrap: wrap; margin: 0 0 22px !important; }
.atp-blog__nav { display: flex; gap: 10px; }
.atp-blog__arrow { width: 46px !important; height: 46px !important; padding: 0 !important; border-radius: 50% !important; border: 1.5px solid rgba(13,43,58,.2) !important; background: transparent !important; color: var(--x-ink) !important; font-size: 18px !important; line-height: 1 !important; cursor: pointer; transition: background .2s, color .2s, border-color .2s, opacity .2s; }
.atp-blog__arrow:hover { background: var(--x-ink) !important; border-color: var(--x-ink) !important; color: #fff !important; }
.atp-blog__arrow[disabled] { opacity: .3; pointer-events: none; }

.atp-blog__tabs { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 0 0 26px !important; padding-bottom: 2px; }
.atp-blog__tabs::-webkit-scrollbar { display: none; }
.atp-blog__tab { flex: none; height: 40px !important; padding: 0 18px !important; border-radius: 999px !important; border: 1.5px solid rgba(13,43,58,.16) !important; background: transparent !important; color: var(--x-ink) !important; font-family: var(--x-head) !important; font-weight: 600 !important; font-size: 14px !important; cursor: pointer; transition: all .2s; }
.atp-blog__tab:hover { border-color: var(--x-ink) !important; }
.atp-blog__tab.is-on { background: var(--x-ink) !important; border-color: var(--x-ink) !important; color: #fff !important; }

.atp-blog__track { display: grid !important; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 3); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding: 2px 0 8px; }
.atp-blog__track::-webkit-scrollbar { display: none; }
.atp-blog__card { scroll-snap-align: start; display: flex; flex-direction: column; background: #fff; border-radius: 18px; overflow: hidden; transition: transform .25s, box-shadow .25s; }
.atp-blog__card[hidden] { display: none !important; }
.atp-blog__card:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(13,43,58,.1); }
.atp-blog--white .atp-blog__card { border: 1px solid var(--x-line); }
.atp-blog__img { position: relative; display: block !important; aspect-ratio: 4 / 3; background: #DCE4E8; overflow: hidden; }
.atp-blog__img img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; transition: transform .5s; }
.atp-blog__card:hover .atp-blog__img img { transform: scale(1.04); }
.atp-blog__chip { position: absolute; left: 14px; top: 14px; height: 28px; display: inline-flex; align-items: center; padding: 0 12px; border-radius: 999px; background: rgba(255,255,255,.94); color: var(--x-ink) !important; font-family: var(--x-head); font-weight: 700; font-size: 12px; }
.atp-blog__body { display: flex; flex-direction: column; gap: 10px; padding: 20px 22px 22px; flex: 1; }
.atp-blog__meta { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; color: var(--x-body) !important; }
.atp-blog__title { margin: 0 !important; font-family: var(--x-head) !important; font-weight: 800 !important; font-size: 20px !important; line-height: 1.25 !important; letter-spacing: -.01em; text-wrap: pretty; }
.atp-blog__title a { color: var(--x-ink) !important; }
.atp-blog__title a:hover { color: var(--x-green) !important; }
.atp-blog__excerpt { margin: 0 !important; font-size: 14px !important; line-height: 1.6 !important; color: var(--x-body) !important; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.atp-blog__read { margin-top: auto !important; padding-top: 6px; display: inline-flex !important; gap: 6px; align-items: center; font-family: var(--x-head) !important; font-weight: 700 !important; font-size: 14px !important; color: var(--x-green) !important; }
.atp-blog__read span { transition: transform .2s; }
.atp-blog__card:hover .atp-blog__read span { transform: translateX(4px); }
.atp-blog__more { display: flex; justify-content: center; margin-top: 34px; }

@media (max-width: 1024px) { .atp-blog__track { grid-auto-columns: calc((100% - 24px) / 2); } }
@media (max-width: 640px) {
	.atp-blog__track { grid-auto-columns: 84%; gap: 16px; }
	.atp-blog__nav { display: none; }
}
