/*
Theme Name: knovelray-child
Theme URI: https://knovelray.com/
Description: Centralized global styling for KnovelRay. Child theme of Hello Elementor.
Author: Networtech
Template: hello-elementor
Version: 1.0.0
Text Domain: knovelray-child
*/

:root {
	--kr-accent: #42B7C9;
	--kr-accent-hover: #339EAF;
	--kr-bg-main: #003C54;
	--kr-bg-section: #015571;
	--kr-bg-card: #003348;
	--kr-bg-dark: #002C3E;
	--kr-text-main: #F7F7F7;
	--kr-text-secondary: #B4B7B7;
	--kr-text-muted: #829BA3;
	--kr-border: #287087;
	--kr-border-soft: rgba(40, 112, 135, .55);
	--kr-accent-soft: rgba(66, 183, 201, .12);
	--kr-accent-border: rgba(66, 183, 201, .55);
	--kr-form-bg: #EEF2F3;
	--kr-form-text: #003C54;
	--kr-form-placeholder: #6F7C80;
	--kr-form-border: #C7D2D6;
	--kr-form-gap: 10px;
	--kr-radius-sm: 6px;
	--kr-radius-md: 10px;
	--kr-transition: .22s ease;
}

html { scroll-behavior: smooth; }

body,
.site,
.elementor-page,
.elementor-location-single,
.elementor-location-archive {
	background: var(--kr-bg-main) !important;
	color: var(--kr-text-secondary);
}

/* ---------- Global typography ---------- */
.elementor h1,
.elementor h2,
.elementor h3,
.elementor h4,
.elementor h5,
.elementor h6,
.elementor .e-heading-base {
	color: var(--kr-text-main) !important;
}

.elementor p,
.elementor .e-paragraph-base,
.elementor .kr-body-copy,
.elementor .kr-small-copy {
	color: var(--kr-text-secondary) !important;
}

.elementor .kr-section-label,
.elementor [class*="section-label"] {
	color: var(--kr-accent) !important;
	text-transform: uppercase;
	letter-spacing: .14em;
	font-weight: 600;
}

.elementor a {
	transition: color var(--kr-transition), border-color var(--kr-transition), background-color var(--kr-transition), opacity var(--kr-transition);
}

/* ---------- Page shell / section backgrounds ---------- */
.elementor .kr-page-shell {
	background: var(--kr-bg-main) !important;
	color: var(--kr-text-secondary) !important;
}

.elementor .kr-page-shell > .e-con,
.elementor .kr-page-shell > section.e-con {
	background-color: var(--kr-bg-main) !important;
}

.elementor .kr-page-shell > .e-con:nth-child(even),
.elementor .kr-page-shell > section.e-con:nth-child(even),
.elementor .kr-content-strip {
	background-color: var(--kr-bg-section) !important;
}

.elementor .kr-hero-atmosphere {
	background:
		radial-gradient(circle at 72% 38%, rgba(66,183,201,.12), transparent 42%),
		var(--kr-bg-main) !important;
}

/* ---------- Header ---------- */
.elementor-location-header .kr-header-clinical,
.elementor-location-header > .elementor,
.elementor-location-header header.e-con {
	background: rgba(0, 60, 84, .97) !important;
	border-bottom: 1px solid var(--kr-border-soft) !important;
}

.elementor-location-header .elementor-item,
.elementor-location-header .e-heading-base,
.elementor-location-header .e-heading-link-base,
.elementor-location-header .e-paragraph-link-base {
	color: #FFFFFF !important;
}

/* Logo mark: image-based K inside the existing badge. */
.elementor-location-header .kr-header-brand-group > .e-heading-base:first-child {
	width: 41px !important;
	min-width: 41px !important;
	height: 41px !important;
	aspect-ratio: 1 / 1 !important;
	border-color: #FFFFFF !important;
	background-color: transparent !important;
	border-radius: 8px !important;
	transition: border-color var(--kr-transition), background-color var(--kr-transition), transform var(--kr-transition), box-shadow var(--kr-transition) !important;
}

