/*
Theme Name: Nexus
Theme URI: https://nexus-wp-theme.com
Author: Nexus Themes
Author URI: https://nexus-wp-theme.com
Description: Multi-Purpose WordPress Theme with frontend Builder, Theme Options, community, e-commerce, and rental/booking. Build anything.
Version: 1.0.84
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nexus
Tags: custom-background, custom-logo, custom-menu, featured-images, footer-widgets, full-width-template, post-formats, sticky-post, theme-options, threaded-comments, translation-ready, block-styles, wide-blocks, accessibility-ready, blog, e-commerce, portfolio, custom-colors, one-page, two-columns, three-columns, four-columns, left-sidebar, right-sidebar, flexible-header, rtl-language-support

Nexus - Multi-Purpose WordPress Theme.

ThemeForest / marketplace: replace Theme URI and Author URI with your live demo or Envato profile URL. Bundled screenshot.png (1200x900) and assets/themeforest-cover.png (2340x1560, 3:2) are branded placeholders; replace with polished demo screenshots before publishing. Regenerate with scripts/generate-themeforest-previews.ps1 (author-only; excluded from buyer zip via .distignore).
*/

/* ==========================================================================
   Color system – all editable from Theme Options
   ========================================================================== */

:root {
	/* Primary & accent */
	--nexus-primary: #0f766e;
	--nexus-primary-hover: #0d9488;
	--nexus-secondary: #475569;
	--nexus-accent: #0891b2;

	/* Header */
	--nexus-header-bg: #ffffff;
	--nexus-header-text: #0f172a;
	--nexus-header-link: #334155;
	--nexus-header-link-hover: #0f766e;
	--nexus-header-icon: #000000;
	--nexus-header-icon-hover: var(--nexus-primary, #0f766e);
	--nexus-header-border: rgba(0, 0, 0, 0.08);

	/* Body & content */
	--nexus-body-bg: #f8fafc;
	--nexus-body-text: #334155;
	--nexus-body-text-muted: #64748b;
	--nexus-link: #0f766e;
	--nexus-link-hover: #0d9488;

	/* Footer */
	--nexus-footer-bg: #0f172a;
	--nexus-footer-text: #e2e8f0;
	--nexus-footer-link: #94a3b8;
	--nexus-footer-link-hover: #ffffff;
	--nexus-footer-icon: var(--nexus-footer-link);
	--nexus-footer-icon-hover: var(--nexus-footer-link-hover);
	--nexus-footer-border: #334155;

	/* Buttons & CTAs */
	--nexus-button-bg: #0f766e;
	--nexus-button-text: #ffffff;
	--nexus-button-hover-bg: #0d9488;
	--nexus-button-hover-text: #ffffff;

	/* Borders & surfaces */
	--nexus-border: #e2e8f0;
	--nexus-border-light: #f1f5f9;
	--nexus-surface: #ffffff;
	--nexus-surface-alt: #f1f5f9;

	/* Shadows & radius */
	--nexus-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06);
	--nexus-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
	--nexus-shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.1);
	--nexus-radius: 8px;
	--nexus-radius-lg: 12px;

	/* Sidebar & widgets */
	--nexus-sidebar-bg: #f8fafc;
	--nexus-widget-title: #0f172a;

	/* Comments & forms */
	--nexus-input-border: #cbd5e1;
	--nexus-input-focus: #0f766e;

	/* Pagination */
	--nexus-pagination-bg: #f1f5f9;
	--nexus-pagination-current: #0f766e;
}

/* ==========================================================================
   Base & Reset
   ========================================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-size: 16px;
	line-height: 1.65;
	color: var(--nexus-body-text);
	background-color: var(--nexus-body-bg);
	background-image: radial-gradient(ellipse 120% 80% at 50% -20%, rgba(15, 118, 110, 0.06), transparent 50%);
	-webkit-font-smoothing: antialiased;
}

/* Customizer: Typography → System fonts only (no bundled DM Sans) */
body.nexus-font-system {
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}

/* Nav menu icons (Heroicons bundle, Appearance → Menus) */
.main-navigation .nexus-menu-icon,
.site-footer .nexus-menu-icon,
.nexus-topbar-menu .nexus-menu-icon,
.nexus-header-utilities-menu .nexus-menu-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-right: 0.4em;
	vertical-align: middle;
	line-height: 0;
}
.main-navigation .nexus-menu-icon svg,
.nexus-topbar-menu .nexus-menu-icon svg,
.nexus-header-utilities-menu .nexus-menu-icon svg {
	width: 1.15em;
	height: 1.15em;
	flex-shrink: 0;
	color: inherit;
}

.site-footer .nexus-menu-icon,
.site-footer .nexus-menu-icon svg {
	color: var(--nexus-footer-icon, var(--nexus-footer-link));
}

.site-footer a:hover .nexus-menu-icon,
.site-footer a:hover .nexus-menu-icon svg {
	color: var(--nexus-footer-icon-hover, var(--nexus-footer-link-hover));
}
.main-navigation a .nexus-menu-icon,
.site-footer a .nexus-menu-icon,
.nexus-topbar-menu a .nexus-menu-icon,
.nexus-header-utilities-menu a .nexus-menu-icon {
	color: inherit;
}
.nexus-menu-icon svg,
.nexus-menu-icon-svg {
	color: inherit;
}
.nexus-menu-icon svg [stroke]:not([stroke="none"]),
.nexus-menu-icon-svg [stroke]:not([stroke="none"]) {
	stroke: currentColor;
}
.nexus-menu-icon svg [fill]:not([fill="none"]),
.nexus-menu-icon-svg [fill]:not([fill="none"]) {
	fill: currentColor;
}
.main-navigation .nexus-menu-label {
	display: inline;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--nexus-link);
	text-decoration: none;
}

a:hover {
	color: var(--nexus-link-hover);
	text-decoration: underline;
}

/* ==========================================================================
   Accessibility
   ========================================================================== */

.skip-link {
	position: absolute;
	top: -40px;
	left: 0;
	background: var(--nexus-primary);
	color: var(--nexus-button-text);
	padding: 8px 16px;
	z-index: 100000;
	transition: top 0.2s;
}

.skip-link:focus {
	top: 0;
}

/* Strong focus styles for keyboard users (accessibility) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--nexus-primary);
	outline-offset: 2px;
}
/* Fallback for older browsers */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
input:focus:not(:focus-visible) { outline: none; }

