.kcr-booking-public {
	margin: 0;
	background: #eef3f7;
	color: #13213a;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.kcr-public-wrap {
	width: min(960px, calc(100% - 32px));
	margin: 32px auto;
}

.kcr-public-panel {
	background: #fff;
	border: 1px solid #d8e1ea;
	border-radius: 8px;
	padding: 24px;
	margin-bottom: 16px;
	box-shadow: 0 10px 28px rgba(20, 32, 54, .08);
}

.kcr-kicker {
	margin: 0 0 8px;
	color: #63ab45;
	font-weight: 700;
	text-transform: uppercase;
	font-size: 12px;
	letter-spacing: .04em;
}

.kcr-public-panel h1,
.kcr-public-panel h2 {
	margin: 0 0 12px;
	line-height: 1.25;
}

.kcr-public-muted {
	color: #627084;
}

.kcr-public-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin: 18px 0;
}

.kcr-detail {
	background: #f5f8fb;
	border: 1px solid #dbe4ee;
	border-radius: 8px;
	padding: 12px;
}

.kcr-detail span,
.kcr-route span,
.kcr-totals span {
	display: block;
	color: #667085;
	font-size: 15px;
}

.kcr-detail strong,
.kcr-route strong,
.kcr-totals strong {
	display: block;
	margin-top: 4px;
}

.kcr-totals strong {
	text-align: right;
}

.kcr-route {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.kcr-route div {
	border-left: 4px solid #63ab45;
	background: #f8fafc;
	padding: 14px;
	border-radius: 8px;
}

.kcr-public-table {
	width: 100%;
	border-collapse: collapse;
	margin: 12px 0;
}

.kcr-public-table th,
.kcr-public-table td {
	border-bottom: 1px solid #e4eaf1;
	padding: 10px;
	text-align: left;
}

.kcr-public-table th:nth-child(2),
.kcr-public-table td:nth-child(2) {
	text-align: center;
}

.kcr-public-table th:nth-child(3),
.kcr-public-table td:nth-child(3) {
	text-align: right;
}

.kcr-totals {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 8px 16px;
	background: #f8fafc;
	border: 1px solid #dbe4ee;
	border-radius: 8px;
	padding: 14px;
}

.kcr-terms {
	margin-top: 14px;
	color: #344054;
}

.kcr-quote-validity {
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	border-radius: 8px;
	color: #166534;
	font-weight: 600;
	margin-top: 14px;
	padding: 10px 12px;
}

.kcr-quote-expired {
	background: #fff7ed;
	border-color: #fed7aa;
	color: #9a3412;
}

.kcr-booking-meta {
	display: grid;
	gap: 6px;
	margin: 4px 0 18px;
}

.kcr-booking-meta p {
	margin: 0;
}

.kcr-button {
	display: inline-block;
	box-sizing: border-box;
	background: #63ab45;
	color: #fff;
	text-decoration: none;
	border-radius: 6px;
	padding: 10px 16px;
	font-weight: 700;
	border: 0;
	cursor: pointer;
}

.kcr-button-primary-action {
	font-size: 17px;
	min-height: 56px;
	min-width: 270px;
	padding: 15px 22px;
	box-shadow: 0 8px 18px rgba(99, 171, 69, .24);
}

.kcr-button-secondary {
	background: #f7921e;
	color: #fff;
	border: 1px solid #f7921e;
}

.kcr-button-danger {
	background: #fff5f5;
	color: #b42318;
	border: 1px solid #fecaca;
}

.kcr-action-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 12px;
	align-items: center;
	margin-top: 18px;
}

.kcr-action-row form {
	margin: 0;
}

.kcr-action-row .kcr-button {
	min-height: 56px;
	min-width: 270px;
	padding: 15px 22px;
	font-size: 17px;
	text-align: center;
}

.kcr-action-row .kcr-button-secondary,
.kcr-action-row .kcr-button-danger {
	min-height: 56px;
	padding: 15px 22px;
}

