.ab-kinds { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.ab-kind { background: #fff; border: 1px solid var(--ab-line); border-radius: 20px; padding: 1.4rem 1rem; text-align: center; height: 100%; transition: transform .2s, box-shadow .2s; }
.ab-kind:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(37,99,235,.14); }
.ab-kind i { width: 3.2rem; height: 3.2rem; border-radius: 16px; background: #2563eb; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 1.3rem; margin-bottom: .8rem; }
.ab-kind h4 { font-size: 1.05rem; margin-bottom: .3rem; }
.ab-kind p { font-size: .85rem; margin: 0; color: #64748b; }
.ab-kinds > div:last-child { grid-column: span 2; }

.ab-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.ab-chips label { margin: 0; cursor: pointer; }
.ab-chips input { position: absolute; opacity: 0; pointer-events: none; }
.ab-chips span { display: inline-block; padding: .5rem 1rem; border: 1px solid var(--ab-line); border-radius: 999px; font-weight: 600; font-size: .9rem; background: #fff; transition: all .15s; }
.ab-chips input:checked + span { background: #2563eb; border-color: #2563eb; color: #fff; }
.ab-chips input:focus-visible + span { box-shadow: 0 0 0 4px rgba(37,99,235,.25); }

@media (min-width: 768px) {
    .ab-kinds { grid-template-columns: repeat(3, 1fr); }
    .ab-kinds > div:last-child { grid-column: auto; }
}
@media (min-width: 992px) {
    .ab-kinds { grid-template-columns: repeat(5, 1fr); }
}

/* Careers */
.ab-values.four, .ab-cta-box ~ * { }
.ab-jobs { display: grid; gap: 1rem; max-width: 900px; margin: 0 auto; }
.ab-job { background: #fff; border: 1px solid var(--ab-line); border-radius: 20px; padding: 1.4rem; display: flex; flex-direction: column; gap: 1rem; align-items: flex-start; transition: transform .2s, box-shadow .2s; }
.ab-job:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(37,99,235,.14); }
.ab-job h4 { font-size: 1.2rem; margin-bottom: .5rem; }
.ab-job p { margin: .6rem 0 0; color: #64748b; font-size: .92rem; }
.ab-job-meta { display: flex; flex-wrap: wrap; gap: .4rem .5rem; }
.ab-job-meta span { background: #eff6ff; color: #1d4ed8; border-radius: 999px; padding: .25rem .75rem; font-size: .8rem; font-weight: 600; }
.ab-job-empty { text-align: center; background: #fff; border: 1px dashed var(--ab-line); border-radius: 20px; padding: 2.5rem 1rem; color: #64748b; }
.ab-job-empty i { font-size: 2rem; color: #2563eb; margin-bottom: .6rem; }
.ab-btn-white { background: #fff; color: #1d4ed8; }
.ab-btn-white:hover { background: #dbeafe; color: #1d4ed8; transform: translateY(-2px); }
.ab-cta-box { position: relative !important; top: auto !important; text-align: center; max-width: 900px; margin: 0 auto; }
.ab-cta-box p { color: #dbeafe; margin-bottom: 1.4rem; }
@media (min-width: 768px) {
    .ab-job { flex-direction: row; align-items: center; justify-content: space-between; }
    .ab-job .ab-btn { flex-shrink: 0; }
}
@media (min-width: 992px) {
    .ab-values { grid-template-columns: repeat(4, 1fr); }
}

/* Blog */
.ab-blog-head { max-width: 760px; margin: 0 auto; text-align: center; }
.ab-blog-head .ab-lead { margin-left: auto; margin-right: auto; }
.ab-search { display: flex; align-items: center; gap: .5rem; background: #fff; border: 1px solid var(--ab-line); border-radius: 999px; padding: .4rem .4rem .4rem 1.1rem; margin: 1.6rem auto 1.2rem; max-width: 560px; box-shadow: 0 10px 30px -14px rgba(37,99,235,.35); }
.ab-search i { color: #2563eb; }
.ab-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; padding: .5rem 0; font-size: 1rem; }
.ab-search .ab-btn { padding: .6rem 1.2rem; }
.ab-cats { justify-content: center; }
.ab-cats a { display: inline-block; padding: .45rem 1rem; border: 1px solid var(--ab-line); border-radius: 999px; font-weight: 600; font-size: .88rem; background: #fff; color: #334155; text-decoration: none; transition: all .15s; }
.ab-cats a:hover { border-color: #2563eb; color: #1d4ed8; }
.ab-cats a.on { background: #2563eb; border-color: #2563eb; color: #fff; }
.ab-tag { display: inline-block; background: #2563eb; color: #fff; border-radius: 999px; padding: .25rem .8rem; font-size: .75rem; font-weight: 700; letter-spacing: .02em; }
.ab-post-meta { display: flex; flex-wrap: wrap; gap: .4rem .9rem; font-size: .82rem; color: #64748b; margin-bottom: .5rem; }
.ab-post-meta span:first-child:not(:only-child) { color: #1d4ed8; font-weight: 700; }
.ab-featured { display: grid; background: #fff; border: 1px solid var(--ab-line); border-radius: 28px; overflow: hidden; margin-bottom: 2rem; box-shadow: 0 20px 50px -28px rgba(37,99,235,.45); }
.ab-featured-media { display: block; aspect-ratio: 16/10; overflow: hidden; }
.ab-featured-media img, .ab-post-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.ab-featured:hover img, .ab-post:hover img { transform: scale(1.05); }
.ab-featured-body { padding: 1.6rem; display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; }
.ab-featured-body h2 { font-size: clamp(1.4rem, 3vw, 2rem); margin: .3rem 0; }
.ab-featured-body h2 a, .ab-post h3 a { color: var(--ab-ink); text-decoration: none; }
.ab-featured-body h2 a:hover, .ab-post h3 a:hover { color: #1d4ed8; }
.ab-featured-body p { color: #64748b; margin-bottom: 1rem; }
.ab-posts { display: grid; grid-template-columns: 1fr; gap: 1.4rem; }
.ab-post { background: #fff; border: 1px solid var(--ab-line); border-radius: 22px; overflow: hidden; height: 100%; display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.ab-post:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(37,99,235,.15); }
.ab-post-media { position: relative; display: block; aspect-ratio: 16/10; overflow: hidden; }
.ab-post-media .ab-tag { position: absolute; left: .9rem; top: .9rem; }
.ab-post-body { padding: 1.2rem 1.3rem 1.4rem; display: flex; flex-direction: column; flex: 1; }
.ab-post h3 { font-size: 1.15rem; margin-bottom: .5rem; }
.ab-post p { color: #64748b; font-size: .92rem; flex: 1; }
.ab-more { font-weight: 700; font-size: .9rem; color: #1d4ed8; text-decoration: none; }
.ab-posts-empty { grid-column: 1 / -1; }
@media (min-width: 768px) {
    .ab-posts { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 992px) {
    .ab-posts { grid-template-columns: repeat(3, 1fr); }
    .ab-featured { grid-template-columns: 1.2fr 1fr; }
    .ab-featured-media { aspect-ratio: auto; min-height: 340px; }
    .ab-featured-body { padding: 2.4rem; justify-content: center; }
}

/* Vendors */
.ab-vendors { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
.ab-vendor { display: block; background: #fff; border: 1px solid var(--ab-line); border-radius: 22px; padding: 1.4rem; text-decoration: none; color: inherit; height: 100%; transition: transform .2s, box-shadow .2s; }
.ab-vendor:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(37,99,235,.15); color: inherit; }
.ab-vendor-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.ab-vendor-logo { width: 3.4rem; height: 3.4rem; border-radius: 16px; object-fit: cover; background: #eff6ff; }
.ab-vendor-initial { display: inline-flex; align-items: center; justify-content: center; background: #2563eb; color: #fff; font-weight: 800; font-size: 1.4rem; }
.ab-vendor-rate { background: #eff6ff; color: #1d4ed8; border-radius: 999px; padding: .25rem .75rem; font-weight: 700; font-size: .85rem; }
.ab-vendor-rate i { color: #f59e0b; }
.ab-vendor h3 { font-size: 1.15rem; margin-bottom: .2rem; color: var(--ab-ink); }
.ab-vendor-loc { color: #64748b; font-size: .85rem; margin-bottom: .6rem; }
.ab-vendor p { color: #64748b; font-size: .92rem; margin-bottom: .9rem; }
@media (min-width: 768px) { .ab-vendors { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) {
    .ab-vendors { grid-template-columns: repeat(3, 1fr); }
    .ab-values.ab-values-3 { grid-template-columns: repeat(3, 1fr); }
}

/* Contact */
.ab-contacts { display: grid; grid-template-columns: 1fr; gap: 1.2rem; max-width: 1000px; margin: 0 auto; }
.ab-contact { background: #fff; border: 1px solid var(--ab-line); border-radius: 22px; padding: 1.6rem; text-align: center; height: 100%; transition: transform .2s, box-shadow .2s; }
.ab-contact:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(37,99,235,.15); }
.ab-contact h4 { font-size: 1.1rem; margin: .8rem 0 .4rem; }
.ab-contact p { margin: 0; color: #64748b; }
.ab-contact a { color: #1d4ed8; font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.ab-form .select2-container { width: 100% !important; }
.ab-form .select2-container .select2-selection--single { height: auto; min-height: 3rem; border-radius: 14px; border-color: var(--ab-line); display: flex; align-items: center; }
@media (min-width: 768px) { .ab-contacts { grid-template-columns: repeat(3, 1fr); } }

/* Support */
.ab-topics { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
.ab-topic { display: block; background: #fff; border: 1px solid var(--ab-line); border-radius: 22px; padding: 1.6rem; text-align: center; text-decoration: none; color: inherit; height: 100%; transition: transform .2s, box-shadow .2s; }
.ab-topic:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(37,99,235,.15); color: inherit; }
.ab-topic h4 { font-size: 1.1rem; margin: .8rem 0 .4rem; color: var(--ab-ink); }
.ab-topic p { margin: 0; color: #64748b; font-size: .92rem; }
.ab-contact small { color: #64748b; }
@media (min-width: 768px) { .ab-topics { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) {
    .ab-topics { grid-template-columns: repeat(4, 1fr); }
    .ab-steps.ab-steps-3 { grid-template-columns: repeat(3, 1fr); }
}

/* Gallery */
.ab-masonry { column-count: 2; column-gap: 1rem; }
.ab-shot { position: relative; display: block; break-inside: avoid; margin-bottom: 1rem; border-radius: 18px; overflow: hidden; background: #dbeafe; }
.ab-shot img { width: 100%; height: auto; display: block; transition: transform .5s; }
.ab-shot:hover img { transform: scale(1.05); }
.ab-shot-cap { position: absolute; inset: auto 0 0 0; padding: 1.6rem .9rem .8rem; background: linear-gradient(transparent, rgba(15,23,42,.8)); color: #fff; display: flex; flex-direction: column; opacity: 0; transition: opacity .25s; }
.ab-shot-cap small { color: #bfdbfe; }
.ab-shot:hover .ab-shot-cap, .ab-shot:focus-visible .ab-shot-cap { opacity: 1; }
@media (hover: none) { .ab-shot-cap { opacity: 1; } }
.ab-lightbox { position: fixed; inset: 0; z-index: 2000; background: rgba(15,23,42,.92); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1.5rem; }
.ab-lightbox[hidden] { display: none; }
.ab-lightbox img { max-width: 100%; max-height: 80vh; border-radius: 14px; }
.ab-lightbox p { color: #fff; margin: .9rem 0 0; font-weight: 600; text-align: center; }
.ab-lb-close { position: absolute; top: 1rem; right: 1rem; width: 2.8rem; height: 2.8rem; border-radius: 50%; border: 0; background: #2563eb; color: #fff; font-size: 1.1rem; }
@media (min-width: 768px) { .ab-masonry { column-count: 3; } }
@media (min-width: 992px) { .ab-masonry { column-count: 4; } }

/* FAQ page */
.ab-search.ab-search-left { margin: 1.4rem 0 1.2rem; max-width: 460px; }
.ab-faq details[hidden] { display: none; }
.ab-faq-none { color: #64748b; margin-top: 1rem; }

/* Testimonials */
.ab-quotes { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
.ab-quote { position: relative; margin: 0; background: #fff; border: 1px solid var(--ab-line); border-radius: 24px; padding: 1.6rem; display: flex; flex-direction: column; height: 100%; transition: transform .2s, box-shadow .2s; }
.ab-quote:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(37,99,235,.15); }
.ab-quote-mark { position: absolute; top: 1.2rem; right: 1.3rem; font-size: 2rem; color: #dbeafe; }
.ab-stars { color: #f59e0b; font-size: .95rem; margin-bottom: .8rem; letter-spacing: 2px; }
.ab-quote blockquote { margin: 0 0 1.2rem; flex: 1; color: var(--ab-ink); font-size: 1.02rem; line-height: 1.65; }
.ab-quote figcaption { display: flex; align-items: center; gap: .8rem; padding-top: 1rem; border-top: 1px solid var(--ab-line); }
.ab-quote figcaption img { width: 3rem; height: 3rem; border-radius: 50%; object-fit: cover; background: #dbeafe; }
.ab-quote figcaption strong { display: block; color: var(--ab-ink); }
.ab-quote figcaption small { color: #64748b; }
@media (min-width: 768px) { .ab-quotes { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .ab-quotes { grid-template-columns: repeat(3, 1fr); } }

/* Track booking */
.ab-narrow { max-width: 820px; }
.ab-booking { background: #fff; border: 1px solid var(--ab-line); border-radius: 24px; padding: 1.5rem; margin-bottom: 1.2rem; box-shadow: 0 14px 34px -22px rgba(37,99,235,.4); }
.ab-booking header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .8rem; margin-bottom: 1.4rem; }
.ab-booking h3 { font-size: 1.2rem; margin-bottom: .2rem; }
.ab-booking header p { margin: 0; color: #64748b; font-size: .88rem; }
.ab-status { align-self: flex-start; border-radius: 999px; padding: .3rem .9rem; font-size: .8rem; font-weight: 700; background: #eff6ff; color: #1d4ed8; }
.ab-status.warn { background: #fef3c7; color: #92400e; }
.ab-status.ok { background: #dcfce7; color: #166534; }
.ab-status.bad { background: #fee2e2; color: #991b1b; }
.ab-track { list-style: none; margin: 0 0 1.2rem; padding: 0; display: grid; gap: 0; }
.ab-track li { position: relative; display: flex; gap: .9rem; padding-bottom: 1.3rem; }
.ab-track li:last-child { padding-bottom: 0; }
.ab-track li::before { content: ""; position: absolute; left: 1.05rem; top: 2.1rem; bottom: 0; width: 2px; background: var(--ab-line); }
.ab-track li:last-child::before { display: none; }
.ab-track li.done::before { background: #2563eb; }
.ab-track .dot { flex: 0 0 2.1rem; width: 2.1rem; height: 2.1rem; border-radius: 50%; border: 2px solid var(--ab-line); background: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: .8rem; color: transparent; }
.ab-track li.done .dot { background: #2563eb; border-color: #2563eb; color: #fff; }
.ab-track li.active .dot { border-color: #2563eb; box-shadow: 0 0 0 5px rgba(37,99,235,.18); }
.ab-track li.bad .dot { background: #dc2626; border-color: #dc2626; color: #fff; }
.ab-track strong { display: block; color: var(--ab-ink); }
.ab-track small { color: #64748b; }
.ab-booking footer { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--ab-line); padding-top: 1rem; color: #64748b; }
.ab-booking footer strong { color: #1d4ed8; font-size: 1.2rem; }

/* Legal pages */
.ab-legal { display: grid; grid-template-columns: 1fr; gap: 1.5rem; align-items: start; }
.ab-legal-box { background: #fff; border: 1px solid var(--ab-line); border-radius: 20px; padding: 1.2rem 1.3rem; margin-bottom: 1rem; }
.ab-legal-box h4 { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: #1d4ed8; margin-bottom: .8rem; }
.ab-legal-box ol, .ab-legal-box ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .1rem; }
.ab-legal-box a { display: block; padding: .45rem .6rem; border-radius: 10px; color: #334155; text-decoration: none; font-size: .92rem; }
.ab-legal-box a:hover, .ab-legal-box a.on { background: #eff6ff; color: #1d4ed8; font-weight: 600; }
.ab-legal-box a i { width: 1.2rem; color: #2563eb; }
.ab-legal-body { background: #fff; border: 1px solid var(--ab-line); border-radius: 24px; padding: 1.5rem; min-width: 0; overflow-wrap: anywhere; line-height: 1.75; color: #334155; }
.ab-legal-body h2 { font-size: 1.4rem; margin: 2rem 0 .8rem; padding-left: .8rem; border-left: 4px solid #2563eb; color: var(--ab-ink); scroll-margin-top: 6rem; }
.ab-legal-body h2:first-child { margin-top: 0; }
.ab-legal-body h3 { font-size: 1.1rem; margin: 1.4rem 0 .5rem; color: var(--ab-ink); }
.ab-legal-body a { color: #1d4ed8; }
.ab-legal-body ul, .ab-legal-body ol { padding-left: 1.3rem; }
.ab-legal-body li { margin-bottom: .35rem; }
.ab-legal-body table { width: 100%; display: block; overflow-x: auto; }
@media (min-width: 992px) {
    .ab-legal { grid-template-columns: 280px 1fr; }
    .ab-legal-side { position: sticky; top: 6.5rem; }
    .ab-legal-body { padding: 2.4rem; }
}

/* Umrah / Hajj packages */
.ab-pkgs { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
.ab-pkg { position: relative; background: #fff; border: 1px solid var(--ab-line); border-radius: 24px; padding: 1.8rem 1.4rem; text-align: center; display: flex; flex-direction: column; align-items: center; height: 100%; transition: transform .2s, box-shadow .2s; }
.ab-pkg:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(37,99,235,.15); }
.ab-pkg.featured { border-color: #2563eb; box-shadow: 0 18px 40px -22px rgba(37,99,235,.6); }
.ab-pkg > .ab-tag { position: absolute; top: -.7rem; }
.ab-pkg h3 { font-size: 1.15rem; margin: .9rem 0 .3rem; }
.ab-pkg-meta { color: #64748b; font-size: .9rem; margin-bottom: .6rem; }
.ab-pkg-price { font-size: 1.8rem; font-weight: 800; color: #1d4ed8; margin-bottom: 1.1rem; }
.ab-pkg .ab-btn { margin-top: auto; }
@media (min-width: 768px) { .ab-pkgs { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .ab-pkgs { grid-template-columns: repeat(4, 1fr); } }

/* Hajj */
.ab-trust { background: #fff; border-bottom: 1px solid var(--ab-line); padding: 1.1rem 0; }
.ab-usps { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem 1.2rem; }
.ab-usps span { display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; font-size: .9rem; color: #334155; }
.ab-usps i { color: #2563eb; }
.ab-pkg-left { text-align: left; align-items: stretch; padding: 1.8rem 1.6rem; }
.ab-pkg-left > .ab-tag { position: static; align-self: flex-start; margin-bottom: .6rem; }
.ab-pkg-left h3 { margin-top: 0; }
.ab-pkg-price small { font-size: .85rem; font-weight: 600; color: #64748b; }
.ab-pkg-list { list-style: none; padding: 0; margin: 0 0 1.4rem; display: grid; gap: .6rem; font-size: .92rem; color: #334155; }
.ab-pkg-list i { color: #2563eb; margin-right: .5rem; }
@media (min-width: 992px) { .ab-pkgs.ab-pkgs-3 { grid-template-columns: repeat(3, 1fr); } }

/* Visa services */
.ab-visa-filter { display: grid; gap: .9rem; background: #fff; border: 1px solid var(--ab-line); border-radius: 18px; padding: 1.2rem; margin: 0 auto 2rem; max-width: 820px; box-shadow: 0 12px 34px -18px rgba(37,99,235,.35); align-items: end; }
.ab-visa-filter label { display: block; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #64748b; margin-bottom: .35rem; }
@media (min-width: 768px) { .ab-visa-filter { grid-template-columns: 1fr 1fr auto; } }
.ab-visa-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: .6rem; }
.ab-visa-top .ab-tag { position: static; margin: 0; }
.ab-visa-flag { font-size: 2rem; line-height: 1; }
.ab-visa-note { font-size: .8rem; color: #64748b; margin: -.6rem 0 1rem; }
.ab-pkg-left .mt-auto { margin-top: auto; text-align: center; justify-content: center; }

/* Transport */
@media (min-width: 992px) { .ab-visa-filter.ab-transport-form { grid-template-columns: repeat(4, 1fr) auto; max-width: 1000px; } }
@media (min-width: 768px) and (max-width: 991px) { .ab-visa-filter.ab-transport-form { grid-template-columns: 1fr 1fr; } }

/* Hotels */
.ab-hotel { padding: 0 0 1.5rem; overflow: hidden; }
.ab-hotel > :not(.ab-hotel-media) { margin-left: 1.4rem; margin-right: 1.4rem; }
.ab-hotel-media { position: relative; aspect-ratio: 16/10; overflow: hidden; margin-bottom: 1rem; }
.ab-hotel-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ab-hotel-stars { position: absolute; top: .8rem; left: .8rem; background: #2563eb; color: #fff; border-radius: 999px; padding: .25rem .65rem; font-size: .72rem; display: inline-flex; gap: .15rem; }
.ab-hotel .mt-auto { margin-top: auto; }
@media (min-width: 768px) { .ab-visa-filter.ab-hotel-form { grid-template-columns: 2fr 1fr auto; } }

/* Flights */
.ab-flight-box { max-width: 1000px; margin: 0 auto; }
.ab-visa-filter.ab-flight-form { max-width: none; margin-bottom: 0; }
@media (min-width: 992px) { .ab-visa-filter.ab-flight-form { grid-template-columns: repeat(4, 1fr) auto; } }
@media (min-width: 768px) and (max-width: 991px) { .ab-visa-filter.ab-flight-form { grid-template-columns: 1fr 1fr; } }
.ab-flight-form .select2-container { width: 100% !important; }
.ab-flight-hint { grid-column: 1 / -1; color: #64748b; }
.ab-flight-route { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-weight: 700; font-size: 1.05rem; margin-bottom: .3rem; }
.ab-flight-route i { color: #2563eb; }
#liveFlightResults .card { border-radius: 14px; }

/* Tour packages */
@media (min-width: 992px) { .ab-visa-filter.ab-pkg-filter { grid-template-columns: 2fr 1.2fr 1.2fr auto; max-width: 1000px; } }
@media (min-width: 768px) and (max-width: 991px) { .ab-visa-filter.ab-pkg-filter { grid-template-columns: 1fr 1fr; } }
.ab-result-count { text-align: center; color: #64748b; margin: -.8rem 0 1.4rem; font-size: .92rem; }
.ab-result-count a { color: #2563eb; font-weight: 600; }

/* Book a service */
.ab-hero-slim { padding-bottom: 2.5rem; }
.ab-head-left { text-align: left; max-width: 720px; }
.ab-book .ab-side-card { background: #fff; border: 1px solid var(--ab-line); border-radius: 18px; padding: 1.2rem; margin-bottom: 1.2rem; box-shadow: 0 12px 34px -20px rgba(37,99,235,.3); }
.ab-book .ab-side-title { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: #64748b; margin: .2rem .5rem .7rem; }
.ab-book .ab-side-link { display: flex; align-items: center; gap: .7rem; padding: .65rem .8rem; border-radius: 12px; color: #1e293b; font-weight: 600; font-size: .93rem; text-decoration: none; }
.ab-book .ab-side-link i { width: 1.2rem; text-align: center; color: #2563eb; }
.ab-book .ab-side-link:hover { background: #eff6ff; }
.ab-book .ab-side-link.active { background: #2563eb; color: #fff; }
.ab-book .ab-side-link.active i { color: #fff; }
.ab-book .ab-side-card h5 { font-size: 1rem; }
.ab-book .ab-side-card h5 i { color: #2563eb; }
.ab-book .ab-side-why { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; font-size: .9rem; color: #475569; }
.ab-book .ab-side-why i { color: #2563eb; margin-right: .5rem; }
.ab-book .enquiry-card.ab-form { background: #fff; border: 1px solid var(--ab-line); border-radius: 22px; padding: 1.6rem; box-shadow: 0 20px 50px -28px rgba(37,99,235,.4); }
@media (min-width: 768px) { .ab-book .enquiry-card.ab-form { padding: 2.2rem; } }
.ab-book .ab-form .form-select, .ab-book .ab-form select.form-control { border-radius: 14px; padding: .8rem 1rem; border-color: var(--ab-line); }
.ab-book .ab-form .btn-brand { background: #2563eb; border: 0; border-radius: 999px; padding: .85rem 1.8rem; font-weight: 700; color: #fff; }
.ab-book .ab-form .btn-brand:hover { background: #1d4ed8; }
@media (min-width: 992px) { .ab-book .col-lg-4 > .ab-side-card:first-child { position: sticky; top: 100px; } }

/* ---- Package detail (.pd) ---- */
.pd .pd-title{font-size:clamp(2rem,4.2vw,3.1rem);line-height:1.1;font-weight:800;letter-spacing:-.025em;color:#0f172a;margin:.9rem 0 1rem}
.pd .pd-meta{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.1rem}
.pd .pd-meta span{display:inline-flex;align-items:center;gap:.4rem;background:#fff;border:1px solid #dbeafe;color:#1d4ed8;border-radius:999px;padding:.35rem .85rem;font-size:.85rem;font-weight:600}
.pd .pd-stars{color:#f59e0b}
.pd .pd-stars span,.pd .pd-rating span{color:#64748b;font-size:.85rem}
.pd .pd-price-row{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;margin-top:1.4rem}
.pd .pd-price-row small,.pd .pd-card-head small{display:block;color:#64748b;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.pd .pd-price{font-size:2rem;font-weight:800;color:#1d4ed8;line-height:1.1}
.pd .pd-price span{font-size:.9rem;color:#64748b;font-weight:500}
.pd .pd-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:#fff;border:1px solid #dbeafe;border-radius:22px;box-shadow:0 20px 40px -24px rgba(37,99,235,.35);margin-top:-34px;position:relative;z-index:2}
.pd .pd-facts>div{display:flex;align-items:center;gap:.9rem;padding:1.2rem 1.4rem;border-right:1px solid #e8f0fe}
.pd .pd-facts>div:last-child{border:0}
.pd .pd-facts i{width:44px;height:44px;border-radius:14px;background:#dbeafe;color:#2563eb;display:grid;place-items:center;flex:none}
.pd .pd-facts small{display:block;color:#64748b;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}
.pd .pd-facts b{color:#0f172a;font-size:.95rem}
.pd .pd-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:2.5rem;align-items:start}
.pd .pd-block{margin-bottom:2.6rem}
.pd .pd-block .ab-title{margin-bottom:1rem}
.pd .pd-text{font-size:1.06rem;line-height:1.8;color:#475569}
.pd .pd-h{font-size:1.45rem;font-weight:800;color:#0f172a;margin-bottom:1.2rem;letter-spacing:-.01em}
.pd .pd-inc{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.pd .pd-inc li{display:flex;gap:.7rem;align-items:flex-start;background:#f5f9ff;border:1px solid #e0ecff;border-radius:14px;padding:.8rem 1rem;color:#334155;font-size:.95rem}
.pd .pd-inc i{color:#2563eb;margin-top:.2rem}
.pd .pd-exc li{background:#fff;border-color:#e5e7eb}
.pd .pd-exc i{color:#94a3b8}
.pd .pd-days{position:relative}
.pd .pd-days::before{content:"";position:absolute;left:31px;top:10px;bottom:10px;width:2px;background:#dbeafe}
.pd .pd-day{display:flex;gap:1rem;margin-bottom:.9rem;position:relative}
.pd .pd-day-num{flex:none;width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:800;font-size:1.3rem;line-height:1;box-shadow:0 8px 18px -6px rgba(37,99,235,.6);border:4px solid #fff;z-index:1}
.pd .pd-day-num small{font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;opacity:.85;margin-bottom:2px}
.pd .pd-day-card{flex:1;background:#fff;border:1px solid #dbeafe;border-radius:18px;padding:0 1.2rem;align-self:center}
.pd .pd-day-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;background:none;border:0;padding:1rem 0;font-weight:700;color:#0f172a;text-align:left;font-size:1rem}
.pd .pd-day-btn i{color:#2563eb;transition:.2s;font-size:.8rem}
.pd .pd-day-btn:not(.collapsed) i{transform:rotate(180deg)}
.pd .pd-day-card p{color:#475569;margin:0 0 1rem;line-height:1.7}
.pd .pd-guide{display:flex;gap:1.1rem;background:#f5f9ff;border:1px solid #dbeafe;border-radius:20px;padding:1.3rem}
.pd .pd-guide img{width:72px;height:72px;border-radius:50%;object-fit:cover}
.pd .pd-guide p{margin:.6rem 0 0;color:#475569}
.pd .pd-sub{color:#64748b;font-size:.88rem}
.pd .pd-side{position:sticky;top:96px}
.pd .pd-card{background:#fff;border:1px solid #dbeafe;border-radius:26px;padding:1.6rem;box-shadow:0 30px 60px -30px rgba(37,99,235,.45)}
.pd .pd-card-head{padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px dashed #cfe0fb}
.pd .pd-card .form-control{border-radius:12px;border:1px solid #dbe5f5;background:#f8fbff;padding:.65rem .9rem}
.pd .pd-card .form-control:focus{border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.12);background:#fff}
.pd .pd-card .form-label{font-size:.82rem;font-weight:600;color:#334155;margin-bottom:.25rem}
.pd .pd-card .btn-brand{background:linear-gradient(135deg,#2563eb,#1d4ed8);border:0;border-radius:999px;padding:.85rem;font-weight:700;color:#fff;box-shadow:0 12px 24px -10px rgba(37,99,235,.7)}
.pd .pd-card .btn-brand:hover{transform:translateY(-1px)}
.pd .pd-card .price-size-md{color:#1d4ed8;font-size:1.3rem}
.pd .pd-ask{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:.7rem;padding:.7rem;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-weight:700;text-decoration:none}
.pd .pd-ask:hover{background:#dbeafe}
.pd .pd-assure{list-style:none;padding:0;margin:1.1rem 0 0;display:grid;gap:.5rem;color:#475569;font-size:.88rem}
.pd .pd-assure i{color:#2563eb;width:1.2rem}
.pd .pd-reviews{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}
.pd .pd-review{background:#fff;border:1px solid #dbeafe;border-radius:20px;padding:1.4rem}
.pd .pd-review-top{display:flex;justify-content:space-between;gap:.8rem;flex-wrap:wrap}
.pd .pd-verified{color:#16a34a;font-size:.8rem;margin-left:.4rem}
.pd .pd-review h4{font-size:1rem;margin:.8rem 0 .3rem;font-weight:700}
.pd .pd-review p{color:#475569;margin:.5rem 0}
.pd .pd-review small{color:#94a3b8}
.pd .pd-reply{border-left:3px solid #2563eb;padding-left:.9rem;margin:.8rem 0;font-size:.9rem}
@media(max-width:991px){.pd .pd-layout{grid-template-columns:1fr}.pd .pd-side{position:static}.pd .pd-facts{grid-template-columns:1fr 1fr}.pd .pd-facts>div:nth-child(2){border-right:0}.pd .pd-facts>div:nth-child(-n+2){border-bottom:1px solid #e8f0fe}}
@media(max-width:640px){.pd .pd-inc,.pd .pd-reviews{grid-template-columns:1fr}.pd .pd-facts{grid-template-columns:1fr;margin-top:-20px}.pd .pd-facts>div{border-right:0;border-bottom:1px solid #e8f0fe}.pd .pd-facts>div:last-child{border:0}.pd .pd-day-num{width:52px;height:52px;font-size:1.1rem}.pd .pd-days::before{left:25px}}