/* Respect reduced motion (accessibility) */
@media (prefers-reduced-motion: reduce) {
	.nexus-preloader-inner { animation: none; opacity: 0.6; }
	.nexus-fade-in { opacity: 1; }
	.nexus-hero-slides .nexus-hero-slide { transition: none; }
	* { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}

/* ==========================================================================
   Layout
   ========================================================================== */

.site {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.content-sidebar-wrap {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	padding: 2rem 20px;
	min-height: 40vh;
}

@media (min-width: 782px) {
	.content-sidebar-wrap {
		grid-template-columns: 1fr 300px;
	}
	/* Page templates: left / right sidebar placement */
	.content-sidebar-wrap.nexus-sidebar-left {
		grid-template-columns: 300px 1fr;
	}
	.content-sidebar-wrap.nexus-no-sidebar,
	.content-sidebar-wrap.nexus-page-full-width {
		grid-template-columns: 1fr;
	}
}

.content-sidebar-wrap .site-main {
	padding: 0;
}

.widget-area.sidebar {
	background: var(--nexus-sidebar-bg, #f8fafc);
	border: 1px solid var(--nexus-border-light, #e2e8f0);
	border-radius: 8px;
	padding: 1.25rem;
}

.widget-area.sidebar .widget {
	margin-bottom: 1.5rem;
}

.widget-area.sidebar .widget:last-child {
	margin-bottom: 0;
}

.widget-area.sidebar .widget-title {
	margin: 0 0 0.75rem;
	font-size: 1rem;
	color: var(--nexus-widget-title, var(--nexus-body-text, #0f172a));
}

.site-main {
	padding: 2rem 0;
	min-height: 40vh;
}

/* ==========================================================================
   WordPress admin bar (Edit Site, Dashboard, etc.) — keep above theme UI
   (preview strip, preloader, builder dock, skip-link focus at 100000, etc.).
   ========================================================================== */
body.admin-bar #wpadminbar {
	z-index: 999999 !important;
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
	background: var(--nexus-header-bg);
	color: var(--nexus-header-text);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	border-bottom: 3px solid var(--nexus-primary);
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 100;
	padding-top: env(safe-area-inset-top, 0px);
}

.header-actions .nexus-header-icon,
.header-actions .nexus-search-toggle,
.header-actions .nexus-dark-mode-toggle,
.header-actions .nexus-cart-toggle,
.header-actions .nexus-header-user-menu .nexus-header-user-toggle {
	color: var(--nexus-header-icon, #000000);
	background: none;
	border: none;
	box-shadow: none;
}

.header-actions .nexus-header-icon svg,
.header-actions .nexus-search-toggle svg,
.header-actions .nexus-dark-mode-toggle svg,
.header-actions .nexus-cart-toggle svg,
.header-actions .nexus-header-user-menu .nexus-header-user-toggle svg,
.header-actions .nexus-svg-icon {
	stroke: currentColor;
	color: inherit;
}

.site-header-inner.nexus-header-logo-center { justify-content: center; flex-wrap: wrap; }
.site-header-inner.nexus-header-logo-center .site-branding { text-align: center; }
.site-header-inner.nexus-header-logo-center .header-actions { width: 100%; justify-content: center; }
.header-widget-area { margin-left: auto; }
.header-inner,
.site-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 76px;
	gap: 1rem;
	padding: 0.5rem 0;
}

.header-actions {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: nowrap;
}

.header-actions .nexus-header-utilities-menu,
.header-actions .nexus-header-utility-item,
.header-actions .nexus-header-utilities-menu > .menu-item {
	display: flex;
	align-items: center;
	align-self: center;
}

.header-actions .nexus-header-icon,
.header-actions .nexus-search-toggle,
.header-actions .nexus-dark-mode-toggle,
.header-actions .nexus-header-user-menu .nexus-header-user-toggle,
.header-actions .nexus-cart-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	padding: 0;
	box-sizing: border-box;
	flex-shrink: 0;
	line-height: 1;
	vertical-align: middle;
}

.header-actions .nexus-header-icon .nexus-svg-icon,
.header-actions .nexus-search-toggle .nexus-svg-icon {
	display: block;
}

/* Equal 44px icon slots + aligned count badges (cart, wishlist, compare). */
.header-actions .nexus-header-utilities-menu > .menu-item[class*="nexus-h-"] {
	display: flex;
	align-items: center;
	justify-content: center;
}

.header-actions .nexus-header-cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
	vertical-align: middle;
}

.header-actions .nexus-cart-toggle,
.header-actions a.nexus-header-icon.nexus-icon-wishlist,
.header-actions a.nexus-header-icon.nexus-icon-compare,
.header-actions .nexus-header-icon.nexus-icon-notification,
.header-actions .nexus-header-icon.nexus-icon-user,
.header-actions .nexus-header-user-menu .nexus-header-user-toggle {
	position: relative;
	overflow: visible;
}

.header-actions .nexus-header-icon,
.header-actions .nexus-cart-toggle,
.header-actions .nexus-search-toggle,
.header-actions .nexus-dark-mode-toggle {
	color: var(--nexus-header-icon, var(--nexus-header-link));
}

.header-actions .nexus-header-icon:hover,
.header-actions .nexus-cart-toggle:hover,
.header-actions .nexus-search-toggle:hover,
.header-actions .nexus-dark-mode-toggle:hover,
.header-actions .nexus-header-user-menu .nexus-header-user-toggle:hover {
	color: var(--nexus-header-icon-hover, var(--nexus-header-link-hover, var(--nexus-primary, #0f766e)));
}

.header-actions .nexus-header-icon:hover svg,
.header-actions .nexus-header-icon:hover .nexus-svg-icon,
.header-actions .nexus-cart-toggle:hover svg,
.header-actions .nexus-search-toggle:hover svg,
.header-actions .nexus-dark-mode-toggle:hover svg,
.header-actions .nexus-header-user-menu .nexus-header-user-toggle:hover svg {
	stroke: currentColor;
	color: inherit;
}

.header-actions .nexus-header-icon svg,
.header-actions .nexus-header-icon .nexus-svg-icon,
.header-actions .nexus-cart-toggle svg,
.header-actions .nexus-cart-toggle .nexus-svg-icon,
.header-actions .nexus-search-toggle svg,
.header-actions .nexus-search-toggle .nexus-svg-icon,
.header-actions .nexus-dark-mode-toggle svg,
.header-actions .nexus-dark-mode-toggle .nexus-svg-icon {
	width: 22px;
	height: 22px;
	max-width: 22px;
	max-height: 22px;
	flex-shrink: 0;
	stroke: currentColor;
}

.header-actions .nexus-cart-count,
.header-actions .nexus-wishlist-count,
.header-actions .nexus-compare-count {
	position: absolute;
	top: 5px;
	right: 5px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	margin: 0;
	border-radius: 999px;
	background: var(--nexus-primary);
	color: var(--nexus-button-text, #fff);
	font-size: 10px;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
	box-sizing: border-box;
	pointer-events: none;
	z-index: 2;
	border: 2px solid var(--nexus-header-bg, var(--nexus-surface, #fff));
}

.header-actions .nexus-cart-count.is-zero,
.header-actions .nexus-wishlist-count.is-zero,
.header-actions .nexus-compare-count.is-zero {
	display: none;
}

.header-actions .nexus-cart-total {
	position: absolute;
	left: calc(100% + 4px);
	top: 50%;
	transform: translateY(-50%);
	margin: 0;
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	color: var(--nexus-primary);
	pointer-events: none;
}

.header-actions .nexus-header-utilities-menu > .menu-item.nexus-h-cart {
	position: relative;
}

.header-actions .nexus-header-utilities-menu > .menu-item.nexus-h-cart:has(.nexus-cart-total:not(:empty)) {
	padding-right: 0.35rem;
}

.header-actions .nexus-header-utilities-menu > .menu-item.nexus-h-cart .nexus-mini-cart-panel {
	right: 0;
	left: auto;
}

/* Appearance → Menus: Header utilities location */
.header-actions .nexus-header-utilities-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1rem;
}
.header-actions .nexus-header-utilities-menu > .menu-item {
	margin: 0;
	padding: 0;
	position: relative;
}
.header-actions .nexus-header-utilities-menu > .menu-item > a {
	color: var(--nexus-header-link);
	text-decoration: none;
	font-weight: 500;
}
.header-actions .nexus-header-utilities-menu > .menu-item > a:hover,
.header-actions .nexus-header-utilities-menu > .menu-item > a:focus,
.header-actions .nexus-header-utilities-menu > .menu-item > a:focus-visible {
	color: var(--nexus-header-link-hover);
	text-decoration: none;
}
.header-actions .nexus-header-utilities-menu > .menu-item.nexus-header-utility-empty {
	display: none;
}
.header-actions .nexus-header-utilities-menu .main-navigation {
	display: flex;
	align-items: center;
}
.header-actions .nexus-header-utilities-menu .main-navigation .menu-toggle {
	flex-shrink: 0;
}

.header-actions .nexus-header-utilities-menu > .menu-item.nexus-h-navigation {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.header-actions .nexus-header-utilities-menu .main-navigation > ul.nav-menu {
	justify-content: flex-end;
}

.nexus-header-icon,
.nexus-search-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--nexus-header-icon, #000000);
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	text-decoration: none;
}

.nexus-header-icon:hover,
.nexus-search-toggle:hover {
	color: var(--nexus-header-icon-hover, var(--nexus-header-link-hover));
}

.nexus-search-toggle .nexus-svg-icon { flex-shrink: 0; }
.nexus-search-toggle-text { display: none; }

/* Dark mode visitor toggle: show one icon at a time */
.nexus-dark-mode-toggle {
	position: relative;
	min-width: 44px;
	min-height: 44px;
}
.nexus-dark-mode-toggle .nexus-dm-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	inset: 0;
	margin: auto;
}
.nexus-dark-mode-toggle .nexus-dm-sun { opacity: 0; pointer-events: none; }
.nexus-dark-mode-toggle .nexus-dm-moon { opacity: 1; }
body.nexus-dark-mode .nexus-dark-mode-toggle .nexus-dm-sun { opacity: 1; }
body.nexus-dark-mode .nexus-dark-mode-toggle .nexus-dm-moon { opacity: 0; pointer-events: none; }

/* Dark mode toggle in sidebar / footer widget */
.widget_nexus_dark_mode .nexus-dark-mode-widget-inner {
	display: flex;
	align-items: center;
}
.widget_nexus_dark_mode .nexus-dark-mode-widget-toggle {
	position: relative;
}

/* Menu item: class "nexus-dark-mode-menu-toggle" on link or container */
.menu-item.nexus-dark-mode-menu-toggle > a {
	cursor: pointer;
	user-select: none;
}

/* Nexus: Latest Posts widget */
.nexus-latest-posts {
	list-style: none;
	margin: 0;
	padding: 0;
}
.nexus-latest-post {
	margin-bottom: 0.85rem;
}
.nexus-latest-post-link {
	font-weight: 600;
	text-decoration: none;
}
.nexus-latest-post-link:hover {
	text-decoration: underline;
}
.nexus-latest-post-date {
	display: block;
	font-size: 0.85rem;
	opacity: 0.8;
	margin-top: 0.2rem;
}

/* Nexus: Social icons widget */
.nexus-social-icons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
	align-items: center;
}
.nexus-social-icon {
	font-size: 0.9rem;
	font-weight: 500;
	text-decoration: none;
}
.nexus-social-icon:hover {
	text-decoration: underline;
}

.header-actions .nexus-svg-icon {
	width: 22px;
	height: 22px;
	display: block;
}

/* Consistent icon sizing (header, shop loop, buttons). */
.nexus-svg-icon,
svg.nexus-svg-icon {
	display: block;
	width: 1.25em;
	height: 1.25em;
	max-width: 100%;
	max-height: 100%;
	flex-shrink: 0;
	overflow: visible;
	vertical-align: middle;
}

.nexus-wc-icon-btn__icon .nexus-svg-icon,
.nexus-wc-icon-btn__icon svg {
	width: 1rem;
	height: 1rem;
}

/* Full-width front page (Customizer: Layout) */
body.nexus-front-page-full-width.nexus-front-sections .nexus-section-inner.site,
body.nexus-front-page-full-width.nexus-front-sections .nexus-hero-slider-inner.site {
	max-width: none;
	width: 100%;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

/* Hero full viewport height (Customizer: Layout) */
body.nexus-hero-full-height .nexus-hero,
body.nexus-hero-full-height .nexus-hero-slider {
	min-height: 100vh;
	display: flex;
	align-items: center;
}
body.nexus-hero-full-height .nexus-hero .nexus-section-inner,
body.nexus-hero-full-height .nexus-hero-slider .nexus-hero-slider-inner {
	width: 100%;
}

.site-branding {
	display: flex;
	align-items: center;
}

.site-title {
	margin: 0;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.site-title a {
	color: var(--nexus-header-text);
	text-decoration: none;
}

.site-title a:hover {
	text-decoration: none;
	opacity: 0.85;
}

.site-description {
	margin: 0;
	font-size: 0.875rem;
	color: var(--nexus-body-text-muted);
}

/* ==========================================================================
   Navigation
   ========================================================================== */

.main-navigation > ul.nav-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	/* display: flex/none — navigation-desktop.css (≥1025px) + mobile-nav.css (≤1024px) */
}

.main-navigation a {
	display: block;
	padding: 0.5rem 0.75rem;
	color: var(--nexus-header-link);
	font-weight: 500;
	line-height: 1.35;
	text-decoration: none;
}

.main-navigation a:hover,
.main-navigation a:focus,
.main-navigation a:focus-visible {
	color: var(--nexus-header-link-hover);
	text-decoration: none;
}

/* Header menus never show link underlines (global + dark-mode link styles). */
.site-header .main-navigation a,
.site-header .nexus-header-utilities-menu a,
.nexus-topbar-menu a,
.nexus-wc-secondary-nav .nav-menu a,
.nexus-wc-top-bar-links a,
.nexus-wc-top-bar-contact a {
	text-decoration: none;
}

.site-header .main-navigation a:hover,
.site-header .main-navigation a:focus,
.site-header .main-navigation a:focus-visible,
.site-header .nexus-header-utilities-menu a:hover,
.site-header .nexus-header-utilities-menu a:focus,
.site-header .nexus-header-utilities-menu a:focus-visible,
.nexus-topbar-menu a:hover,
.nexus-topbar-menu a:focus,
.nexus-topbar-menu a:focus-visible,
.nexus-wc-secondary-nav .nav-menu a:hover,
.nexus-wc-secondary-nav .nav-menu a:focus,
.nexus-wc-secondary-nav .nav-menu a:focus-visible,
.nexus-wc-top-bar-links a:hover,
.nexus-wc-top-bar-links a:focus,
.nexus-wc-top-bar-links a:focus-visible,
.nexus-wc-top-bar-contact a:hover,
.nexus-wc-top-bar-contact a:focus,
.nexus-wc-top-bar-contact a:focus-visible,
body.nexus-dark-mode .site-header .main-navigation a:hover,
body.nexus-dark-mode .site-header .nexus-header-utilities-menu a:hover,
body.nexus-dark-mode .nexus-topbar-menu a:hover,
body.nexus-dark-mode .nexus-wc-secondary-nav .nav-menu a:hover,
body.nexus-dark-mode .nexus-wc-top-bar-links a:hover,
body.nexus-dark-mode .nexus-wc-top-bar-contact a:hover {
	text-decoration: none;
}

/* Mobile menu toggle - 44px min touch target (accessibility) */
.menu-toggle {
	display: none;
	background: none;
	border: none;
	padding: 0;
	min-height: 44px;
	min-width: 44px;
	cursor: pointer;
	font-size: 0;
	color: var(--nexus-header-icon, #000000);
	border-radius: 4px;
	position: relative;
}

.menu-toggle:hover,
.menu-toggle:focus-visible {
	color: var(--nexus-header-icon-hover, var(--nexus-header-link-hover, var(--nexus-primary, #0f766e)));
}

.menu-toggle::before {
	content: "";
	display: block;
	width: 20px;
	height: 14px;
	background:
		linear-gradient(currentColor, currentColor) 0 0 / 100% 2px no-repeat,
		linear-gradient(currentColor, currentColor) 0 50% / 100% 2px no-repeat,
		linear-gradient(currentColor, currentColor) 0 100% / 100% 2px no-repeat;
}

.menu-toggle::after {
	content: attr(aria-label);
	position: absolute;
	top: calc(100% + 0.35rem);
	left: 50%;
	transform: translateX(-50%);
	z-index: 10130;
	padding: 0.25rem 0.45rem;
	border-radius: 4px;
	background: rgba(15, 23, 42, 0.92);
	color: #fff;
	font-size: 0.72rem;
	line-height: 1.2;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease;
}

.menu-toggle:hover::after,
.menu-toggle:focus-visible::after {
	opacity: 1;
}

/* Mobile navigation drawer: assets/css/mobile-nav.css */

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
	background: linear-gradient(180deg, var(--nexus-footer-bg) 0%, #0c1222 100%);
	color: var(--nexus-footer-text);
	padding: 3.5rem 0 2rem;
	margin-top: 4rem;
	border-top: 3px solid var(--nexus-primary);
	box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.08);
}

.site-footer a {
	color: var(--nexus-footer-link);
}

.site-footer a:hover {
	color: var(--nexus-footer-link-hover);
	text-decoration: none;
}

.footer-inner {
	display: grid;
	gap: 2rem;
}

.footer-widgets {
	display: grid;
	gap: 1.5rem;
}
.footer-widgets-cols-1 { grid-template-columns: 1fr; }
.footer-widgets-cols-2 { grid-template-columns: repeat(2, 1fr); }
.footer-widgets-cols-3 { grid-template-columns: repeat(3, 1fr); }
.footer-widgets-cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 768px) {
	.footer-widgets-cols-2, .footer-widgets-cols-3, .footer-widgets-cols-4 { grid-template-columns: 1fr; }
}
.footer-widgets:not([class*="footer-widgets-cols-"]) {
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 2rem;
}

.footer-social { margin: 1rem 0; }
.footer-social .nexus-social-icons ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.75rem; }
.footer-nav .footer-menu {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1.25rem;
}
.footer-nav .footer-menu > li {
	margin: 0;
}
.footer-nav .footer-menu a {
	text-decoration: none;
}
.footer-nav .footer-menu .sub-menu {
	display: none;
}
.footer-social .nexus-social-icons a {
	color: var(--nexus-footer-icon, inherit);
	text-decoration: none;
}
.footer-social .nexus-social-icons a:hover {
	color: var(--nexus-footer-icon-hover, var(--nexus-footer-link-hover));
	text-decoration: underline;
}

.nexus-back-to-top {
	position: fixed;
	bottom: 1.5rem;
	right: 1.5rem;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--nexus-primary);
	color: #fff;
	border: none;
	cursor: pointer;
	font-size: 1.25rem;
	line-height: 1;
	display: none;
	z-index: 10210;
	box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.nexus-back-to-top:hover { background: var(--nexus-primary-hover); color: #fff; }

.error-404-suggestions-title { font-size: 1.125rem; margin: 1rem 0 0.5rem; }
.error-404-suggestions { list-style: none; margin: 0 0 1rem; padding: 0; }
.error-404-suggestions li { margin: 0.25rem 0; }

.nexus-section-empty-msg { color: var(--nexus-body-text-muted); font-size: 0.9375rem; margin: 0; padding: 1rem; text-align: center; }
.nexus-widget-cta { display: inline-block; margin-top: 0.5rem; }
.nexus-widget-hours { line-height: 1.6; white-space: pre-line; }

.nexus-spacer { display: block; }
.nexus-divider-sc { margin: 1.5rem 0; border: 0; border-top: 1px solid var(--nexus-body-text-muted, #64748b); }

.nexus-blog-grid .content-sidebar-wrap .site-main { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 2rem; }
.nexus-blog-grid .content-sidebar-wrap .site-main .page-header { grid-column: 1 / -1; }

body.nexus-layout-boxed #page { max-width: 1400px; margin: 0 auto; box-shadow: 0 0 20px rgba(0,0,0,0.08); }
/* Legacy (older flex layout): keep no-op for grid-based layout */
body.nexus-sidebar-left .content-sidebar-wrap { flex-direction: row-reverse; }
body.nexus-sticky-footer { min-height: 100vh; display: flex; flex-direction: column; }
body.nexus-sticky-footer #page { flex: 1; }

.nexus-team-grid, .nexus-services-grid, .nexus-clients-grid { display: grid; gap: 1.5rem; justify-content: center; }
.nexus-team-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 260px)); }
.nexus-services-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 320px)); }
.nexus-team-item.nexus-has-custom-card-bg {
	padding: 1rem;
	border-radius: var(--nexus-radius);
	border: 1px solid var(--nexus-border-light);
	box-sizing: border-box;
}
.nexus-service-item.nexus-has-custom-card-bg {
	padding: 1.25rem;
	border-radius: var(--nexus-radius);
	border: 1px solid var(--nexus-border-light);
	box-sizing: border-box;
}
.nexus-service-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.75rem;
	line-height: 1;
	margin-bottom: 0.5rem;
	min-height: 2.5rem;
}
.nexus-service-icon .nexus-section-icon-svg {
	display: block;
}
.nexus-clients-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 120px), 180px)); align-items: center; text-align: center; }
.nexus-map-embed { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; }
.nexus-map-embed iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.nexus-video-embed { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; }
.nexus-video-embed iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.nexus-video-embed-static,
.nexus-video-embed:has(.nexus-video-static-demo) { padding-bottom: 0; height: auto; overflow: visible; }
.nexus-video-embed .nexus-video-static-demo .nexus-video-thumb-img { width: 100%; height: auto; display: block; border-radius: var(--nexus-radius); }
.nexus-video-embed .nexus-video-demo-note { margin-top: 0.75rem; font-size: 0.875rem; color: var(--nexus-body-text-muted); }
.nexus-gallery-grid { display: grid; grid-template-columns: repeat(var(--nexus-gallery-cols, 3), minmax(0, 1fr)); gap: 0.5rem; }
@media (max-width: 640px) {
	.nexus-gallery-grid { grid-template-columns: repeat(min(var(--nexus-gallery-cols, 3), 2), minmax(0, 1fr)); }
}
.nexus-gallery-grid img { width: 100%; height: auto; display: block; }