.kcr-button:focus,
.kcr-button:hover,
.kcr-button-secondary:focus,
.kcr-button-secondary:hover {
	color: #fff;
}

.kcr-button-danger:focus,
.kcr-button-danger:hover {
	color: #b42318;
}

.kcr-transfer-form-wrap {
	color: #17233c;
}

.kcr-transfer-form {
	background: #fff;
	border: 1px solid #d8e1ea;
	border-radius: 8px;
	padding: 22px;
}

.kcr-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.kcr-transfer-form label {
	display: block;
}

.kcr-transfer-form label span {
	display: block;
	font-weight: 600;
	margin-bottom: 7px;
}

.kcr-transfer-form input,
.kcr-transfer-form select,
.kcr-transfer-form textarea {
	box-sizing: border-box;
	width: 100%;
	border: 1px solid #f5f8f7;
	border-radius: 6px;
	background: #f5f8f7;
	color: #17233c;
	padding: 13px 14px;
	font: inherit;
}

.kcr-transfer-form input:focus,
.kcr-transfer-form select:focus,
.kcr-transfer-form textarea:focus {
	border-color: #63ab45;
	outline: 0;
	box-shadow: 0 0 0 2px rgba(99, 171, 69, .16);
}

.kcr-transfer-form input:active,
.kcr-transfer-form select:active,
.kcr-transfer-form textarea:active {
	border-color: #63ab45;
}

.kcr-transfer-form textarea {
	min-height: 150px;
	resize: vertical;
}

.kcr-transfer-form .kcr-button {
	font-size: 17px;
	min-height: 56px;
	min-width: 270px;
	padding: 15px 22px;
}

.kcr-form-wide {
	grid-column: 1 / -1;
}

.kcr-form-section {
	border-bottom: 1px solid #e4eaf1;
	margin-bottom: 20px;
	padding-bottom: 20px;
}

.kcr-form-section:last-of-type {
	border-bottom: 0;
}

.kcr-tour-progress {
	display: none;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}

.kcr-custom-tour-form.is-enhanced .kcr-tour-progress {
	display: grid;
}

.kcr-tour-progress li {
	border-bottom: 3px solid #dbe4ee;
	color: #667085;
	font-size: 14px;
	font-weight: 600;
	padding: 0 8px 12px;
	text-align: center;
}

.kcr-tour-progress li span {
	align-items: center;
	background: #e8edf2;
	border-radius: 50%;
	color: #344054;
	display: inline-flex;
	height: 28px;
	justify-content: center;
	margin-right: 5px;
	width: 28px;
}

.kcr-tour-progress li.is-active,
.kcr-tour-progress li.is-complete {
	border-color: #63ab45;
	color: #17233c;
}

.kcr-tour-progress li.is-active span,
.kcr-tour-progress li.is-complete span {
	background: #63ab45;
	color: #fff;
}

.kcr-custom-tour-form.is-enhanced .kcr-tour-step {
	display: none;
}

.kcr-custom-tour-form.is-enhanced .kcr-tour-step.is-active {
	display: block;
}

.kcr-step-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: flex-end;
	margin-top: 18px;
}

.kcr-step-next,
.kcr-step-back {
	display: none;
}

.kcr-custom-tour-form.is-enhanced .kcr-step-next,
.kcr-custom-tour-form.is-enhanced .kcr-step-back {
	display: inline-block;
}

.kcr-button-back {
	background: #fff;
	border: 1px solid #cfd8e3;
	color: #344054;
}

.kcr-button-back:focus,
.kcr-button-back:hover {
	background: #f8fafc;
	color: #17233c;
}

.kcr-tour-review {
	display: none;
	background: #f8fafc;
	border: 1px solid #dbe4ee;
	border-radius: 8px;
	padding: 16px;
}

.kcr-custom-tour-form.is-enhanced .kcr-tour-review {
	display: block;
}

