/* Kariger.pk — front-end styles for the plugin's components.
   Page layout, colours and typography live in Elementor so they stay editable there. */
:root {
	--k-purple: #5B48F1;
	--k-purple-lt: #7161FF;
	--k-orange: #E76D2C;
	--k-orange-dk: #CF5A1C;
	--k-navy: #0D1B35;
	--k-deep: #11387B;
	--k-sky: #0096DF;
	--k-light: #E7EEF8;
	--k-light2: #F4F5F9;
	--k-text: #5F6B7A;
	--k-wa: #25D366;
	--k-topbar: 38px;
}
html { scroll-behavior: smooth; }
.k-ico { width: 1em; height: 1em; display: inline-block; vertical-align: -0.125em; flex: none; }

/* ---------- Sticky header (top bar scrolls away, main bar stays) ---------- */
.elementor-location-header,
.kariger-site-header { position: sticky; top: 0; z-index: 999; transition: box-shadow .25s ease; }
@media (min-width: 1025px) {
	.elementor-location-header,
	.kariger-site-header { top: calc(-1 * var(--k-topbar)); }
	.admin-bar .elementor-location-header,
	.admin-bar .kariger-site-header { top: calc(32px - var(--k-topbar)); }
}
.is-scrolled.elementor-location-header .kariger-header-main,
.is-scrolled.kariger-site-header .kariger-header-main { box-shadow: 0 8px 30px rgba(13, 27, 53, .12); }
.kariger-topbar .elementor-icon-list-item a { transition: color .2s; }
.kariger-topbar .elementor-icon-list-item a:hover { color: var(--k-orange); }