.nexus-gallery-carousel {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 0.75rem;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	padding-bottom: 0.35rem;
	-webkit-overflow-scrolling: touch;
	max-width: 100%;
}
.nexus-gallery-carousel-item {
	flex: 0 0 min(85%, max(160px, calc((100% - 0.75rem * (var(--nexus-gallery-cols, 3) - 1)) / var(--nexus-gallery-cols, 3))));
	scroll-snap-align: start;
	border-radius: 8px;
	overflow: hidden;
	background: #f1f5f9;
	height: auto;
}
.nexus-gallery-carousel-item img {
	width: 100%;
	height: auto;
	display: block;
	vertical-align: middle;
	object-fit: cover;
}
.nexus-countdown-box { font-size: 1.5rem; text-align: center; }
.nexus-tabs-head { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; }
.nexus-tabs-head .nexus-tab-btn { padding: 0.5rem 1rem; cursor: pointer; border: 1px solid currentColor; background: transparent; }
.nexus-tabs-head .nexus-tab-btn.is-active { background: var(--nexus-primary); color: #fff; border-color: var(--nexus-primary); }
.nexus-tab-panel { display: none; }
.nexus-tab-panel.is-active { display: block; }
.nexus-tab-panel.nexus-has-custom-card-bg {
	padding: 1rem;
	border-radius: var(--nexus-radius);
	border: 1px solid var(--nexus-border);
	box-sizing: border-box;
}
.nexus-tab-panel-inner { min-height: 0.25rem; }
.nexus-image-text-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: start; }
.nexus-image-text.nexus-image-right .nexus-image-text-grid { direction: rtl; }
.nexus-image-text.nexus-image-right .nexus-image-text-grid > * { direction: ltr; }
.nexus-image-text-img img { width: 100%; height: auto; }
@media (max-width: 768px) { .nexus-image-text-grid { grid-template-columns: 1fr; direction: ltr; } }
.nexus-testimonial-sc, .nexus-pricing-table-sc { margin: 1rem 0; }
.nexus-pricing-featured { border: 2px solid var(--nexus-primary); }
.nexus-portfolio-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.5rem; }
.nexus-portfolio-item .entry-title { font-size: 1rem; margin: 0.5rem 0 0; }
.nexus-related-posts { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--nexus-body-text-muted, #ccc); }
.related-posts-list { list-style: none; margin: 0; padding: 0; }
.related-posts-list li { margin: 0.5rem 0; }
.nexus-fade-in { opacity: 0; transform: translateY(12px); transition: opacity 0.4s ease, transform 0.4s ease; }
.nexus-fade-in.nexus-visible { opacity: 1; transform: translateY(0); }

.site-info {
	padding-top: 1rem;
	border-top: 1px solid var(--nexus-footer-border);
	font-size: 0.875rem;
	color: var(--nexus-footer-link);
}

/* ==========================================================================
   Pagination
   ========================================================================== */

.pagination,
.posts-navigation,
.post-navigation {
	margin: 2rem 0;
	padding: 1rem 0;
	border-top: 1px solid var(--nexus-border);
}

.pagination .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
}

