/**
 * Global modernization layer — works with Elementor (does not reset widgets).
 * Tune brand tokens under :root.
 */

:root {
	color-scheme: light;

	/* Brand tokens — edit to match Command Communications */
	--cce-ink: #0f172a;
	--cce-ink-soft: #334155;
	--cce-muted: #64748b;
	--cce-line: #e2e8f0;
	--cce-surface: #f8fafc;
	--cce-accent: #2563eb;
	--cce-accent-hover: #1d4ed8;
	--cce-radius-sm: 6px;
	--cce-radius-md: 12px;
	--cce-radius-lg: 20px;
	--cce-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06);
	--cce-shadow-md: 0 12px 40px rgba(15, 23, 42, 0.08);
	--cce-font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--cce-leading-tight: 1.2;
	--cce-leading-body: 1.65;
	--cce-tracking-heading: -0.02em;
}

html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

body {
	font-family: var(--cce-font);
	color: var(--cce-ink);
	background-color: var(--cce-surface);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/**
 * Header navigation readability
 * Elementor Site Settings used Primary (#fff) for `.site-header .site-navigation` links
 * (see wp-content/uploads/elementor/css/post-*.css), which reads as invisible on light headers.
 */
.site-header .site-navigation ul.menu > li > a {
	color: var(--e-global-color-text, var(--cce-ink)) !important;
	font-weight: 600;
	font-size: 1rem;
	text-decoration: none;
}

.site-header .site-navigation ul.menu li.menu-item-has-children:after {
	color: var(--e-global-color-text, var(--cce-muted)) !important;
}

@media (hover: hover) {
	.site-header .site-navigation ul.menu > li > a:hover {
		color: var(--e-global-color-secondary, var(--cce-accent)) !important;
	}
}

.site-header .site-navigation ul.menu li ul li a {
	color: var(--cce-ink-soft) !important;
}

.site-header .site-navigation ul.menu li ul li a:hover {
	color: var(--cce-accent) !important;
}

/* Header Footer Elementor — nav widget in theme header location */
.elementor-location-header .hfe-nav-menu a.hfe-menu-item,
.elementor-location-header .hfe-nav-menu .sub-menu a.hfe-sub-menu-item {
	color: var(--e-global-color-text, var(--cce-ink)) !important;
	font-weight: 600;
}

@media (hover: hover) {
	.elementor-location-header .hfe-nav-menu a.hfe-menu-item:hover,
	.elementor-location-header .hfe-nav-menu .sub-menu a.hfe-sub-menu-item:hover {
		color: var(--e-global-color-secondary, var(--cce-accent)) !important;
	}
}

::selection {
	background-color: rgba(37, 99, 235, 0.18);
	color: var(--cce-ink);
}

/* Baseline readability where Elementor leaves browser defaults */
.elementor-widget-text-editor,
.elementor-widget-theme-post-content,
.elementor-widget-post-content {
	line-height: var(--cce-leading-body);
	color: var(--cce-ink-soft);
}

.elementor-widget-heading .elementor-heading-title {
	letter-spacing: var(--cce-tracking-heading);
	line-height: var(--cce-leading-tight);
}

/* Buttons: subtle motion + focus ring (Elementor keeps colors) */
.elementor-button,
.elementor-button-wrapper .elementor-button {
	border-radius: var(--cce-radius-sm);
	transition:
		transform 0.18s ease,
		box-shadow 0.18s ease,
		background-color 0.18s ease,
		color 0.18s ease,
		border-color 0.18s ease;
}

.elementor-button:focus-visible {
	outline: 2px solid var(--cce-accent);
	outline-offset: 3px;
}

@media (hover: hover) {
	.elementor-button:hover {
		transform: translateY(-1px);
		box-shadow: var(--cce-shadow-md);
	}
}

/* Links inside text widgets */
.elementor-widget-text-editor a:not(.elementor-button-link),
.elementor-widget-theme-post-content a {
	color: var(--cce-accent);
	text-underline-offset: 0.2em;
	transition: color 0.15s ease;
}

.elementor-widget-text-editor a:not(.elementor-button-link):hover,
.elementor-widget-theme-post-content a:hover {
	color: var(--cce-accent-hover);
}

/* Image widgets: light card treatment (skip header/footer for logos) */
.elementor-widget-image img {
	border-radius: var(--cce-radius-md);
	box-shadow: var(--cce-shadow-sm);
}

.elementor-location-header .elementor-widget-image img,
.elementor-location-footer .elementor-widget-image img {
	border-radius: 0;
	box-shadow: none;
}

/* Forms (WPForms / Elementor forms) — spacing and focus */
.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container input[type="tel"],
.wpforms-container textarea,
.wpforms-container select,
.elementor-field-group .elementor-field-textual {
	border-radius: var(--cce-radius-sm);
	border-color: var(--cce-line);
	transition:
		border-color 0.15s ease,
		box-shadow 0.15s ease;
}

.wpforms-container input:focus-visible,
.wpforms-container textarea:focus-visible,
.wpforms-container select:focus-visible,
.elementor-field-group .elementor-field-textual:focus-visible {
	outline: none;
	border-color: var(--cce-accent);
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.2);
}

