/* Recommended journeys: a quiet cream setting and three detailed safari cards. */
.kwa-home .home-packages { position: relative; overflow: clip; padding: 60px 40px 66px; background: #FAF7EF; scroll-margin-top: var(--home-header-height, 88px); }
.home-packages-inner { max-width: 1400px; margin: 0 auto; }
.home-packages-intro { max-width: 1120px; margin: 0 auto; text-align: center; }
.kwa-home .home-packages .home-packages-kicker { margin: 0; color: #464B20; font-family: 'Montserrat', sans-serif; font-size: 32px; font-weight: 400 !important; line-height: 1.3; letter-spacing: 4px; text-transform: uppercase; }
.kwa-home .home-packages #home-packages-heading { margin: 15px 0 0; color: #542006; font-family: 'Montserrat', sans-serif !important; font-size: 22px !important; font-weight: 800 !important; line-height: 1.4 !important; letter-spacing: 1.4px; text-transform: uppercase; }
.home-packages-ornament { display: flex; justify-content: center; align-items: center; gap: 10px; margin-top: 15px; color: #CC9138; }
.home-packages-ornament span { width: 38px; height: 1px; background: #CC9138; opacity: .55; }
.home-packages-ornament svg { width: 15px; height: 15px; }
.kwa-home .home-packages .home-packages-description { margin: 15px auto 0; color: #302820; font-family: 'Montserrat', sans-serif; font-size: 14px; line-height: 1.7; }
.home-packages-carousel { position: relative; margin-top: 33px; }
.home-packages-viewport { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.home-packages-viewport::-webkit-scrollbar { display: none; }
.home-packages-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 3); align-items: stretch; gap: 24px; padding: 10px 0 24px; }
.home-packages-track[data-total="1"] { grid-auto-columns: minmax(0, 460px); justify-content: center; }
.home-packages-track[data-total="2"] { grid-auto-columns: calc((100% - 24px) / 2); }
.home-package-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid rgba(84,32,6,.12); border-radius: 8px; background: #FFFFFF; box-shadow: 0 6px 16px rgba(84,32,6,.07); color: #302820; text-align: left; text-decoration: none; scroll-snap-align: start; transition: transform .3s ease, box-shadow .3s ease, border-color .3s; }
.home-package-card:hover { border-color: rgba(204,145,56,.7); box-shadow: 0 14px 24px rgba(84,32,6,.13); transform: translateY(-4px); }
.home-package-card:focus-visible { outline: 3px solid #CC9138; outline-offset: -3px; }
.home-package-meta { display: flex; justify-content: space-between; align-items: stretch; min-height: 44px; background: #FFFFFF; }
.home-package-country { display: flex; flex: 1; align-items: center; gap: 9px; min-width: 0; padding: 10px 16px; }
.home-package-country > svg { flex: 0 0 15px; width: 15px; height: 15px; color: #464B20; }
:is(.kwa-home .home-packages, .safari-catalogue) .home-package-country > span { min-width: 0; overflow: hidden; color: #6B4B3B; font-family: 'Montserrat', sans-serif; font-size: 10px; font-weight: 800 !important; line-height: 1.3; letter-spacing: 2px; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.home-package-duration { display: flex; flex: 0 1 auto; align-items: center; justify-content: center; gap: 7px; max-width: 50%; min-width: 95px; padding: 10px 16px; background: #464B20; color: #FFFFFF; }
.home-package-duration svg { flex: 0 0 14px; width: 14px; height: 14px; }
:is(.kwa-home .home-packages, .safari-catalogue) .home-package-duration > span { overflow: hidden; font-family: 'Montserrat', sans-serif; font-size: 10px; font-weight: 800 !important; line-height: 1.3; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.home-package-photo { position: relative; isolation: isolate; height: 260px; overflow: hidden; background: #6B4B3B; }
.home-package-photo > img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.8,.2,1); }
.home-package-card:hover .home-package-photo > img { transform: scale(1.055); }
.home-package-shade { position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.04) 35%, rgba(0,0,0,.22) 65%, rgba(0,0,0,.82)); }
:is(.kwa-home .home-packages, .safari-catalogue) .home-package-category { position: absolute; z-index: 2; top: 18px; left: 20px; max-width: calc(100% - 40px); overflow: hidden; padding: 6px 9px; border: 1px solid rgba(250,247,239,.5); border-radius: 3px; background: rgba(84,32,6,.48); color: #FAF7EF; font-family: 'Montserrat', sans-serif; font-size: 9px; font-weight: 700 !important; line-height: 1.3; letter-spacing: .7px; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; backdrop-filter: blur(5px); }
:is(.kwa-home .home-packages, .safari-catalogue) .home-package-photo h3 { position: absolute; z-index: 2; right: 24px; bottom: 22px; left: 24px; display: -webkit-box; overflow: hidden; margin: 0; color: #FFFFFF; font-family: 'Montserrat', sans-serif !important; font-size: 18px !important; font-weight: 800 !important; line-height: 1.25 !important; letter-spacing: 1px; text-transform: uppercase; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.home-package-details { display: flex; flex: 1; flex-direction: column; padding: 23px 24px 25px; }
.home-package-highlights-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 12px; }
:is(.kwa-home .home-packages, .safari-catalogue) .home-package-caption { margin: 0; color: #6B4B3B; font-family: 'Montserrat', sans-serif; font-size: 9px; font-weight: 800 !important; line-height: 1.5; letter-spacing: 1.4px; text-transform: uppercase; }
:is(.kwa-home .home-packages, .safari-catalogue) .home-package-price { color: #464B20; font-family: 'Montserrat', sans-serif; font-size: 12px; font-weight: 800 !important; line-height: 1.4; }
:is(.kwa-home .home-packages, .safari-catalogue) .home-package-price small { font-size: 9px; font-weight: 500; white-space: nowrap; }
:is(.kwa-home .home-packages, .safari-catalogue) .home-package-description { display: -webkit-box; min-height: 65px; overflow: hidden; margin: 11px 0 0; color: #302820; font-family: 'Montserrat', sans-serif; font-size: 12px; line-height: 1.8; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.home-package-route { margin-top: 19px; }
.safari-catalogue .home-package-destinations span + span::before { display: inline-block; margin: 0 .35rem; color: #6B4B3B; content: "\00B7"; }
:is(.kwa-home .home-packages, .safari-catalogue) .home-package-destinations { min-height: 38px; margin: 6px 0 0; color: #302820; font-family: 'Montserrat', sans-serif; font-size: 10.5px; line-height: 1.7; overflow-wrap: anywhere; }
.home-package-footer { display: flex; align-items: center; justify-content: space-between; gap: 15px; min-height: 61px; padding: 19px 24px; border-top: 1px dashed rgba(84,32,6,.18); background: #FAF7EF; transition: background-color .25s; }
:is(.kwa-home .home-packages, .safari-catalogue) .home-package-footer > span { color: #542006; font-family: 'Montserrat', sans-serif; font-size: 10px; font-weight: 800 !important; line-height: 1.4; letter-spacing: 1.2px; text-transform: uppercase; }
.home-package-footer svg { flex: 0 0 18px; width: 18px; height: 18px; color: #CC9138; transition: transform .25s; }
.home-package-card:hover .home-package-footer { background: #542006; }
:is(.kwa-home .home-packages, .safari-catalogue) .home-package-card:hover .home-package-footer > span { color: #FAF7EF; }
.home-package-card:hover .home-package-footer svg { transform: translate(2px,-2px); }
.home-packages-arrow { position: absolute; z-index: 5; top: 163px; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid rgba(204,145,56,.4); border-radius: 50%; background: #FFFFFF; color: #542006; box-shadow: 0 4px 12px rgba(84,32,6,.09); cursor: pointer; transition: background-color .2s, color .2s; }
.home-packages-arrow--previous { left: -23px; }
.home-packages-arrow--next { right: -23px; }
.home-packages-arrow svg { width: 22px; height: 22px; }
.home-packages-arrow:hover { background: #542006; color: #FFFFFF; }
.home-packages-arrow:disabled { opacity: .35; cursor: default; }
.home-packages-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; margin-top: 2px; }
.home-package-dot { position: relative; width: 22px; height: 30px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.home-package-dot::after { content: ''; position: absolute; top: 10px; left: 6px; width: 10px; height: 10px; border-radius: 50%; background: rgba(48,40,32,.17); transition: background-color .2s, box-shadow .2s; }
.home-package-dot.is-active::after { background: #464B20; box-shadow: 0 0 0 3px rgba(204,145,56,.17); }
.home-package-dot:hover::after { background: #CC9138; }
.home-packages-arrow:focus-visible, .home-package-dot:focus-visible { outline: 3px solid #CC9138; outline-offset: 4px; }
.home-packages-action { display: flex; justify-content: center; margin-top: 28px; }
.kwa-home .home-packages .home-packages-all { display: inline-flex; justify-content: center; align-items: center; gap: 17px; padding: 15px 24px; border: 1px solid #542006; border-radius: 3px; background: #542006; color: #FFFFFF; font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 800 !important; line-height: 1.4; letter-spacing: .7px; text-decoration: none; text-transform: uppercase; transition: background-color .2s, border-color .2s; }
.home-packages-all svg { width: 19px; height: 19px; }
.kwa-home .home-packages .home-packages-all:hover { border-color: #464B20; background: #464B20; }
.home-packages-all:focus-visible { outline: 3px solid #CC9138; outline-offset: 4px; }
@media (max-width: 1099px) {
    .kwa-home .home-packages { padding: 55px 28px 60px; }
    .home-packages-track, .home-packages-track[data-total="2"] { grid-auto-columns: calc((100% - 20px) / 2); gap: 20px; }
    .home-package-photo { height: 250px; }
    .home-packages-arrow { width: 44px; height: 44px; }
    .home-packages-arrow--previous { left: -20px; }
    .home-packages-arrow--next { right: -20px; }
    .kwa-home .home-packages .home-packages-kicker { font-size: 28px; }
    .kwa-home .home-packages #home-packages-heading { font-size: 20px !important; }
}
@media (max-width: 699px) {
    .kwa-home .home-packages { padding: 45px 22px 50px; }
    .home-packages-track, .home-packages-track[data-total="1"], .home-packages-track[data-total="2"] { grid-auto-columns: 100%; gap: 18px; justify-content: start; }
    .home-packages-carousel { margin-top: 26px; }
    .kwa-home .home-packages .home-packages-kicker { font-size: 25px; letter-spacing: 3px; }
    .kwa-home .home-packages #home-packages-heading { font-size: 18px !important; letter-spacing: 1px; }
    .kwa-home .home-packages .home-packages-description { font-size: 13px; line-height: 1.65; }
    .home-package-photo { height: 245px; }
    .kwa-home .home-packages .home-package-photo h3 { left: 22px; right: 22px; font-size: 18px !important; }
    .home-package-details { padding: 22px; }
    .home-package-footer { padding-right: 22px; padding-left: 22px; }
    .home-packages-arrow { top: 160px; width: 39px; height: 39px; }
    .home-packages-arrow--previous { left: -17px; }
    .home-packages-arrow--next { right: -17px; }
    .kwa-home .home-packages .home-package-country > span { letter-spacing: 1.3px; }
    .home-package-country { padding-right: 10px; padding-left: 12px; }
    .home-package-duration { min-width: 90px; padding-right: 12px; padding-left: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .home-package-card, .home-package-photo > img, .home-package-footer, .home-package-footer svg, .home-packages-arrow, .home-package-dot::after, .home-packages-all { transition: none; }
    .home-package-card:hover, .home-package-card:hover .home-package-photo > img { transform: none; }
}
