/* ==========================================================================
   KrianJourneys Tour Packages — Frontend Styles
   Scoped entirely under .kjtour- / .kj-tour- prefixes so nothing here
   leaks into, or is affected by, the active theme or other plugins.
   ========================================================================== */

:root{
	--kjtour-primary:#0F4C81;    /* Deep Ocean Blue */
	--kjtour-secondary:#14B8A6;  /* Teal */
	--kjtour-accent:#F97316;     /* Sunset Orange */
	--kjtour-text:#1F2937;       /* Charcoal */
	--kjtour-muted:#5b6b7a;
	--kjtour-bg:#f4f8fa;
	--kjtour-white:#ffffff;
	--kjtour-border:#e3edf1;
}

.kjtour-grid, .kjtour-page, .kjtour-archive-wrap,
.kjtour-single-body, .kjtour-archive-body{
	font-family:'Poppins', sans-serif;
	color:var(--kjtour-text);
}

.kjtour-grid *, .kjtour-page *, .kjtour-archive-wrap *{
	box-sizing:border-box;
}

/* ---------------- GRID / CARDS ---------------- */

.kjtour-grid{
	display:grid;
	grid-template-columns:repeat(var(--kjtour-cols, 3), 1fr);
	gap:26px;
	max-width:1280px;
	margin:0 auto;
	padding:10px 0;
}

.kjtour-card{
	background:var(--kjtour-white);
	border:1px solid var(--kjtour-border);
	border-radius:16px;
	overflow:hidden;
	box-shadow:0 8px 22px rgba(15,76,129,0.08);
	transition:0.3s;
	display:flex;
	flex-direction:column;
}

.kjtour-card:hover{
	transform:translateY(-6px);
	box-shadow:0 18px 34px rgba(15,76,129,0.16);
	border-color:var(--kjtour-secondary);
}

.kjtour-card-media{
	position:relative;
	height:200px;
	overflow:hidden;
	background:var(--kjtour-bg);
}

.kjtour-card-media img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	transition:0.4s;
}

.kjtour-card:hover .kjtour-card-media img{
	transform:scale(1.06);
}

.kjtour-card-media-fallback{
	display:flex;
	align-items:center;
	justify-content:center;
	height:100%;
	font-size:34px;
	color:#c8d6de;
}

.kjtour-badge-featured{
	position:absolute;
	top:14px;
	right:14px;
	background:var(--kjtour-accent);
	color:#fff;
	font-size:11.5px;
	font-weight:700;
	padding:6px 12px;
	border-radius:20px;
	display:flex;
	align-items:center;
	gap:5px;
	box-shadow:0 4px 10px rgba(249,115,22,0.35);
}

.kjtour-card-body{
	padding:22px 22px 24px;
	display:flex;
	flex-direction:column;
	flex:1;
}

.kjtour-card-location{
	font-size:12.5px;
	font-weight:600;
	color:var(--kjtour-secondary);
	display:flex;
	align-items:center;
	gap:6px;
	margin-bottom:8px;
}

.kjtour-card-title{
	font-size:18px;
	font-weight:700;
	margin-bottom:10px;
}

.kjtour-card-title a{
	color:var(--kjtour-text);
	text-decoration:none;
}

.kjtour-card-title a:hover{
	color:var(--kjtour-primary);
}

.kjtour-card-desc{
	font-size:13.5px;
	line-height:1.7;
	color:var(--kjtour-muted);
	margin-bottom:14px;
}

.kjtour-card-tags{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin-bottom:14px;
}

.kjtour-pill{
	background:#e2f6f3;
	color:#0d7a6c;
	font-size:11.5px;
	font-weight:600;
	padding:6px 12px;
	border-radius:20px;
	white-space:nowrap;
}

.kjtour-card-divider{
	height:1px;
	background:var(--kjtour-border);
	margin:6px 0 14px;
}

.kjtour-card-price{
	font-size:15px;
	font-weight:700;
	color:var(--kjtour-primary);
}

