/*
 Theme Name: Horizon Child Theme
 Theme URI: https://horizon.ancorathemes.com/
 Description: Hardened Vikal Modular child theme.
 Author: AncoraThemes and Vikal remediation team
 Template: horizon
 Version: 1.1.0
 Text Domain: horizon
*/

@font-face {
	font-family: "Termina";
	src: url("../../uploads/2026/01/TerminaTest-Regular.otf") format("opentype");
	font-style: normal;
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: "Termina";
	src: url("../../uploads/2026/01/TerminaTest-Demi.otf") format("opentype");
	font-style: normal;
	font-weight: 600;
	font-display: swap;
}

@font-face {
	font-family: "Poppins";
	src: url("assets/fonts/Poppins-Regular.ttf") format("truetype");
	font-style: normal;
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: "Poppins";
	src: url("assets/fonts/Poppins-SemiBold.ttf") format("truetype");
	font-style: normal;
	font-weight: 600;
	font-display: swap;
}

:root {
	--vikal-ink: #20201f;
	--vikal-muted: #686866;
	--vikal-accent: #d8843d;
	--vikal-paper: #fff;
	--vikal-surface: #f5f3ef;
}

/* Safe navigation while the vulnerable ThemeREX dependency is absent. */
.menu_mobile .menu_mobile_inner {
	background-color: var(--vikal-paper);
}

.menu_mobile .menu_mobile_nav_area a,
.menu_mobile .menu_mobile_nav_area .open_child_menu,
.menu_mobile .menu_mobile_close,
.menu_mobile .menu_mobile_close .menu_button_close_icon {
	color: var(--vikal-ink) !important;
	opacity: 1 !important;
}

.menu_mobile .menu_mobile_nav_area li.current-menu-item > a,
.menu_mobile .menu_mobile_nav_area li.current-menu-ancestor > a,
.menu_mobile .menu_mobile_nav_area a:hover,
.menu_mobile .menu_mobile_nav_area a:focus-visible {
	color: var(--vikal-accent) !important;
}

.vikal-banner {
	position: relative;
	height: min(100vh, 900px);
	min-height: 560px;
	overflow: hidden;
	background: #222;
}

.vikal-banner__slides,
.vikal-banner__slide {
	position: absolute;
	inset: 0;
}

.vikal-banner__slide {
	background-position: center;
	background-size: cover;
	opacity: 0;
	transition: opacity .8s ease;
}

.vikal-banner__slide::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 45%, rgba(0, 0, 0, .55));
	content: "";
}

.vikal-banner__slide.is-active {
	opacity: 1;
}

.vikal-banner__heading {
	position: absolute;
	z-index: 1;
	right: 6vw;
	bottom: 72px;
	left: 6vw;
	max-width: 720px;
	margin: 0;
	color: #fff;
	font-family: "Termina", Montserrat, sans-serif;
	font-size: clamp(2rem, 4.5vw, 4.5rem);
	font-weight: 600;
	line-height: 1.08;
}

.vikal-banner__controls {
	position: absolute;
	z-index: 2;
	right: 6vw;
	bottom: 30px;
	left: 6vw;
	display: flex;
	gap: 10px;
}

.vikal-banner__dot {
	width: 12px;
	height: 12px;
	padding: 0;
	border: 1px solid #fff;
	border-radius: 999px;
	background: transparent;
}

.vikal-banner__dot.is-active {
	background: #fff;
}

.vikal-display-carousel {
	position: relative;
	max-width: 1440px;
	margin: 0 auto;
	padding: 10px 24px 28px;
}

.vikal-display-carousel__track {
	display: grid;
	grid-auto-columns: minmax(260px, 23%);
	grid-auto-flow: column;
	gap: 24px;
	overflow-x: auto;
	padding: 8px 2px 22px;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
}

.vikal-display-card {
	overflow: hidden;
	border: 1px solid #e7e3dc;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
	scroll-snap-align: start;
}

