/*
Theme Name: Vaximo Child
Theme URI: https://algosystems.wpdev247.com
Description: Child theme for Vaximo. Algosystems customizations go here so parent theme updates do not overwrite them.
Author: Hellenic Technologies
Author URI: https://hellenictechnologies.com
Template: vaximo
Version: 1.4.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: vaximo-child
*/

/* Algosystems overrides — add CSS below. Parent styles load first. */

/*
 * Header logo is an SVG without a layout width of its own.
 * max-width: 100% on images then collapses it to 0 inside the nav brand.
 */
.main-nav .navbar-brand img {
	width: 340px;
	height: auto;
	max-width: none;
}

.mobile-nav .logo img {
	width: 168px;
	height: auto;
	max-width: 46vw;
}

.elementor-1935 .elementor-element-8daca77 .main-nav .navbar-brand {
	max-width: 360px;
}

/*
 * Cloud Security feature icons (feature-01 / feature-02 / feature-03).
 * Parent `img { max-width: 100% }` shrinks them when the title wraps,
 * so the three numbered badges render at different sizes.
 */
.cs-features-inner .row > [class*="col-"] {
	display: flex;
}

.cs-features-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
}

.cs-features-card .title .icon {
	flex: 0 0 100px;
	width: 100px;
	margin-right: 16px;
}

.cs-features-card .title .icon img {
	display: block;
	width: 100px;
	height: auto;
	max-width: none;
}

.cs-features-card .title h3 {
	flex: 1 1 auto;
	min-width: 0;
}

.cs-features-card p {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	max-width: none;
	margin-bottom: 0;
}

.cs-features-inner .cs-features-card p br {
	display: none;
}

.cs-features-inner .cs-features-card p a {
	margin-top: auto;
	padding-top: 16px;
	align-self: flex-start;
}

@media only screen and (max-width: 767px) {
	.cs-features-card .title .icon {
		flex-basis: 80px;
		width: 80px;
	}

	.cs-features-card .title .icon img {
		width: 80px;
	}
}

/*
 * Contact Us Ninja Form (https://algosys.wpdev247.com/contact-us/).
 * Two-column fields, gray inputs, black submit, GDPR consent under the button.
 */
.nf-form-cont.algosystems-contact-form .nf-form-content {
	max-width: 920px;
	margin: 0 auto;
	padding: 8px 0 0;
}

.nf-form-cont.algosystems-contact-form .nf-form-content label,
.nf-form-cont.algosystems-contact-form .nf-field-label label {
	font-weight: 500;
	font-size: 16px;
	line-height: 1.35;
	color: #6a6a6a;
}

.nf-form-cont.algosystems-contact-form .nf-form-fields-required,
.nf-form-cont.algosystems-contact-form .ninja-forms-req-symbol {
	display: none;
}

.nf-form-cont.algosystems-contact-form .nf-form-content input.ninja-forms-field:not([type="submit"]):not([type="checkbox"]),
.nf-form-cont.algosystems-contact-form .nf-form-content textarea.ninja-forms-field {
	background: #efefef;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: #333333;
	height: 52px;
	padding: 12px 14px;
}

.nf-form-cont.algosystems-contact-form .nf-form-content textarea.ninja-forms-field {
	height: 168px;
	min-height: 168px;
	resize: vertical;
}

.nf-form-cont.algosystems-contact-form .nf-form-content input.ninja-forms-field:not([type="submit"]):not([type="checkbox"]):focus,
.nf-form-cont.algosystems-contact-form .nf-form-content textarea.ninja-forms-field:focus {
	background: #f7f7f7;
	border: 0;
	outline: 1px solid #d0d0d0;
}

.nf-form-cont.algosystems-contact-form .one-half {
	width: calc(50% - 18px);
	margin-left: 0;
	margin-bottom: 8px;
}

.nf-form-cont.algosystems-contact-form .one-half:not(.first) {
	margin-left: 36px;
}

.nf-form-cont.algosystems-contact-form .submit-container {
	clear: both;
	float: none;
	width: 100%;
	margin: 18px 0 22px;
}

.nf-form-cont.algosystems-contact-form .nf-form-content input[type="submit"].ninja-forms-field {
	color: #ffffff;
	border: 0;
	border-radius: 5px;
	height: auto;
	width: auto;
	min-width: 132px;
	padding: 16px 28px;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.06em;
	line-height: 1;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: none;
	background-image: linear-gradient(var(--maincolor), var(--maincolor)), var(--pinkgradient);
	background-repeat: no-repeat;
	background-size: 0 100%, 100% 100%;
	background-position: center, center;
	transition: background-size 0.5s ease;
}