.kjtour-card-price-note{
	font-size:12px;
	color:var(--kjtour-muted);
	margin-bottom:16px;
}

.kjtour-card-actions{
	margin-top:auto;
	display:flex;
	gap:10px;
	padding-top:14px;
}

.kjtour-btn{
	flex:1;
	text-align:center;
	font-size:13px;
	font-weight:700;
	padding:11px 14px;
	border-radius:10px;
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:7px;
	transition:0.25s;
	border:1.5px solid transparent;
	cursor:pointer;
}

.kjtour-btn-outline{
	border-color:var(--kjtour-primary);
	color:var(--kjtour-primary);
	background:transparent;
}

.kjtour-btn-outline:hover{
	background:var(--kjtour-primary);
	color:#fff;
}

.kjtour-btn-whatsapp{
	background:var(--kjtour-accent);
	color:#fff;
	box-shadow:0 6px 14px rgba(249,115,22,0.3);
}

.kjtour-btn-whatsapp:hover{
	background:var(--kjtour-primary);
	box-shadow:0 6px 14px rgba(15,76,129,0.3);
	transform:translateY(-2px);
}

.kjtour-btn-block{
	width:100%;
	margin-bottom:12px;
}

.kjtour-btn-form{
	background:#fff;
	color:var(--kjtour-secondary);
	border:1.5px solid var(--kjtour-secondary);
	font-weight:700;
}

.kjtour-btn-form:hover{
	background:var(--kjtour-secondary);
	color:#fff;
	box-shadow:0 6px 14px rgba(20,184,166,0.3);
	transform:translateY(-2px);
}

.kjtour-form-divider{
	display:flex;
	align-items:center;
	gap:10px;
	margin:2px 0 12px;
	font-size:11px;
	font-weight:700;
	letter-spacing:0.5px;
	text-transform:uppercase;
	color:var(--kjtour-muted);
}

.kjtour-form-divider::before,
.kjtour-form-divider::after{
	content:"";
	flex:1;
	height:1px;
	background:var(--kjtour-border);
}

.kjtour-empty{
	text-align:center;
	color:var(--kjtour-muted);
	padding:40px 0;
}

/* ---------------- SINGLE PACKAGE PAGE ---------------- */

.kjtour-single-body, .kjtour-archive-body{
	margin:0;
	background:var(--kjtour-bg);
}

.kjtour-body-wrap{
	max-width:1100px;
	margin:0 auto;
	padding:6px 24px 70px;
}

/* QUICK META ROW — compact pills only, no duplicate title/banner */
.kjtour-page-meta{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:10px;
	margin-bottom:18px;
}

.kjtour-hero-pill{
	display:inline-flex;
	align-items:center;
	gap:6px;
	background:var(--kjtour-accent);
	color:#fff;
	font-size:12px;
	font-weight:700;
	padding:6px 14px;
	border-radius:20px;
}

/* GALLERY */
.kjtour-gallery{
	display:grid;
	grid-template-columns:2fr 1fr;
	gap:14px;
	margin-bottom:40px;
	background:var(--kjtour-white);
	padding:16px;
	border-radius:16px;
	box-shadow:0 8px 24px rgba(15,76,129,0.08);
}

.kjtour-gallery-main{
	border-radius:12px;
	overflow:hidden;
	height:360px;
}

.kjtour-gallery-main img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	transition:0.3s;
}

.kjtour-gallery-thumbs{
	display:flex;
	flex-direction:column;
	gap:14px;
}

.kjtour-gallery-thumb{
	width:100%;
	height:173px;
	object-fit:cover;
	border-radius:12px;
	cursor:pointer;
	transition:0.25s;
	border:2px solid transparent;
}

.kjtour-gallery-thumb:hover{
	border-color:var(--kjtour-secondary);
	opacity:0.9;
}

/* MAIN / SIDEBAR COLUMNS */
.kjtour-columns{
	display:grid;
	grid-template-columns:2fr 1fr;
	gap:40px;
	align-items:start;
}