.vikal-display-card a {
	display: flex;
	height: 100%;
	flex-direction: column;
	color: inherit;
	text-decoration: none;
}

.vikal-display-card img {
	width: 100%;
	height: 210px;
	object-fit: cover;
}

.vikal-display-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 12px;
	padding: 22px;
}

.vikal-display-card__body strong {
	color: var(--vikal-ink);
	font-family: "Termina", Montserrat, sans-serif;
	font-size: 1.05rem;
}

.vikal-display-card__body span {
	color: var(--vikal-muted);
	font-size: .95rem;
	line-height: 1.65;
}

.vikal-display-carousel__controls {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 4px;
}

.vikal-display-carousel__controls button {
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid #ddd7cf;
	border-radius: 999px;
	background: #fff;
	color: var(--vikal-ink);
	font-size: 1.2rem;
}

.vikal-post-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}

/* Native controls stay visible and keyboard accessible. */
.vikal-contact-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px 30px;
}

.vikal-contact-form label {
	display: grid;
	gap: 8px;
	color: var(--vikal-ink);
	font-weight: 600;
}

.vikal-contact-form label > span:first-child {
	font-size: .9rem;
}

.vikal-contact-form input:not([type="submit"]):not([type="checkbox"]),
.vikal-contact-form select,
.vikal-contact-form textarea {
	width: 100%;
	min-height: 48px;
	padding: 11px 12px;
	border: 1px solid #c9c6c0;
	border-radius: 4px;
	background: #fff;
	color: #111;
}

.vikal-contact-form textarea {
	min-height: 150px;
	resize: vertical;
}

.vikal-contact-form input:focus-visible,
.vikal-contact-form select:focus-visible,
.vikal-contact-form textarea:focus-visible {
	outline: 3px solid rgba(216, 132, 61, .35);
	outline-offset: 2px;
	border-color: var(--vikal-accent);
}

.vikal-contact-form__full,
.vikal-contact-form .wpcf7-acceptance {
	grid-column: 1 / -1;
}

.vikal-contact-form .vikal-honeypot-wrap {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.vikal-contact-form input[type="submit"] {
	min-width: 150px;
	padding: 13px 28px;
	border: 0;
	border-radius: 4px;
	background: var(--vikal-ink);
	color: #fff;
	font-weight: 600;
	text-transform: uppercase;
}

.vikal-contact-form input[type="submit"]:hover,
.vikal-contact-form input[type="submit"]:focus-visible {
	background: var(--vikal-accent);
}

.vikal-trx-title__subtitle {
	margin-bottom: 10px;
	color: var(--vikal-accent);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.vikal-trx-title__description {
	color: inherit;
}

.vikal-contact-cards {
	display: grid;
	gap: 18px;
}

.vikal-contact-card {
	padding: 18px 0;
	border-bottom: 1px solid #e2dfda;
}

.vikal-contact-card strong,
.vikal-contact-card span,
.vikal-contact-card a {
	display: block;
}

.vikal-contact-card strong {
	margin-bottom: 5px;
	color: var(--vikal-ink);
}

@media (max-width: 900px) {
	.vikal-display-carousel__track {
		grid-auto-columns: minmax(270px, 58%);
	}

	.vikal-post-grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 680px) {
	.vikal-banner {
		height: 78vh;
		min-height: 500px;
	}

	.vikal-banner__heading {
		bottom: 76px;
	}

	.vikal-display-carousel {
		padding-right: 15px;
		padding-left: 15px;
	}

	.vikal-display-carousel__track {
		grid-auto-columns: 86%;
	}

	.vikal-contact-form,
	.vikal-post-grid {
		grid-template-columns: 1fr;
	}

	.vikal-contact-form__full,
	.vikal-contact-form .wpcf7-acceptance {
		grid-column: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.vikal-banner__slide,
	.vikal-display-carousel__track {
		scroll-behavior: auto;
		transition: none;
	}
}