.nf-form-cont.algosystems-contact-form .nf-form-content input[type="submit"].ninja-forms-field:hover,
.nf-form-cont.algosystems-contact-form .nf-form-content input[type="submit"].ninja-forms-field:focus {
	background-image: linear-gradient(var(--maincolor), var(--maincolor)), var(--pinkgradient);
	background-size: 100% 100%, 100% 100%;
	color: #ffffff;
}

.nf-form-cont.algosystems-contact-form .checkbox-container {
	clear: both;
	float: none;
	width: 100%;
	margin-top: 6px;
}

.nf-form-cont.algosystems-contact-form .checkbox-container .nf-field-label label {
	font-weight: 400;
	font-size: 14px;
	line-height: 1.5;
	color: #8d8d8d;
}

.nf-form-cont.algosystems-contact-form .checkbox-container.label-right .nf-field-label {
	width: auto;
	flex: 1;
	align-items: flex-start;
}

.nf-form-cont.algosystems-contact-form .checkbox-container.label-right .field-wrap {
	align-items: flex-start;
}

@media only screen and (max-width: 800px) {
	.nf-form-cont.algosystems-contact-form .one-half,
	.nf-form-cont.algosystems-contact-form .one-half:not(.first) {
		width: 100%;
		float: none;
		margin-left: 0;
	}
}

/* Algosystems brand tokens. Parent theme pink and Rubik/Barlow are overridden here. */
:root {
	--algo-navy: #0c0d55;
	--algo-blue: #1b54a5;
	--algo-blue-light: #227ebe;
	--algo-teal: #119e9a;
	--algo-wordmark: #050f2a;
	--algo-text: #3c4a56;
	--algo-muted: #7a8a96;
	--algo-border: #dde3ea;
	--algo-tint: #f2f6fa;
	--maincolor: #1b54a5;
	--inter_fonts: "Inter", sans-serif;
}

body,
button,
input,
textarea,
select,
.elementor-widget-container,
.ns-section-title,
.ns-section-title p,
.default-btn {
	font-family: "Inter", sans-serif;
}

body,
.ns-services-card .content p,
.ns-case-studies-card .content p,
.single-solutions p,
.approach-content p,
.approach-content ul li p {
	color: var(--algo-text);
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
.htitle,
.ns-section-title h2,
.ns-services-card .content h3 a,
.ns-case-studies-card .content h3 a,
.page-title-content h1,
.page-title-content h2 {
	font-family: "Inter", sans-serif;
	color: var(--algo-navy);
}

a {
	color: var(--algo-blue);
}

.ns-section-title .sub,
.approach-content .sub {
	color: var(--algo-teal);
}

.go-top,
.go-top::before {
	background-color: var(--algo-blue);
}

/*
 * Every theme button uses the homepage hero fill and the two-sided wipe.
 * Links that are not .default-btn (features and services footers) are included too.
 */
.default-btn {
	border-radius: 5px;
	background: var(--pinkgradient);
	color: #ffffff;
}

.default-btn:not(.active)::before,
.default-btn:not(.active)::after {
	background: var(--maincolor);
}

.default-btn:hover,
.default-btn:focus {
	color: #ffffff;
}

/*
 * Contact us, More About Us, View All Services, and How We Work Learn More
 * match the hero button. The widget markup stays as the plugin ships it.
 */
.cs-features-bottom-link li:last-child a,
.ns-services-bottom-link li:last-child a,
.elementor-widget-html a.default-btn,
.electronic-content .electronic-tab-wrap .electronic-tab .default-btn {
	display: inline-block;
	position: relative;
	overflow: hidden;
	z-index: 1;
	padding: 15px 30px;
	border-radius: 5px;
	background: var(--pinkgradient);
	color: #ffffff;
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	text-decoration: none;
	text-transform: capitalize;
	cursor: pointer;
}

.cs-features-bottom-link li:last-child a img,
.ns-services-bottom-link li:last-child a img {
	display: none;
}

.cs-features-bottom-link li:last-child a::before,
.ns-services-bottom-link li:last-child a::before,
.elementor-widget-html a.default-btn::before,
.electronic-content .electronic-tab-wrap .electronic-tab .default-btn::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 0;
	height: 100%;
	background: var(--maincolor);
	z-index: -1;
	transition: all 0.5s;
}