.pagination .page-numbers,
.posts-navigation a,
.post-navigation a {
	display: inline-block;
	padding: 0.5rem 1rem;
	background: var(--nexus-pagination-bg);
	color: var(--nexus-body-text);
	border-radius: 4px;
}

.pagination .page-numbers:hover,
.pagination .page-numbers.current,
.posts-navigation a:hover,
.post-navigation a:hover {
	background: var(--nexus-primary);
	color: var(--nexus-button-text);
	text-decoration: none;
}

/* ==========================================================================
   Comments
   ========================================================================== */

.comments-area {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid var(--nexus-border);
}

.comment-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.comment-body {
	padding: 1rem 0;
	border-bottom: 1px solid var(--nexus-border-light);
}

.comment-author {
	font-weight: 600;
}

.comment-meta {
	font-size: 0.875rem;
	color: var(--nexus-body-text-muted);
	margin-bottom: 0.5rem;
}

.comment-form label {
	display: block;
	margin-bottom: 0.25rem;
	font-weight: 500;
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	max-width: 100%;
	padding: 0.5rem;
	margin-bottom: 1rem;
	border: 1px solid var(--nexus-input-border);
	border-radius: 4px;
}

.comment-form input:focus,
.comment-form textarea:focus {
	border-color: var(--nexus-input-focus);
	outline: none;
}

.comment-form textarea {
	min-height: 120px;
}

/* ==========================================================================
   Breadcrumbs
   ========================================================================== */

.nexus-breadcrumb-bar {
	background: var(--nexus-body-bg);
	border-bottom: 1px solid var(--nexus-border-light);
	position: relative;
	z-index: 90;
}

.nexus-breadcrumb-bar-inner {
	max-width: var(--nexus-container-width, 1200px);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--nexus-gutter, 1.25rem);
	padding-right: var(--nexus-gutter, 1.25rem);
}

.breadcrumbs {
	padding: 0.65rem 0;
	font-size: 0.875rem;
}

.breadcrumb-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem;
}

.breadcrumb-item {
	display: inline;
}

.breadcrumb-item .current {
	color: var(--nexus-body-text-muted);
}

.breadcrumbs a {
	color: var(--nexus-link, var(--nexus-primary));
	text-decoration: none;
}

.breadcrumbs a:hover,
.breadcrumbs a:focus-visible {
	color: var(--nexus-link-hover, var(--nexus-primary));
	text-decoration: underline;
}

.breadcrumb-sep {
	color: var(--nexus-body-text-muted);
}

/* ==========================================================================
   Theme placeholder images (posts, CPTs, builder sections)
   ========================================================================== */

.nexus-placeholder-wrap,
.nexus-wc-placeholder-wrap {
	display: block;
	width: 100%;
	background: linear-gradient(180deg, #f1f5f9 0%, #e2e8f0 100%);
	overflow: hidden;
}

.nexus-placeholder-wrap .nexus-placeholder-img,
.nexus-wc-placeholder-wrap .nexus-wc-placeholder-img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: contain;
}

.post-thumbnail .nexus-placeholder-wrap,
.nexus-blog-teaser-thumb .nexus-placeholder-wrap,
.nexus-portfolio-item .nexus-placeholder-wrap,
.nexus-listing-card .nexus-placeholder-wrap {
	border-radius: 8px;
}

/* ==========================================================================
   Utility
   ========================================================================== */

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

.screen-reader-text:focus {
	clip: auto !important;
	height: auto;
	width: auto;
	display: block;
	padding: 1rem;
	background: var(--nexus-body-bg);
	z-index: 100000;
}

/* Buttons – use .button or .nexus-btn for CTAs */
.nexus-btn,
.button,
button[type="submit"],
input[type="submit"] {
	display: inline-block;
	padding: 0.625rem 1.5rem;
	background: var(--nexus-button-bg);
	color: var(--nexus-button-text);
	border: none;
	border-radius: var(--nexus-radius);
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.2s ease, box-shadow 0.2s ease;
	box-shadow: var(--nexus-shadow-sm);
}

.nexus-btn:hover,
.button:hover,
button[type="submit"]:hover,
input[type="submit"]:hover {
	background: var(--nexus-button-hover-bg);
	color: var(--nexus-button-hover-text);
	text-decoration: none;
	box-shadow: 0 4px 12px rgba(15, 118, 110, 0.35);
}

.alignwide {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}

.alignfull {
	max-width: none;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* ==========================================================================
   Homepage sections (Hero, Stats, Features, Trust, CTA)
   ========================================================================== */

.nexus-front-sections {
	padding: 0;
	min-height: 0;
	/* Full-bleed sections use 100vw + margin calc; avoid clipping sticky builder bar */
	overflow-x: visible;
}

/* Builder layout pages: #page is not the global 1200px .site box — sections bring their own .site inner width. */
body.nexus-builder-layout-page #page.site {
	max-width: none;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	padding-left: 0;
	padding-right: 0;
	box-sizing: border-box;
}

body.nexus-builder-layout-page .site-main.nexus-front-sections {
	padding: 0;
}

/*
 * Builder / section layouts: .nexus-section-inner.site must not stack a second 1200px cap
 * on top of #page (that made the whole front look like one narrow column).
 * Fluid horizontal padding keeps content readable at viewport edges.
 */
body.nexus-builder-layout-page .nexus-front-sections .nexus-section-inner.site,
body.nexus-builder-layout-page .nexus-front-sections .nexus-hero-slider-inner.site {
	max-width: none;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	padding-left: clamp(1rem, 4vw, 1.75rem);
	padding-right: clamp(1rem, 4vw, 1.75rem);
	box-sizing: border-box;
}