/* Header / footer built with Elementor: sticky header shadow when scrolled — class via Header Footer Elementor if needed */
.site-header .elementor-sticky--effects-active.elementor-sticky,
.elementor-location-header .elementor-sticky--effects-active.elementor-sticky {
	box-shadow: var(--cce-shadow-sm);
}

/* Responsive hardening for Elementor-heavy pages */
.elementor img,
.elementor video,
.elementor iframe {
	max-width: 100%;
}

.elementor-widget-image img {
	height: auto;
}

.elementor-widget-heading .elementor-heading-title {
	overflow-wrap: anywhere;
}

@media (max-width: 1024px) {
	.elementor-section.elementor-section-boxed > .elementor-container,
	.e-con {
		padding-left: 20px;
		padding-right: 20px;
	}

	.elementor-widget-heading h1,
	.elementor-widget-heading .elementor-heading-title.elementor-size-xxl {
		font-size: clamp(2rem, 5vw, 2.8rem);
		line-height: 1.15;
	}

	.elementor-widget-heading h2,
	.elementor-widget-heading .elementor-heading-title.elementor-size-xl {
		font-size: clamp(1.6rem, 3.8vw, 2.2rem);
	}

	.elementor-widget-text-editor {
		font-size: 1rem;
	}
}

@media (max-width: 767px) {
	.elementor-section.elementor-section-boxed > .elementor-container,
	.e-con {
		padding-left: 16px;
		padding-right: 16px;
	}

	.elementor-widget-heading h1,
	.elementor-widget-heading .elementor-heading-title.elementor-size-xxl {
		font-size: clamp(1.8rem, 9vw, 2.25rem);
	}

	.elementor-widget-heading h2,
	.elementor-widget-heading .elementor-heading-title.elementor-size-xl {
		font-size: clamp(1.4rem, 7.2vw, 1.8rem);
	}

	.elementor-widget-heading h3,
	.elementor-widget-heading .elementor-heading-title.elementor-size-large {
		font-size: clamp(1.2rem, 5.8vw, 1.4rem);
	}

	.elementor-widget-text-editor,
	.elementor-widget-post-content,
	.elementor-widget-theme-post-content {
		font-size: 0.98rem;
		line-height: 1.7;
	}

	/* Improve menu legibility and touch targets in dropdown mode */
	.site-navigation-dropdown ul.menu li a {
		font-size: 1rem;
		line-height: 1.3;
		padding: 14px 16px;
	}

	.elementor-location-header .hfe-nav-menu a.hfe-menu-item,
	.elementor-location-header .hfe-nav-menu .sub-menu a.hfe-sub-menu-item {
		min-height: 44px;
		display: flex;
		align-items: center;
	}

	/* Preserve animations but reduce motion intensity on small screens */
	.elementor-element {
		transition-duration: 0.2s !important;
	}
}