.cs-features-bottom-link li:last-child a::after,
.ns-services-bottom-link li:last-child a::after,
.elementor-widget-html a.default-btn::after,
.electronic-content .electronic-tab-wrap .electronic-tab .default-btn::after {
	content: "";
	position: absolute;
	bottom: 0;
	right: 0;
	width: 0;
	height: 100%;
	background: var(--maincolor);
	z-index: -1;
	transition: all 0.5s;
}

.cs-features-bottom-link li:last-child a:hover,
.ns-services-bottom-link li:last-child a:hover,
.elementor-widget-html a.default-btn:hover,
.electronic-content .electronic-tab-wrap .electronic-tab .default-btn:hover {
	color: #ffffff;
	text-decoration: none;
}

.cs-features-bottom-link li:last-child a:hover::before,
.ns-services-bottom-link li:last-child a:hover::before,
.elementor-widget-html a.default-btn:hover::before,
.electronic-content .electronic-tab-wrap .electronic-tab .default-btn:hover::before {
	left: auto;
	right: 0;
	width: 50%;
}

.cs-features-bottom-link li:last-child a:hover::after,
.ns-services-bottom-link li:last-child a:hover::after,
.elementor-widget-html a.default-btn:hover::after,
.electronic-content .electronic-tab-wrap .electronic-tab .default-btn:hover::after {
	left: 0;
	right: 0;
	width: 50%;
}

.elementor-2022 .elementor-element.elementor-element-4047f0d .ns-services-bottom-link li:last-child a,
.elementor-2022 .elementor-element.elementor-element-4047f0d .ns-services-bottom-link li:last-child a:hover {
	color: #ffffff;
}

.elementor-element-4047f0d .ns-services-bottom-link li:first-child {
	display: none;
}

/* Partner logos sit under the about text. The button sits under the logos. All three share the text column's left edge. */
.elementor:not(.elementor-bc-flex-widget) .elementor-element-7ff6ffa > .elementor-widget-wrap {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: flex-start;
	justify-content: flex-start;
	row-gap: 22px;
}

.elementor-element-7ff6ffa > .elementor-widget-wrap > .elementor-element-468a106,
.elementor-element-7ff6ffa > .elementor-widget-wrap > .elementor-element-plogo7a,
.elementor-element-7ff6ffa > .elementor-widget-wrap > .elementor-element-abtn7a1 {
	flex: 0 0 auto;
	width: 100%;
	max-width: none;
	margin: 0;
	align-self: stretch;
}

.elementor-element-7ff6ffa .ns-about-content p {
	max-width: none;
}

.elementor-element-7ff6ffa > .elementor-widget-wrap > .elementor-element-plogo7a .elementor-widget-container {
	text-align: left;
}

.algo-partner-logos {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px 16px;
	align-items: center;
	width: 100%;
	margin: 0;
	padding: 18px 16px;
	border-radius: 6px;
}

.elementor-element-7ff6ffa > .elementor-widget-wrap > .elementor-element-plogo7a .algo-partner-logos img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: 52px;
	object-fit: contain;
	margin: 0;
}