/* Block elements (.nexus-el-section) also used to cap at 1200px in builder-elements.css — span content area on builder layouts. */
body.nexus-builder-layout-page .nexus-front-sections .nexus-builder-section-wrap > .nexus-el-section {
	max-width: none;
	width: 100%;
	padding-left: clamp(1rem, 4vw, 1.75rem);
	padding-right: clamp(1rem, 4vw, 1.75rem);
	box-sizing: border-box;
}

/* Builder layout containers: rows / responsive columns from Add Section. */
.nexus-layout-container {
	padding: clamp(1.5rem, 3vw, 3rem) 0;
}

.nexus-layout-grid {
	display: grid;
	grid-template-columns: repeat(var(--nexus-layout-columns, 1), minmax(0, 1fr));
	gap: 1.5rem;
	align-items: stretch;
	width: min(100%, var(--nexus-container-width, 1200px));
	margin-inline: auto;
	padding-inline: 1rem;
	box-sizing: border-box;
}

.nexus-layout-gap-compact .nexus-layout-grid { gap: 0.75rem; }
.nexus-layout-gap-large .nexus-layout-grid { gap: 2.5rem; }

.nexus-layout-valign-middle .nexus-layout-grid { align-items: center; }
.nexus-layout-valign-bottom .nexus-layout-grid { align-items: end; }

.nexus-layout-equal-height .nexus-layout-grid { align-items: stretch; }
.nexus-layout-equal-height .nexus-layout-column { display: flex; flex-direction: column; }
.nexus-layout-equal-height .nexus-layout-column > .nexus-layout-inner-section,
.nexus-layout-equal-height .nexus-layout-column > .nexus-el-section,
.nexus-layout-equal-height .nexus-layout-column > section {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
}

/* Section background image filters (overlay — content stays sharp) */
.nexus-sec-bg-filtered {
	position: relative;
	background-image: none !important;
}
.nexus-sec-bg-filtered::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image: var(--nexus-sec-bg-url);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.nexus-sec-bg-filter-grayscale::before { filter: grayscale(100%); }
.nexus-sec-bg-filter-sepia::before { filter: sepia(70%); }
.nexus-sec-bg-filter-darken::before { filter: brightness(0.55); }
.nexus-sec-bg-filter-blur::before { filter: blur(6px); transform: scale(1.05); }
.nexus-sec-bg-filtered > .nexus-builder-section-actions,
.nexus-sec-bg-filtered > .nexus-el-reveal,
.nexus-sec-bg-filtered > section,
.nexus-sec-bg-filtered > .nexus-layout-container {
	position: relative;
	z-index: 1;
}

/* Grid Builder */
.nexus-grid-layout-list .nexus-grid-builder-card {
	display: grid;
	grid-template-columns: minmax(0, 200px) 1fr;
	gap: 1.25rem;
	align-items: start;
}
.nexus-grid-masonry-cols-1 { column-count: 1; }
.nexus-grid-masonry-cols-2 { column-count: 2; }
.nexus-grid-masonry-cols-3 { column-count: 3; }
.nexus-grid-masonry-cols-4 { column-count: 4; }
.nexus-grid-masonry-cols-5 { column-count: 5; }
.nexus-grid-masonry-cols-6 { column-count: 6; }
.nexus-grid-layout-masonry {
	column-gap: 1.5rem;
}
.nexus-grid-layout-masonry .nexus-grid-builder-card {
	break-inside: avoid;
	margin-bottom: 1.5rem;
}
.nexus-grid-builder-thumb img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--nexus-radius, 8px);
}
.nexus-grid-card-overlay .nexus-grid-builder-card {
	position: relative;
}
.nexus-grid-card-overlay .nexus-grid-builder-thumb::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 40%, rgba(15, 23, 42, 0.75));
	border-radius: inherit;
}
.nexus-grid-builder-cats {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	margin: 0.35rem 0 1rem;
}
.nexus-grid-builder-cat-label {
	font-size: 0.875rem;
}
.nexus-grid-builder-attrs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	margin: 0 0 1rem;
}
.nexus-grid-builder-count-preview {
	margin: 0.5rem 0 1rem;
	font-size: 0.875rem;
	opacity: 0.9;
}
.nexus-grid-builder-load-more-wrap {
	text-align: center;
	margin: 1.5rem 0 0;
}
.nexus-grid-builder-load-more.is-loading {
	opacity: 0.65;
	pointer-events: none;
}
.nexus-wp-widget-inline .textwidget,
.nexus-wp-widget-inline .custom-html-widget,
.nexus-wp-block-widget-content {
	font-size: inherit;
}
.nexus-el-wp-widget .widget {
	margin: 0;
}
.nexus-header-lang-switcher {
	display: inline-flex;
	align-items: center;
	margin-left: auto;
}
.nexus-header-lang-switcher__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.75rem;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.8125rem;
}
.nexus-header-lang-switcher__item.is-current span {
	font-weight: 600;
	opacity: 0.95;
}
.nexus-wc-infinite-sentinel {
	height: 1px;
	margin: 2rem 0;
}
.nexus-wc-infinite-sentinel.is-loading::after {
	content: '';
	display: block;
	width: 2rem;
	height: 2rem;
	margin: 1rem auto;
	border: 2px solid var(--nexus-primary, #2563eb);
	border-top-color: transparent;
	border-radius: 50%;
	animation: nexus-spin 0.8s linear infinite;
}
.nexus-wc-catalog-notice {
	margin: 0 0 1rem;
	padding: 0.75rem 1rem;
	background: var(--nexus-surface, #f8fafc);
	border-radius: var(--nexus-radius, 6px);
	font-size: 0.9375rem;
}
.nexus-newsletter-popup[hidden] {
	display: none !important;
}
.nexus-newsletter-popup {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.35s ease, visibility 0.35s ease;
}
.nexus-newsletter-popup.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.nexus-newsletter-popup__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.55);
	opacity: 0;
	transition: opacity 0.35s ease;
}
.nexus-newsletter-popup.is-open .nexus-newsletter-popup__backdrop {
	opacity: 1;
}
.nexus-newsletter-popup__panel {
	position: relative;
	z-index: 1;
	max-width: 420px;
	width: 100%;
	padding: 2rem 1.75rem 1.5rem;
	background: var(--nexus-primary, #2563eb);
	color: #fff;
	border-radius: var(--nexus-radius-lg, 12px);
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
	opacity: 0;
	transform: translateY(24px) scale(0.97);
	transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.nexus-newsletter-popup.is-open .nexus-newsletter-popup__panel {
	opacity: 1;
	transform: translateY(0) scale(1);
}
.nexus-newsletter-popup__close {
	position: absolute;
	top: 0.5rem;
	right: 0.65rem;
	background: transparent;
	border: none;
	color: inherit;
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
	opacity: 0.85;
}
.nexus-newsletter-popup__title {
	margin: 0 0 0.5rem;
	font-size: 1.5rem;
	color: inherit;
}
.nexus-newsletter-popup__text {
	margin: 0 0 1.25rem;
	font-size: 0.9375rem;
	opacity: 0.95;
}
.nexus-newsletter-popup__form {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.nexus-newsletter-popup__form input[type="email"] {
	flex: 1 1 12rem;
	min-width: 0;
	padding: 0.55rem 0.75rem;
	border: none;
	border-radius: 4px;
}
.nexus-newsletter-popup__form .nexus-btn {
	background: #fff;
	color: var(--nexus-primary, #2563eb);
	border: none;
}
.nexus-newsletter-popup__dismiss {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 1rem 0 0;
	font-size: 0.8125rem;
	cursor: pointer;
}
body.nexus-newsletter-popup-open {
	overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.nexus-newsletter-popup,
	.nexus-newsletter-popup__backdrop,
	.nexus-newsletter-popup__panel {
		transition: none;
	}
	.nexus-newsletter-popup__panel {
		transform: none;
	}
	.nexus-newsletter-popup.is-open .nexus-newsletter-popup__panel {
		transform: none;
	}
}

.nexus-layout-split .nexus-layout-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.nexus-layout-split.nexus-layout-ratio-1-4 .nexus-layout-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); }
.nexus-layout-split.nexus-layout-ratio-1-3 .nexus-layout-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.nexus-layout-split.nexus-layout-ratio-2-3 .nexus-layout-grid { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.nexus-layout-split.nexus-layout-ratio-3-4 .nexus-layout-grid { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); }

.nexus-layout-column {
	min-width: 0;
}

.nexus-layout-column > .nexus-section {
	padding: 0;
	margin: 0;
}

.nexus-layout-column .nexus-section-inner.site,
.nexus-layout-column .nexus-hero-slider-inner.site,
.nexus-layout-column .nexus-el-section {
	width: 100%;
	max-width: none;
	padding-inline: 0;
	margin-inline: 0;
}

.nexus-layout-empty-column {
	min-height: 140px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	border: 1px dashed var(--nexus-border);
	border-radius: 12px;
	background: var(--nexus-surface);
	color: var(--nexus-body-text-muted);
	padding: 1rem;
}

@media (max-width: 980px) {
	.nexus-layout-4-cols .nexus-layout-grid,
	.nexus-layout-3-cols .nexus-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.nexus-layout-grid,
	.nexus-layout-2-cols .nexus-layout-grid,
	.nexus-layout-3-cols .nexus-layout-grid,
	.nexus-layout-4-cols .nexus-layout-grid {
		grid-template-columns: 1fr;
	}
}

.nexus-section {
	padding: 3rem 20px;
}

.nexus-section-inner {
	margin: 0 auto;
}

.nexus-section-title {
	margin: 0 0 1rem;
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--nexus-header-text);
	text-align: center;
	line-height: 1.25;
}

.nexus-section-intro {
	text-align: center;
	color: var(--nexus-body-text-muted);
	max-width: 600px;
	margin: 0 auto 2rem;
}

body.nexus-dark-mode .nexus-section-intro {
	color: var(--nexus-body-text-muted, rgba(228, 228, 231, 0.82));
}

/* Hero */
.nexus-hero {
	background: linear-gradient(165deg, rgba(15, 118, 110, 0.08) 0%, var(--nexus-surface-alt) 25%, var(--nexus-body-bg) 70%);
	padding: 4.5rem 20px;
	text-align: center;
	position: relative;
}

.nexus-hero .nexus-section-inner {
	text-align: center;
}

.nexus-hero-headline {
	margin: 0 auto 0.75rem;
	font-size: clamp(2rem, 5vw, 3.25rem);
	font-weight: 800;
	letter-spacing: -0.04em;
	color: var(--nexus-header-text);
	line-height: 1.15;
	text-shadow: 0 1px 2px rgba(255,255,255,0.8);
	max-width: 52rem;
	width: 100%;
	text-align: center;
}

.nexus-hero-subheadline {
	margin: 0 auto 1.75rem;
	font-size: 1.2rem;
	color: var(--nexus-body-text-muted);
	max-width: 520px;
	width: 100%;
	text-align: center;
}

.nexus-hero-cta {
	margin: 0 auto;
	width: 100%;
	max-width: 52rem;
	text-align: center;
}

/* Hero slider */
.nexus-hero-slider {
	position: relative;
	text-align: center;
}
.nexus-hero-slider-inner {
	position: relative;
	min-height: clamp(380px, 52vh, 680px);
	padding: 4.5rem clamp(2.75rem, 5vw, 3.25rem) 3.25rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
}
.nexus-hero-slides {
	position: relative;
	z-index: 1;
	overflow: visible;
	width: 100%;
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 10rem;
}
.nexus-hero-slide {
	display: none;
	width: 100%;
	max-width: none;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	position: relative;
	min-height: clamp(380px, 52vh, 680px);
}
.nexus-hero-slide-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	z-index: 0;
}
.nexus-hero-slide-bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 23, 42, 0.35) 0%, rgba(15, 23, 42, 0.55) 100%);
}
.nexus-hero-slide-content {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 52rem;
	margin: 0 auto;
	padding: 0 1.25rem;
}
.nexus-hero-slider--has-slide-bg .nexus-hero-slider-inner {
	min-height: clamp(420px, 62vh, 760px);
	padding-top: 5rem;
	padding-bottom: 4rem;
}
.nexus-hero-slider--has-slide-bg .nexus-hero-headline,
.nexus-hero-slider--has-slide-bg .nexus-hero-subheadline {
	color: #fff;
	text-shadow: 0 2px 16px rgba(0, 0, 0, 0.45);
}
.nexus-hero-slider--has-slide-bg .nexus-hero-subheadline {
	color: rgba(255, 255, 255, 0.92);
}
.nexus-hero-slider--has-slide-bg .nexus-hero-slide.is-active {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.nexus-hero-slide.is-active {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.nexus-hero-slide.is-active .nexus-hero-headline,
.nexus-hero-slide.is-active .nexus-hero-subheadline,
.nexus-hero-slide.is-active .nexus-hero-cta {
	width: 100%;
	text-align: center;
}
.nexus-hero-slider .nexus-hero-headline {
	color: var(--nexus-header-text);
}
.nexus-hero-slider .nexus-hero-subheadline {
	color: var(--nexus-body-text-muted);
}
.nexus-hero-slider-controls {
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	bottom: auto;
	transform: translateY(-50%);
	z-index: 3;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 0.35rem;
	padding: 0 clamp(0.35rem, 2vw, 1.25rem);
	box-sizing: border-box;
	pointer-events: none;
}
.nexus-hero-slider-controls > * {
	pointer-events: auto;
}
.nexus-hero-slider-prev,
.nexus-hero-slider-next {
	position: static;
	flex-shrink: 0;
	width: 2.75rem;
	height: 2.75rem;
	min-width: 44px;
	min-height: 44px;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(15, 23, 42, 0.42);
	color: #fff;
	border: none;
	border-radius: 50%;
	cursor: pointer;
	font-size: 1.125rem;
	line-height: 1;
	font-weight: 600;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
}
.nexus-hero-slider-prev:hover,
.nexus-hero-slider-next:hover,
.nexus-hero-slider-prev:focus-visible,
.nexus-hero-slider-next:focus-visible {
	background: rgba(15, 23, 42, 0.62);
	outline: none;
}
.nexus-hero-slider-dots {
	flex: 1 1 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	margin: 0;
	min-width: 0;
}
.nexus-hero-slider-dots button {
	width: 8px;
	height: 8px;
	padding: 0;
	border-radius: 50%;
	border: none;
	background: rgba(15, 23, 42, 0.28);
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.45);
	margin: 0;
	cursor: pointer;
	opacity: 0.85;
	transition: width 0.15s ease, opacity 0.15s ease, border-radius 0.15s ease, background 0.15s ease;
}
.nexus-hero-slider-dots button:hover {
	opacity: 1;
}
.nexus-hero-slider-dots button.is-active {
	width: 1rem;
	height: 8px;
	border-radius: 3px;
	opacity: 1;
	background: var(--nexus-primary);
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.35);
}