.kjtour-price-row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	flex-wrap:wrap;
	gap:12px;
	margin-bottom:20px;
}

.kjtour-price-block{
	display:flex;
	align-items:baseline;
	gap:10px;
}

.kjtour-price{
	font-size:26px;
	font-weight:800;
	color:var(--kjtour-accent);
}

.kjtour-price small{
	font-size:13px;
	font-weight:500;
	color:var(--kjtour-muted);
}

.kjtour-price-note{
	font-size:12.5px;
	color:var(--kjtour-muted);
}

.kjtour-location-tag{
	background:#e6eef6;
	color:var(--kjtour-primary);
	font-size:12.5px;
	font-weight:700;
	padding:7px 14px;
	border-radius:20px;
	display:inline-flex;
	align-items:center;
	gap:6px;
}

.kjtour-description{
	font-size:14.5px;
	line-height:1.9;
	color:var(--kjtour-text);
	margin-bottom:20px;
}

.kjtour-description p{
	margin-bottom:14px;
}

.kjtour-tags-block{
	margin-bottom:30px;
}

.kjtour-section{
	margin-top:36px;
	padding-top:30px;
	border-top:1px solid var(--kjtour-border);
}

.kjtour-section h2{
	font-size:19px;
	font-weight:700;
	color:var(--kjtour-primary);
	margin-bottom:18px;
}

.kjtour-inc-exc{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:24px;
}

.kjtour-list{
	list-style:none;
	margin:0;
	padding:0;
	display:flex;
	flex-direction:column;
	gap:12px;
}

.kjtour-list li{
	font-size:13.5px;
	line-height:1.6;
	display:flex;
	align-items:flex-start;
	gap:10px;
	color:var(--kjtour-text);
}

.kjtour-list-included i{
	color:var(--kjtour-secondary);
	margin-top:2px;
}

.kjtour-list-excluded i{
	color:var(--kjtour-accent);
	margin-top:2px;
}

.kjtour-inc-exc-heading{
	font-size:15px;
	font-weight:700;
	margin:0 0 14px;
}

.kjtour-heading-included{
	color:var(--kjtour-secondary);
}

.kjtour-heading-excluded{
	color:var(--kjtour-accent);
}

.kjtour-highlights{
	list-style:none;
	margin:0;
	padding:0;
	display:flex;
	flex-direction:column;
	gap:14px;
}

.kjtour-highlights li{
	font-size:14px;
	line-height:1.7;
	display:flex;
	align-items:flex-start;
	gap:12px;
	background:var(--kjtour-bg);
	padding:14px 16px;
	border-radius:10px;
	border-left:3px solid var(--kjtour-secondary);
}

.kjtour-highlights i{
	color:var(--kjtour-accent);
	margin-top:3px;
}

/* SIDEBAR BOOKING CARD */
.kjtour-sidebar{
	position:sticky;
	top:24px;
}

.kjtour-booking-card{
	background:var(--kjtour-white);
	border:1px solid var(--kjtour-border);
	border-radius:16px;
	padding:26px 24px;
	box-shadow:0 10px 26px rgba(15,76,129,0.1);
}

.kjtour-booking-card h3{
	font-size:17px;
	font-weight:700;
	color:var(--kjtour-text);
	margin-bottom:8px;
}

.kjtour-booking-sub{
	font-size:12.5px;
	color:var(--kjtour-muted);
	line-height:1.6;
	margin-bottom:16px;
}

.kjtour-booking-divider{
	height:1px;
	background:var(--kjtour-border);
	margin-bottom:16px;
}

.kjtour-booking-price{
	display:flex;
	flex-direction:column;
	margin-bottom:18px;
}

.kjtour-booking-price span{
	font-size:24px;
	font-weight:800;
	color:var(--kjtour-primary);
}

.kjtour-booking-price small{
	font-size:12px;
	color:var(--kjtour-muted);
}

