/* Revocastor Core - brand tokens from the Revo Castor logo */
:root {
	--revo-green: #5ebb46;
	--revo-green-dark: #4a9a36;
	--revo-navy: #2d2553;
	--revo-navy-deep: #1e1839;
	--revo-ink: #1f1d2b;
	--revo-muted: #6b6880;
	--revo-line: #e6e4ee;
	--revo-soft: #f5f4f9;
}

/* ---------- Breadcrumbs: the theme adds the posts page to every archive trail ---------- */
.post-type-archive-ap_product .item-blog,
.tax-ap_branch .item-blog,
.tax-brand .item-blog { display: none; }

/* ---------- Catalogue filter drawer ----------
   Advanced Product marks the filter column .hideonlg below 1200px and opens it as .sidebar-fixed
   from the "Filter" button, but the theme only hides it between 960px and 1199px, so on phones
   the whole filter sat above the products. */
@media (max-width: 1199.98px) {
	.templaza-column.hideonlg:not(.sidebar-fixed) { display: none !important; }
	.templaza-column.sidebar-fixed {
		padding: 28px 22px !important;
		background: #fff;
		box-shadow: -24px 0 60px rgba(30, 24, 57, .28);
	}
	.templaza-column.sidebar-fixed .templaza-filter-closed {
		position: fixed;
		top: 12px;
		right: 12px;
		color: var(--revo-navy);
		font-size: 20px;
	}
	/* Left-aligned: the fixed "Get a Quote" tab covers the right edge. */
	.templaza-ap-product-filter { justify-content: flex-start !important; }
	.templaza-ap-product-filter .ap-filter-btn {
		margin: 0 !important;
		display: inline-flex;
		align-items: center;
		padding: 10px 18px;
		border-radius: 6px;
		background: var(--revo-navy);
		color: #fff;
		font-weight: 700;
	}
	.templaza-ap-product-filter.uk-sticky-fixed .ap-filter-btn { background: var(--revo-green); }
}

/* ---------- Product description ---------- */
.revo-h {
	position: relative;
	margin: 1.6em 0 .7em;
	padding-left: 14px;
	font-size: 1.15rem;
	color: var(--revo-navy);
}
.revo-h::before {
	content: "";
	position: absolute;
	left: 0;
	top: .15em;
	bottom: .15em;
	width: 4px;
	border-radius: 2px;
	background: var(--revo-green);
}