@media (max-width: 782px) {
	.nexus-hero-slider-dots button {
		min-width: 44px;
		min-height: 44px;
		padding: 18px;
		box-sizing: content-box;
		background-clip: content-box;
	}

	.nexus-hero-slider-dots button.is-active {
		min-width: 44px;
		min-height: 44px;
	}
}

/* Stats */
.nexus-stats {
	background: var(--nexus-body-bg);
	border-bottom: 1px solid var(--nexus-border-light);
}

.nexus-stats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 220px));
	justify-content: center;
	gap: 2rem;
	text-align: center;
}

.nexus-stat-number {
	display: block;
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--nexus-primary);
	margin-bottom: 0.25rem;
}

.nexus-stat-label {
	font-size: 0.875rem;
	color: var(--nexus-body-text-muted);
}

.nexus-stats .nexus-stat-item.nexus-has-custom-card-bg {
	padding: 1.25rem 1rem;
	border-radius: var(--nexus-radius);
	border: 1px solid var(--nexus-border-light);
	box-sizing: border-box;
}

.nexus-features-grid .nexus-feature-cell {
	min-width: 0;
	display: block;
}

.nexus-trust .nexus-trust-item.nexus-has-custom-card-bg {
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}

/* Features */
.nexus-features {
	background: var(--nexus-body-bg);
}

.nexus-features-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 220px));
	justify-content: center;
	gap: 1.5rem;
	margin-top: 1rem;
}

.nexus-feature-item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1.25rem 1.5rem;
	background: var(--nexus-surface);
	border-radius: var(--nexus-radius);
	border: 1px solid var(--nexus-border-light);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.nexus-feature-item:hover {
	box-shadow: 0 8px 24px rgba(15, 118, 110, 0.12);
	transform: translateY(-2px);
}

a.nexus-feature-item {
	text-decoration: none;
	color: inherit;
}
a.nexus-feature-item .nexus-feature-label {
	color: inherit;
}

.nexus-feature-icon {
	color: var(--nexus-primary);
	font-size: 1.5rem;
	line-height: 1;
	flex-shrink: 0;
	max-width: 2.5rem;
	overflow: hidden;
}

.nexus-feature-label {
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--nexus-body-text);
	min-width: 0;
	line-height: 1.35;
}

/* Trust */
.nexus-trust {
	background: var(--nexus-surface);
}

.nexus-trust-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 280px));
	justify-content: center;
	gap: 1.25rem;
	margin-top: 1.25rem;
}

.nexus-trust-item {
	text-align: center;
	padding: 1.25rem 1rem;
	background: var(--nexus-surface);
	border-radius: var(--nexus-radius-lg);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
	border: 1px solid var(--nexus-border-light);
	transition: box-shadow 0.2s ease;
}
.nexus-trust-item:hover {
	box-shadow: 0 8px 28px rgba(15, 118, 110, 0.1);
}

.nexus-trust-title {
	margin: 0 0 0.5rem;
	font-size: 1rem;
	color: var(--nexus-header-text);
}

.nexus-trust-text {
	margin: 0;
	font-size: 0.875rem;
	color: var(--nexus-body-text-muted);
}

/* CTA */
.nexus-cta {
	background: var(--nexus-primary);
	color: var(--nexus-button-text);
	text-align: center;
}

.nexus-cta .nexus-section-title,
.nexus-cta .nexus-cta-text {
	color: inherit;
}

.nexus-cta .nexus-cta-text {
	margin: 0 0 1rem;
	opacity: 0.95;
}

.nexus-cta .nexus-btn {
	background: var(--nexus-button-text);
	color: var(--nexus-primary);
}

.nexus-cta .nexus-btn:hover {
	background: var(--nexus-surface);
	color: var(--nexus-header-text);
}

/* ==========================================================================
   Inline header search
   ========================================================================== */

.nexus-search-toggle {
	background: none;
	border: none;
	padding: 0.5rem;
	cursor: pointer;
	color: var(--nexus-header-link);
	display: flex;
	align-items: center;
	justify-content: center;
}

.nexus-search-toggle:hover {
	color: var(--nexus-header-link-hover);
}

.nexus-header-search {
	position: relative;
	display: flex;
	align-items: center;
}