.kjtour-back-link{
	display:inline-flex;
	align-items:center;
	gap:6px;
	font-size:12.5px;
	color:var(--kjtour-muted);
	text-decoration:none;
	margin-top:4px;
}

.kjtour-back-link:hover{
	color:var(--kjtour-primary);
}

/* ---------------- ARCHIVE PAGE ---------------- */

.kjtour-archive-wrap{
	max-width:1280px;
	margin:0 auto;
	padding:14px 24px 80px;
}

.kjtour-archive-header{
	text-align:center;
	max-width:640px;
	margin:0 auto 44px;
}

.kjtour-archive-header h1{
	font-size:30px;
	font-weight:800;
	color:var(--kjtour-primary);
	margin-bottom:12px;
}

.kjtour-archive-header p{
	font-size:14.5px;
	color:var(--kjtour-muted);
	line-height:1.7;
}

.kjtour-archive-destinations{
	max-width:1280px;
	margin:0 auto 50px;
}

.kjtour-archive-destinations-title{
	text-align:center;
	font-size:20px;
	font-weight:800;
	color:var(--kjtour-primary);
	margin:0 0 22px;
}

.kjtour-archive-back{
	text-align:center;
	margin-top:44px;
}

.kjtour-archive-back a{
	color:var(--kjtour-primary);
	font-weight:600;
	font-size:13.5px;
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	gap:8px;
}

.kjtour-archive-back a:hover{
	color:var(--kjtour-accent);
}

/* ---------------- RESPONSIVE ---------------- */

@media(max-width:992px){
	.kjtour-grid{
		grid-template-columns:repeat(2, 1fr);
	}

	.kjtour-columns{
		grid-template-columns:1fr;
	}

	.kjtour-sidebar{
		position:static;
	}

	.kjtour-gallery{
		grid-template-columns:1fr;
	}

	.kjtour-gallery-thumbs{
		flex-direction:row;
	}

	.kjtour-gallery-main{
		height:280px;
	}

	.kjtour-gallery-thumb{
		height:130px;
	}
}

@media(max-width:640px){
	.kjtour-grid{
		grid-template-columns:1fr;
	}

	.kjtour-body-wrap{
		padding:16px 16px 50px;
	}

	.kjtour-inc-exc{
		grid-template-columns:1fr;
	}

	.kjtour-card-actions{
		flex-direction:column;
	}

	.kjtour-archive-header h1{
		font-size:23px;
	}
}

/* ==========================================================================
   Breadcrumb removal — KJ Tour Packages / Destinations pages
   Hides the theme's / SEO plugin's default breadcrumb trail ONLY on this
   plugin's own pages (identified by the body classes it adds itself).
   Rest of the site's breadcrumbs (on normal posts/pages) are untouched.
   Covers Yoast SEO, Rank Math, All in One SEO, WooCommerce-style and most
   common theme breadcrumb markup/class names.
   ========================================================================== */