@media (max-width: 1024px) {
	.algo-partner-logos {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.algo-partner-logos {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.elementor-element-7ff6ffa > .elementor-widget-wrap > .elementor-element-abtn7a1 .elementor-widget-container {
	text-align: left;
}

.ns-fun-facts-inner {
	background: var(--algo-navy);
}

.ns-fun-facts-card .title p {
	color: rgba(255, 255, 255, 0.82);
}

.ns-services-card,
.single-security,
.ns-case-studies-area {
	background-color: var(--algo-tint);
}

.ns-services-card .image .icon,
.ns-case-studies-card .image .icon a {
	background: var(--algo-blue);
}

.single-security i {
	background-image: none;
	background-color: var(--algo-blue);
}

.single-solutions::after {
	background-image: linear-gradient(to bottom, rgba(12, 13, 85, 0.92), rgba(27, 84, 165, 0.92));
}

.approach-content ul li:hover,
.single-security:hover,
.single-solutions:hover {
	transform: none;
}

.approach-content ul li:hover {
	background-color: var(--algo-tint);
}

.approach-content ul li:hover i,
.single-security:hover i {
	transform: none;
	background-color: var(--algo-blue);
	color: #ffffff;
}

/* Homepage service grid: equal cards in each row, arrow pinned to the bottom. */
.elementor-widget-VaximoServicesCS .row {
	align-items: stretch;
}

.elementor-widget-VaximoServicesCS .row > [class*="col-"] {
	display: flex;
	flex-direction: column;
}

.elementor-widget-VaximoServicesCS .ns-services-card {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	width: 100%;
	height: auto;
	border: 1px solid var(--algo-border);
}

.elementor-widget-VaximoServicesCS .ns-services-card .image img {
	width: 100%;
	aspect-ratio: 752 / 523;
	object-fit: cover;
}

.elementor-widget-VaximoServicesCS .ns-services-card .content {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

.elementor-widget-VaximoServicesCS .ns-services-card .content p {
	flex: 1 1 auto;
	color: var(--algo-text);
}

.elementor-widget-VaximoServicesCS .ns-services-card .content .services-btn {
	margin-top: auto;
}

/* Insights archive uses the case-studies card, in an equal grid. */
.algo-insights-grid {
	align-items: stretch;
}

.algo-insights-grid > [class*="col-"] {
	display: flex;
}

.algo-insights-grid .ns-case-studies-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
}

.algo-insights-grid .ns-case-studies-card .image img,
.algo-insights-grid .algo-insight-fallback {
	width: 100%;
	aspect-ratio: 1296 / 826;
	object-fit: cover;
	border-radius: 20px;
}

.algo-insights-grid .algo-insight-fallback {
	background: var(--algo-navy);
}

.algo-insights-grid .ns-case-studies-card .content {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

.algo-insights-grid .ns-case-studies-card .content p {
	max-width: none;
	flex: 1 1 auto;
	color: var(--algo-muted);
}

.page-id-5068 .nf-form-content input[type="submit"],
.page-id-5068 .nf-form-content button {
	border-color: transparent;
	border-radius: 5px;
	color: #ffffff;
	background-image: linear-gradient(var(--maincolor), var(--maincolor)), var(--pinkgradient);
	background-repeat: no-repeat;
	background-size: 0 100%, 100% 100%;
	background-position: center, center;
	transition: background-size 0.5s ease;
}

.page-id-5068 .nf-form-content input[type="submit"]:hover,
.page-id-5068 .nf-form-content button:hover {
	color: #ffffff;
	background-size: 100% 100%, 100% 100%;
}

/* Brochure consent matches the contact form checkbox label. */
#nf-form-2-cont .checkbox-container {
	clear: both;
	float: none;
	width: 100%;
	margin-top: 6px;
}

#nf-form-2-cont .checkbox-container .nf-field-label label {
	font-weight: 400;
	font-size: 14px;
	line-height: 1.5;
	color: #8d8d8d;
}

#nf-form-2-cont .checkbox-container.label-right .nf-field-label {
	width: auto;
	flex: 1;
	align-items: flex-start;
}

#nf-form-2-cont .checkbox-container.label-right .nf-field-element {
	width: auto;
	flex: 0 0 auto;
}

#nf-form-2-cont .checkbox-container.label-right .field-wrap {
	align-items: flex-start;
}

/* Inner page title: client photo when the page has no banner image. */
.page-title-area {
	background-image: url("/wp-content/uploads/2026/10/privacy-cybersecurity-principles-safeguard-data-technology-internet-network-security-scaled.jpg");
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

.page-title-area[style*="background-image:url()"] {
	background-image: url("/wp-content/uploads/2026/10/privacy-cybersecurity-principles-safeguard-data-technology-internet-network-security-scaled.jpg") !important;
}

.page-title-area::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(12, 13, 85, 0.62);
	z-index: 0;
	pointer-events: none;
}

.page-title-area .container,
.page-title-area .page-title-content {
	position: relative;
	z-index: 1;
}

/* Blog cards in the homepage slider keep the Posts Three layout. */
.cs-blog-slides.owl-carousel .owl-stage {
	display: flex;
}

.cs-blog-slides.owl-carousel .owl-item {
	display: flex;
	height: auto;
}

.cs-blog-slides .cs-blog-card {
	width: 100%;
}

.cs-blog-slides .cs-blog-card .image img {
	width: 100%;
	aspect-ratio: 16 / 11;
	object-fit: cover;
}

.cs-blog-slides .cs-blog-card .content p {
	margin: 14px 0 0;
	font-size: 17px;
	line-height: 1.6;
	color: #212121;
}