.kcr-tour-review h3 {
	margin: 0 0 12px;
}

.kcr-tour-review dl {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 20px;
	margin: 0;
}

.kcr-tour-review dl div {
	border-bottom: 1px solid #e4eaf1;
	padding-bottom: 8px;
}

.kcr-tour-review dt {
	color: #667085;
	font-size: 13px;
}

.kcr-tour-review dd {
	font-weight: 600;
	margin: 3px 0 0;
}

.kcr-form-section h3 {
	margin: 0 0 14px;
}

.kcr-check-group {
	border: 1px solid #e4eaf1;
	border-radius: 6px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
	padding: 12px;
}

.kcr-check-group legend {
	font-weight: 600;
	padding: 0 5px;
}

.kcr-check-group label {
	align-items: center;
	display: inline-flex;
	gap: 6px;
}

.kcr-check-group input[type="checkbox"] {
	width: auto;
}

.kcr-check-group label span {
	font-weight: 400;
	margin: 0;
}

.kcr-field-help {
	color: #667085;
	font-size: 14px;
	margin: -4px 0 0;
}

.kcr-transfer-form small.kcr-field-help {
	display: block;
	margin: 0 0 7px;
}

.kcr-public-itinerary {
	display: grid;
	gap: 14px;
}

.kcr-public-itinerary-day {
	border: 1px solid #dbe4ee;
	border-radius: 8px;
	padding: 16px;
}

.kcr-public-day-heading {
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 14px;
	align-items: start;
}

.kcr-public-day-heading > span {
	background: #63ab45;
	border-radius: 6px;
	color: #fff;
	font-weight: 700;
	padding: 8px 6px;
	text-align: center;
}

.kcr-public-day-heading h3 {
	margin: 0 0 3px;
}

.kcr-public-day-heading small {
	color: #667085;
}

.kcr-day-route {
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 6px 14px;
	background: #f8fafc;
	border-left: 4px solid #63ab45;
	margin-top: 14px;
	padding: 12px;
}

.kcr-day-route span {
	color: #667085;
}

.kcr-itinerary-list {
	list-style: none;
	margin: 14px 0 0;
	padding: 0;
}

.kcr-itinerary-list li {
	display: grid;
	grid-template-columns: 90px 1fr;
	gap: 12px;
	border-top: 1px solid #e4eaf1;
	padding: 12px 0;
}

.kcr-itinerary-list time,
.kcr-itinerary-list span {
	display: block;
	color: #667085;
}

.kcr-itinerary-list p {
	margin: 4px 0 0;
}

.kcr-day-notes {
	background: #fff7ed;
	border: 1px solid #fed7aa;
	border-radius: 6px;
	margin-top: 10px;
	padding: 10px 12px;
}

.kcr-hp-field {
	height: 0;
	left: -9999px;
	overflow: hidden;
	position: absolute;
	width: 0;
}

.kcr-form-success {
	background: #ecfdf5;
	border: 1px solid #a7f3d0;
	border-radius: 8px;
	color: #065f46;
	margin-bottom: 14px;
	padding: 12px 14px;
}

.kcr-form-notice {
	background: #fff7ed;
	border: 1px solid #fed7aa;
	border-radius: 8px;
	color: #9a3412;
	margin-bottom: 14px;
	padding: 12px 14px;
}

@media (max-width: 720px) {
	.kcr-public-grid,
	.kcr-route,
	.kcr-form-grid {
		grid-template-columns: 1fr;
	}

	.kcr-public-panel {
		padding: 18px;
	}

	.kcr-tour-progress li {
		font-size: 12px;
		padding-left: 3px;
		padding-right: 3px;
	}

	.kcr-tour-progress li span {
		display: flex;
		margin: 0 auto 5px;
	}

	.kcr-tour-review dl {
		grid-template-columns: 1fr;
	}

	.kcr-step-actions .kcr-button {
		min-width: 0;
		width: 100%;
	}
}