/* ---------- Buttons ---------- */
.kariger-btn-row { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; }
.kariger-pill {
	display: inline-flex; align-items: center; gap: 8px; padding: 16px 26px; border-radius: 40px;
	background: var(--k-orange); color: #fff !important; text-decoration: none !important;
	font: 600 14px/1 Inter, Arial, sans-serif; text-transform: uppercase; letter-spacing: .3px;
	transition: background .2s, transform .2s;
}
.kariger-pill:hover { background: var(--k-orange-dk); transform: translateY(-2px); }
.kariger-pill--wa { background: var(--k-wa); }
.kariger-pill--wa:hover { background: #1DA851; }

/* ---------- Service cards ---------- */
.kariger-service-card > .elementor-widget-wrap { position: relative; padding: 0 !important; overflow: hidden; }
.kariger-service-card .elementor-widget-html { width: 100%; margin: 0 !important; }
.kariger-card-link {
	display: block; padding: 18px 14px 16px; text-align: center; text-decoration: none !important;
	background: rgba(37, 49, 79, .78); color: #fff !important; transition: background .3s;
}
.kariger-card-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.kariger-card-title { display: block; font: 700 28px/1.2 'Plus Jakarta Sans', Arial, sans-serif; color: #fff; }
.kariger-card-sub { display: block; margin-top: 6px; font: 600 13px/1 Inter, Arial, sans-serif; letter-spacing: .5px; text-transform: uppercase; color: #fff; }
.kariger-service-card:hover .kariger-card-link,
.kariger-card-link:focus-visible { background: rgba(231, 109, 44, .92); }
@media (max-width: 1024px) { .kariger-card-title { font-size: 21px; } }
@media (max-width: 767px) { .kariger-card-title { font-size: 24px; } }

/* ---------- "How it works" steps ---------- */
.kariger-steps {
	background: linear-gradient(160deg, #5849EC 0%, #11387B 100%); border-radius: 8px; padding: 8px 30px;
	box-shadow: 0 24px 60px rgba(17, 56, 123, .35); margin-top: 10px;
}
.kariger-step { padding: 24px 0; border-bottom: 1px solid rgba(255, 255, 255, .16); }
.kariger-step:last-child { border-bottom: 0; }
.kariger-step-head { display: flex; align-items: center; gap: 16px; margin-bottom: 12px; }
.kariger-step-num {
	flex: none; width: 46px; height: 46px; display: grid; place-items: center; border-radius: 4px;
	background: var(--k-orange); color: #fff; font: 700 20px/1 'Plus Jakarta Sans', Arial, sans-serif;
}
.kariger-step h4 { margin: 0; color: #fff; font: 700 20px/1.3 'Plus Jakarta Sans', Arial, sans-serif; }
.kariger-step p { margin: 0; color: #D5DBF5; font-size: 14px; line-height: 1.65; }
.kariger-steps--light { background: var(--k-light2); box-shadow: none; border: 1px solid #E3E8F2; }
.kariger-steps--light .kariger-step { border-color: #E3E8F2; }
.kariger-steps--light h4 { color: var(--k-navy); }
.kariger-steps--light p { color: var(--k-text); }

/* ---------- Testimonials ---------- */
.kariger-quote-top { display: flex; justify-content: space-between; align-items: center; }
.kariger-quote-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 4px; background: var(--k-light2); color: var(--k-orange); font-size: 20px; }
.kariger-stars { color: var(--k-orange); letter-spacing: 3px; font-size: 17px; }
.kariger-author { display: flex; align-items: center; gap: 14px; }
.kariger-avatar {
	width: 56px; height: 56px; flex: none; display: grid; place-items: center; border-radius: 50%;
	background: linear-gradient(135deg, var(--k-purple), var(--k-deep)); color: #fff;
	font: 700 17px/1 'Plus Jakarta Sans', Arial, sans-serif; border: 3px solid #fff; box-shadow: 0 6px 18px rgba(13, 27, 53, .18);
}
.kariger-author strong { font: 700 13.5px/1.3 Inter, Arial, sans-serif; letter-spacing: .4px; text-transform: uppercase; color: var(--k-navy); }

/* ---------- Page banner breadcrumbs ---------- */
.kariger-crumbs { text-transform: uppercase; letter-spacing: .5px; margin: 0; }
.kariger-crumbs a { color: #fff; text-decoration: none; }
.kariger-crumbs a:hover { color: var(--k-orange); }
.kariger-crumbs span { color: var(--k-orange); margin: 0 6px; }

/* ---------- Misc components ---------- */
.kariger-brands .swiper-slide { display: flex; align-items: center; justify-content: center; }
.kariger-brands .swiper-slide-image { max-height: 80px; width: auto !important; object-fit: contain; transition: transform .25s; }
.kariger-brands .swiper-slide-image:hover { transform: scale(1.06); }
.kariger-map iframe { border-radius: 8px; display: block; }
.kariger-prose h2 { color: var(--k-navy); font: 700 32px/1.25 'Plus Jakarta Sans', Arial, sans-serif; margin: 0 0 18px; }
.kariger-prose h3 { color: var(--k-navy); font: 700 21px/1.3 'Plus Jakarta Sans', Arial, sans-serif; margin: 30px 0 10px; }
.kariger-prose ul { padding-left: 20px; }
.kariger-footer-bottom a { color: #C9D2E3; text-decoration: none; }
.kariger-footer-bottom a:hover { color: var(--k-orange); }
.kariger-site-footer .elementor-icon-list-item a:hover .elementor-icon-list-text,
.elementor-location-footer .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--k-orange); }
@media (min-width: 1025px) {
	.kariger-sticky-side > .elementor-widget-wrap { position: sticky; top: 110px; align-self: flex-start; }
}

/* ---------- Floating WhatsApp & mobile call bar ---------- */
.kariger-fab {
	position: fixed; right: 22px; bottom: 22px; z-index: 9998; width: 60px; height: 60px; border-radius: 50%;
	display: grid; place-items: center; background: var(--k-wa); color: #fff !important; font-size: 30px;
	box-shadow: 0 10px 30px rgba(37, 211, 102, .45); animation: kariger-pulse 2.4s ease-out infinite; transition: transform .2s;
}
.kariger-fab:hover { transform: scale(1.08); }
@keyframes kariger-pulse {
	0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .55), 0 10px 30px rgba(37, 211, 102, .45); }
	70% { box-shadow: 0 0 0 18px rgba(37, 211, 102, 0), 0 10px 30px rgba(37, 211, 102, .45); }
	100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0), 0 10px 30px rgba(37, 211, 102, .45); }
}
.kariger-mobile-bar { display: none; }
@media (max-width: 767px) {
	.kariger-fab { display: none; }
	.kariger-mobile-bar {
		display: grid; grid-template-columns: 1fr 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 9998;
		box-shadow: 0 -6px 24px rgba(13, 27, 53, .18); padding-bottom: env(safe-area-inset-bottom);
		background: var(--k-navy);
	}
	.kariger-mobile-bar a {
		display: flex; align-items: center; justify-content: center; gap: 8px; padding: 15px 10px; color: #fff !important;
		text-decoration: none; font: 700 15px/1 Inter, Arial, sans-serif; text-transform: uppercase; letter-spacing: .3px;
	}
	.kariger-mb-call { background: var(--k-orange); }
	.kariger-mb-wa { background: var(--k-wa); }
	body { padding-bottom: 50px; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.kariger-fab { animation: none; }
	.kariger-post-card, .kariger-pill { transition: none; }
}

/* =====================  Kariger.pk premium layer (v2)  ===================== */
:root { --k2-ink: #0B1530; --k2-muted: #5B667A; --k2-line: #E6E9F2; --k2-soft: #F6F7FB; --k2-purple: #5B48F1; --k2-orange: #E76D2C; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Eyebrow labels */
.k2-eyebrow-wrap.k2-al-center { text-align: center; }
.k2-eyebrow {
	display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px;
	background: color-mix(in srgb, var(--k2c, #5B48F1) 11%, transparent); color: var(--k2c, #5B48F1);
	font: 700 12.5px/1 Inter, Arial, sans-serif; letter-spacing: 1.2px; text-transform: uppercase;
}
.k2-eyebrow::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

/* Hero */
.k2-hero { overflow: hidden; }
.k2-badge {
	display: inline-flex; align-items: center; gap: 8px; margin-bottom: 22px; padding: 9px 16px; border-radius: 999px;
	background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); backdrop-filter: blur(6px);
	color: #FFC08F; font: 500 14px/1 Inter, Arial, sans-serif; letter-spacing: 1px;
}
.k2-badge b { color: #fff; font-weight: 600; letter-spacing: 0; }
.k2-hl { color: #FF8A4C; }
.k2-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0 32px; }
.k2-chip {
	display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px; border-radius: 999px;
	background: #F1F3F9; color: var(--k2-ink); font: 500 14.5px/1 Inter, Arial, sans-serif;
}
.k2-chips.is-dark .k2-chip { background: rgba(255,255,255,.08); color: #fff; border: 1px solid rgba(255,255,255,.12); }
.k2-ck { width: 17px; height: 17px; flex: none; color: #34D399; }

/* Buttons */
.k2-btns { display: flex; flex-wrap: wrap; gap: 14px; }
.k2-btns.k2-center { justify-content: center; }
.k2-btns.k2-right { justify-content: flex-end; }
.k2-mt { margin-top: 28px; }
.k2-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 17px 28px; border-radius: 12px;
	font: 600 15.5px/1 Inter, Arial, sans-serif; text-decoration: none !important; border: 1.5px solid transparent;
	transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease;
}
.k2-btn:hover { transform: translateY(-2px); }
.k2-btn .k-ico { width: 1.05em; height: 1.05em; }
.k2-btn--primary { background: var(--k2-orange); color: #fff !important; box-shadow: 0 12px 28px rgba(231,109,44,.35); }
.k2-btn--primary:hover { background: #CF5A1C; box-shadow: 0 16px 34px rgba(231,109,44,.45); }
.k2-btn--ghost { background: rgba(255,255,255,.08); color: #fff !important; border-color: rgba(255,255,255,.3); }
.k2-btn--ghost:hover { background: #fff; color: var(--k2-ink) !important; }
.k2-btn--dark { background: var(--k2-ink); color: #fff !important; }
.k2-btn--dark:hover { background: var(--k2-purple); }
.k2-btn--outline { color: var(--k2-ink) !important; border-color: #C9CFDD; background: #fff; }
.k2-btn--outline:hover { background: var(--k2-ink); border-color: var(--k2-ink); color: #fff !important; }
.k2-btn--text { color: var(--k2-ink) !important; padding-left: 8px; padding-right: 8px; }
.k2-btn--text .k-ico { color: var(--k2-orange); }
.k2-btn--light { background: #fff; color: var(--k2-ink) !important; }
.k2-btn--light:hover { box-shadow: 0 12px 28px rgba(0,0,0,.2); }
.k2-btn--wa { background: #25D366; color: #fff !important; box-shadow: 0 12px 28px rgba(37,211,102,.3); }
.k2-btn--wa:hover { background: #1DA851; }

/* Cards */
.k2-card > .elementor-widget-wrap {
	border: 1px solid #EEF0F6; box-shadow: 0 1px 2px rgba(11,21,48,.04), 0 14px 36px rgba(11,21,48,.06);
	transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.k2-card:hover > .elementor-widget-wrap { transform: translateY(-6px); box-shadow: 0 2px 4px rgba(11,21,48,.04), 0 26px 60px rgba(11,21,48,.12); }
.k2-card--dark > .elementor-widget-wrap { box-shadow: none; }
.k2-card--dark:hover > .elementor-widget-wrap { border-color: rgba(255,255,255,.28) !important; box-shadow: none; }
.k2-card .elementor-icon-box-title { margin-top: 4px; }

/* Booking card */
.k2-form-card > .elementor-widget-wrap { border: 0; box-shadow: 0 40px 90px rgba(0,0,0,.35); }
.k2-form-card:hover > .elementor-widget-wrap { transform: none; }
.k2-form-card--light > .elementor-widget-wrap { border: 1px solid var(--k2-line); box-shadow: 0 30px 70px rgba(11,21,48,.12); }
.k2-form-head {
	display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; border-radius: 999px;
	background: #ECFDF3; color: #15803D; font: 600 13px/1 Inter, Arial, sans-serif;
}
.k2-live { width: 8px; height: 8px; border-radius: 50%; background: #22C55E; box-shadow: 0 0 0 0 rgba(34,197,94,.6); animation: k2-pulse 1.8s infinite; }
@keyframes k2-pulse { 70% { box-shadow: 0 0 0 8px rgba(34,197,94,0); } 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); } }
.k2-form-foot { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0; color: var(--k2-muted); font: 500 13.5px/1.4 Inter, Arial, sans-serif; }
.k2-form-foot .k2-ck { color: #16A34A; width: 15px; height: 15px; }
.k2-form-card .elementor-field-textual { min-height: 52px; font-size: 15px; }
.k2-form-card .elementor-field-textual:focus { border-color: var(--k2-purple) !important; box-shadow: 0 0 0 4px rgba(91,72,241,.12); background: #fff !important; }
.k2-form-card .elementor-button { min-height: 54px; box-shadow: 0 12px 28px rgba(231,109,44,.35); }

/* Stats */
.k2-stats .elementor-counter-number-wrapper { justify-content: center; font-weight: 800; letter-spacing: -1px; }
.k2-stats .elementor-counter-number-suffix { color: var(--k2-orange); }
.k2-stats .elementor-counter-title { text-transform: none !important; letter-spacing: 0 !important; font-size: 14.5px !important; }
@media (min-width: 768px) { .k2-stat + .k2-stat > .elementor-widget-wrap { border-left: 1px solid var(--k2-line); } }

/* About */
.k2-img img { border-radius: 20px; box-shadow: 0 30px 60px rgba(11,21,48,.16); width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; }
.k2-about-media > .elementor-widget-wrap { position: relative; }
.k2-about-media .elementor-widget-html { position: absolute; right: 8px; bottom: -28px; width: auto; margin: 0 !important; }
.k2-float { background: #fff; border-radius: 18px; padding: 18px 24px; box-shadow: 0 24px 50px rgba(11,21,48,.16); border: 1px solid #EEF0F6; }
.k2-float b { display: block; font: 800 30px/1 'Plus Jakarta Sans', Arial, sans-serif; color: var(--k2-purple); margin-bottom: 6px; }
.k2-float span { font: 500 13.5px/1.4 Inter, Arial, sans-serif; color: var(--k2-muted); }
.k2-check { list-style: none; margin: 26px 0 0; padding: 0; display: grid; gap: 14px 22px; }
.k2-check.k2-cols-2 { grid-template-columns: 1fr 1fr; }
.k2-check li { display: flex; gap: 10px; align-items: flex-start; font: 500 15.5px/1.45 Inter, Arial, sans-serif; color: var(--k2-ink); }
.k2-check .k2-ck { color: #16A34A; width: 20px; height: 20px; margin-top: 1px; }

/* Service cards */
.k2-svc > .elementor-widget-wrap { overflow: hidden; align-content: flex-start; }
.k2-svc .elementor-widget { margin-bottom: 0 !important; margin-block-end: 0 !important; }
.k2-svc-img { overflow: hidden; }
.k2-svc-img img { display: block; width: 100%; height: 220px; object-fit: cover; border-radius: 0 !important; transition: transform .6s ease; }
.k2-svc:hover .k2-svc-img img { transform: scale(1.06); }
.k2-svc-body { padding: 24px 24px 28px; }
.k2-svc-body h3 { margin: 0 0 8px; font: 700 20px/1.3 'Plus Jakarta Sans', Arial, sans-serif; letter-spacing: -.2px; }
.k2-svc-body h3 a { color: var(--k2-ink); text-decoration: none; }
.k2-svc-body p { margin: 0 0 16px; color: var(--k2-muted); font: 400 15px/1.6 Inter, Arial, sans-serif; }
.k2-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; }
.k2-tags span { padding: 5px 11px; border-radius: 999px; background: #F1F0FF; color: var(--k2-purple); font: 600 12.5px/1.2 Inter, Arial, sans-serif; }
.k2-more { color: var(--k2-orange); font: 600 15px/1 Inter, Arial, sans-serif; text-decoration: none !important; }
.k2-more span { display: inline-block; transition: transform .25s; }
.k2-svc:hover .k2-more span { transform: translateX(5px); }

/* Steps */
.k2-num { display: block; margin-bottom: 18px; font: 800 46px/1 'Plus Jakarta Sans', Arial, sans-serif; color: #FF9A62; letter-spacing: -1px; }
.k2-step h3 { margin: 0 0 10px; color: #fff; font: 700 21px/1.3 'Plus Jakarta Sans', Arial, sans-serif; }
.k2-step p { margin: 0; color: #AEB6CC; font: 400 15.5px/1.65 Inter, Arial, sans-serif; }

/* Reviews */
.k2-stars { color: #F59E0B; letter-spacing: 3px; font-size: 18px; }
.k2-review h3 { margin: 12px 0 10px; color: var(--k2-ink); font: 700 19px/1.3 'Plus Jakarta Sans', Arial, sans-serif; }
.k2-review p { margin: 0; color: var(--k2-muted); font: 400 15.5px/1.7 Inter, Arial, sans-serif; }
.k2-person { display: flex; align-items: center; gap: 12px; margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--k2-line); }
.k2-person b { display: block; color: var(--k2-ink); font: 700 15px/1.3 Inter, Arial, sans-serif; }
.k2-person small { color: var(--k2-muted); font-size: 13px; }

/* FAQ accordion */
.k2-faq .elementor-accordion-item { border: 1px solid var(--k2-line) !important; border-radius: 14px; margin-bottom: 12px; overflow: hidden; background: #fff; }
.k2-faq .elementor-accordion-item + .elementor-accordion-item { border-top: 1px solid var(--k2-line) !important; }
.k2-faq .elementor-tab-title { padding: 20px 24px !important; }
.k2-faq .elementor-tab-content { border-top: 0 !important; color: var(--k2-muted); }
.k2-faq .elementor-tab-title.elementor-active { background: #F7F6FF !important; }

/* CTA banner */
.k2-cta { overflow: hidden; }
.k2-cta::after { content: ""; position: absolute; width: 460px; height: 460px; right: -140px; top: -200px; border-radius: 50%; background: rgba(255,255,255,.08); pointer-events: none; }
.k2-cta::before { content: ""; position: absolute; width: 260px; height: 260px; left: -90px; bottom: -150px; border-radius: 50%; background: rgba(255,255,255,.06); pointer-events: none; }
.k2-cta .elementor-container { position: relative; z-index: 1; }

/* Brands */
.k2-brands .swiper-slide-image { max-height: 56px !important; filter: grayscale(1); opacity: .55; transition: filter .3s, opacity .3s; }
.k2-brands .swiper-slide-image:hover { filter: none; opacity: 1; transform: none; }

/* Page banner breadcrumbs */
.k2-crumbs { text-transform: none; letter-spacing: 0; }
.k2-crumbs span { color: #8F96B8 !important; margin: 0 8px; }

/* Blog cards (Elementor Pro Posts / Cards skin) */
.elementor-posts--skin-cards .elementor-post__card { border-radius: 18px !important; border: 1px solid #EEF0F6 !important; box-shadow: 0 14px 36px rgba(11,21,48,.06) !important; transition: transform .35s, box-shadow .35s; }
.elementor-posts--skin-cards .elementor-post__card:hover { transform: translateY(-6px); box-shadow: 0 26px 60px rgba(11,21,48,.12) !important; }
.elementor-posts--skin-cards .elementor-post__title { font-family: 'Plus Jakarta Sans', Arial, sans-serif !important; letter-spacing: -.2px; }
.elementor-posts--skin-cards .elementor-post__badge, .elementor-posts--skin-cards .elementor-post__avatar { display: none; }
.kariger-post-card { border-radius: 18px; }

/* Header polish */
.kariger-header-main > .elementor-container { min-height: 64px; }
.kariger-header-main .elementor-button { border-radius: 12px !important; text-transform: none !important; font-size: 15px !important; }

/* Responsive */
@media (max-width: 1024px) {
	.k2-btns.k2-right { justify-content: flex-start; margin-top: 24px; }
}
@media (max-width: 767px) {
	.k2-check.k2-cols-2 { grid-template-columns: 1fr; }
	.k2-about-media .elementor-widget-html { position: static; margin-top: -40px !important; padding: 0 16px; }
	.k2-btns .k2-btn { flex: 1 1 100%; }
	.k2-badge { font-size: 12.5px; }
	.k2-svc-img img { height: 200px; }
}

/* Header menu: keep it on one line */
.kariger-header-main .elementor-nav-menu--main .elementor-item { white-space: nowrap; }
.kariger-header-main .elementor-nav-menu--dropdown { border-radius: 10px; }
/* Pro Form inside gradient boxes */
.kariger-pro-form .elementor-field-group { margin-bottom: 0; }
.kariger-pro-form .elementor-field-textual { min-height: 50px; }
.kariger-pro-form .elementor-message { margin-top: 12px; font-size: 14px; }
/* Posts cards */
.elementor-posts--skin-cards .elementor-post__card { box-shadow: 0 10px 40px rgba(13,27,53,.08); border: 0; }
.elementor-posts--skin-cards .elementor-post__read-more { text-transform: uppercase; font-weight: 700; font-size: 13px; }