.elementor-location-header .kr-header-brand-group > .e-heading-base:first-child .e-heading-link-base {
	font-size: 0 !important;
	line-height: 0 !important;
	color: transparent !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.elementor-location-header .kr-header-brand-group > .e-heading-base:first-child .e-heading-link-base::before {
	content: "";
	display: block;
	width: 84%;
	height: 84%;
	background: url("https://knovelray.com/wp-content/uploads/2026/09/Knovelray-K-Logo-Mark.png") center / contain no-repeat;
}

.elementor-location-header .kr-header-brand-group > .e-heading-base:first-child:hover {
	border-color: var(--kr-accent) !important;
	background-color: rgba(66,183,201,.08) !important;
	transform: translateY(-1px);
	box-shadow: 0 0 0 1px rgba(66,183,201,.12), 0 6px 16px rgba(0,0,0,.12) !important;
}

.elementor-location-header .elementor-nav-menu--main .elementor-item,
.elementor-location-header .elementor-nav-menu--dropdown .elementor-item {
	font-size: 1rem !important;
	font-weight: 700 !important;
}

/* Top menu: gradient background expand hover. */
.elementor-location-header .elementor-nav-menu--main .elementor-item {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	border-radius: 6px;
	color: #FFFFFF !important;
	transition: color .28s ease !important;
}

.elementor-location-header .elementor-nav-menu--main .elementor-item::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(120deg, #015571 10%, #42B7C9 90%);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform .32s cubic-bezier(.22,1,.36,1);
	z-index: -1;
}

.elementor-location-header .elementor-nav-menu--main .elementor-item:hover::before,
.elementor-location-header .elementor-nav-menu--main .elementor-item:focus-visible::before {
	transform: scaleX(1);
}

.elementor-location-header .elementor-nav-menu--main .elementor-item:hover,
.elementor-location-header .elementor-nav-menu--main .elementor-item:focus-visible {
	color: #FFFFFF !important;
}

/* Disable Elementor's underline pointer on the desktop menu so it does not compete with the gradient fill. */
.elementor-location-header .elementor-nav-menu--main .elementor-item::after {
	display: none !important;
}

.elementor-location-header .elementor-item.elementor-item-active,
.elementor-location-header .current-menu-item > .elementor-item,
.elementor-location-header .e-paragraph-link-base:hover,
.elementor-location-header .e-heading-link-base:hover {
	color: var(--kr-accent) !important;
}

.elementor-location-header .elementor-nav-menu--dropdown,
.elementor-location-header .elementor-nav-menu--dropdown .elementor-item {
	background: var(--kr-bg-dark) !important;
	color: var(--kr-text-main) !important;
}

.elementor-location-header .elementor-nav-menu--dropdown .elementor-item:hover,
.elementor-location-header .elementor-nav-menu--dropdown .elementor-item.elementor-item-active {
	background: var(--kr-accent-soft) !important;
	color: var(--kr-accent) !important;
}

/* ---------- Buttons ---------- */
.elementor .kr-button-primary,
.elementor a.kr-button-primary,
.elementor button.kr-button-primary,
.elementor input[type="submit"],
.elementor .wpcf7-submit,
.elementor .theme-btns {
	background: var(--kr-accent) !important;
	border: 1px solid var(--kr-accent) !important;
	color: var(--kr-bg-main) !important;
	border-radius: var(--kr-radius-sm) !important;
	box-shadow: none !important;
	transition: background-color var(--kr-transition), border-color var(--kr-transition), color var(--kr-transition), transform var(--kr-transition) !important;
}

.elementor .kr-button-primary:hover,
.elementor a.kr-button-primary:hover,
.elementor button.kr-button-primary:hover,
.elementor input[type="submit"]:hover,
.elementor .wpcf7-submit:hover,
.elementor .theme-btns:hover {
	background: var(--kr-accent-hover) !important;
	border-color: var(--kr-accent-hover) !important;
	color: var(--kr-bg-main) !important;
}

.elementor .kr-button-ghost,
.elementor a.kr-button-ghost,
.elementor button.kr-button-ghost {
	background: transparent !important;
	border: 1px solid var(--kr-accent-border) !important;
	color: var(--kr-text-main) !important;
	border-radius: var(--kr-radius-sm) !important;
	box-shadow: none !important;
}

.elementor .kr-button-ghost:hover,
.elementor a.kr-button-ghost:hover,
.elementor button.kr-button-ghost:hover {
	background: var(--kr-accent-soft) !important;
	border-color: var(--kr-accent) !important;
	color: var(--kr-accent) !important;
}

/* ---------- Shared cards / panels ---------- */
.elementor .kr-card,
.elementor .e-con[class*="kr-card-"] {
	background: var(--kr-bg-card) !important;
	border-color: var(--kr-border-soft) !important;
	color: var(--kr-text-secondary) !important;
}

.elementor .kr-card-heading {
	color: var(--kr-bg-main) !important;
	background: transparent !important;
}

.elementor .kr-stat-band {
	border-color: var(--kr-border-soft) !important;
}

.elementor .kr-stat-band h2,
.elementor .kr-stat-band h3,
.elementor .kr-stat-band h4 {
	color: var(--kr-accent) !important;
}

/* ---------- Contact page normalization ---------- */
body.page-id-102 .kr-page-shell > .e-con:nth-child(odd) {
	background: var(--kr-bg-main) !important;
}
body.page-id-102 .kr-page-shell > .e-con:nth-child(even) {
	background: var(--kr-bg-section) !important;
}
body.page-id-102 .kr-page-shell .e-con .e-con .e-con {
	border-color: var(--kr-border-soft) !important;
}
body.page-id-102 .kr-contact-form,
body.page-id-102 .wpcf7,
body.page-id-102 .tronix-contact-from-one-wrappwr,
body.page-id-102 .tronix-contact-from-one-wrappwr .container {
	background: transparent !important;
}

/* ---------- Forms ---------- */
.elementor .wpcf7 input[type="text"],
.elementor .wpcf7 input[type="email"],
.elementor .wpcf7 input[type="tel"],
.elementor .wpcf7 input[type="number"],
.elementor .wpcf7 select,
.elementor .wpcf7 textarea,
.elementor input[type="text"],
.elementor input[type="email"],
.elementor input[type="tel"],
.elementor input[type="number"],
.elementor textarea,
.elementor select {
	background: var(--kr-form-bg) !important;
	border: 1px solid var(--kr-form-border) !important;
	color: var(--kr-form-text) !important;
	border-radius: var(--kr-radius-sm) !important;
	box-shadow: none !important;
	margin-bottom: var(--kr-form-gap) !important;
}

.elementor .wpcf7 input::placeholder,
.elementor .wpcf7 textarea::placeholder,
.elementor input::placeholder,
.elementor textarea::placeholder {
	color: var(--kr-form-placeholder) !important;
	opacity: 1;
}

.elementor .wpcf7 input:focus,
.elementor .wpcf7 textarea:focus,
.elementor .wpcf7 select:focus,
.elementor input:focus,
.elementor textarea:focus,
.elementor select:focus {
	border-color: var(--kr-accent) !important;
	outline: none !important;
	box-shadow: 0 0 0 2px rgba(66,183,201,.12) !important;
}

.elementor .wpcf7-response-output {
	border-color: var(--kr-border-soft) !important;
	color: var(--kr-text-secondary) !important;
}

/* ---------- Footer ---------- */
.elementor-location-footer .kr-footer-clinical,
.elementor-location-footer footer.e-con,
.elementor-location-footer > .elementor {
	background: var(--kr-bg-dark) !important;
	border-top: 1px solid var(--kr-border-soft) !important;
	color: var(--kr-text-secondary) !important;
}

.elementor-location-footer h1,
.elementor-location-footer h2,
.elementor-location-footer h3,
.elementor-location-footer h4,
.elementor-location-footer h5,
.elementor-location-footer h6,
.elementor-location-footer .e-heading-base {
	color: var(--kr-text-main) !important;
}

.elementor-location-footer a {
	color: var(--kr-text-secondary) !important;
}

.elementor-location-footer a:hover {
	color: var(--kr-accent) !important;
}

/* Footer column headings: keep Products and Contact identical. */
.elementor-location-footer [data-id="d9e1a2b3"],
.elementor-location-footer [data-id="c0ffee12"] {
	font-size: 1rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	margin: 0 0 .75rem !important;
	padding: 0 !important;
	letter-spacing: 0 !important;
}

/* Footer logo mark: mirror the header's image-based K badge. */
.elementor-location-footer [data-id="ff2ff5a"] {
	width: 41px !important;
	min-width: 41px !important;
	height: 41px !important;
	min-height: 41px !important;
	aspect-ratio: 1 / 1 !important;
	box-sizing: border-box !important;
	border: 1px solid #FFFFFF !important;
	border-radius: 8px !important;
	background-color: transparent !important;
	font-size: 0 !important;
	line-height: 0 !important;
	color: transparent !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 41px !important;
	transition: border-color var(--kr-transition), background-color var(--kr-transition), transform var(--kr-transition), box-shadow var(--kr-transition) !important;
}

.elementor-location-footer [data-id="ff2ff5a"]::before {
	content: "";
	display: block;
	width: 84%;
	height: 84%;
	background: url("https://knovelray.com/wp-content/uploads/2026/09/Knovelray-K-Logo-Mark.png") center / contain no-repeat;
}

.elementor-location-footer [data-id="ff2ff5a"]:hover {
	border-color: var(--kr-accent) !important;
	background-color: rgba(66,183,201,.08) !important;
	transform: translateY(-1px);
	box-shadow: 0 0 0 1px rgba(66,183,201,.12), 0 6px 16px rgba(0,0,0,.12) !important;
}

/* Footer three-column layout. */
.elementor-location-footer [data-id="09d1645"] {
	display: grid !important;
	grid-template-columns: minmax(0, 1.35fr) minmax(160px, .8fr) minmax(180px, .8fr) !important;
	grid-template-rows: auto auto !important;
	column-gap: clamp(2rem, 6vw, 6rem) !important;
	row-gap: 15px !important;
	align-items: start !important;
}

.elementor-location-footer [data-id="30e7a68"] {
	grid-column: 1 !important;
	grid-row: 1 !important;
}

.elementor-location-footer [data-id="c6a91e4b"] {
	grid-column: 1 !important;
	grid-row: 2 !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	color: var(--kr-text-muted) !important;
	font-size: .82rem !important;
	line-height: 1.55 !important;
}

.elementor-location-footer [data-id="b8e3d4f1"] {
	grid-column: 2 !important;
	grid-row: 1 / span 2 !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	gap: .45rem !important;
	margin: 0 !important;
	padding: 0 !important;
}

.elementor-location-footer [data-id="e1a2b3c4"],
.elementor-location-footer [data-id="f2b3c4d5"],
.elementor-location-footer [data-id="a3c4d5e6"] {
	font-size: .9rem !important;
	line-height: 1.5 !important;
}

.elementor-location-footer [data-id="1c98d55"] {
	grid-column: 3 !important;
	grid-row: 1 / span 2 !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	gap: .45rem !important;
	margin: 0 !important;
	padding: 0 !important;
}
#footer-desc {
    max-width: 345px !important;
}