.kcr-tour-package-list {
	display: grid;
	gap: 18px;
}

.kcr-package-card {
	background: #fff;
	border: 1px solid #d8e1ea;
	border-radius: 8px;
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 18px;
	overflow: hidden;
	padding: 16px;
	box-shadow: 0 10px 28px rgba(20, 32, 54, .08);
}

.kcr-package-card img,
.kcr-package-hero img {
	aspect-ratio: 16 / 10;
	border-radius: 6px;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.kcr-package-card h3 {
	font-size: 24px;
	line-height: 1.25;
	margin: 0 0 8px;
}

.kcr-package-price {
	display: block;
	font-size: 18px;
	margin: 12px 0;
}

.kcr-package-hero {
	display: grid;
	grid-template-columns: minmax(260px, 380px) 1fr;
	gap: 18px;
}

.kcr-package-hero > img {
	grid-row: span 4;
}

.kcr-package-content h2:not(:first-child) {
	margin-top: 22px;
}

.kcr-package-price-box {
	background: #fff;
	border: 1px solid #dbe4ee;
	border-radius: 8px;
	grid-column: 1 / -1;
	margin-top: 18px;
	padding: 16px;
}

.kcr-package-price-box h3 {
	margin: 0 0 12px;
}

.kcr-package-route-group {
	display: grid;
	gap: 16px;
	grid-column: 1 / -1;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: 8px;
}

.kcr-route small {
	display: block;
	color: #667085;
	margin-top: 4px;
}

@media (max-width: 720px) {
	.kcr-package-card,
	.kcr-package-hero {
		grid-template-columns: 1fr;
	}

	.kcr-package-hero > img {
		grid-row: auto;
	}
}

.kcr-package-itinerary-box {
	background: #f3f8f6;
	border-radius: 8px;
	margin: 18px 0;
	padding: 18px;
}

.kcr-package-itinerary-box h2 {
	margin-top: 0;
}

.kcr-package-inclusions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin-top: 18px;
}

.kcr-package-inclusions > div {
	border: 1px solid #dbe4ee;
	border-radius: 8px;
	padding: 18px;
}

.kcr-package-inclusions h2 {
	margin-top: 0;
}

.kcr-package-admission-fees {
	background: #fffdf5;
	border-color: #fde68a;
}

.kcr-package-admission-fees h2 {
	margin-top: 0;
}