.kjtour-single-body .yoast-breadcrumbs,
.kjtour-archive-body .yoast-breadcrumbs,
.kjdest-single-body .yoast-breadcrumbs,
.kjdest-archive-body .yoast-breadcrumbs,
.kjtour-single-body #breadcrumbs,
.kjtour-archive-body #breadcrumbs,
.kjdest-single-body #breadcrumbs,
.kjdest-archive-body #breadcrumbs,
.kjtour-single-body .rank-math-breadcrumb,
.kjtour-archive-body .rank-math-breadcrumb,
.kjdest-single-body .rank-math-breadcrumb,
.kjdest-archive-body .rank-math-breadcrumb,
.kjtour-single-body .breadcrumb,
.kjtour-archive-body .breadcrumb,
.kjdest-single-body .breadcrumb,
.kjdest-archive-body .breadcrumb,
.kjtour-single-body .breadcrumbs,
.kjtour-archive-body .breadcrumbs,
.kjdest-single-body .breadcrumbs,
.kjdest-archive-body .breadcrumbs,
.kjtour-single-body .woocommerce-breadcrumb,
.kjtour-archive-body .woocommerce-breadcrumb,
.kjdest-single-body .woocommerce-breadcrumb,
.kjdest-archive-body .woocommerce-breadcrumb,
.kjtour-single-body .ast-breadcrumbs,
.kjtour-archive-body .ast-breadcrumbs,
.kjdest-single-body .ast-breadcrumbs,
.kjdest-archive-body .ast-breadcrumbs,
.kjtour-single-body .site-breadcrumb,
.kjtour-archive-body .site-breadcrumb,
.kjdest-single-body .site-breadcrumb,
.kjdest-archive-body .site-breadcrumb,
.kjtour-single-body nav[aria-label="Breadcrumb"],
.kjtour-archive-body nav[aria-label="Breadcrumb"],
.kjdest-single-body nav[aria-label="Breadcrumb"],
.kjdest-archive-body nav[aria-label="Breadcrumb"],
.kjtour-single-body [itemtype*="BreadcrumbList"],
.kjtour-archive-body [itemtype*="BreadcrumbList"],
.kjdest-single-body [itemtype*="BreadcrumbList"],
.kjdest-archive-body [itemtype*="BreadcrumbList"]{
	display:none !important;
}

/* ==========================================================================
   Gap killer — KJ Tour Packages / Destinations pages
   Themes (Astra and most others) add their own top padding/margin on the
   content wrapper that sits right after the theme's header/title/breadcrumb
   banner. That default spacing is what creates the large blank strip above
   this plugin's content. These rules zero it out ONLY on this plugin's own
   pages (identified by the body classes it adds itself) so nothing else on
   the site — normal posts, pages, other plugins — is affected.
   ========================================================================== */
body.kjtour-single-body #content,
body.kjtour-archive-body #content,
body.kjdest-single-body #content,
body.kjdest-archive-body #content,
body.kjtour-single-body .site-content,
body.kjtour-archive-body .site-content,
body.kjdest-single-body .site-content,
body.kjdest-archive-body .site-content,
body.kjtour-single-body .ast-container,
body.kjtour-archive-body .ast-container,
body.kjdest-single-body .ast-container,
body.kjdest-archive-body .ast-container,
body.kjtour-single-body main#main,
body.kjtour-archive-body main#main,
body.kjdest-single-body main#main,
body.kjdest-archive-body main#main,
body.kjtour-single-body .ast-single-entry,
body.kjtour-archive-body .ast-single-entry,
body.kjdest-single-body .ast-single-entry,
body.kjdest-archive-body .ast-single-entry,
body.kjtour-single-body article,
body.kjtour-archive-body article,
body.kjdest-single-body article,
body.kjdest-archive-body article,
body.kjtour-single-body .entry-content,
body.kjtour-archive-body .entry-content,
body.kjdest-single-body .entry-content,
body.kjdest-archive-body .entry-content,
body.kjtour-single-body .site-main,
body.kjtour-archive-body .site-main,
body.kjdest-single-body .site-main,
body.kjdest-archive-body .site-main{
	padding-top:0 !important;
	margin-top:0 !important;
}

/* Astra's "Page Header" title + breadcrumb banner keeps its own padding
   (so the banner itself still looks correct) but its bottom spacing is
   trimmed so the plugin content below sits close underneath it. */
body.kjtour-single-body .ast-archive-title,
body.kjtour-archive-body .ast-archive-title,
body.kjdest-single-body .ast-archive-title,
body.kjdest-archive-body .ast-archive-title,
body.kjtour-single-body .page-header,
body.kjtour-archive-body .page-header,
body.kjdest-single-body .page-header,
body.kjdest-archive-body .page-header,
body.kjtour-single-body .ast-container > .page-header,
body.kjtour-archive-body .ast-container > .page-header,
body.kjdest-single-body .ast-container > .page-header,
body.kjdest-archive-body .ast-container > .page-header{
	margin-bottom:0 !important;
	padding-bottom:16px !important;
}