/* Footer credit line. */
.elementor-location-footer [data-id="afd9b8a"] {
	width: 100% !important;
	text-align: center !important;
}

.elementor-location-footer [data-id="afd9b8a"] a {
	color: var(--kr-text-secondary) !important;
	text-decoration: none !important;
}

.elementor-location-footer [data-id="afd9b8a"] a:hover {
	color: var(--kr-accent) !important;
}

@media (max-width: 767px) {
	.elementor-location-footer [data-id="09d1645"] {
		grid-template-columns: 1fr !important;
		grid-template-rows: auto !important;
		row-gap: 1.5rem !important;
	}

	.elementor-location-footer [data-id="30e7a68"],
	.elementor-location-footer [data-id="c6a91e4b"],
	.elementor-location-footer [data-id="b8e3d4f1"],
	.elementor-location-footer [data-id="1c98d55"] {
		grid-column: 1 !important;
		grid-row: auto !important;
	}
}

/* ---------- Generic borders / icon accents ---------- */
.elementor hr,
.elementor [class*="divider"],
.elementor .elementor-divider-separator {
	border-color: var(--kr-border-soft) !important;
}

.elementor .elementor-icon,
.elementor .e-icon,
.elementor svg:not(.elementor-menu-toggle__icon--open):not(.elementor-menu-toggle__icon--close) {
	color: var(--kr-accent);
}

/* Keep product photography neutral. */
.elementor img {
	filter: none;
}

/* ---------- Responsive consistency ---------- */
@media (max-width: 1024px) {
	.elementor-location-header .elementor-menu-toggle {
		color: var(--kr-text-main) !important;
	}
}

@media (max-width: 767px) {
	.elementor .kr-button-primary,
	.elementor .kr-button-ghost {
		max-width: 100%;
	}
}