.cs-blog-slides .owl-dots {
	margin-top: 28px;
	text-align: center;
}

/* Mission section shapes float the way they do on the Vaximo demo.
   The parent theme hides them below 1200px, which is why they disappear on many laptops. */
@keyframes movebounce {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(40px);
	}
}

@media (min-width: 992px) {
	.complete-area .complete-shape,
	.complete-area .complete-shape-2 {
		display: block;
	}
}

.complete-area .complete-shape,
.complete-area .complete-shape-2 {
	animation: movebounce 4s ease-in-out infinite;
}

.complete-area .complete-shape-2 {
	animation-direction: reverse;
}

/* Mission cards: the demo wipe on hover, in Algosystems colors. */
body .elementor-widget-security-approach .complete-area.style .single-security {
	position: relative;
	overflow: hidden;
	z-index: 1;
}

body .elementor-widget-security-approach .complete-area.style .single-security::after {
	border-top-color: #119E9A;
}

body .elementor-widget-security-approach .complete-area.style .single-security::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: auto;
	width: 0;
	height: 100%;
	background: #119E9A;
	transition: width 0.5s ease;
	z-index: -1;
}

body .elementor-widget-security-approach .complete-area.style .single-security:hover::before {
	content: "";
	width: 100%;
	left: 0;
	right: auto;
	background: #119E9A;
}

body .elementor-widget-security-approach .complete-area.style .single-security:hover h1,
body .elementor-widget-security-approach .complete-area.style .single-security:hover h2,
body .elementor-widget-security-approach .complete-area.style .single-security:hover h3,
body .elementor-widget-security-approach .complete-area.style .single-security:hover h4,
body .elementor-widget-security-approach .complete-area.style .single-security:hover h5,
body .elementor-widget-security-approach .complete-area.style .single-security:hover h6,
body .elementor-widget-security-approach .complete-area.style .single-security:hover p {
	color: #ffffff;
}

body .elementor-widget-security-approach .complete-area.style .single-security:hover i {
	background-color: #ffffff;
	background-image: none;
	color: #119E9A;
}

.algo-blog-filters {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 8px 0 36px;
}

.algo-blog-filters a {
	display: inline-block;
	padding: 12px 22px;
	border: 1px solid var(--algo-border, #dde3ea);
	border-radius: 5px;
	background: #ffffff;
	color: var(--algo-navy, #0c0d55);
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
}

.algo-blog-filters a:hover,
.algo-blog-filters a.is-active {
	border-color: transparent;
	background: var(--pinkgradient, linear-gradient(136deg, #327295 1.84%, #141768 100%));
	color: #ffffff;
}

.elementor-5349 .elementor-element-849adfe {
	width: 100%;
	text-align: center;
}

/* Services slider arrows sit inside the visible row, over the side cards. */
.elementor-widget-Services_Area .solutions-wrap {
	position: relative;
}

.elementor-widget-Services_Area .solutions-wrap .owl-nav {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 100%;
	margin: 0;
	pointer-events: none;
}

.elementor-widget-Services_Area .solutions-wrap .owl-nav [class*="owl-"] {
	position: absolute;
	top: 50%;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border-radius: 50%;
	background: #ffffff;
	color: var(--algo-navy, #0c0d55);
	box-shadow: 0 8px 24px rgba(12, 13, 85, 0.18);
	transform: translateY(-50%);
	pointer-events: auto;
}

.elementor-widget-Services_Area .solutions-wrap .owl-nav .owl-prev {
	left: 28px;
}

.elementor-widget-Services_Area .solutions-wrap .owl-nav .owl-next {
	right: 28px;
}

.elementor-widget-Services_Area .solutions-wrap .owl-nav i {
	font-size: 22px;
	line-height: 1;
}

.elementor-widget-Services_Area .solutions-wrap .owl-nav [class*="owl-"]:hover {
	background: var(--pinkgradient, linear-gradient(136deg, #327295 1.84%, #141768 100%));
	color: #ffffff;
}

.elementor-widget-Services_Area .solutions-wrap .owl-nav [class*="owl-"].disabled {
	opacity: 0.35;
	pointer-events: none;
}

.elementor-widget-Services_Area .solutions-wrap .single-solutions {
	height: 380px;
	margin-top: 48px;
	margin-bottom: 0;
}

.elementor-widget-Services_Area .solutions-wrap .owl-item.is-featured .single-solutions {
	height: 460px;
	margin-top: 0;
}