/* ---------- Spec / variant table ---------- */
.revo-spec-wrap {
	overflow-x: auto;
	margin: 0 0 1.5em;
	border: 1px solid var(--revo-line);
	border-radius: 10px;
	-webkit-overflow-scrolling: touch;
}
.revo-spec-table {
	width: 100%;
	min-width: 640px;
	margin: 0 !important;
	border-collapse: collapse;
	font-size: .9rem;
	font-variant-numeric: tabular-nums;
}
.revo-spec-table th {
	position: sticky;
	top: 0;
	padding: 12px 14px;
	background: var(--revo-navy);
	color: #fff;
	font-weight: 600;
	font-size: .78rem;
	letter-spacing: .02em;
	text-align: left;
	white-space: nowrap;
	border: 0;
}
.revo-spec-table td {
	padding: 11px 14px;
	border: 0;
	border-top: 1px solid var(--revo-line);
	color: var(--revo-ink);
	white-space: nowrap;
}
.revo-spec-table tbody tr:nth-child(even) td { background: var(--revo-soft); }
.revo-spec-table tbody tr:hover td { background: #eef8eb; }
.revo-spec-table tr.is-current td {
	background: #eaf6e6;
	font-weight: 600;
}
.revo-spec-table tr.is-current td:first-child { box-shadow: inset 4px 0 0 var(--revo-green); }

@media (max-width: 640px) {
	.revo-spec-wrap { border: 0; overflow: visible; }
	.revo-spec-table { min-width: 0; }
	.revo-spec-table thead { display: none; }
	.revo-spec-table, .revo-spec-table tbody, .revo-spec-table tr, .revo-spec-table td { display: block; width: 100%; }
	.revo-spec-table tr {
		margin-bottom: 12px;
		border: 1px solid var(--revo-line);
		border-radius: 10px;
		overflow: hidden;
	}
	.revo-spec-table td {
		display: flex;
		justify-content: space-between;
		gap: 12px;
		white-space: normal;
		text-align: right;
	}
	.revo-spec-table td::before {
		content: attr(data-label);
		color: var(--revo-muted);
		font-weight: 500;
		text-align: left;
	}
	.revo-spec-table tr:first-child td:first-child { border-top: 0; }
}

/* ---------- Floating quick contact ---------- */
.revo-float {
	position: fixed;
	left: 18px;
	bottom: 18px;
	z-index: 998;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.revo-float__btn {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	color: #fff !important;
	box-shadow: 0 8px 22px rgba(30, 24, 57, .25);
	transition: transform .2s ease, box-shadow .2s ease;
}
.revo-float__btn:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(30, 24, 57, .32); }
.revo-float__btn--wa { background: #25d366; }
.revo-float__btn--call { background: var(--revo-navy); }
.revo-float__btn--wa::after {
	content: "";
	position: absolute;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: 2px solid #25d366;
	animation: revo-pulse 2.2s ease-out infinite;
	pointer-events: none;
}
@keyframes revo-pulse {
	from { transform: scale(1); opacity: .7; }
	to { transform: scale(1.6); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.revo-float__btn--wa::after { animation: none; }
}

/* ---------- Hero slideshow buttons ---------- */
.revo-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 30px;
}
.revo-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 16px 32px;
	border: 2px solid transparent;
	border-radius: 4px;
	font-weight: 700;
	font-size: 15px;
	line-height: 1;
	text-decoration: none !important;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.revo-btn:hover { transform: translateY(-2px); }
.revo-btn i { transition: transform .25s ease; }
.revo-btn:hover i { transform: translateX(4px); }
.revo-btn--green { background: var(--revo-green); color: #fff !important; }
.revo-btn--green:hover { background: #fff; color: var(--revo-navy) !important; }
.revo-btn--ghost { border-color: rgba(255, 255, 255, .85); color: #fff !important; }
.revo-btn--ghost:hover { background: #fff; color: var(--revo-navy) !important; }
@media (max-width: 639px) {
	.revo-btn { padding: 14px 22px; font-size: 14px; }
}

/* ---------- Search card over the hero ---------- */
.revo-search-card h3 i { color: var(--revo-green); margin-right: 6px; }
/* Heading row on top, filter fields in one row below (the UiPro form stacks every field). */
.revo-search-card.e-con { flex-direction: column !important; }
.revo-search-card > .e-con { --width: 100% !important; width: 100% !important; }
.revo-search-card > .e-con:first-child { flex-direction: row !important; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.revo-search-card > .e-con:first-child .elementor-widget-text-editor p { margin: 0; }
.revo-filter .advanced-product-search-form {
	display: flex !important;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 !important;
}
.revo-filter .advanced-product-search-form > .ap-search-item {
	flex: 1 1 160px;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
.revo-filter .advanced-product-search-form > .ap-search-button { flex: 0 0 auto; }
.revo-filter .advanced-product-search-form > .ap-search-button button { margin: 0 !important; height: 52px; padding: 0 30px; }
.revo-filter .advanced-product-search-form select,
.revo-filter .advanced-product-search-form input[type="search"] { height: 52px; }
.revo-filter .advanced-product-search-form > input[type="hidden"] { display: none; }
.revo-search-card .revo-filter select,
.revo-search-card .revo-filter input[type="text"],
.revo-search-card .revo-filter input[type="search"] {
	border-radius: 6px;
	border-color: var(--revo-line);
}
.revo-search-card .revo-filter button,
.revo-search-card .revo-filter [type="submit"] { border-radius: 6px; font-weight: 700; }

/* ---------- Media ---------- */
.revo-img-rounded img { border-radius: 16px; }
.revo-intro-media .revo-badge { box-shadow: 0 18px 40px rgba(30, 24, 57, .3); }

/* ---------- Section titles ---------- */
.revo-section-title.is-center { max-width: 760px; margin-left: auto; margin-right: auto; }

/* ---------- Cards with hover lift ---------- */
.revo-step,
.revo-service,
.revo-why-card,
.revo-ind-card,
.revo-cat-grid .uk-card,
.revo-brand-grid .uk-card {
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.revo-step:hover,
.revo-service:hover,
.revo-why-card:hover,
.revo-ind-card:hover,
.revo-cat-grid .uk-card:hover,
.revo-brand-grid .uk-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 22px 44px rgba(30, 24, 57, .14);
}
.revo-step:hover,
.revo-service:hover { border-color: var(--revo-green) !important; }
.revo-why-card .uk-card,
.revo-ind-card .uk-card { border-radius: 14px; overflow: hidden; height: 100%; }
.revo-step-num .elementor-heading-title {
	-webkit-text-stroke: 2px var(--revo-green);
	color: transparent !important;
	transition: color .3s ease;
}
.revo-step:hover .revo-step-num .elementor-heading-title { color: var(--revo-green) !important; }

/* ---------- Marquee band ---------- */
.revo-marquee { overflow: hidden; }
.revo-marquee:hover .uiruntext-content,
.revo-marquee:hover [class*="runtext"] { animation-play-state: paused; }

/* ---------- Anatomy hotspots ---------- */
.revo-anatomy .uk-marker,
.revo-anatomy a[uk-marker] {
	background: var(--revo-green) !important;
	color: #fff !important;
	box-shadow: 0 0 0 6px rgba(94, 187, 70, .25);
}

/* ---------- Enquiry form on navy ---------- */
.revo-enquiry label,
.revo-enquiry .wpforms-field-label,
.revo-enquiry .wpcf7-form p { color: #fff !important; }
.revo-enquiry input:not([type="submit"]),
.revo-enquiry select,
.revo-enquiry textarea {
	width: 100%;
	background: rgba(255, 255, 255, .06) !important;
	border: 1px solid rgba(255, 255, 255, .22) !important;
	border-radius: 6px !important;
	color: #fff !important;
}
.revo-enquiry input::placeholder,
.revo-enquiry textarea::placeholder { color: rgba(255, 255, 255, .55); }
.revo-enquiry select option { color: var(--revo-ink); }
.revo-enquiry [type="submit"],
.revo-enquiry button {
	background: var(--revo-green) !important;
	border: 0 !important;
	border-radius: 6px !important;
	color: #fff !important;
	font-weight: 700;
	padding: 14px 30px !important;
}
.revo-enquiry [type="submit"]:hover,
.revo-enquiry button:hover { background: #fff !important; color: var(--revo-navy) !important; }