.nexus-header-search-panel {
	position: absolute;
	top: calc(100% + 0.5rem);
	right: 0;
	left: auto;
	width: min(340px, calc(100vw - 2rem));
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	pointer-events: none;
	z-index: 10060;
	background: var(--nexus-body-bg);
	border-radius: var(--nexus-radius);
	box-shadow: var(--nexus-shadow-lg);
	padding: 0;
	transition: max-height 0.22s ease, opacity 0.18s ease, padding 0.22s ease;
}

.nexus-header-search.is-open .nexus-header-search-panel {
	max-height: 340px;
	opacity: 1;
	padding: 0.6rem;
	pointer-events: auto;
}

.nexus-header-search.is-open {
	z-index: 10060;
}

.nexus-header-search-form {
	display: flex;
	align-items: stretch;
	margin: 0;
}

.nexus-header-search-form label {
	flex: 1;
	margin: 0;
}

.nexus-header-search-form .search-field {
	width: 100%;
	min-width: 0;
	padding: 0.55rem 0.75rem;
	font-size: 0.95rem;
	border: 1px solid var(--nexus-input-border);
	border-radius: 4px;
	background: var(--nexus-body-bg);
	color: var(--nexus-body-text);
}

.nexus-search-suggestions {
	display: none;
	position: absolute;
	top: calc(100% + 0.4rem);
	left: 0;
	right: 0;
	z-index: 10020;
	background: var(--nexus-body-bg);
	border: 1px solid var(--nexus-border);
	border-radius: var(--nexus-radius);
	box-shadow: var(--nexus-shadow-lg);
	overflow: hidden;
}

.nexus-search-suggestions.is-visible {
	display: block;
}

.nexus-search-suggestion,
.nexus-search-suggestion-empty {
	display: block;
	padding: 0.65rem 0.8rem;
	text-decoration: none;
	color: var(--nexus-body-text);
	border-bottom: 1px solid var(--nexus-border-light);
}

.nexus-search-suggestion:last-child,
.nexus-search-suggestion-empty:last-child {
	border-bottom: 0;
}

.nexus-search-suggestion:hover,
.nexus-search-suggestion:focus {
	background: var(--nexus-surface-alt);
	color: var(--nexus-link-hover);
	text-decoration: none;
}

.nexus-search-suggestion-title {
	display: block;
	font-weight: 600;
	line-height: 1.25;
}

.nexus-search-suggestion-meta,
.nexus-search-suggestion-empty {
	font-size: 0.82rem;
	color: var(--nexus-body-text-muted);
}

@media (max-width: 782px) {
	.nexus-header-search-panel {
		right: -0.5rem;
		left: auto;
		width: min(340px, calc(100vw - 1.5rem));
	}
	.nexus-search-suggestions {
		position: static;
		margin-top: 0.45rem;
	}
}

/* Testimonials */
.nexus-testimonials-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 360px));
	justify-content: center;
	gap: 2rem;
	margin-top: 1.5rem;
}
.nexus-testimonial-item {
	margin: 0;
	padding: 1.75rem;
	background: var(--nexus-surface);
	border-radius: var(--nexus-radius);
	border-left: 4px solid var(--nexus-primary);
	box-shadow: var(--nexus-shadow-sm);
}
.nexus-testimonial-item.nexus-has-custom-card-bg { box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06); }
.nexus-testimonial-quote { margin: 0 0 0.5rem; font-style: italic; }
.nexus-testimonial-author { font-size: 0.875rem; color: var(--nexus-body-text-muted); }

/* FAQ */
.nexus-faq-list { margin-top: 1.5rem; max-width: 700px; margin-left: auto; margin-right: auto; }
.nexus-faq-question { list-style: none; cursor: pointer; }
.nexus-faq-question::-webkit-details-marker { display: none; }
.nexus-faq-item { margin-bottom: 0.5rem; border: 1px solid var(--nexus-border); border-radius: 6px; overflow: hidden; }
.nexus-faq-item.nexus-has-custom-card-bg { box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06); }
.nexus-faq-question { padding: 1rem; cursor: pointer; font-weight: 500; list-style: none; }
.nexus-faq-question::-webkit-details-marker { display: none; }
.nexus-faq-answer { padding: 0 1rem 1rem; }
.nexus-faq-answer p { margin: 0 0 0.5rem; }

/* Newsletter */
.nexus-newsletter { background: var(--nexus-surface); }
.nexus-newsletter-form { display: flex; gap: 0.5rem; max-width: 400px; margin: 1rem auto 0; flex-wrap: wrap; justify-content: center; }
.nexus-newsletter-form input[type="email"] { flex: 1; min-width: 200px; padding: 0.6rem 1rem; border: 1px solid var(--nexus-input-border); border-radius: 4px; }
.nexus-newsletter-message { margin-top: 0.5rem; font-size: 0.875rem; }
.nexus-newsletter-success { color: #059669; }
.nexus-newsletter-error { color: #dc2626; }

/* Blog teaser */
.nexus-blog-teaser-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 2rem; margin-top: 1.5rem; }
.nexus-blog-teaser-item { padding: 0; }
.nexus-blog-teaser-thumb { display: block; margin-bottom: 0.5rem; border-radius: 6px; overflow: hidden; }
.nexus-blog-teaser-title { margin: 0 0 0.25rem; font-size: 1.1rem; }
.nexus-blog-teaser-item time { font-size: 0.8125rem; color: var(--nexus-body-text-muted); }
.nexus-blog-teaser-excerpt { margin: 0.5rem 0 0; font-size: 0.9375rem; }
.nexus-blog-teaser-link { margin: 1.5rem 0 0; text-align: center; }

/* Support */
.nexus-support-links { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center; margin-top: 1rem; }
.nexus-btn-outline { background: transparent; border: 2px solid var(--nexus-primary); color: var(--nexus-primary); font-weight: 600; }
.nexus-btn-outline:hover { background: var(--nexus-primary); color: var(--nexus-button-text); box-shadow: 0 4px 12px rgba(15, 118, 110, 0.3); }

/* Listings archive */
.nexus-listings-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.5rem; margin-top: 1.5rem; }
.nexus-listing-card { padding: 1.25rem; border: 1px solid var(--nexus-border); border-radius: var(--nexus-radius); background: var(--nexus-surface); box-shadow: var(--nexus-shadow-sm); }
.nexus-listing-card img { border-radius: 6px; width: 100%; height: auto; }
.nexus-listing-title { margin: 0.5rem 0 0.25rem; font-size: 1.1rem; }
.nexus-listing-price { font-weight: 600; color: var(--nexus-primary); margin: 0.25rem 0; }
.nexus-listing-location { font-size: 0.875rem; color: var(--nexus-body-text-muted); margin: 0; }
.nexus-listing-meta { margin: 0.5rem 0; }
.nexus-listing-meta .nexus-listing-price { margin-right: 1rem; }

/* Pricing section */
.nexus-pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 340px)); justify-content: center; gap: 1.5rem; margin-top: 1.5rem; }
.nexus-pricing-card { padding: 1.75rem; border: 1px solid var(--nexus-border); border-radius: var(--nexus-radius-lg); background: var(--nexus-surface); text-align: center; box-shadow: var(--nexus-shadow-sm); }
.nexus-pricing-card.is-featured { border-color: var(--nexus-primary); box-shadow: 0 8px 24px rgba(15, 118, 110, 0.15); transform: translateY(-2px); }
.nexus-contact-intro { margin: 0.5rem 0 1rem; color: var(--nexus-body-text-muted); }
.nexus-contact-details { margin-bottom: 1rem; font-size: 0.95rem; color: var(--nexus-body-text-muted); }
.nexus-newsletter-privacy { margin-top: 0.75rem; font-size: 0.85rem; color: var(--nexus-body-text-muted); }
.nexus-pricing-card.nexus-has-custom-card-bg { box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); }
.nexus-pricing-plan-title { margin: 0 0 0.5rem; font-size: 1.25rem; }
.nexus-pricing-plan-price { margin: 0 0 1rem; font-size: 1.5rem; font-weight: 700; color: var(--nexus-primary); }
.nexus-pricing-features { list-style: none; margin: 0 0 1rem; padding: 0; text-align: left; }
.nexus-pricing-features li { padding: 0.25rem 0; border-bottom: 1px solid var(--nexus-border); }
.nexus-pricing-features li:last-child { border-bottom: none; }
.nexus-pricing-intro { margin-top: 0.5rem; color: var(--nexus-body-text-muted); }

/* Contact section */
.nexus-contact .nexus-section-inner { max-width: 500px; margin-left: auto; margin-right: auto; }
.nexus-contact-form label { display: block; margin-bottom: 0.25rem; }
.nexus-contact-form input, .nexus-contact-form textarea { width: 100%; padding: 0.5rem; margin-bottom: 0.75rem; border: 1px solid var(--nexus-input-border); border-radius: 4px; }
.nexus-contact-message { margin-top: 0.5rem; font-size: 0.875rem; }
.nexus-dark-mode .nexus-contact-form input,
.nexus-dark-mode .nexus-contact-form textarea {
	background: rgba(22, 22, 29, 0.85);
	color: #e4e4e7;
	border-color: rgba(82, 82, 91, 0.95);
}
.nexus-dark-mode .nexus-contact-form input::placeholder,
.nexus-dark-mode .nexus-contact-form textarea::placeholder {
	color: rgba(161, 161, 170, 0.95);
}