@media (max-width: 720px) {
	.kcr-package-inclusions {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 720px) {
	.kcr-package-route-group {
		grid-template-columns: 1fr;
	}
}

.kcr-package-time-warning {
	grid-column: 1 / -1;
	margin: 4px 0 14px;
	padding: 12px 14px;
	border: 1px solid #fed7aa;
	border-radius: 8px;
	background: #fff7ed;
	color: #9a3412;
	font-weight: 600;
}

.kcr-package-booking-form > p {
	margin-top: 24px;
}

.kcr-package-custom-quote {
	grid-column: 1 / -1;
	margin: 0 0 16px;
}

.kcr-package-custom-quote .kcr-button {
	min-width: 270px;
	text-align: center;
}

.kcr-terms-check {
	align-items: center;
	background: #f8fafc;
	border: 1px solid #dbe4ee;
	border-radius: 8px;
	display: flex !important;
	gap: 10px;
	margin-top: 16px;
	margin-bottom: 18px;
	padding: 12px 14px;
}

.kcr-terms-check input[type="checkbox"] {
	flex: 0 0 auto;
	height: 14px;
	margin: 0;
	width: 14px;
}

.kcr-terms-check span {
	align-items: center;
	display: inline-flex;
	font-weight: 500;
	line-height: 1.35;
	margin: 0;
	min-height: 16px;
	padding-top: 1px;
}

.kcr-package-hero .kcr-public-grid .kcr-detail:first-child {
	background: #63ab45;
	border-color: #63ab45;
	color: #fff;
}

.kcr-package-hero .kcr-public-grid .kcr-detail:first-child span,
.kcr-package-hero .kcr-public-grid .kcr-detail:first-child strong {
	color: #fff;
}

.kcr-package-gallery h2 {
	margin-top: 0;
}

.kcr-package-gallery-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.kcr-package-gallery-item {
	display: block;
	overflow: hidden;
	border-radius: 8px;
	background: #f3f8f6;
}

.kcr-package-gallery-item img {
	aspect-ratio: 4 / 3;
	display: block;
	height: auto;
	object-fit: cover;
	transition: transform .18s ease;
	width: 100%;
}

.kcr-package-gallery-item:hover img {
	transform: scale(1.03);
}

@media (max-width: 760px) {
	.kcr-package-gallery-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 520px) {
	.kcr-package-gallery-grid {
		grid-template-columns: 1fr;
	}
}
body.kcr-gallery-lightbox-open {
	overflow: hidden;
}

.kcr-gallery-lightbox {
	align-items: center;
	background: rgba(12, 18, 28, .86);
	bottom: 0;
	display: flex;
	justify-content: center;
	left: 0;
	padding: 28px;
	position: fixed;
	right: 0;
	top: 0;
	z-index: 99999;
}

.kcr-gallery-lightbox[hidden] {
	display: none;
}

.kcr-gallery-lightbox img {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 24px 70px rgba(0, 0, 0, .34);
	max-height: calc(100vh - 70px);
	max-width: min(1100px, calc(100vw - 48px));
	object-fit: contain;
}

.kcr-gallery-lightbox-close {
	align-items: center;
	background: #fff;
	border: 0;
	border-radius: 50%;
	box-shadow: 0 12px 32px rgba(0, 0, 0, .22);
	color: #17233c;
	cursor: pointer;
	display: inline-flex;
	font-size: 0;
	height: 44px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	position: absolute;
	right: 22px;
	text-align: center;
	top: 18px;
	width: 44px;
}


.kcr-gallery-lightbox-close::before {
	align-items: center;
	content: "\00d7";
	display: flex;
	font-family: Arial, sans-serif;
	font-size: 28px;
	font-weight: 700;
	height: 100%;
	justify-content: center;
	line-height: 1;
	width: 100%;
}
.kcr-gallery-lightbox-close:focus,
.kcr-gallery-lightbox-close:hover {
	background: #63ab45;
	color: #fff;
	outline: 0;
}

@media (max-width: 600px) {
	.kcr-gallery-lightbox {
		padding: 18px;
	}

	.kcr-gallery-lightbox img {
		max-height: calc(100vh - 58px);
		max-width: calc(100vw - 28px);
	}

	.kcr-gallery-lightbox-close {
		right: 12px;
		top: 10px;
	}
}
.kcr-button:disabled,
.kcr-button[aria-disabled="true"] {
	cursor: not-allowed;
	opacity: .56;
}

.kcr-good-for-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.kcr-good-for-badge {
	align-items: center;
	background: #f3f8f6;
	border: 1px solid #d7ead1;
	border-radius: 999px;
	color: #17233c;
	display: inline-flex;
	font-weight: 700;
	gap: 8px;
	line-height: 1.2;
	padding: 8px 12px 8px 8px;
}

.kcr-good-for-icon {
	align-items: center;
	background: #63ab45;
	border-radius: 999px;
	color: #fff;
	display: inline-flex;
	font-size: 11px;
	height: 26px;
	justify-content: center;
	min-width: 26px;
	padding: 0 5px;
}
.kcr-package-extra-info {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin-top: 18px;
}

.kcr-package-extra-info > div {
	background: #f8fafc;
	border: 1px solid #dbe4ee;
	border-radius: 8px;
	padding: 18px;
}

.kcr-package-extra-info h2 {
	margin-top: 0;
}

@media (max-width: 720px) {
	.kcr-package-extra-info {
		grid-template-columns: 1fr;
	}
}