body.nexus-dark-mode .page-header .page-title,
body.nexus-dark-mode .entry-header .entry-title {
	color: var(--nexus-body-text);
}

.nexus-inline-edit-wrap { display: inline-block; }
.nexus-inline-edit-input { padding: 2px 6px; font-size: inherit; }

/* Listing inquiry form */
.nexus-listing-inquiry { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--nexus-border); }
.nexus-listing-inquiry h3 { margin: 0 0 1rem; }
.nexus-listing-inquiry-form label { display: block; margin-bottom: 0.25rem; }
.nexus-listing-inquiry-form input, .nexus-listing-inquiry-form textarea { width: 100%; max-width: 400px; padding: 0.5rem; margin-bottom: 0.75rem; border: 1px solid var(--nexus-input-border); border-radius: 4px; }
.nexus-listing-inquiry-message { margin-top: 0.5rem; font-size: 0.875rem; }

/* Author box (single post) */
.nexus-author-box { display: flex; gap: 1.5rem; align-items: flex-start; margin: 2rem 0; padding: 1.5rem; background: var(--nexus-surface); border-radius: var(--nexus-radius-lg); border: 1px solid var(--nexus-border); box-shadow: var(--nexus-shadow-sm); }
.nexus-author-avatar { border-radius: 50%; width: 80px; height: 80px; object-fit: cover; }
.nexus-author-info { flex: 1; }
.nexus-author-name { margin: 0 0 0.5rem; font-size: 1.1rem; }
.nexus-author-bio { margin: 0 0 0.5rem; color: var(--nexus-body-text-muted); font-size: 0.95rem; }
.nexus-author-link { font-size: 0.9rem; color: var(--nexus-primary); }
.entry-meta .reading-time { margin-left: 0.5rem; color: var(--nexus-body-text-muted); font-size: 0.9rem; }

/* Share buttons */
.nexus-share-buttons ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.nexus-share-buttons a { display: inline-block; padding: 0.35rem 0.75rem; background: var(--nexus-surface); border: 1px solid var(--nexus-border); border-radius: 4px; font-size: 0.875rem; color: var(--nexus-link); }
.nexus-share-buttons a:hover { background: var(--nexus-primary); color: #fff; border-color: var(--nexus-primary); }
.nexus-single-share { margin: 1.5rem 0; padding-top: 1rem; border-top: 1px solid var(--nexus-border); }

/* Accordion shortcode */
.nexus-accordion-sc { border: 1px solid var(--nexus-border); border-radius: 8px; overflow: hidden; }
.nexus-accordion-item { border-bottom: 1px solid var(--nexus-border); }
.nexus-accordion-item:last-child { border-bottom: none; }
.nexus-accordion-summary { padding: 1rem 1.25rem; cursor: pointer; font-weight: 600; list-style: none; background: var(--nexus-surface); }
.nexus-accordion-summary::-webkit-details-marker { display: none; }
.nexus-accordion-item[open] .nexus-accordion-summary { background: var(--nexus-body-bg); }
.nexus-accordion-content { padding: 1rem 1.25rem; }

/* Alert shortcode */
.nexus-alert { padding: 1rem 1.25rem; border-radius: 6px; margin: 1rem 0; border-left: 4px solid; }
.nexus-alert-info { background: #e0f2fe; border-color: #0ea5e9; color: #0c4a6e; }
.nexus-alert-success { background: #dcfce7; border-color: #22c55e; color: #14532d; }
.nexus-alert-warning { background: #fef3c7; border-color: #f59e0b; color: #78350f; }
.nexus-alert-error { background: #fee2e2; border-color: #ef4444; color: #7f1d1d; }

/* After post widgets */
.nexus-after-post-widgets { margin: 2rem 0; padding-top: 1.5rem; border-top: 1px solid var(--nexus-border); }

/* Shop sidebar layout */
.nexus-shop-with-sidebar { display: grid; grid-template-columns: 1fr 280px; gap: 2rem; }
@media (max-width: 768px) { .nexus-shop-with-sidebar { grid-template-columns: 1fr; } }

/* Builder section layout: 2/3 columns (inner content grid); partial columns center on the row */
.nexus-section-layout-2col .nexus-section-inner,
.nexus-section-layout-3col .nexus-section-inner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	justify-content: center;
	justify-items: stretch;
	gap: 2rem;
	align-items: start;
}
.nexus-section-layout-2col .nexus-section-inner > :only-child,
.nexus-section-layout-3col .nexus-section-inner > :only-child {
	grid-column: 1 / -1;
	justify-self: center;
	width: 100%;
	max-width: min(100%, var(--nexus-container-width, 1200px));
}
@media (max-width: 768px) {
	.nexus-section-layout-2col .nexus-section-inner,
	.nexus-section-layout-3col .nexus-section-inner {
		grid-template-columns: 1fr;
	}
}

/* Testimonials CPT */
.nexus-testimonials-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 360px)); justify-content: center; gap: 1.5rem; }
.nexus-testimonial-card { padding: 1.5rem; background: var(--nexus-surface); border-radius: 8px; border: 1px solid var(--nexus-border); }
.nexus-testimonial-quote { margin: 0 0 1rem; font-style: italic; }
.nexus-testimonial-author, .nexus-testimonial-meta cite { font-style: normal; color: var(--nexus-body-text-muted); font-size: 0.9rem; }
.nexus-testimonial-thumb { margin-bottom: 0.75rem; }
.nexus-testimonial-thumb img { border-radius: 50%; }

/* FAQ CPT */
.nexus-faq-archive .nexus-faq-item { margin-bottom: 1.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--nexus-border); }
.nexus-faq-question { margin: 0 0 0.5rem; font-size: 1.1rem; }
.nexus-faq-answer { color: var(--nexus-body-text-muted); }

/* Top bar menu */
.nexus-top-bar-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.5rem; }
.nexus-topbar-nav { margin-left: auto; }
.nexus-topbar-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 1rem; }
.nexus-topbar-menu a { color: inherit; opacity: 0.9; text-decoration: none; }
.nexus-topbar-menu a:hover,
.nexus-topbar-menu a:focus,
.nexus-topbar-menu a:focus-visible { opacity: 1; text-decoration: none; }

/* Sticky sidebar */
body.nexus-sticky-sidebar .content-sidebar-wrap { align-items: flex-start; }
body.nexus-sticky-sidebar .widget-area { position: sticky; top: 100px; }

/* Row/column shortcodes */
.nexus-row-sc { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1.5rem; margin: 1rem 0; }
.nexus-col-sc { min-width: 0; }
.nexus-col-1-2 { grid-column: span 6; }
.nexus-col-1-3 { grid-column: span 4; }
.nexus-col-2-3 { grid-column: span 8; }
.nexus-col-1-4 { grid-column: span 3; }
.nexus-col-3-4 { grid-column: span 9; }
@media (max-width: 768px) {
	.nexus-row-sc { grid-template-columns: 1fr; }
	.nexus-col-1-2, .nexus-col-1-3, .nexus-col-2-3, .nexus-col-1-4, .nexus-col-3-4 { grid-column: span 1; }
}
.nexus-quote-sc { margin: 1.5rem 0; padding: 1rem 1.5rem; border-left: 4px solid var(--nexus-primary); background: var(--nexus-surface); font-style: italic; }
.nexus-quote-sc cite { display: block; margin-top: 0.5rem; font-style: normal; font-size: 0.9rem; color: var(--nexus-body-text-muted); }

/* Builder: visitor preview strip (?nexus_preview=1) — below #wpadminbar so admin links work */
.nexus-builder-preview-strip {
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	z-index: 99980;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	flex-wrap: wrap;
	padding: 0.45rem 0.75rem;
	background: #0f172a;
	color: #e2e8f0;
	font-size: 0.8125rem;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
	box-sizing: border-box;
}
body.admin-bar .nexus-builder-preview-strip {
	top: 32px;
}
@media screen and (max-width: 782px) {
	body.admin-bar .nexus-builder-preview-strip {
		top: 46px;
	}
}
.nexus-builder-preview-strip-link {
	color: #93c5fd;
	font-weight: 600;
	text-decoration: underline;
}
.nexus-builder-preview-strip-link:hover,
.nexus-builder-preview-strip-link:focus-visible {
	color: #bfdbfe;
}
body.nexus-builder-preview-strip-active {
	padding-top: 2.65rem;
}
body.nexus-builder-preview-strip-active.admin-bar {
	padding-top: calc(2.65rem + 32px);
}
@media screen and (max-width: 782px) {
	body.nexus-builder-preview-strip-active.admin-bar {
		padding-top: calc(2.65rem + 46px);
	}
}

/* Builder edit chrome — hidden on the public site; shown only in live builder mode. */
.nexus-builder-only,
.nexus-section-empty-msg,
.nexus-el-empty,
.nexus-gallery-builder-tools,
.nexus-layout-empty-column,
.nexus-countdown-builder-placeholder,
.nexus-map-embed-editor,
.nexus-pricing-features-source,
.nexus-edit-image-url,
.nexus-edit-placeholder,
.nexus-faq-edit-field {
	display: none !important;
}

/* Print */
@media print {
	.nexus-preloader, .nexus-back-to-top, .nexus-cookie-notice, .nexus-search-overlay, #nexus-search-toggle, .nexus-builder-dock, .nexus-builder-section-actions, .skip-link, .comment-respond, .reply { display: none !important; }
	body { background: #fff; color: #000; }
	a[href]::after { content: " (" attr(href) ")"; font-size: 0.85em; color: #666; }
}
