/**
 * NP Nutrition Coaching — global brand styles (Elementor complement).
 */

:root {
	--np-green: #3b5249;
	--np-beige: #f9f7f4;
	--np-gold: #d4a853;
	--np-text: #1c1c1c;
	--np-white: #ffffff;
	--np-container: 1200px;
	--np-gutter: 15px;
	--np-gutter-lg: 24px;
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: "Plus Jakarta Sans", sans-serif;
	color: var(--np-text);
	background-color: var(--np-beige);
}

.comments-area a,
.page-content a {
	text-decoration: none;
}

h1,
h2,
h3,
h4,
h5,
h6,
.elementor-heading-title {
	font-family: Fraunces, serif;
}

/* Buttons & button-style links — no underline */
.elementor-button,
.elementor-button-link,
a.elementor-button,
.elementor-button .elementor-button-text,
.elementor-button:hover,
.elementor-button:focus,
.elementor-button:active,
.elementor-button:visited,
.np-header-nav-group .elementor-button,
.np-header-nav-group .elementor-button-link,
.np-hero-actions .elementor-button,
.np-about-content .elementor-button,
.np-final-cta-actions .elementor-button,
.np-mobile-drawer .np-drawer-cta,
.np-mobile-drawer a.hfe-menu-item.np-drawer-cta {
	text-decoration: none !important;
}

/* Fixed header on HFE #masthead (inner .e-con sticky fails — parent is only header tall) */
#masthead,
header#masthead {
	position: fixed !important;
	top: 0;
	left: 0;
	right: 0;
	z-index: 999;
	width: 100%;
}

body.admin-bar #masthead,
body.admin-bar header#masthead {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar #masthead,
	body.admin-bar header#masthead {
		top: 46px;
	}
}

body:not(.elementor-editor-active) {
	padding-top: var(--np-header-offset, 72px);
}

#page.hfeed.site {
	overflow: visible;
}

/* WhatsApp — fixed bottom-left (always visible) */
.np-whatsapp-float {
	position: fixed;
	left: clamp(1rem, 3vw, 1.5rem);
	bottom: clamp(1rem, 3vw, 1.5rem);
	z-index: 989;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 50%;
	background: #25d366;
	color: #ffffff;
	box-shadow: 0 4px 20px rgba(37, 211, 102, 0.35);
	text-decoration: none;
	transition:
		transform 0.25s ease,
		background-color 0.25s ease,
		box-shadow 0.25s ease;
}

.np-whatsapp-float svg {
	display: block;
	width: 1.625rem;
	height: 1.625rem;
}

.np-whatsapp-float:hover,
.np-whatsapp-float:focus-visible {
	background: #20bd5a;
	color: #ffffff;
	transform: scale(1.06);
	box-shadow: 0 6px 24px rgba(37, 211, 102, 0.45);
	outline: none;
}

.np-whatsapp-float:focus-visible {
	box-shadow:
		0 0 0 2px var(--np-beige),
		0 0 0 4px #25d366;
}

body.np-mobile-menu-open .np-whatsapp-float {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* Back to top — fixed bottom-right, visible after scroll */
.np-back-to-top {
	position: fixed;
	right: clamp(1rem, 3vw, 1.5rem);
	bottom: clamp(1rem, 3vw, 1.5rem);
	z-index: 990;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: var(--np-green);
	color: var(--np-white);
	box-shadow: 0 4px 20px rgba(28, 28, 28, 0.2);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(0.75rem);
	transition:
		opacity 0.3s ease,
		visibility 0.3s ease,
		transform 0.3s ease,
		background-color 0.25s ease,
		color 0.25s ease,
		box-shadow 0.25s ease;
	pointer-events: none;
}

.np-back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
}

.np-back-to-top svg {
	display: block;
	width: 1.25rem;
	height: 1.25rem;
	flex-shrink: 0;
}

.np-back-to-top:hover,
.np-back-to-top:focus-visible {
	background: var(--np-gold);
	color: var(--np-text);
	box-shadow: 0 6px 24px rgba(28, 28, 28, 0.24);
	outline: none;
}

.np-back-to-top:focus-visible {
	box-shadow:
		0 0 0 2px var(--np-beige),
		0 0 0 4px var(--np-gold);
}

body.np-mobile-menu-open .np-back-to-top {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.np-back-to-top {
		transition: opacity 0.15s ease, visibility 0.15s ease;
		transform: none;
	}

	.np-back-to-top.is-visible {
		transform: none;
	}
}

.np-site-header,
.np-header-bar {
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.1);
	transition:
		box-shadow 0.35s ease,
		background-color 0.35s ease,
		backdrop-filter 0.35s ease;
	will-change: box-shadow;
}

#masthead.is-scrolled .np-site-header,
#masthead.is-scrolled .np-header-bar,
.np-site-header.is-scrolled,
.np-header-bar.is-scrolled {
	box-shadow: 0 4px 28px rgba(0, 0, 0, 0.18);
}

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

	.np-site-header,
	.np-header-bar,
	.np-site-header .hfe-nav-menu nav > ul > li > a,
	.np-site-header .elementor-widget-navigation-menu nav > ul > li > a {
		transition: none;
	}
}

.np-site-header a {
	text-decoration: none;
}

/* Single-line header: logo | nav + CTA — auto spacing all widths */
.np-header-bar > .e-con-inner,
.np-site-header.e-con > .e-con-inner {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	justify-content: space-between !important;
	align-items: center !important;
	width: 100% !important;
	max-width: 1200px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	gap: clamp(12px, 3vw, 40px) !important;
}

.np-header-logo,
.np-header-logo.e-con {
	flex: 0 0 auto !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
}

.np-header-nav-group,
.np-header-nav-group.e-con {
	flex: 0 1 auto !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	margin-left: auto !important;
}

.np-header-nav-group > .e-con-inner {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: clamp(16px, 2.5vw, 32px) !important;
	width: auto !important;
}

/* Logo: gold NP + white label */
.np-logo-link {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	white-space: nowrap;
	line-height: 1.2;
}

.np-logo-np {
	font-family: Fraunces, serif;
	font-size: clamp(1.25rem, 2vw, 1.75rem);
	font-weight: 600;
	color: var(--np-gold);
	letter-spacing: 0.02em;
}

.np-logo-name {
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: clamp(0.65rem, 1.2vw, 0.875rem);
	font-weight: 600;
	color: var(--np-white);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* Nav: one row, even spacing scales with viewport */
.np-site-header .hfe-nav-menu nav > ul,
.np-site-header .elementor-widget-navigation-menu nav > ul {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: clamp(14px, 2.2vw, 32px) !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.np-site-header .hfe-nav-menu nav > ul > li,
.np-site-header .elementor-widget-navigation-menu nav > ul > li {
	margin: 0 !important;
	padding: 0 !important;
	white-space: nowrap;
}

.np-site-header .hfe-nav-menu nav > ul > li > a,
.np-site-header .elementor-widget-navigation-menu nav > ul > li > a {
	color: var(--np-white) !important;
	font-weight: 500;
	transition: color 0.25s ease;
}

.np-site-header .hfe-nav-menu nav > ul > li > a:hover,
.np-site-header .elementor-widget-navigation-menu nav > ul > li > a:hover,
.np-site-header .hfe-nav-menu nav > ul > li.current-menu-item > a,
.np-site-header .hfe-nav-menu nav > ul > li.current_page_item > a,
.np-site-header .hfe-nav-menu nav > ul > li.current-menu-ancestor > a,
.np-site-header .elementor-widget-navigation-menu nav > ul > li.current-menu-item > a,
.np-site-header .elementor-widget-navigation-menu nav > ul > li.current_page_item > a,
.np-site-header .elementor-widget-navigation-menu nav > ul > li.current-menu-ancestor > a {
	color: var(--np-gold) !important;
}

/* CTA stays inline with menu */
.np-header-nav-group .elementor-widget-button {
	flex-shrink: 0;
}

.np-header-nav-group .elementor-button {
	white-space: nowrap;
}

/* ==========================================================================
   Homepage hero (plan: editorial 2-col, trust row, float card)
   ========================================================================== */

.elementor .np-hero {
	background-color: var(--np-beige) !important;
	width: 100% !important;
	max-width: 100% !important;
	overflow-x: clip;
	overflow-y: visible;
}

.elementor .np-hero > .e-con-inner {
	width: 100% !important;
	max-width: var(--np-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.elementor .np-hero-grid > .e-con-inner {
	display: grid !important;
	grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr) !important;
	gap: clamp(2rem, 5vw, 3.5rem) !important;
	align-items: center !important;
	width: 100% !important;
}

.elementor .np-hero-grid > .e-con-inner > .e-con {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
}

.elementor .np-hero-content > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: clamp(1.125rem, 2.5vw, 1.5rem) !important;
	padding: 0 !important;
}

/* Eyebrow */
.np-hero-content > .e-con-inner > .elementor-widget-heading:first-child .elementor-heading-title {
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: 0.6875rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	color: var(--np-gold) !important;
	margin: 0 !important;
}

/* H1 */
.np-hero-content > .e-con-inner > .elementor-widget-heading:nth-child(2) .elementor-heading-title {
	font-family: Fraunces, serif !important;
	font-size: clamp(2.25rem, 5.5vw, 3.25rem) !important;
	font-weight: 600 !important;
	line-height: 1.1 !important;
	color: var(--np-text) !important;
	margin: 0 !important;
	max-width: 14ch;
	letter-spacing: -0.02em;
}

.np-hero-lead,
.np-hero-content .elementor-widget-text-editor p {
	margin: 0 !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: clamp(1rem, 1.8vw, 1.125rem) !important;
	line-height: 1.65 !important;
	color: rgba(28, 28, 28, 0.82) !important;
	max-width: 32rem;
}

/* Buttons */
.elementor .np-hero-actions > .e-con-inner {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 0.75rem !important;
	padding: 0 !important;
	width: 100% !important;
}

.elementor .np-hero-actions .elementor-button {
	min-width: 10.5rem;
	justify-content: center;
	border-radius: 8px !important;
}

.elementor .np-hero-actions .elementor-button-link.elementor-button {
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}

.elementor .np-hero-actions .elementor-button:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 24px rgba(59, 82, 73, 0.18);
}

/* Hero stat value + suffix (trust + float card) */
.np-hero-trust__num,
.np-hero-float-card__num {
	margin: 0 !important;
	display: inline-flex !important;
	flex-wrap: nowrap;
	align-items: baseline;
	gap: 0.04em;
	white-space: nowrap;
	line-height: 1;
}

.np-hero-stat__value {
	font-family: Fraunces, serif;
	font-size: clamp(1.5rem, 3.2vw, 2rem);
	font-weight: 600;
	color: var(--np-gold);
	letter-spacing: -0.02em;
}

.np-hero-stat__suffix {
	font-family: Fraunces, serif;
	font-size: clamp(0.875rem, 1.8vw, 1.125rem);
	font-weight: 600;
	color: var(--np-gold);
	line-height: 1;
	opacity: 0.95;
}

.np-hero-trust__num-wrap,
.np-hero-float-card__num-wrap {
	margin: 0 !important;
	width: auto !important;
}

/* Trust row — plan: 3 compact stats under CTAs */
.elementor .np-hero-trust {
	width: 100% !important;
	margin-top: 0.25rem;
	padding-top: clamp(1.25rem, 3vw, 1.75rem);
	border-top: 1px solid rgba(59, 82, 73, 0.1);
}

.elementor .np-hero-trust > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(1rem, 3vw, 2rem) !important;
	padding: 0 !important;
	width: 100% !important;
	align-items: start !important;
}

.elementor .np-hero-trust__item > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	text-align: left !important;
	padding: 0 !important;
	gap: 0.35rem !important;
}

.elementor .np-hero-trust__label .elementor-heading-title {
	margin: 0 !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: clamp(0.75rem, 1.4vw, 0.8125rem) !important;
	font-weight: 500 !important;
	color: rgba(28, 28, 28, 0.62) !important;
	line-height: 1.35 !important;
	max-width: 10rem;
	letter-spacing: 0.01em;
}

/* Media column */
.elementor .np-hero-media > .e-con-inner {
	position: relative !important;
	padding: 0 !important;
	gap: 0 !important;
}

.np-hero-media .np-hero-image,
.np-hero-media .elementor-widget-image.np-hero-image {
	position: relative;
	width: 100% !important;
	margin: 0 !important;
	border-radius: 16px;
	overflow: hidden;
	background: linear-gradient(145deg, rgba(59, 82, 73, 0.06), rgba(212, 168, 83, 0.1));
	box-shadow:
		0 24px 56px rgba(28, 28, 28, 0.1),
		0 0 0 1px rgba(59, 82, 73, 0.06);
}

.np-hero-media .np-hero-image::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(180deg, transparent 55%, rgba(28, 28, 28, 0.06) 100%);
	z-index: 1;
}

.np-hero-media .np-hero-image img,
.np-hero-media .elementor-widget-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 5 / 6;
	max-height: min(68vh, 620px);
	object-fit: cover;
	object-position: center 15%;
	border-radius: 0;
}

.elementor .np-hero-media .np-hero-float-card {
	position: absolute !important;
	bottom: clamp(1.25rem, 4vw, 2rem);
	left: clamp(0.75rem, 3vw, 1.25rem);
	right: auto;
	z-index: 4;
	margin: 0 !important;
	width: auto !important;
	max-width: min(100% - 1.5rem, 320px);
	pointer-events: none;
}

.elementor .np-hero-float-card > .e-con-inner {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 1.125rem !important;
	padding: 1rem 1.25rem !important;
	background: var(--np-green) !important;
	color: var(--np-beige);
	border-radius: 12px;
	box-shadow: 0 16px 40px rgba(28, 28, 28, 0.24);
	border: 1px solid rgba(255, 255, 255, 0.08);
}

.np-hero-float-card__stat > .e-con-inner {
	padding: 0 !important;
	gap: 0.2rem !important;
	align-items: flex-start !important;
}

.np-hero-float-card .np-hero-stat__value {
	font-size: clamp(1.25rem, 2.5vw, 1.5rem);
	color: var(--np-gold);
}

.np-hero-float-card .np-hero-stat__suffix {
	font-size: clamp(0.75rem, 1.6vw, 0.9375rem);
}

.np-hero-float-card__label .elementor-heading-title {
	margin: 0 !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: 0.6875rem !important;
	font-weight: 500 !important;
	color: rgba(249, 247, 244, 0.88) !important;
	line-height: 1.3 !important;
	white-space: nowrap;
}

.np-hero-float-card__divider {
	width: 1px;
	align-self: stretch;
	min-height: 2.25rem;
	flex-shrink: 0;
	background: rgba(255, 255, 255, 0.22);
	margin: 0 !important;
}

@media (max-width: 1024px) {
	.elementor .np-hero-grid > .e-con-inner {
		grid-template-columns: 1fr !important;
		gap: 2rem !important;
	}

	.elementor .np-hero-content {
		order: 1;
	}

	.elementor .np-hero-media {
		order: 2;
	}

	.np-hero-content > .e-con-inner > .elementor-widget-heading:nth-child(2) .elementor-heading-title {
		max-width: none;
	}

	.elementor .np-hero-media .np-hero-float-card {
		left: auto;
		right: 1rem;
		bottom: 1rem;
	}
}

@media (max-width: 640px) {
	.elementor .np-hero-actions > .e-con-inner {
		flex-direction: column !important;
	}

	.elementor .np-hero-actions .elementor-widget-button,
	.elementor .np-hero-actions .elementor-button {
		width: 100% !important;
	}

	.elementor .np-hero-actions .elementor-button-link {
		display: flex !important;
		width: 100% !important;
	}

	.elementor .np-hero-trust > .e-con-inner {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 0.625rem !important;
	}

	.elementor .np-hero-trust__label .elementor-heading-title {
		font-size: 0.6875rem !important;
		max-width: none;
		line-height: 1.3 !important;
	}

	.np-hero-stat__value {
		font-size: clamp(1.25rem, 5vw, 1.5rem);
	}

	.np-hero-stat__suffix {
		font-size: clamp(0.6875rem, 2.5vw, 0.8125rem);
	}

	.np-hero-media .np-hero-image img,
	.np-hero-media .elementor-widget-image img {
		max-height: 380px;
		aspect-ratio: 4 / 5;
	}

	.elementor .np-hero-media .np-hero-float-card {
		left: 0.75rem;
		right: 0.75rem;
		bottom: 0.75rem;
		max-width: none;
	}

	.elementor .np-hero-float-card > .e-con-inner {
		padding: 0.875rem 1rem !important;
		gap: 0.875rem !important;
		justify-content: space-between;
	}
}

/* ==========================================================================
   Homepage — social proof bar
   ========================================================================== */

.elementor .np-social-proof {
	background-color: var(--np-green) !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
}

.elementor .np-social-proof > .e-con-inner {
	width: 100% !important;
	max-width: var(--np-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: 0 !important;
}

.elementor .np-proof-grid {
	width: 100% !important;
}

.elementor .np-proof-grid > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
	align-items: stretch !important;
}

.elementor .np-proof-grid > .e-con-inner > .np-proof-item {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
}

.elementor .np-proof-item {
	text-align: center;
	border-right: 1px solid rgba(255, 255, 255, 0.14);
}

.elementor .np-proof-item > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	padding: clamp(1.5rem, 4vw, 2.25rem) clamp(0.75rem, 2vw, 1.25rem) !important;
	height: 100%;
}

.elementor .np-proof-item:last-child {
	border-right: none;
}

.np-proof-counter .elementor-counter-number-wrapper {
	display: inline-flex !important;
	flex-wrap: nowrap !important;
	align-items: baseline !important;
	justify-content: center;
	gap: 0.06em;
	margin: 0 auto;
	max-width: 100%;
	white-space: nowrap;
}

.np-proof-counter .elementor-counter-number {
	flex: 0 0 auto;
	font-family: Fraunces, serif !important;
	font-size: clamp(1.75rem, 4vw, 2.5rem) !important;
	font-weight: 600 !important;
	color: var(--np-white) !important;
	line-height: 1 !important;
	letter-spacing: -0.02em;
	white-space: nowrap;
}

.np-proof-counter .elementor-counter-number-prefix,
.np-proof-counter .elementor-counter-number-suffix {
	flex: 0 0 auto;
	display: inline !important;
	white-space: nowrap !important;
	font-family: Fraunces, serif !important;
	font-size: clamp(0.9375rem, 2vw, 1.375rem) !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	color: rgba(249, 247, 244, 0.92) !important;
	letter-spacing: 0;
	vertical-align: baseline;
}

.np-proof-counter .elementor-counter-title {
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: clamp(0.75rem, 1.5vw, 0.875rem) !important;
	font-weight: 500 !important;
	color: rgba(249, 247, 244, 0.82) !important;
	line-height: 1.35 !important;
	max-width: 11rem;
	margin: 0.35rem auto 0 !important;
}

/* Mobile / tablet — 2 columns, each stat 50% width */
@media (max-width: 767px) {
	.elementor .np-proof-grid > .e-con-inner {
		display: flex !important;
		flex-wrap: wrap !important;
		width: 100% !important;
		padding: 0 !important;
		margin: 0 !important;
		align-items: stretch !important;
	}

	.elementor .np-proof-grid > .e-con-inner > .np-proof-item {
		width: 46% !important;
		max-width: 46% !important;
		flex: 0 0 46% !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
	}

	.elementor .np-proof-item {
		border-right: none !important;
	}

	.elementor .np-proof-item:nth-child(1),
	.elementor .np-proof-item:nth-child(2) {
		border-bottom: 1px solid rgba(255, 255, 255, 0.14);
	}

	.elementor .np-proof-item:nth-child(3),
	.elementor .np-proof-item:nth-child(4) {
		border-bottom: none;
	}

	.np-proof-counter .elementor-counter-number {
		font-size: clamp(1.5rem, 5vw, 2rem) !important;
	}

	.np-proof-counter .elementor-counter-number-prefix,
	.np-proof-counter .elementor-counter-number-suffix {
		font-size: clamp(0.8125rem, 2.4vw, 1.125rem) !important;
	}
}

@media (max-width: 420px) {
	.elementor .np-proof-item > .e-con-inner {
		padding: 1.25rem 0.75rem !important;
	}

	.np-proof-counter .elementor-counter-number {
		font-size: clamp(1.375rem, 6vw, 1.875rem) !important;
	}

	.np-proof-counter .elementor-counter-title {
		max-width: 9rem;
		font-size: 0.75rem !important;
	}

	.np-proof-counter .elementor-counter-number-prefix,
	.np-proof-counter .elementor-counter-number-suffix {
		font-size: clamp(0.75rem, 2.8vw, 1rem) !important;
	}
}

/* ==========================================================================
   Homepage — about / philosophy
   ========================================================================== */

.elementor .np-about {
	background-color: var(--np-beige) !important;
	width: 100% !important;
	max-width: 100% !important;
}

.elementor .np-about > .e-con-inner {
	width: 100% !important;
	max-width: var(--np-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.elementor .np-about-grid > .e-con-inner {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
	gap: clamp(2rem, 5vw, 3.5rem) !important;
	align-items: center !important;
	width: 100% !important;
}

.elementor .np-about-grid > .e-con-inner > .e-con {
	width: 100% !important;
	min-width: 0 !important;
}

.elementor .np-about-media > .e-con-inner,
.elementor .np-about-content > .e-con-inner {
	padding: 0 !important;
}

.np-about-media .np-about-image img,
.np-about-media .elementor-widget-image img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 16px;
	box-shadow: 0 16px 40px rgba(28, 28, 28, 0.1);
	aspect-ratio: 5 / 4;
	object-fit: cover;
}

.elementor .np-about-content > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	gap: clamp(1rem, 2vw, 1.25rem) !important;
}

.np-about-content .elementor-widget-heading:first-child .elementor-heading-title {
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: var(--np-gold) !important;
	margin: 0 !important;
}

.np-about-content .elementor-widget-heading:nth-child(2) .elementor-heading-title {
	font-family: Fraunces, serif !important;
	font-size: clamp(1.75rem, 4vw, 2.5rem) !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	color: var(--np-text) !important;
	margin: 0 !important;
}

.np-about-content .elementor-widget-text-editor p {
	margin: 0 0 1rem !important;
	font-size: clamp(0.9375rem, 1.8vw, 1.0625rem) !important;
	line-height: 1.7 !important;
	color: rgba(28, 28, 28, 0.88) !important;
}

.np-about-content .elementor-widget-text-editor p:last-child {
	margin-bottom: 0 !important;
}

.np-about-content .elementor-widget-button {
	margin-top: 0.5rem !important;
}

.np-about-content .elementor-button {
	transition: background 0.2s ease, transform 0.15s ease;
}

.np-about-content .elementor-button:hover {
	transform: translateY(-1px);
}

@media (max-width: 1024px) {
	.elementor .np-about-grid > .e-con-inner {
		grid-template-columns: 1fr !important;
		gap: 2rem !important;
	}

	.elementor .np-about-media {
		order: -1;
	}
}

@media (max-width: 640px) {
	.elementor .np-about {
		padding-top: 3.5rem !important;
		padding-bottom: 3.5rem !important;
	}

	.np-about-content .elementor-widget-button .elementor-button {
		width: 100%;
		justify-content: center;
	}
}

/* ==========================================================================
   Homepage — how coaching works (process)
   ========================================================================== */

.elementor .np-process {
	background-color: var(--np-white) !important;
	width: 100% !important;
	max-width: 100% !important;
}

.elementor .np-process > .e-con-inner {
	width: 100% !important;
	max-width: var(--np-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	display: flex !important;
	flex-direction: column !important;
	gap: clamp(2rem, 4vw, 3rem) !important;
}

.elementor .np-process-head {
	width: 100% !important;
	text-align: center !important;
}

.elementor .np-process-head > .e-con-inner {
	align-items: center !important;
	text-align: center !important;
	padding: 0 !important;
}

.np-process-head .elementor-heading-title {
	margin: 0 auto !important;
}

.np-process-head .elementor-widget-heading:first-child .elementor-heading-title {
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: var(--np-gold) !important;
}

.np-process-head .elementor-widget-heading:nth-child(2) .elementor-heading-title {
	font-family: Fraunces, serif !important;
	font-size: clamp(1.75rem, 4vw, 2.5rem) !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	color: var(--np-text) !important;
	max-width: 20ch;
}

.elementor .np-process-grid {
	width: 100% !important;
}

.elementor .np-process-grid > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.25rem, 3vw, 2rem) !important;
	width: 100% !important;
	padding: 0 !important;
	align-items: stretch !important;
}

.elementor .np-process-card {
	background: var(--np-beige) !important;
	border-radius: 14px;
	border: 1px solid rgba(59, 82, 73, 0.08);
	transition: box-shadow 0.25s ease, transform 0.25s ease;
	height: 100%;
}

.elementor .np-process-card:hover {
	box-shadow: 0 12px 32px rgba(28, 28, 28, 0.08);
	transform: translateY(-3px);
}

.elementor .np-process-card > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 1rem !important;
	padding: clamp(1.5rem, 3vw, 2rem) !important;
	height: 100%;
}

.np-process-card .elementor-widget-icon {
	margin: 0 !important;
	width: auto !important;
}

.np-process-card .np-process-card__icon .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 50%;
	background: var(--np-green);
	color: var(--np-gold);
	font-size: 1.75rem;
}

.np-process-card__title-row {
	width: 100% !important;
}

.np-process-card__title-row > .e-con-inner {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: baseline !important;
	gap: 0.35rem !important;
	padding: 0 !important;
	width: 100% !important;
}

.np-process-card .np-process-step-num .elementor-heading-title {
	margin: 0 !important;
	font-family: Fraunces, serif !important;
	font-size: 1.5rem !important;
	font-weight: 600 !important;
	color: var(--np-gold) !important;
	line-height: 1 !important;
}

.np-process-card .np-process-step-title .elementor-heading-title {
	margin: 0 !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: 1.125rem !important;
	font-weight: 700 !important;
	color: var(--np-text) !important;
	line-height: 1.3 !important;
}

.np-process-card .np-process-step-text {
	width: 100% !important;
}

.np-process-card .np-process-step-text p {
	margin: 0 !important;
	font-size: 0.9375rem !important;
	line-height: 1.65 !important;
	color: rgba(28, 28, 28, 0.82) !important;
}

@media (max-width: 900px) {
	.elementor .np-process-grid > .e-con-inner {
		grid-template-columns: 1fr;
		max-width: 28rem;
		margin-left: auto !important;
		margin-right: auto !important;
	}
}

@media (max-width: 640px) {
	.elementor .np-process {
		padding-top: 3.5rem !important;
		padding-bottom: 3.5rem !important;
	}
}

/* ==========================================================================
   Homepage — testimonials slider (premium editorial)
   ========================================================================== */

.elementor .np-testimonials {
	background-color: var(--np-green) !important;
	width: 100% !important;
	max-width: 100% !important;
	overflow-x: clip;
	overflow-y: visible;
	position: relative;
	isolation: isolate;
}

.elementor .np-testimonials::before {
	content: "\201C";
	position: absolute;
	top: clamp(3rem, 8vw, 6rem);
	left: 50%;
	transform: translateX(-50%);
	font-family: Fraunces, serif;
	font-size: clamp(12rem, 28vw, 20rem);
	line-height: 1;
	color: rgba(255, 255, 255, 0.04);
	pointer-events: none;
	z-index: 0;
}

.elementor .np-testimonials::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 90% 60% at 50% -10%, rgba(212, 168, 83, 0.14) 0%, transparent 60%);
	pointer-events: none;
	z-index: 0;
}

.elementor .np-testimonials > .e-con-inner {
	position: relative;
	z-index: 1;
	width: 100% !important;
	max-width: var(--np-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	display: flex !important;
	flex-direction: column !important;
	gap: clamp(2rem, 4vw, 2.75rem) !important;
}

.elementor .np-testimonials-head > .e-con-inner {
	align-items: center !important;
	text-align: center !important;
	padding: 0 !important;
	gap: 0.75rem !important;
}

.np-testimonials-head .elementor-widget-heading:first-child .elementor-heading-title {
	margin: 0 auto !important;
	letter-spacing: 0.16em !important;
}

.np-testimonials-head .elementor-widget-heading:nth-child(2) .elementor-heading-title {
	font-family: Fraunces, serif !important;
	font-size: clamp(1.875rem, 4.5vw, 2.75rem) !important;
	font-weight: 600 !important;
	line-height: 1.15 !important;
	color: var(--np-white) !important;
	max-width: 16ch;
	margin: 0 auto !important;
}

.elementor .np-testimonials .np-t-slider,
.elementor .np-testimonials .np-t-slider-widget {
	width: 100% !important;
	max-width: 100% !important;
}

/* Carousel — slide width from viewport (container query), not full track */
.elementor .np-t-slider,
.np-t-slider {
	width: 100%;
	max-width: 100%;
	outline: none;
	--np-t-gap: 1.25rem;
	--np-t-gap-count: 2;
	--np-t-per-view: 3;
	--np-t-card-pad: clamp(1.35rem, 2.4vw, 1.75rem);
	--np-t-card-gap: 1rem;
}

.elementor .np-t-slider__viewport,
.np-t-slider__viewport {
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
	max-width: 100%;
	overflow-x: hidden;
	overflow-y: visible;
	container-type: inline-size;
	container-name: np-t-viewport;
	padding-block: 6px;
	margin-block: -6px;
}

.elementor .np-t-slider__viewport > .e-con-inner,
.np-t-slider__viewport > .e-con-inner {
	padding: 0 !important;
	overflow: visible;
	width: 100% !important;
	max-width: 100% !important;
}

.elementor .np-t-slider__track > .e-con-inner,
.np-t-slider__track > .e-con-inner {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	gap: var(--np-t-gap) !important;
	padding: 0 !important;
	width: max-content;
	min-width: 100%;
	transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: transform;
}

/* JS sets --np-t-slide-width; container query refines when supported */
.np-t-slide,
.elementor .np-t-slide {
	flex: 0 0 var(--np-t-slide-width, 100%) !important;
	width: var(--np-t-slide-width, 100%) !important;
	max-width: var(--np-t-slide-width, 100%) !important;
	min-width: 0;
	box-sizing: border-box;
	display: flex !important;
	flex-direction: column !important;
	align-self: stretch !important;
	padding: 0 !important;
	--padding-top: 0px !important;
	--padding-right: 0px !important;
	--padding-bottom: 0px !important;
	--padding-left: 0px !important;
}

@supports (width: 1cqi) {
	@container np-t-viewport (min-width: 0) {
		.np-t-slide,
		.elementor .np-t-slide {
			flex: 0 0 calc(
				(100cqi - (var(--np-t-gap) * var(--np-t-gap-count))) / var(--np-t-per-view)
			) !important;
			width: calc(
				(100cqi - (var(--np-t-gap) * var(--np-t-gap-count))) / var(--np-t-per-view)
			) !important;
			max-width: calc(
				(100cqi - (var(--np-t-gap) * var(--np-t-gap-count))) / var(--np-t-per-view)
			) !important;
		}
	}
}

.elementor .np-t-slider__carousel,
.np-t-slider__carousel {
	position: relative;
	width: 100%;
	max-width: 100%;
}

.elementor .np-t-slider__carousel > .e-con-inner {
	position: relative;
	display: block !important;
	padding: 0 clamp(3.5rem, 8vw, 4.75rem) !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}

.elementor .np-t-slider__track,
.np-t-slider__track {
	display: block;
	width: 100%;
	min-width: 0;
}

/* Card panel — equal height in row via flex stretch */
.elementor .np-t-slide__panel,
.np-t-slide__panel {
	display: flex !important;
	flex: 1 1 auto !important;
	flex-direction: column !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 100% !important;
	padding: 0 !important;
	--padding-top: 0px !important;
	--padding-right: 0px !important;
	--padding-bottom: 0px !important;
	--padding-left: 0px !important;
}

.elementor .np-t-slide__panel > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 1 auto !important;
	height: 100% !important;
	min-height: 0;
	gap: var(--np-t-card-gap) !important;
	background: var(--np-beige) !important;
	border-radius: 20px;
	padding: var(--np-t-card-pad) !important;
	padding-bottom: calc(var(--np-t-card-pad) + 0.15rem) !important;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.7) inset,
		0 16px 40px rgba(0, 0, 0, 0.2);
	border: 1px solid rgba(255, 255, 255, 0.14);
	transition: box-shadow 0.3s ease, transform 0.3s ease;
	box-sizing: border-box;
	overflow: visible;
}

.elementor .np-t-slide__panel:hover > .e-con-inner {
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.7) inset,
		0 20px 48px rgba(0, 0, 0, 0.26);
	transform: translateY(-2px);
}

.np-t-slide__profile,
.elementor .np-t-slide__profile > .e-con-inner {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 0.875rem !important;
	padding: 0 !important;
	margin: 0 0 0.25rem !important;
	flex-shrink: 0;
}

.np-t-slide__avatar-wrap {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 70px;
	height: 70px;
	padding: 3px;
	border-radius: 50%;
	overflow: hidden;
	background: linear-gradient(145deg, var(--np-gold), #f5e6c8 50%, var(--np-gold));
	box-shadow: 0 6px 20px rgba(212, 168, 83, 0.35);
	box-sizing: border-box;
}

.np-t-slide__avatar {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0 !important;
	border-radius: 50%;
	object-fit: cover;
	background: transparent;
	border: none;
}

.np-t-slide__meta,
.np-t-slide__meta > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	min-width: 0;
	padding: 0 !important;
	gap: 0.2rem !important;
	flex: 1 1 auto;
}

.np-t-slide__name .elementor-heading-title {
	margin: 0 !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: 1.0625rem !important;
	font-weight: 700 !important;
	color: var(--np-green) !important;
	line-height: 1.3 !important;
}

.np-t-slide__role .elementor-heading-title {
	margin: 0 !important;
	font-size: 0.8125rem !important;
	font-weight: 500 !important;
	color: rgba(28, 28, 28, 0.55) !important;
	line-height: 1.35 !important;
}

.np-t-slide__rating {
	margin: 0 !important;
	flex-shrink: 0;
}

.np-t-slide__rating .elementor-star-rating__title {
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: 0.8125rem !important;
	font-weight: 700 !important;
	color: var(--np-gold) !important;
}

.np-t-slide__quote p {
	margin: 0 !important;
}

.np-t-stars {
	display: inline-flex;
	align-items: center;
	gap: 0.1rem;
	flex-wrap: nowrap;
}

.np-t-stars__star {
	display: inline-flex;
	color: rgba(28, 28, 28, 0.15);
}

.np-t-stars__star.is-filled {
	color: var(--np-gold);
}

.np-t-star-icon {
	display: block;
}

.np-t-stars__value {
	margin-left: 0.5rem;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--np-green);
	letter-spacing: 0.02em;
}

/* Quote — grows so cards align when copy length differs */
.np-t-slide__quote {
	margin: 0;
	padding: 0;
	border: none;
	position: relative;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	min-height: 0;
}

.np-t-slide__quote::before {
	display: none;
}

.np-t-slide__quote p {
	position: relative;
	margin: 0;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: clamp(0.875rem, 1.6vw, 0.9375rem);
	font-weight: 500;
	font-style: normal;
	line-height: 1.65;
	color: rgba(28, 28, 28, 0.88);
}

/* Prev / Next — absolute, vertically centered, outside card track */
.elementor .np-t-slider__arrow,
.np-t-slider__arrow {
	position: absolute;
	top: 50%;
	z-index: 5;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 52px;
	height: 52px;
	margin: 0;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 50%;
	background: var(--np-gold);
	color: var(--np-text);
	cursor: pointer;
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.22);
	transform: translateY(-50%);
	transition:
		background 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease,
		box-shadow 0.2s ease,
		transform 0.2s ease,
		opacity 0.2s ease;
	text-decoration: none !important;
	-webkit-appearance: none;
	appearance: none;
}

.elementor .np-t-slider__arrow--prev,
.np-t-slider__arrow--prev {
	left: 0;
}

.elementor .np-t-slider__arrow--next,
.np-t-slider__arrow--next {
	right: 0;
}

.np-t-slider__arrow-svg {
	display: block;
	pointer-events: none;
}

.elementor .np-t-slider__arrow:hover:not(:disabled),
.elementor .np-t-slider__arrow:focus-visible:not(:disabled),
.np-t-slider__arrow:hover:not(:disabled),
.np-t-slider__arrow:focus-visible:not(:disabled) {
	background: #e8bc6a;
	border-color: rgba(255, 255, 255, 0.35);
	transform: translateY(calc(-50% - 2px));
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
	outline: none;
}

.elementor .np-t-slider__arrow:active:not(:disabled),
.np-t-slider__arrow:active:not(:disabled) {
	transform: translateY(-50%);
}

.elementor .np-t-slider__arrow:disabled,
.np-t-slider__arrow:disabled {
	opacity: 0.4;
	cursor: not-allowed;
	background: rgba(249, 247, 244, 0.12);
	border-color: rgba(249, 247, 244, 0.25);
	color: rgba(249, 247, 244, 0.5);
	box-shadow: none;
}

/* Footer: progress + counter + dots */
.np-t-slider__footer {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
	margin-top: clamp(1rem, 2.5vw, 1.5rem);
	width: 100%;
}

.np-t-slider__progress {
	height: 3px;
	width: 100%;
	background: rgba(255, 255, 255, 0.15);
	border-radius: 999px;
	overflow: hidden;
}

.np-t-slider__progress-fill {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, var(--np-gold), #e8c478);
	border-radius: inherit;
	transition: width 0.55s cubic-bezier(0.4, 0, 0.2, 1);
}

.np-t-slider__footer-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}

.np-t-slider__counter {
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: rgba(249, 247, 244, 0.7);
	font-variant-numeric: tabular-nums;
}

.np-t-slider__dots {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.np-t-slider__dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.28);
	cursor: pointer;
	transition: width 0.3s ease, background 0.3s ease, transform 0.2s ease;
	text-decoration: none !important;
}

.np-t-slider__dot.is-active {
	width: 32px;
	border-radius: 999px;
	background: var(--np-gold);
}

.np-t-slider__dot:hover:not(.is-active) {
	background: rgba(255, 255, 255, 0.55);
	transform: scale(1.15);
}

/* Laptop — 2 visible */
@media (max-width: 1024px) {
	.np-t-slider,
	.elementor .np-t-slider {
		--np-t-per-view: 2;
		--np-t-gap-count: 1;
	}

	.elementor .np-t-slider__carousel > .e-con-inner,
	.np-t-slider__carousel > .e-con-inner {
		padding-left: clamp(3rem, 7vw, 4rem) !important;
		padding-right: clamp(3rem, 7vw, 4rem) !important;
	}

	.elementor .np-t-slider__arrow,
	.np-t-slider__arrow {
		width: 46px;
		height: 46px;
	}
}

/* Tablet */
@media (max-width: 768px) {
	.elementor .np-testimonials {
		padding-top: 3.5rem !important;
		padding-bottom: 3.5rem !important;
	}

	.np-testimonials-head .elementor-widget-heading:nth-child(2) .elementor-heading-title {
		max-width: none !important;
	}

	.np-t-slider,
	.elementor .np-t-slider {
		--np-t-gap: 1rem;
		--np-t-card-pad: 1.35rem;
		--np-t-card-gap: 0.875rem;
	}
}

/* Mobile — 1 slide, arrows below track */
@media (max-width: 640px) {
	.np-t-slider,
	.elementor .np-t-slider {
		--np-t-per-view: 1;
		--np-t-gap-count: 0;
		--np-t-gap: 0.75rem;
	}

	.elementor .np-t-slider__carousel > .e-con-inner,
	.np-t-slider__carousel > .e-con-inner {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		grid-template-areas:
			"viewport viewport"
			"prev next";
		gap: 0.75rem !important;
		align-items: stretch !important;
		padding: 0 !important;
	}

	.elementor .np-t-slider__track > .e-con-inner,
	.np-t-slider__track > .e-con-inner {
		align-items: flex-start !important;
	}

	.elementor .np-t-slide,
	.np-t-slide {
		align-self: flex-start !important;
		height: auto !important;
	}

	.elementor .np-t-slide__panel,
	.np-t-slide__panel {
		height: auto !important;
		min-height: 0 !important;
	}

	.elementor .np-t-slide__panel > .e-con-inner {
		height: auto !important;
		min-height: 0 !important;
		padding: 1.25rem 1.25rem 1.5rem !important;
	}

	.elementor .np-t-slider__viewport,
	.np-t-slider__viewport {
		grid-area: viewport;
		width: 100% !important;
	}

	.elementor .np-t-slider__arrow,
	.np-t-slider__arrow {
		position: static;
		top: auto;
		transform: none;
		width: 100% !important;
		max-width: none;
		height: 46px;
		border-radius: 10px;
		background: var(--np-gold) !important;
		color: var(--np-text) !important;
		border-color: transparent !important;
		box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
	}

	.elementor .np-t-slider__arrow:hover:not(:disabled),
	.elementor .np-t-slider__arrow:focus-visible:not(:disabled),
	.np-t-slider__arrow:hover:not(:disabled),
	.np-t-slider__arrow:focus-visible:not(:disabled) {
		transform: none;
		background: #e8bc6a !important;
	}

	.elementor .np-t-slider__arrow--prev,
	.np-t-slider__arrow--prev {
		grid-area: prev;
		justify-self: stretch;
		left: auto;
	}

	.elementor .np-t-slider__arrow--next,
	.np-t-slider__arrow--next {
		grid-area: next;
		justify-self: stretch;
		right: auto;
	}

	.elementor .np-t-slider__arrow:disabled,
	.np-t-slider__arrow:disabled {
		background: rgba(249, 247, 244, 0.12) !important;
		color: rgba(249, 247, 244, 0.45) !important;
	}

	.np-t-slider,
	.elementor .np-t-slider {
		--np-t-card-pad: 1.25rem;
		--np-t-card-gap: 0.75rem;
	}

	.np-t-slide__avatar-wrap {
		width: 62px;
		height: 62px;
	}

	.np-t-slider__footer {
		margin-top: 0.875rem;
		gap: 0.75rem;
	}

	.np-t-slide__quote p {
		font-size: 0.875rem;
	}

	.np-t-slider__footer-row {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 0.75rem;
	}

	.np-t-slider__dots {
		flex-wrap: wrap;
		justify-content: center;
		max-width: 100%;
	}
}

/* Small phones */
@media (max-width: 380px) {
	.np-t-slide__name .elementor-heading-title {
		font-size: 0.9375rem !important;
	}

	.np-t-stars__value {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.elementor .np-t-slider__track > .e-con-inner,
	.np-t-slider__track > .e-con-inner {
		transition: none;
	}

	.np-t-slider__progress-fill {
		transition: none;
	}

	.elementor .np-t-slide__panel:hover > .e-con-inner {
		transform: none;
	}
}

/* ==========================================================================
   Homepage — why choose us (benefits)
   ========================================================================== */

.elementor .np-benefits {
	background-color: var(--np-beige) !important;
	width: 100% !important;
	max-width: 100% !important;
}

.elementor .np-benefits > .e-con-inner {
	width: 100% !important;
	max-width: var(--np-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	display: flex !important;
	flex-direction: column !important;
	gap: clamp(2rem, 4vw, 3rem) !important;
}

.elementor .np-benefits-head > .e-con-inner {
	align-items: center !important;
	text-align: center !important;
	padding: 0 !important;
	max-width: 40rem;
	margin-left: auto !important;
	margin-right: auto !important;
}

.np-benefits-head .elementor-widget-heading:first-child .elementor-heading-title {
	margin: 0 auto !important;
}

.np-benefits-head .elementor-widget-heading:nth-child(2) .elementor-heading-title {
	font-family: Fraunces, serif !important;
	font-size: clamp(1.75rem, 4vw, 2.5rem) !important;
	font-weight: 600 !important;
	color: var(--np-text) !important;
	margin: 0 auto !important;
}

.np-benefits-lead,
.np-benefits-head .elementor-widget-text-editor p {
	margin: 0.75rem auto 0 !important;
	font-size: clamp(1rem, 2vw, 1.125rem) !important;
	line-height: 1.65 !important;
	color: rgba(28, 28, 28, 0.78) !important;
	max-width: 36rem;
}

.elementor .np-benefits-grid {
	width: 100% !important;
}

.elementor .np-benefits-grid > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1rem, 2.5vw, 1.5rem) !important;
	width: 100% !important;
	padding: 0 !important;
	align-items: stretch !important;
}

.elementor .np-benefit-card {
	background: var(--np-white) !important;
	border-radius: 16px;
	border: 1px solid rgba(59, 82, 73, 0.08);
	box-shadow: 0 8px 28px rgba(28, 28, 28, 0.06);
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
	height: 100%;
}

.elementor .np-benefit-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 40px rgba(28, 28, 28, 0.1);
	border-color: rgba(212, 168, 83, 0.35);
}

.elementor .np-benefit-card > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 1rem !important;
	padding: clamp(1.35rem, 3vw, 1.75rem) !important;
	height: 100%;
}

.np-benefit-card .elementor-widget-icon {
	margin: 0 !important;
	width: auto !important;
}

.np-benefit-card .np-benefit-card__icon .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 12px;
	background: var(--np-green);
	color: var(--np-gold);
	font-size: 1.625rem;
}

.np-benefit-card .np-benefit-card__title .elementor-heading-title {
	margin: 0 !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: 1.0625rem !important;
	font-weight: 700 !important;
	color: var(--np-green) !important;
	line-height: 1.3 !important;
}

.np-benefit-card .np-benefit-card__text {
	width: 100% !important;
}

.np-benefit-card .np-benefit-card__text p {
	margin: 0 !important;
	font-size: 0.9375rem !important;
	line-height: 1.6 !important;
	color: rgba(28, 28, 28, 0.78) !important;
}

@media (max-width: 1024px) {
	.elementor .np-benefits-grid > .e-con-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.elementor .np-benefits {
		padding-top: 3.5rem !important;
		padding-bottom: 3.5rem !important;
	}

	.elementor .np-benefits-grid > .e-con-inner {
		grid-template-columns: 1fr;
		max-width: 24rem;
		margin-left: auto !important;
		margin-right: auto !important;
	}
}

/* ==========================================================================
   Homepage — FAQ accordion
   ========================================================================== */

.elementor .np-faq {
	background-color: var(--np-white) !important;
	width: 100% !important;
	max-width: 100% !important;
}

.elementor .np-faq > .e-con-inner {
	width: 100% !important;
	max-width: var(--np-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	display: flex !important;
	flex-direction: column !important;
	gap: clamp(2rem, 4vw, 2.75rem) !important;
}

.elementor .np-faq-head > .e-con-inner {
	align-items: center !important;
	text-align: center !important;
	padding: 0 !important;
}

.np-faq-head .elementor-widget-heading:first-child .elementor-heading-title {
	margin: 0 auto !important;
}

.np-faq-head .elementor-widget-heading:nth-child(2) .elementor-heading-title {
	font-family: Fraunces, serif !important;
	font-size: clamp(1.75rem, 4vw, 2.5rem) !important;
	font-weight: 600 !important;
	color: var(--np-text) !important;
	margin: 0 auto !important;
}

/* NP FAQ Accordion — custom Elementor widget (reusable on any page) */
.elementor-widget-np_faq_accordion,
.np-faq-accordion-widget {
	width: 100% !important;
	max-width: 48rem;
	margin-left: auto !important;
	margin-right: auto !important;
}

.np-faq-accordion {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	width: 100%;
}

.np-faq-accordion__item {
	background: var(--np-beige);
	border-radius: 12px;
	border: 1px solid rgba(59, 82, 73, 0.08);
	overflow: visible;
	transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.np-faq-accordion__item:hover {
	background: #fff;
	border-color: rgba(212, 168, 83, 0.35);
	box-shadow: 0 4px 16px rgba(28, 28, 28, 0.05);
}

.np-faq-accordion__item.is-open {
	background: #fff;
	border-color: rgba(212, 168, 83, 0.45);
	box-shadow: 0 8px 24px rgba(28, 28, 28, 0.06);
}

/* Override Hello theme button:hover (#c36) on accordion triggers */
.np-faq-accordion__trigger,
.np-faq-accordion__trigger:hover,
.np-faq-accordion__trigger:focus,
.np-faq-accordion__trigger:focus-visible,
.np-faq-accordion__trigger:active {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.875rem;
	width: 100%;
	padding: 1.125rem 1.25rem;
	margin: 0;
	border: none !important;
	border-radius: 0;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	text-align: left;
	cursor: pointer;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: clamp(0.9375rem, 2vw, 1.0625rem);
	font-weight: 600;
	color: var(--np-green) !important;
	line-height: 1.45;
	white-space: normal !important;
	text-decoration: none !important;
	outline: none;
	-webkit-appearance: none;
	appearance: none;
}

.np-faq-accordion__item:hover:not(.is-open) .np-faq-accordion__trigger {
	color: #2f423c !important;
}

.np-faq-accordion__question {
	flex: 1 1 auto;
	min-width: 0;
	max-width: calc(100% - 2.75rem);
	padding-right: 0.25rem;
	white-space: normal !important;
	overflow-wrap: break-word;
	word-wrap: break-word;
	hyphens: auto;
}

.np-faq-accordion__icon {
	flex: 0 0 1.75rem;
	width: 1.75rem;
	height: 1.75rem;
	margin-top: 0.125rem;
	border-radius: 50%;
	background: var(--np-green);
	position: relative;
	transition: background 0.2s ease, box-shadow 0.2s ease;
}

.np-faq-accordion__icon::before,
.np-faq-accordion__icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background: var(--np-white);
	border-radius: 1px;
	transform: translate(-50%, -50%);
}

.np-faq-accordion__icon::before {
	width: 12px;
	height: 2px;
}

.np-faq-accordion__icon::after {
	width: 2px;
	height: 12px;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.np-faq-accordion__item:hover:not(.is-open) .np-faq-accordion__icon {
	background: var(--np-gold);
	box-shadow: 0 2px 8px rgba(212, 168, 83, 0.4);
}

.np-faq-accordion__item:hover:not(.is-open) .np-faq-accordion__icon::before,
.np-faq-accordion__item:hover:not(.is-open) .np-faq-accordion__icon::after {
	background: var(--np-text);
}

.np-faq-accordion__item.is-open .np-faq-accordion__icon {
	background: var(--np-gold);
}

.np-faq-accordion__item.is-open .np-faq-accordion__icon::after {
	opacity: 0;
	transform: translate(-50%, -50%) scale(0);
}

.np-faq-accordion__panel[hidden] {
	display: none;
}

.np-faq-accordion__content {
	padding: 0 1.25rem 1.125rem;
}

.np-faq-accordion__content p {
	margin: 0 0 0.75rem;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: rgba(28, 28, 28, 0.82);
}

.np-faq-accordion__content p:last-child {
	margin-bottom: 0;
}

@media (max-width: 640px) {
	.elementor .np-faq {
		padding-top: 3.5rem !important;
		padding-bottom: 3.5rem !important;
	}

	.np-faq-accordion__trigger {
		padding: 1rem 1rem;
		gap: 0.75rem;
	}

	.np-faq-accordion__question {
		max-width: calc(100% - 2.5rem);
		font-size: 0.9375rem;
		line-height: 1.5;
	}

	.np-faq-accordion__icon {
		flex: 0 0 1.625rem;
		width: 1.625rem;
		height: 1.625rem;
		margin-top: 0.1rem;
	}
}

/* ==========================================================================
   Homepage — final CTA
   ========================================================================== */

.elementor .np-final-cta {
	background-color: var(--np-green) !important;
	width: 100% !important;
	max-width: 100% !important;
	position: relative;
	overflow: hidden;
}

.elementor .np-final-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(
		ellipse 80% 120% at 50% 100%,
		rgba(212, 168, 83, 0.12) 0%,
		transparent 65%
	);
	pointer-events: none;
}

.elementor .np-final-cta > .e-con-inner {
	width: 100% !important;
	max-width: var(--np-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	position: relative;
	z-index: 1;
}

.elementor .np-final-cta-inner > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	text-align: center !important;
	gap: clamp(1rem, 2.5vw, 1.5rem) !important;
	padding: 0 !important;
	max-width: 40rem;
	margin-left: auto !important;
	margin-right: auto !important;
}

.np-final-cta-inner .elementor-widget-heading .elementor-heading-title {
	font-family: Fraunces, serif !important;
	font-size: clamp(1.75rem, 4.5vw, 2.5rem) !important;
	font-weight: 600 !important;
	color: var(--np-beige) !important;
	line-height: 1.2 !important;
	margin: 0 !important;
}

.np-final-cta-lead,
.np-final-cta-inner .elementor-widget-text-editor p {
	margin: 0 !important;
	font-size: clamp(0.9375rem, 2vw, 1.0625rem) !important;
	line-height: 1.6 !important;
	color: rgba(249, 247, 244, 0.88) !important;
}

.elementor .np-final-cta-actions > .e-con-inner {
	display: flex !important;
	justify-content: center !important;
	padding: 0 !important;
	margin-top: 0.25rem;
}

.np-final-cta-actions .elementor-widget-button {
	margin: 0 !important;
}

.np-final-cta-actions .elementor-button {
	background-color: var(--np-gold) !important;
	color: var(--np-text) !important;
	border: none !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-weight: 600 !important;
	font-size: 0.9375rem !important;
	padding: 1rem 2rem !important;
	border-radius: 6px !important;
	transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.np-final-cta-actions .elementor-button:hover,
.np-final-cta-actions .elementor-button:focus {
	background-color: #e8bc6a !important;
	color: var(--np-text) !important;
	transform: translateY(-1px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

@media (max-width: 640px) {
	.elementor .np-final-cta {
		padding-top: 3.5rem !important;
		padding-bottom: 3.5rem !important;
	}

	.np-final-cta-actions .elementor-button-link.elementor-button {
		display: flex !important;
		width: 100% !important;
		justify-content: center;
	}
}

/* ==========================================================================
   Footer — responsive grid, brand column, legal bar
   ========================================================================== */

.np-site-footer,
.np-footer {
	background-color: var(--np-green) !important;
	color: var(--np-beige);
	position: relative;
}

.np-site-footer::before {
	content: "";
	display: block;
	height: 3px;
	background: linear-gradient(90deg, var(--np-gold) 0%, rgba(212, 168, 83, 0.25) 55%, transparent 100%);
}

.np-site-footer a {
	color: var(--np-beige);
	text-decoration: none;
	transition: color 0.2s ease;
}

.np-site-footer a:hover,
.np-site-footer a:focus-visible {
	color: var(--np-gold);
}

/* Outer shell — 15px sides, balanced vertical rhythm */
.elementor .np-site-footer.e-con,
.elementor .np-footer.e-con {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

.elementor .np-site-footer.e-con > .e-con-inner,
.elementor .np-footer.e-con > .e-con-inner {
	width: 100% !important;
	max-width: var(--np-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	display: flex !important;
	flex-direction: column !important;
	gap: clamp(28px, 4vw, 40px) !important;
}

/* Main columns — CSS grid (overrides Elementor % widths) */
.elementor .np-footer-main > .e-con-inner {
	display: grid !important;
	grid-template-columns: minmax(0, 1.35fr) repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(28px, 4vw, 48px) !important;
	align-items: start !important;
	width: 100% !important;
}

.elementor .np-footer-main > .e-con-inner > .e-con {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	flex: none !important;
}

.elementor .np-footer-brand > .e-con-inner,
.elementor .np-footer-col > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	gap: 14px !important;
	padding: 0 !important;
	width: 100% !important;
}

/* Brand logo + tagline */
.np-footer-logo.np-logo-link {
	flex-wrap: wrap;
	margin-bottom: 0;
}

.np-footer-brand .np-logo-np {
	font-size: clamp(1.5rem, 3vw, 1.85rem);
}

.np-footer-brand .np-logo-name {
	font-size: clamp(0.6rem, 1.5vw, 0.75rem);
}

.np-footer-tagline,
.np-footer-brand .elementor-widget-text-editor p {
	margin: 0 !important;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: rgba(249, 247, 244, 0.88);
	max-width: 22rem;
}

/* Column headings */
.np-footer-col .elementor-heading-title {
	margin: 0 !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	color: var(--np-gold) !important;
}

/* Link lists */
.np-footer-links,
.np-footer-legal {
	list-style: none;
	margin: 0;
	padding: 0;
}

.np-footer-links {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}

.np-footer-links a {
	display: inline-block;
	font-size: 0.9375rem;
	font-weight: 500;
	color: rgba(249, 247, 244, 0.92) !important;
	line-height: 1.4;
}

.np-footer-links a:hover,
.np-footer-links a:focus-visible {
	color: var(--np-gold) !important;
	transform: translateX(3px);
}

.np-footer-meta {
	font-size: 0.9375rem;
	font-weight: 500;
	color: rgba(249, 247, 244, 0.75);
	line-height: 1.4;
}

.np-site-footer .elementor-widget-text-editor p:has(.np-footer-links),
.np-site-footer .elementor-widget-text-editor p:has(.np-footer-legal) {
	margin: 0 !important;
}

/* Bottom bar — copyright + legal */
.elementor .np-footer-bottom > .e-con-inner {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	justify-content: space-between !important;
	align-items: center !important;
	gap: 1rem 1.5rem !important;
	width: 100% !important;
	padding-top: clamp(1.25rem, 3vw, 1.75rem) !important;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.np-footer-bottom .hfe-copyright-wrapper,
.np-footer-bottom .elementor-widget-copyright {
	font-size: 0.8125rem !important;
	line-height: 1.5 !important;
	color: rgba(249, 247, 244, 0.72) !important;
	margin: 0 !important;
}

.np-footer-legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.5rem 1.25rem;
}

.np-footer-legal a {
	font-size: 0.8125rem;
	font-weight: 500;
	color: rgba(249, 247, 244, 0.8) !important;
}

.np-footer-legal a:hover {
	color: var(--np-gold) !important;
}

/* Tablet: 2 columns, brand full width */
@media (max-width: 1024px) {
	.elementor .np-footer-main > .e-con-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: clamp(24px, 4vw, 36px) !important;
	}

	.elementor .np-footer-brand {
		grid-column: 1 / -1 !important;
	}

	.np-footer-tagline,
	.np-footer-brand .elementor-widget-text-editor p {
		max-width: 36rem;
	}

	.np-footer-legal {
		justify-content: center;
	}
}

/* Mobile: single column stack */
@media (max-width: 640px) {
	.elementor .np-site-footer.e-con,
	.elementor .np-footer.e-con {
		padding-top: 40px !important;
		padding-bottom: 20px !important;
		padding-left: 0px !important;
		padding-right: 0px !important;
	}

	.elementor .np-footer-main > .e-con-inner {
		grid-template-columns: 1fr !important;
		gap: 1.75rem !important;
	}

	.elementor .np-footer-bottom > .e-con-inner {
		flex-direction: column !important;
		align-items: center !important;
		text-align: center !important;
		gap: 1rem !important;
	}

	.np-footer-bottom .elementor-widget-copyright,
	.np-footer-bottom .elementor-widget-text-editor {
		width: 100% !important;
		text-align: center !important;
	}

	.np-footer-legal {
		justify-content: center;
	}

	.np-footer-brand .np-logo-link {
		justify-content: flex-start;
	}
}

/* Small phones — logo stacks cleanly */
@media (max-width: 380px) {
	.np-footer-brand .np-logo-name {
		display: none;
	}
}

/* Elementor buttons — gold CTA fallback */
.elementor-button.elementor-size-sm,
.elementor-button {
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.elementor-button:hover {
	opacity: 0.92;
}

/* ==========================================================================
   Tablet & mobile navigation (breakpoint 1024px — matches UAE "Tablet")
   ========================================================================== */

/* Hamburger / close — always white on dark header */
.np-site-header .hfe-nav-menu__toggle,
.np-site-header .hfe-nav-menu-icon,
.np-site-header .hfe-nav-menu-icon i,
.np-site-header .hfe-nav-menu-icon svg,
.np-site-header .hfe-nav-menu-icon path,
.np-site-header .hfe-nav-menu-icon .e-font-icon-svg,
.np-site-header .hfe-nav-menu-icon .elementor-icon {
	color: var(--np-white) !important;
	fill: var(--np-white) !important;
	stroke: var(--np-white) !important;
}

.np-site-header .hfe-nav-menu-icon {
	background: transparent !important;
	border: none !important;
	padding: 0.35em !important;
}

.np-site-header .hfe-nav-menu__toggle:hover .hfe-nav-menu-icon,
.np-site-header .hfe-nav-menu__toggle:focus .hfe-nav-menu-icon,
.np-site-header .hfe-nav-menu__toggle:hover .hfe-nav-menu-icon svg,
.np-site-header .hfe-nav-menu__toggle:focus .hfe-nav-menu-icon svg {
	color: var(--np-gold) !important;
	fill: var(--np-gold) !important;
}

/* Overlay — BELOW menu panel (no backdrop-filter = no blur on menu text) */
.np-menu-overlay {
	position: fixed;
	inset: 0;
	z-index: 100040;
	background: rgba(0, 0, 0, 0.55);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.35s ease, visibility 0.35s ease;
	pointer-events: none;
}

/* Custom mobile drawer (see np-mobile-menu.js) — above overlay */
.np-mobile-drawer {
	position: fixed;
	inset: 0;
	z-index: 100050;
	background: #3b5249;
	color: #fff;
	display: flex;
	flex-direction: column;
	transform: translateX(-100%);
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
	visibility: hidden;
	pointer-events: none;
	-webkit-font-smoothing: antialiased;
}

.np-mobile-drawer.is-open {
	transform: translateX(0);
	visibility: visible;
	pointer-events: auto;
}

.np-mobile-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 18px 15px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	flex-shrink: 0;
}

.np-mobile-drawer__brand {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	line-height: 1.2;
}

.np-mobile-drawer__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 6px;
	background: rgba(0, 0, 0, 0.25);
	color: #fff;
	cursor: pointer;
	flex-shrink: 0;
}

.np-mobile-drawer__close svg {
	display: block;
	width: 22px;
	height: 22px;
}

.np-mobile-drawer__close:hover {
	background: rgba(0, 0, 0, 0.4);
	color: #d4a853;
}

.np-mobile-drawer__nav {
	flex: 1;
	overflow-y: auto;
	padding: 8px 15px 24px;
	-webkit-overflow-scrolling: touch;
}

.np-mobile-drawer__list {
	display: flex;
	flex-direction: column;
	list-style: none;
	margin: 0;
	padding: 0;
	min-height: calc(100dvh - 88px);
}

.np-mobile-drawer__list > li {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.np-mobile-drawer__list > li:last-child {
	border-bottom: none;
}

.np-mobile-drawer__list > li > a {
	display: block;
	padding: 1rem 0;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 1.35;
	color: #fff !important;
	text-decoration: none;
	background: transparent !important;
}

.np-mobile-drawer__list > li > a:hover,
.np-mobile-drawer__list > li.current-menu-item > a,
.np-mobile-drawer__list > li.current_page_item > a,
.np-mobile-drawer__list > li.current-menu-ancestor > a {
	color: #d4a853 !important;
}

.np-mobile-drawer__list > li.np-menu-cta {
	margin-top: auto;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	border-bottom: none;
}

.np-mobile-drawer__list > li.np-menu-cta > a,
.np-mobile-drawer__list a.np-drawer-cta {
	display: flex !important;
	align-items: center;
	justify-content: center;
	padding: 14px 16px !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	color: #1c1c1c !important;
	background: #d4a853 !important;
	border-radius: 6px;
	text-align: center;
}

.np-mobile-drawer__list > li.np-menu-cta > a:hover {
	background: #e0b85e !important;
	color: #1c1c1c !important;
}

.np-menu-overlay.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

@keyframes np-menu-slide-in-left {
	from {
		transform: translate3d(-100%, 0, 0);
	}
	to {
		transform: translate3d(0, 0, 0);
	}
}

/* Desktop only: header CTA button + hide in-menu CTA link */
@media (min-width: 1025px) {
	.np-site-header .menu-item.np-menu-cta {
		display: none !important;
	}

	.np-site-header .hfe-nav-menu__toggle {
		display: none !important;
	}
}

/* Site-wide 15px left/right on tablet & mobile (page content) */
@media (max-width: 1024px) {
	body:not(.elementor-editor-active) .elementor .e-con > .e-con-inner,
	body:not(.elementor-editor-active) #content .e-con > .e-con-inner,
	body:not(.elementor-editor-active) .elementor-location-single .e-con > .e-con-inner {
		--padding-left: 0px !important;
		--padding-right: 0px !important;
		padding-left: 0px !important;
		padding-right: 0px !important;
		box-sizing: border-box;
	}
}

@media (max-width: 1024px) {
	/* Full-width header bar, compact height, 15px side padding */
	#masthead.site-header,
	header#masthead {
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.elementor .np-site-header.e-con,
	.elementor .np-site-header.e-con-boxed,
	.elementor .np-header-bar.e-con,
	header#masthead .np-site-header,
	header#masthead .elementor-element.np-site-header.e-con {
		--padding-left: 15px !important;
		--padding-right: 15px !important;
		--padding-top: 12px !important;
		--padding-bottom: 12px !important;
		--e-con-padding-left: 15px !important;
		--e-con-padding-right: 15px !important;
		--e-con-padding-top: 12px !important;
		--e-con-padding-bottom: 12px !important;
		padding: 12px 15px !important;
		width: 100% !important;
		max-width: 100% !important;
		min-height: 0 !important;
		margin: 0 !important;
		box-sizing: border-box !important;
	}

	.np-site-header .np-header-logo.e-con,
	.np-site-header .np-header-nav-group.e-con,
	.np-site-header .elementor-widget,
	.np-site-header .elementor-widget-container {
		padding: 0 !important;
		margin: 0 !important;
		min-height: 0 !important;
	}

	.np-header-bar > .e-con-inner,
	.np-site-header.e-con > .e-con-inner {
		padding: 0 !important;
		margin: 0 !important;
		max-width: 100% !important;
		width: 100% !important;
		min-height: 0 !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		gap: 12px !important;
	}

	/* Logo — compact on mobile */
	.np-header-logo {
		flex: 1 1 auto !important;
		min-width: 0 !important;
		overflow: hidden !important;
	}

	.np-logo-link {
		max-width: 100%;
	}

	.np-logo-np {
		font-size: 1.35rem !important;
	}

	.np-logo-name {
		font-size: 0.625rem !important;
		letter-spacing: 0.1em !important;
	}

	.np-header-nav-group {
		flex: 0 0 auto !important;
		margin-left: 0 !important;
	}

	.np-header-nav-group > .e-con-inner {
		gap: 0 !important;
		padding: 0 !important;
		justify-content: flex-end !important;
		align-items: center !important;
	}

	.np-header-nav-group .np-header-cta-desktop,
	.np-header-nav-group .elementor-widget-button {
		display: none !important;
	}

	.np-header-nav-group .elementor-widget-navigation-menu {
		flex: 0 0 auto !important;
		width: auto !important;
		margin: 0 !important;
	}

	.np-site-header .hfe-nav-menu__toggle + .hfe-nav-menu__layout-horizontal {
		display: none !important;
	}

	/* Menu button — gold CTA style (high contrast on dark header) */
	.np-site-header .hfe-nav-menu__toggle,
	.np-site-header .hfe-layout-horizontal .hfe-nav-menu__toggle {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 48px !important;
		height: 48px !important;
		min-width: 48px !important;
		min-height: 48px !important;
		margin: 0 !important;
		padding: 0 !important;
		position: relative !important;
		z-index: 100060 !important;
		background: var(--np-gold) !important;
		border: 2px solid var(--np-gold) !important;
		border-radius: 10px !important;
		box-shadow: 0 2px 14px rgba(212, 168, 83, 0.5) !important;
		cursor: pointer !important;
		flex-shrink: 0 !important;
		transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease !important;
	}

	.np-site-header .hfe-nav-menu__toggle:hover,
	.np-site-header .hfe-nav-menu__toggle:focus,
	.np-site-header .hfe-nav-menu__toggle:focus-visible {
		background: #e8bc6a !important;
		border-color: #e8bc6a !important;
		box-shadow: 0 4px 18px rgba(212, 168, 83, 0.65) !important;
		transform: scale(1.04) !important;
		outline: none !important;
	}

	.np-site-header .hfe-nav-menu__toggle .hfe-nav-menu-icon {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 26px !important;
		height: 26px !important;
		padding: 0 !important;
		margin: 0 !important;
		line-height: 1 !important;
		background: transparent !important;
		border: none !important;
	}

	.np-site-header .hfe-nav-menu__toggle .hfe-nav-menu-icon i,
	.np-site-header .hfe-nav-menu__toggle .hfe-nav-menu-icon .fa,
	.np-site-header .hfe-nav-menu__toggle .hfe-nav-menu-icon .fas {
		font-size: 26px !important;
		color: var(--np-text) !important;
	}

	.np-site-header .hfe-nav-menu__toggle .hfe-nav-menu-icon,
	.np-site-header .hfe-nav-menu__toggle .hfe-nav-menu-icon svg,
	.np-site-header .hfe-nav-menu__toggle .hfe-nav-menu-icon path {
		
		width: 26px !important;
		height: 26px !important;
	}


	/* Open state — white button, gold ring, dark close icon */
	body.np-mobile-menu-open .np-site-header .hfe-nav-menu__toggle {
		background: var(--np-white) !important;
		border-color: var(--np-gold) !important;
		box-shadow: 0 2px 14px rgba(0, 0, 0, 0.2) !important;
		transform: none !important;
	}
}

/* Very small phones — shorter logo line */
@media (max-width: 380px) {
	.np-logo-name {
		display: none;
	}

	.np-logo-np {
		font-size: 1.5rem !important;
	}
}

/* ==========================================================================
   Blog archive (title strip, breadcrumb, 9-card grid, pagination)
   ========================================================================== */

body.blog .site-main,
body.archive .site-main,
body.category .site-main,
body.tag .site-main,
body.blog .page-content,
body.archive .page-content,
body.category .page-content {
	padding: 0 !important;
	margin: 0 !important;
	max-width: none !important;
}

body.blog main#content,
body.archive main#content,
body.category main#content,
body.tag main#content {
	padding: 0 !important;
	margin: 0 !important;
	width: 100% !important;
	max-width: none !important;
}

.np-blog-archive {
	--np-blog-gutter: clamp(var(--np-gutter), 4vw, var(--np-gutter-lg));
	--np-blog-grid-mt: clamp(2.5rem, 5vw, 4rem);
	--np-blog-pagination-mt: clamp(3rem, 6vw, 4.5rem);
	--np-blog-pagination-mb: clamp(4rem, 8vw, 6.5rem);
	background: var(--np-beige);
	width: 100%;
	max-width: 100%;
	overflow-x: clip;
}

/* Shared horizontal alignment — 15px from screen edge on mobile; centered 1200px on desktop */
.np-blog-archive__title-inner,
.np-blog-archive__toolbar-inner,
.np-blog-archive__main-inner {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--np-container);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--np-blog-gutter);
	padding-right: var(--np-blog-gutter);
}

@media (min-width: 1230px) {
	.np-blog-archive__title-inner,
	.np-blog-archive__toolbar-inner,
	.np-blog-archive__main-inner {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Title strip */
.np-blog-archive__title-strip {
	background: var(--np-green);
	width: 100%;
	padding-top: clamp(2.75rem, 6vw, 4.5rem);
	padding-bottom: clamp(2.75rem, 6vw, 4.5rem);
	padding-left: 0;
	padding-right: 0;
}

.np-blog-archive__title-inner {
	text-align: left;
}

.np-blog-archive__eyebrow {
	margin: 0 0 0.5rem;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--np-gold);
}

.np-blog-archive__title {
	margin: 0;
	font-family: Fraunces, serif;
	font-size: clamp(2rem, 5vw, 2.75rem);
	font-weight: 600;
	line-height: 1.12;
	color: var(--np-white);
	letter-spacing: -0.02em;
	max-width: 20ch;
}

.np-blog-archive__subtitle {
	margin: 0.75rem 0 0;
	max-width: 40rem;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: clamp(0.9375rem, 1.8vw, 1.0625rem);
	line-height: 1.6;
	color: rgba(249, 247, 244, 0.82);
}

/* Breadcrumb bar */
.np-blog-archive__toolbar {
	width: 100%;
	padding: 1.125rem 0;
	border-bottom: 1px solid rgba(59, 82, 73, 0.1);
	background: var(--np-beige);
}

.np-blog-breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.np-blog-breadcrumb__item {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1.4;
}

.np-blog-breadcrumb__link {
	color: var(--np-green);
	text-decoration: none;
	transition: color 0.2s ease;
}

.np-blog-breadcrumb__link:hover {
	color: var(--np-gold);
}

.np-blog-breadcrumb__current {
	color: rgba(28, 28, 28, 0.55);
}

.np-blog-breadcrumb__sep {
	color: rgba(28, 28, 28, 0.35);
	user-select: none;
}

/* Grid */
.np-blog-archive__main {
	padding: 0;
}

.np-blog-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.25rem, 2.5vw, 1.75rem);
	margin-top: var(--np-blog-grid-mt);
	margin-bottom: 0;
}

/* Card */
.np-blog-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-width: 0;
	background: var(--np-white);
	border-radius: 14px;
	overflow: hidden;
	border: 1px solid rgba(59, 82, 73, 0.08);
	box-shadow: 0 8px 28px rgba(28, 28, 28, 0.05);
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}

@media (hover: hover) and (pointer: fine) {
	.np-blog-card:hover {
		box-shadow: 0 16px 40px rgba(28, 28, 28, 0.1);
		transform: translateY(-3px);
	}

	.np-blog-card:hover .np-blog-card__img {
		transform: scale(1.04);
	}
}

.np-blog-card__media {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: linear-gradient(145deg, rgba(59, 82, 73, 0.12), rgba(212, 168, 83, 0.15));
}

.np-blog-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.np-blog-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #e8e4de 0%, #d4cfc6 45%, rgba(59, 82, 73, 0.2) 100%);
}

.np-blog-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 1.125rem 1.125rem 1.25rem;
	gap: 0.5rem;
}

.np-blog-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	font-size: 0.75rem;
	line-height: 1.3;
}

.np-blog-card__cat {
	font-family: "Plus Jakarta Sans", sans-serif;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--np-gold);
}

.np-blog-card__date {
	font-family: "Plus Jakarta Sans", sans-serif;
	font-weight: 500;
	color: rgba(28, 28, 28, 0.5);
}

.np-blog-card__title {
	margin: 0;
	font-family: Fraunces, serif;
	font-size: clamp(1.0625rem, 2vw, 1.25rem);
	font-weight: 600;
	line-height: 1.3;
	overflow-wrap: break-word;
	word-wrap: break-word;
}

.np-blog-card__title a {
	color: var(--np-text);
	text-decoration: none;
	transition: color 0.2s ease;
}

.np-blog-card__title a:hover {
	color: var(--np-green);
}

.np-blog-card__excerpt {
	margin: 0;
	flex: 1 1 auto;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.875rem;
	line-height: 1.6;
	color: rgba(28, 28, 28, 0.72);
}

.np-blog-card__more {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin-top: 0.35rem;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--np-green);
	text-decoration: none;
}

.np-blog-card__more:hover {
	color: var(--np-gold);
}

/* Empty state */
.np-blog-empty {
	margin-top: var(--np-blog-grid-mt);
	margin-bottom: var(--np-blog-pagination-mb);
	padding: 3rem 1.5rem;
	text-align: center;
	background: var(--np-white);
	border-radius: 14px;
	border: 1px dashed rgba(59, 82, 73, 0.2);
}

.np-blog-empty p {
	margin: 0;
	font-size: 1rem;
	color: rgba(28, 28, 28, 0.7);
}

/* Pagination */
.np-blog-pagination {
	margin-top: var(--np-blog-pagination-mt);
	margin-bottom: var(--np-blog-pagination-mb);
	padding-top: 0;
	padding-bottom: 0;
}

.np-blog-pagination__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.np-blog-pagination__item {
	margin: 0;
}

.np-blog-pagination__item .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 0.75rem;
	border-radius: 8px;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--np-green);
	background: var(--np-white);
	border: 1px solid rgba(59, 82, 73, 0.14);
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.np-blog-pagination__item .page-numbers:hover {
	background: var(--np-green);
	color: var(--np-white);
	border-color: var(--np-green);
}

.np-blog-pagination__item.is-current .page-numbers,
.np-blog-pagination__item .page-numbers.current {
	background: var(--np-gold);
	color: var(--np-text);
	border-color: var(--np-gold);
}

.np-blog-pagination__item.is-dots .page-numbers {
	min-width: auto;
	padding: 0 0.25rem;
	background: transparent;
	border: none;
	color: rgba(28, 28, 28, 0.45);
}

/* Blog archive — responsive */
@media (max-width: 1024px) {
	.np-blog-archive {
		--np-blog-grid-mt: clamp(2rem, 4.5vw, 3.25rem);
		--np-blog-pagination-mt: clamp(2.5rem, 5vw, 3.5rem);
		--np-blog-pagination-mb: clamp(3.5rem, 7vw, 5.5rem);
	}

	.np-blog-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.25rem;
	}

	.np-blog-archive__title {
		max-width: none;
	}

	.np-blog-archive__subtitle {
		max-width: 36rem;
	}
}

@media (max-width: 768px) {
	.np-blog-archive__title-strip {
		padding-top: clamp(2rem, 5vw, 2.75rem);
		padding-bottom: clamp(2rem, 5vw, 2.75rem);
	}

	.np-blog-archive__toolbar {
		padding-top: 1rem;
		padding-bottom: 1rem;
	}

	.np-blog-archive__subtitle {
		max-width: none;
		font-size: 0.9375rem;
	}

	.np-blog-card__body {
		padding: 1rem 1rem 1.125rem;
	}

	.np-blog-pagination__item .page-numbers {
		font-size: 0.8125rem;
	}
}

@media (max-width: 640px) {
	.np-blog-archive {
		--np-blog-gutter: var(--np-gutter);
		--np-blog-grid-mt: 1.75rem;
		--np-blog-pagination-mt: 2.25rem;
		--np-blog-pagination-mb: 3rem;
	}

	.np-blog-grid {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.np-blog-archive__title {
		font-size: clamp(1.75rem, 7vw, 2.25rem);
		line-height: 1.15;
	}

	.np-blog-archive__eyebrow {
		font-size: 0.625rem;
		letter-spacing: 0.14em;
	}

	.np-blog-breadcrumb__list {
		gap: 0.25rem 0.4rem;
	}

	.np-blog-breadcrumb__item {
		font-size: 0.75rem;
		max-width: 100%;
	}

	.np-blog-breadcrumb__current {
		overflow-wrap: anywhere;
	}

	.np-blog-card__media {
		aspect-ratio: 16 / 9;
	}

	.np-blog-card__title {
		font-size: 1.125rem;
	}

	.np-blog-card__excerpt {
		font-size: 0.8125rem;
		line-height: 1.55;
	}

	.np-blog-pagination__list {
		gap: 0.4rem;
		justify-content: center;
	}

	.np-blog-pagination__item .page-numbers {
		min-width: 2.35rem;
		height: 2.35rem;
		padding: 0 0.5rem;
		font-size: 0.8125rem;
	}
}

@media (max-width: 480px) {
	.np-blog-archive__title-strip {
		padding-top: 1.75rem;
		padding-bottom: 1.75rem;
	}

	.np-blog-archive {
		--np-blog-grid-mt: 1.5rem;
		--np-blog-pagination-mb: 2.5rem;
	}

	.np-blog-card__meta {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.2rem;
	}

	.np-blog-pagination__list {
		width: 100%;
	}

	.np-blog-pagination__item .page-numbers.prev,
	.np-blog-pagination__item .page-numbers.next {
		flex: 1 1 auto;
		width: 100%;
		min-width: 0;
		max-width: 9.5rem;
		padding: 0 0.5rem;
		font-size: 0.75rem;
		white-space: nowrap;
	}
}

@media (max-width: 380px) {
	.np-blog-archive__title {
		font-size: 1.625rem;
	}

	.np-blog-pagination__item:not(.is-dots) .page-numbers {
		min-width: 2rem;
		height: 2rem;
		padding: 0 0.35rem;
		font-size: 0.75rem;
	}

	.np-blog-pagination__item.is-dots {
		display: none;
	}

	.np-blog-empty {
		padding: 2rem 1rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.np-blog-card,
	.np-blog-card__img {
		transition: none;
	}
}

/* ==========================================================================
   Single blog post
   ========================================================================== */

body.single-post .site-main,
body.single-post .page-content {
	padding: 0 !important;
	margin: 0 !important;
	max-width: none !important;
}

body.single-post main#content {
	padding: 0 !important;
	margin: 0 !important;
	width: 100% !important;
	max-width: none !important;
}

.np-single {
	--np-blog-gutter: clamp(var(--np-gutter), 4vw, var(--np-gutter-lg));
	--np-single-content-mt: clamp(2rem, 4vw, 3rem);
	--np-single-content-mb: clamp(3.5rem, 8vw, 6rem);
	background: var(--np-beige);
	width: 100%;
	overflow-x: clip;
}

.np-single__title-inner,
.np-single__toolbar-inner,
.np-single__article-inner {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--np-container);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--np-blog-gutter);
	padding-right: var(--np-blog-gutter);
}

@media (min-width: 1230px) {
	.np-single__title-inner,
	.np-single__toolbar-inner,
	.np-single__article-inner {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Title strip */
.np-single__title-strip {
	background: var(--np-green);
	width: 100%;
	padding-top: clamp(2.5rem, 6vw, 4rem);
	padding-bottom: clamp(2.25rem, 5vw, 3.5rem);
}

.np-single__eyebrow {
	margin: 0 0 0.625rem;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.np-single__eyebrow a {
	color: var(--np-gold);
	text-decoration: none;
	transition: color 0.2s ease;
}

.np-single__eyebrow a:hover {
	color: var(--np-white);
}

.np-single__title {
	margin: 0;
	font-family: Fraunces, serif;
	font-size: clamp(1.75rem, 4.5vw, 2.75rem);
	font-weight: 600;
	line-height: 1.12;
	color: var(--np-white);
	letter-spacing: -0.02em;
	max-width: 22ch;
}

.np-single__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.5rem;
	margin-top: 1rem;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.875rem;
	font-weight: 500;
	color: rgba(249, 247, 244, 0.78);
}

.np-single__meta-sep {
	opacity: 0.6;
}

/* Toolbar / breadcrumb */
.np-single__toolbar {
	padding: 1.125rem 0;
	border-bottom: 1px solid rgba(59, 82, 73, 0.1);
	background: var(--np-beige);
}

/* Main article */
.np-single__main {
	padding: 0;
}

.np-single__article {
	margin: 0;
}

.np-single__article-inner {
	padding-top: var(--np-single-content-mt);
	padding-bottom: var(--np-single-content-mb);
}

/* Featured image — below breadcrumb, above article body */
.np-single__featured {
	margin: 0 0 clamp(1.75rem, 4vw, 2.5rem);
	border-radius: 16px;
	overflow: hidden;
	background: linear-gradient(145deg, rgba(59, 82, 73, 0.08), rgba(212, 168, 83, 0.12));
	box-shadow:
		0 20px 48px rgba(28, 28, 28, 0.1),
		0 0 0 1px rgba(59, 82, 73, 0.06);
}

.np-single__featured-img {
	display: block;
	width: 100%;
	height: auto;
	max-height: min(56vh, 520px);
	object-fit: cover;
	object-position: center center;
}

/* Article content — readable measure */
.np-single__content {
	max-width: 42rem;
	margin-left: auto;
	margin-right: auto;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 1.0625rem;
	line-height: 1.75;
	color: rgba(28, 28, 28, 0.9);
}

.np-single__content > *:first-child {
	margin-top: 0;
}

.np-single__content > *:last-child {
	margin-bottom: 0;
}

.np-single__content h2,
.np-single__content h3,
.np-single__content h4 {
	font-family: Fraunces, serif;
	font-weight: 600;
	color: var(--np-text);
	line-height: 1.25;
	margin: 2rem 0 0.75rem;
}

.np-single__content h2 {
	font-size: clamp(1.375rem, 3vw, 1.75rem);
}

.np-single__content h3 {
	font-size: clamp(1.2rem, 2.5vw, 1.375rem);
}

.np-single__content p {
	margin: 0 0 1.25rem;
}

.np-single__content a {
	color: var(--np-green);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.np-single__content a:hover {
	color: var(--np-gold);
}

.np-single__content ul,
.np-single__content ol {
	margin: 0 0 1.25rem;
	padding-left: 1.35rem;
}

.np-single__content li {
	margin-bottom: 0.5rem;
}

.np-single__content blockquote {
	margin: 1.75rem 0;
	padding: 1.25rem 1.5rem;
	border-left: 4px solid var(--np-gold);
	background: var(--np-white);
	border-radius: 0 12px 12px 0;
	font-family: Fraunces, serif;
	font-size: 1.125rem;
	line-height: 1.55;
	color: var(--np-text);
}

.np-single__content img {
	max-width: 100%;
	height: auto;
	border-radius: 12px;
	margin: 1.5rem 0;
}

.np-single__content .wp-block-image {
	margin: 1.75rem 0;
}

/* Footer */
.np-single__footer {
	max-width: 42rem;
	margin: clamp(2.5rem, 5vw, 3.5rem) auto 0;
	padding-top: clamp(1.5rem, 3vw, 2rem);
	border-top: 1px solid rgba(59, 82, 73, 0.12);
}

.np-single__tags-label {
	margin: 0 0 0.5rem;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(28, 28, 28, 0.5);
}

.np-single__cats {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
}

.np-single__cats a {
	display: inline-block;
	padding: 0.35rem 0.75rem;
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--np-green);
	background: rgba(59, 82, 73, 0.08);
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.np-single__cats a:hover {
	background: var(--np-green);
	color: var(--np-white);
}

.np-single__back {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--np-green);
	text-decoration: none;
	transition: color 0.2s ease, gap 0.2s ease;
}

.np-single__back:hover {
	color: var(--np-gold);
	gap: 0.55rem;
}

/* Single — responsive */
@media (max-width: 1024px) {
	.np-single__title {
		max-width: none;
	}
}

@media (max-width: 768px) {
	.np-single__title-strip {
		padding-top: 2rem;
		padding-bottom: 2rem;
	}

	.np-single__featured-img {
		max-height: 380px;
	}

	.np-single__content {
		font-size: 1rem;
	}
}

@media (max-width: 640px) {
	.np-single {
		--np-blog-gutter: var(--np-gutter);
		--np-single-content-mt: 1.75rem;
		--np-single-content-mb: 3rem;
	}

	.np-single__featured {
		border-radius: 12px;
		margin-bottom: 1.5rem;
	}

	.np-single__title {
		font-size: clamp(1.5rem, 6.5vw, 1.875rem);
	}
}

/* ==========================================================================
   Contact page (plan/contact mockup)
   Brand: green #3B5249 · beige #F9F7F4 · gold #D4A853 · text #1C1C1C
   ========================================================================== */

body.np-contact-page {
	background-color: var(--np-beige) !important;
	color: var(--np-text);
}

body.np-contact-page .elementor-widget-text-editor,
body.np-contact-page .elementor-widget-text-editor p {
	color: rgba(59, 82, 73, 0.82);
}

/* Force section backgrounds (overrides Elementor kit / globals) */
body.np-contact-page .np-contact-hero,
body.np-contact-page .np-contact-hero-content,
body.np-contact-page .elementor .np-contact-hero {
	background-color: var(--np-beige) !important;
}

body.np-contact-page .np-contact-main,
body.np-contact-page .np-contact-calendly,
body.np-contact-page .np-contact-faq,
body.np-contact-page .elementor .np-contact-main,
body.np-contact-page .elementor .np-contact-calendly,
body.np-contact-page .elementor .np-contact-faq {
	background-color: var(--np-beige) !important;
}

body.np-contact-page .np-contact-form-card,
body.np-contact-page .elementor .np-contact-form-card {
	background-color: var(--np-white) !important;
}

body.np-contact-page .np-contact-steps-card,
body.np-contact-page .elementor .np-contact-steps-card {
	background-color: var(--np-green) !important;
}

body.np-contact-page .np-contact-cta,
body.np-contact-page .elementor .np-contact-cta {
	background-color: var(--np-green) !important;
}

/* Headings & accents */
body.np-contact-page .np-contact-hero__eyebrow .elementor-heading-title {
	color: var(--np-gold) !important;
}

body.np-contact-page .np-contact-hero-content .elementor-widget-heading:nth-child(2) .elementor-heading-title,
body.np-contact-page .np-contact-calendly .elementor-widget-heading .elementor-heading-title,
body.np-contact-page .np-contact-form-card .elementor-heading-title {
	color: var(--np-green) !important;
}

body.np-contact-page .np-contact-steps-card > .e-con-inner > .elementor-widget-heading .elementor-heading-title {
	color: var(--np-beige) !important;
	font-family: Fraunces, serif !important;
}

body.np-contact-page .np-contact-step__title .elementor-heading-title {
	color: var(--np-beige) !important;
	font-family: Fraunces, serif !important;
	font-weight: 600 !important;
}

body.np-contact-page .np-contact-cta .elementor-heading-title,
body.np-contact-page .np-contact-cta .np-final-cta-lead,
body.np-contact-page .np-contact-cta .elementor-widget-text-editor p {
	color: var(--np-beige) !important;
}

.elementor .np-contact-main,
.elementor .np-contact-calendly,
.elementor .np-contact-faq {
	width: 100% !important;
	max-width: 100% !important;
}

.elementor .np-contact-main > .e-con-inner,
.elementor .np-contact-calendly > .e-con-inner,
.elementor .np-contact-faq > .e-con-inner {
	width: 100% !important;
	max-width: var(--np-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Hero — full-bleed split */
.elementor .np-contact-hero {
	width: 100% !important;
	max-width: 100% !important;
	background-color: var(--np-beige) !important;
	overflow: hidden;
}

.elementor .np-contact-hero > .e-con-inner {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

.elementor .np-contact-hero-grid > .e-con-inner {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
	gap: 0 !important;
	align-items: stretch !important;
	width: 100% !important;
	min-height: clamp(420px, 52vh, 580px);
}

.elementor .np-contact-hero-content {
	background: var(--np-beige);
}

.elementor .np-contact-hero-content > .e-con-inner {
	height: 100%;
	justify-content: center !important;
	padding: clamp(3rem, 6vw, 5.5rem) clamp(1.25rem, 4vw, 4.5rem) clamp(5rem, 8vw, 6.5rem) clamp(1.25rem, 5vw, 5rem) !important;
	max-width: 36rem;
	margin-left: auto !important;
	margin-right: 0 !important;
	gap: clamp(1rem, 2vw, 1.35rem) !important;
}

.np-contact-hero__eyebrow .elementor-heading-title {
	display: inline-flex !important;
	align-items: center;
	gap: 0.75rem;
	margin: 0 !important;
}

.np-contact-hero__eyebrow .elementor-heading-title::before {
	content: "";
	display: inline-block;
	width: 2.5rem;
	height: 2px;
	background: var(--np-gold);
	flex-shrink: 0;
}

.np-contact-hero-content .elementor-widget-heading:nth-child(2) .elementor-heading-title {
	font-family: Fraunces, serif !important;
	font-size: clamp(2.125rem, 4.8vw, 3rem) !important;
	font-weight: 600 !important;
	line-height: 1.1 !important;
	color: var(--np-green) !important;
	letter-spacing: -0.02em;
	max-width: 12ch;
}

.np-contact-hero__lead,
.np-contact-hero-content .elementor-widget-text-editor p {
	margin: 0 !important;
	font-size: clamp(1rem, 1.75vw, 1.125rem) !important;
	line-height: 1.65 !important;
	color: rgba(59, 82, 73, 0.82) !important;
	max-width: 30rem;
}

.elementor .np-contact-hero-media {
	position: relative;
	min-height: inherit;
}

.elementor .np-contact-hero-media > .e-con-inner {
	padding: 0 !important;
	height: 100%;
	min-height: inherit;
}

.np-contact-hero-media .np-contact-hero-image,
.np-contact-hero-media .elementor-widget-image.np-contact-hero-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
}

.np-contact-hero-media .np-contact-hero-image img,
.np-contact-hero-media .elementor-widget-image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 100%;
	object-fit: cover;
	object-position: center 30%;
	border-radius: 0;
	box-shadow: none;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.35) 12%, #000 28%);
	mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.35) 12%, #000 28%);
}

/* Form + steps — overlap hero */
.elementor .np-contact-main {
	background-color: var(--np-beige) !important;
}

.elementor .np-contact-main > .e-con-inner {
	padding-top: 0 !important;
}

.elementor .np-contact-main-grid > .e-con-inner {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	gap: 1.5rem !important;
	width: 100% !important;
	margin-top: clamp(-5rem, -8vw, -3.5rem);
	position: relative;
	z-index: 3;
}

/* .elementor .np-contact-form-card,
.elementor .np-contact-steps-card {
	/* flex: 1 1 0 !important; */
	/* min-width: 0 !important;
	width: auto !important;
	max-width: none !important; */
/* } */

.elementor-17 .elementor-element.elementor-element-875a567 .fluentform-widget-wrapper .ff-el-group .ff-btn-submit {
	background-color: var(--np-green) !important;
}

.elementor .np-contact-form-card > .e-con-inner,
.elementor .np-contact-steps-card > .e-con-inner {
	height: 100%;
}

/* .elementor .np-contact-form-card {
	box-shadow: 0 20px 56px rgba(28, 28, 28, 0.1);
} */

.elementor .np-contact-steps-card .elementor-widget-heading:first-child .elementor-heading-title {
	margin: 0 0 1.5rem !important;
	font-family: Fraunces, serif !important;
	font-size: clamp(1.375rem, 2.5vw, 1.625rem) !important;
	font-weight: 600 !important;
	color: var(--np-beige) !important;
}

.elementor .np-contact-form-card .elementor-widget-heading .elementor-heading-title {
	/* margin: 0 0 1.5rem !important; */
	font-family: Fraunces, serif !important;
	font-size: clamp(1.5rem, 2.5vw, 1.75rem) !important;
	font-weight: 600 !important;
	color: var(--np-green) !important;
}

/* Fluent Forms */
.np-contact-form-card .fluentform-widget-wrapper,
.np-contact-form-card .fluentform {
	margin: 0;
}

.np-contact-form-card .ff-t-container,
.np-contact-form-card .ff-el-group {
	margin-bottom: 1rem !important;
}

.np-contact-form-card .ff-el-form-control,
.np-contact-form-card .ff-el-form-control:focus {
	border-radius: 6px !important;
	border: 1px solid rgba(59, 82, 73, 0.18) !important;
	background: var(--np-white) !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: 0.9375rem !important;
	padding: 0.75rem 1rem !important;
	min-height: 2.75rem;
	box-shadow: none !important;
}

.np-contact-form-card textarea.ff-el-form-control {
	min-height: 7rem;
	resize: vertical;
}

.np-contact-form-card .ff-el-form-control:focus {
	border-color: var(--np-gold) !important;
	outline: none !important;
}

.np-contact-form-card .ff-btn-submit,
.np-contact-form-card button[type="submit"] {
	width: 100% !important;
	margin-top: 0.25rem !important;
	background: var(--np-green) !important;
	color: var(--np-white) !important;
	border: none !important;
	border-radius: 6px !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-weight: 600 !important;
	font-size: 1rem !important;
	padding: 0.9375rem 1.5rem !important;
	transition: background 0.2s ease, transform 0.15s ease !important;
}

.np-contact-form-card .ff-btn-submit:hover,
.np-contact-form-card button[type="submit"]:hover {
	background: #2f423c !important;
	transform: translateY(-1px);
}

.np-contact-form-card .ff-el-input--label label {
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-weight: 600 !important;
	font-size: 0.8125rem !important;
	color: var(--np-green) !important;
	margin-bottom: 0.4rem !important;
}

/* Process steps — vertical timeline */
.elementor .np-contact-steps {
	--np-step-marker-size: 2.5rem;
	--np-step-gap: 1.75rem;
	--np-step-line-color: rgba(249, 247, 244, 0.32);
}

.elementor .np-contact-steps > .e-con-inner {
	position: relative;
	padding: 0.125rem 0 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	gap: var(--np-step-gap) !important;
}

/* Single container line removed — segments run center-to-center per step (see below) */
.elementor .np-contact-steps > .e-con-inner::before {
	display: none !important;
}

.elementor .np-contact-step {
	position: relative;
}

/* Vertical line: center of icon → center of next icon (works with tall copy) */
.elementor .np-contact-step:not(:last-child)::after {
	content: "";
	position: absolute;
	left: 28px;
	top: calc(0.125rem + (var(--np-step-marker-size) / 2));
	width: 1px;
	height: calc(
		100% - 0.125rem - (var(--np-step-marker-size) / 2) + var(--np-step-gap) + (var(--np-step-marker-size) / 2)
	);
	transform: translateX(-50%);
	background: var(--np-step-line-color);
	z-index: 0;
	pointer-events: none;
}

.elementor .np-contact-step > .e-con-inner {
	position: relative;
	z-index: 1;
	padding: 0 !important;
	padding-left: 0 !important;
	display: grid !important;
	grid-template-columns: var(--np-step-marker-size) minmax(0, 1fr) !important;
	column-gap: 1rem !important;
	align-items: start !important;
}

.np-contact-step__marker-wrap.elementor-widget-html {
	position: relative;
	z-index: 1;
	flex: 0 0 var(--np-step-marker-size) !important;
	width: var(--np-step-marker-size) !important;
	min-width: var(--np-step-marker-size) !important;
	max-width: var(--np-step-marker-size) !important;
	margin: 0 !important;
	padding: 0 !important;
	align-self: flex-start;
}

.np-contact-step__marker-wrap .elementor-widget-container {
	width: var(--np-step-marker-size) !important;
	max-width: var(--np-step-marker-size) !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.np-contact-step__marker {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--np-step-marker-size);
	height: var(--np-step-marker-size);
	border-radius: 50%;
	border: 2px solid var(--np-gold);
	background: #3b5249;
	box-sizing: border-box;
	margin: 0.125rem 0 0;
	position: relative;
	z-index: 2;
}

.np-contact-step__icon-img {
	display: block;
	width: 1.375rem;
	height: 1.375rem;
	object-fit: contain;
	object-position: center center;
	flex-shrink: 0;
}

.elementor .np-contact-step__body > .e-con-inner {
	padding: 0 !important;
	gap: 0.35rem !important;
}

.np-contact-step__title .elementor-heading-title {
	margin: 0 !important;
	font-family: Fraunces, serif !important;
	font-size: 1.125rem !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	color: var(--np-beige) !important;
}

.np-contact-step__desc,
.np-contact-step__desc .elementor-widget-container {
	margin: 0 !important;
}

.np-contact-step__desc p {
	margin: 0 !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: 0.875rem !important;
	font-weight: 400 !important;
	line-height: 1.55 !important;
	color: rgba(249, 247, 244, 0.72) !important;
}

@media (max-width: 1024px) {
	.elementor .np-contact-steps {
		--np-step-marker-size: 2.375rem;
	}
}

@media (max-width: 640px) {
	.elementor .np-contact-steps {
		--np-step-marker-size: 2.25rem;
		--np-step-gap: 1.5rem;
	}

	.elementor .np-contact-step:not(:last-child)::after {
		height: calc(
			100% - 0.125rem - (var(--np-step-marker-size) / 2) + var(--np-step-gap) + (var(--np-step-marker-size) / 2)
		);
	}

	.elementor .np-contact-step > .e-con-inner {
		gap: 0.875rem !important;
	}

	.np-contact-step__icon-img {
		width: 1.125rem;
		height: 1.125rem;
	}
}

/* Calendly section */
.elementor .np-contact-calendly-inner > .e-con-inner {
	align-items: center !important;
	text-align: center;
	padding: 0 !important;
	gap: 1rem !important;
}

.np-contact-calendly .elementor-widget-heading .elementor-heading-title {
	font-family: Fraunces, serif !important;
	font-size: clamp(1.75rem, 3.5vw, 2rem) !important;
	font-weight: 600 !important;
	color: var(--np-green) !important;
	margin: 0 !important;
}

.np-contact-calendly__lead {
	margin: 0 !important;
	font-size: 1rem !important;
	color: rgba(59, 82, 73, 0.78) !important;
}

.np-calendly-placeholder {
	width: 100%;
	max-width: 52rem;
	margin: 1.5rem auto 0;
}

.np-calendly-placeholder__hint {
	margin: 0 0 0.75rem;
	font-size: 0.75rem;
	color: rgba(28, 28, 28, 0.5);
	text-align: center;
}

.np-calendly-mock {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: 0;
	background: var(--np-white);
	border-radius: 12px;
	border: 1px solid rgba(59, 82, 73, 0.08);
	box-shadow: 0 16px 48px rgba(28, 28, 28, 0.08);
	overflow: hidden;
	text-align: left;
}

.np-calendly-mock__cal {
	padding: 1.25rem 1.5rem;
	background: var(--np-beige);
	border-right: 1px solid rgba(59, 82, 73, 0.08);
}

.np-calendly-mock__month {
	margin: 0 0 1rem;
	font-family: Fraunces, serif;
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--np-green);
	text-align: center;
}

.np-calendly-mock__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 0.35rem;
}

.np-calendly-mock__grid span {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--np-green);
	border-radius: 50%;
}

.np-calendly-mock__grid span.is-muted {
	color: rgba(28, 28, 28, 0.28);
	font-weight: 500;
}

.np-calendly-mock__grid span.is-active {
	background: var(--np-green);
	color: var(--np-beige);
}

.np-calendly-mock__slots {
	padding: 1.25rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.np-calendly-mock__slots-title {
	margin: 0 0 0.5rem;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--np-green);
}

.np-calendly-mock__slots button {
	display: block;
	width: 100%;
	padding: 0.6875rem 1rem;
	border-radius: 6px;
	border: 1px solid rgba(59, 82, 73, 0.28);
	background: var(--np-white);
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--np-green);
	cursor: default;
	text-align: center;
}

.np-calendly-mock__slots button.is-selected {
	background: var(--np-green);
	border-color: var(--np-green);
	color: var(--np-beige);
}

.np-calendly-mock__tz {
	margin: 0.75rem 0 0;
	font-size: 0.75rem;
	color: rgba(59, 82, 73, 0.62);
}

/* ==========================================================================
   Contact page — FAQ block only (homepage card style, contact beige section)
   ========================================================================== */

.elementor .np-contact-faq-inner > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	text-align: center !important;
	gap: clamp(2rem, 4vw, 2.75rem) !important;
	padding: 0 !important;
	width: 100% !important;
}

.np-contact-faq__eyebrow .elementor-heading-title {
	margin: 0 auto !important;
}

/* Head block if Elementor still has .np-faq-head from a prior build */
.elementor .np-contact-faq .np-faq-head > .e-con-inner {
	align-items: center !important;
	text-align: center !important;
	padding: 0 !important;
}

.elementor .np-contact-faq .np-faq-head .elementor-widget-heading:first-child .elementor-heading-title {
	margin: 0 auto !important;
}

.elementor .np-contact-faq .np-faq-head .elementor-widget-heading:nth-child(2) .elementor-heading-title {
	font-family: Fraunces, serif !important;
	font-size: clamp(1.75rem, 4vw, 2.5rem) !important;
	font-weight: 600 !important;
	color: var(--np-text) !important;
	margin: 0 auto !important;
}

body.np-contact-page .np-contact-faq .np-faq-accordion-widget,
body.np-contact-page .np-contact-faq .np-contact-faq-accordion.elementor-widget-np_faq_accordion {
	width: 100% !important;
	max-width: 48rem !important;
	margin-left: auto !important;
	margin-right: auto !important;
	min-width: 0;
}

body.np-contact-page .np-contact-faq .np-faq-accordion {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	width: 100%;
}

body.np-contact-page .np-contact-faq .np-faq-accordion__item {
	background: var(--np-beige);
	border-radius: 12px;
	border: 1px solid rgba(59, 82, 73, 0.08);
	overflow: visible;
	transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

body.np-contact-page .np-contact-faq .np-faq-accordion__item:hover {
	background: #fff;
	border-color: rgba(212, 168, 83, 0.35);
	box-shadow: 0 4px 16px rgba(28, 28, 28, 0.05);
}

body.np-contact-page .np-contact-faq .np-faq-accordion__item.is-open {
	background: #fff;
	border-color: rgba(212, 168, 83, 0.45);
	box-shadow: 0 8px 24px rgba(28, 28, 28, 0.06);
}

body.np-contact-page .np-contact-faq .np-faq-accordion__trigger,
body.np-contact-page .np-contact-faq .np-faq-accordion__trigger:hover,
body.np-contact-page .np-contact-faq .np-faq-accordion__trigger:focus,
body.np-contact-page .np-contact-faq .np-faq-accordion__trigger:active {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.875rem;
	width: 100%;
	padding: 1.125rem 1.25rem;
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: clamp(0.9375rem, 2vw, 1.0625rem);
	font-weight: 600;
	color: var(--np-green) !important;
	line-height: 1.45;
	white-space: normal !important;
}

body.np-contact-page .np-contact-faq .np-faq-accordion__question {
	flex: 1 1 auto;
	min-width: 0;
	max-width: calc(100% - 2.75rem);
	white-space: normal !important;
	overflow-wrap: break-word;
}

body.np-contact-page .np-contact-faq .np-faq-accordion__icon {
	flex: 0 0 1.75rem;
	width: 1.75rem;
	height: 1.75rem;
	margin-top: 0.125rem;
	border-radius: 50%;
	background: var(--np-green);
	position: relative;
}

body.np-contact-page .np-contact-faq .np-faq-accordion__icon::before,
body.np-contact-page .np-contact-faq .np-faq-accordion__icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background: var(--np-white);
	border-radius: 1px;
	transform: translate(-50%, -50%);
}

body.np-contact-page .np-contact-faq .np-faq-accordion__icon::before {
	width: 12px;
	height: 2px;
}

body.np-contact-page .np-contact-faq .np-faq-accordion__icon::after {
	width: 2px;
	height: 12px;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

body.np-contact-page .np-contact-faq .np-faq-accordion__item:hover:not(.is-open) .np-faq-accordion__icon {
	background: var(--np-gold);
	box-shadow: 0 2px 8px rgba(212, 168, 83, 0.4);
}

body.np-contact-page .np-contact-faq .np-faq-accordion__item.is-open .np-faq-accordion__icon {
	background: var(--np-gold);
}

body.np-contact-page .np-contact-faq .np-faq-accordion__item.is-open .np-faq-accordion__icon::after {
	opacity: 0;
	transform: translate(-50%, -50%) scale(0);
}

body.np-contact-page .np-contact-faq .np-faq-accordion__content {
	padding: 0 1.25rem 1.125rem;
}

body.np-contact-page .np-contact-faq .np-faq-accordion__content p {
	margin: 0 0 0.75rem;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: rgba(28, 28, 28, 0.82);
}

@media (max-width: 640px) {
	body.np-contact-page .np-contact-faq .np-faq-accordion__trigger {
		padding: 1rem 1rem;
		gap: 0.75rem;
	}

	body.np-contact-page .np-contact-faq .np-faq-accordion__question {
		max-width: calc(100% - 2.5rem);
		font-size: 0.9375rem;
		line-height: 1.5;
	}

	body.np-contact-page .np-contact-faq .np-faq-accordion__icon {
		flex: 0 0 1.625rem;
		width: 1.625rem;
		height: 1.625rem;
	}
}

/* Neutralize Elementor kit accent on contact widgets */
body.np-contact-page .elementor-element .elementor-button {
	--e-global-color-accent: var(--np-gold);
}

/* Contact CTA — cyclists bg + centered */
.elementor .np-contact-cta.np-final-cta::before {
	background:
		linear-gradient(180deg, rgba(59, 82, 73, 0.9) 0%, rgba(59, 82, 73, 0.94) 100%),
		url("https://images.unsplash.com/photo-1517649763962-0c62306601b7?w=1600&h=700&fit=crop&q=75") center / cover no-repeat;
	opacity: 1;
}

/* Override homepage final-CTA button rules on contact (gold + outline) */
body.np-contact-page .np-contact-cta-actions.np-final-cta-actions .elementor-widget-button:first-child .elementor-button {
	background-color: var(--np-gold) !important;
	color: var(--np-text) !important;
	border: none !important;
}

body.np-contact-page .np-contact-cta-actions.np-final-cta-actions .elementor-widget-button:first-child .elementor-button:hover {
	background-color: #e8bc6a !important;
	color: var(--np-text) !important;
}

body.np-contact-page .np-contact-cta-actions.np-final-cta-actions .elementor-widget-button:last-child .elementor-button {
	background-color: transparent !important;
	color: var(--np-beige) !important;
	border: 2px solid var(--np-beige) !important;
}

body.np-contact-page .np-contact-cta-actions.np-final-cta-actions .elementor-widget-button:last-child .elementor-button:hover {
	background-color: var(--np-beige) !important;
	color: var(--np-green) !important;
	border-color: var(--np-beige) !important;
}

.elementor .np-contact-cta-inner.np-final-cta-inner > .e-con-inner {
	max-width: 44rem;
}

.elementor .np-contact-cta-actions.np-final-cta-actions > .e-con-inner {
	gap: 0.75rem !important;
}

/* Fluent Forms — strip default blue */
body.np-contact-page .np-contact-form-card .ff-btn-submit,
body.np-contact-page .np-contact-form-card button[type="submit"],
.np-contact-form-card .ff-btn-submit,
.np-contact-form-card button[type="submit"] {
	background-color: var(--np-green) !important;
	background-image: none !important;
	color: var(--np-white) !important;
	border-color: var(--np-green) !important;
}

body.np-contact-page .np-contact-form-card .ff-el-form-control,
.np-contact-form-card .ff-el-form-control {
	color: var(--np-text) !important;
}

body.np-contact-page .np-contact-form-card .ff-el-is-error .ff-el-form-control {
	border-color: #c45c4a !important;
}

body.np-contact-page .np-contact-form-card a {
	color: var(--np-green);
}

@media (max-width: 1024px) {
	.elementor .np-contact-hero-grid > .e-con-inner {
		grid-template-columns: 1fr !important;
		min-height: 0;
	}

	.elementor .np-contact-hero-media {
		order: -1;
		min-height: 280px;
	}

	.elementor .np-contact-hero-content > .e-con-inner {
		padding-top: 2rem !important;
		padding-bottom: 3rem !important;
		margin-left: 0 !important;
		max-width: none;
	}

	.np-contact-hero-media .np-contact-hero-image img,
	.np-contact-hero-media .elementor-widget-image img {
		position: relative;
		min-height: 280px;
		height: 280px;
		-webkit-mask-image: none;
		mask-image: none;
	}

	.np-contact-hero-content .elementor-widget-heading:nth-child(2) .elementor-heading-title {
		max-width: none;
	}

	.elementor .np-contact-main-grid > .e-con-inner {
		flex-wrap: wrap !important;
		margin-top: -2rem;
	}

	.elementor .np-contact-form-card,
	.elementor .np-contact-steps-card {
		flex: 1 1 100% !important;
		width: 100% !important;
	}
}

@media (max-width: 640px) {
	.np-calendly-mock {
		grid-template-columns: 1fr;
	}

	.np-calendly-mock__cal {
		border-right: none;
		border-bottom: 1px solid rgba(59, 82, 73, 0.08);
	}

	.elementor .np-contact-cta-actions .elementor-button {
		width: 100% !important;
		justify-content: center;
	}
}

/* ==========================================================================
   Services & Pricing page (plan/03-services-page.md)
   ========================================================================== */

body.np-services-page {
	background-color: var(--np-beige) !important;
	color: var(--np-text);
}

body.np-services-page .page-content {
	padding-top: 0;
	padding-bottom: 0;
}

/* Hero + breadcrumb — same layout as Contact (bg image, gradient, HFE breadcrumbs) */
body.np-about-page .np-page-hero,
body.np-services-page .np-page-hero,
body.np-contact-page .elementor-element:has(.np-contact-hero-content) {
	width: 100% !important;
	max-width: 100% !important;
	overflow: hidden;
}

body.np-about-page .np-page-hero > .e-con-inner,
body.np-services-page .np-page-hero > .e-con-inner,
body.np-contact-page .elementor-element:has(.np-contact-hero-content) > .e-con-inner {
	width: 100% !important;
	max-width: var(--np-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--np-gutter) !important;
	padding-right: var(--np-gutter) !important;
	min-height: clamp(380px, 50vh, 520px);
	align-items: center !important;
}

body.np-about-page .np-contact-hero-content > .e-con-inner,
body.np-services-page .np-contact-hero-content > .e-con-inner {
	justify-content: center !important;
	padding: clamp(2rem, 5vw, 3rem) clamp(1.25rem, 4vw, 2rem) !important;
	max-width: 36rem;
	margin-right: auto !important;
	margin-left: 0 !important;
	gap: clamp(1rem, 2vw, 1.25rem) !important;
}

body.np-about-page .np-contact-hero-content .elementor-widget-heading:nth-child(2) .elementor-heading-title,
body.np-services-page .np-contact-hero-content .elementor-widget-heading:nth-child(2) .elementor-heading-title {
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: clamp(2rem, 5vw, 3rem) !important;
	font-weight: 600 !important;
	line-height: 1.12 !important;
	color: var(--np-text) !important;
	max-width: 16ch;
}

body.np-about-page .np-contact-hero__lead,
body.np-about-page .np-contact-hero-content .elementor-widget-text-editor p,
body.np-services-page .np-contact-hero__lead,
body.np-services-page .np-contact-hero-content .elementor-widget-text-editor p {
	color: rgba(28, 28, 28, 0.78) !important;
	max-width: 34rem;
}

body.np-about-page .np-page-breadcrumb,
body.np-contact-page .np-page-breadcrumb,
body.np-services-page .np-page-breadcrumb,
body.np-contact-page .elementor-element:has(.elementor-widget-hfe-breadcrumbs-widget) {
	width: 100% !important;
	max-width: 100% !important;
	background-color: #ffffff !important;
}

body.np-about-page .np-page-breadcrumb > .e-con-inner,
body.np-contact-page .np-page-breadcrumb > .e-con-inner,
body.np-services-page .np-page-breadcrumb > .e-con-inner,
body.np-contact-page .elementor-element:has(.elementor-widget-hfe-breadcrumbs-widget) > .e-con-inner {
	box-sizing: border-box;
	width: 100% !important;
	max-width: var(--np-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: 1.125rem var(--np-gutter) !important;
}

@media (min-width: 1230px) {
	body.np-about-page .np-page-breadcrumb > .e-con-inner,
	body.np-contact-page .np-page-breadcrumb > .e-con-inner,
	body.np-services-page .np-page-breadcrumb > .e-con-inner,
	body.np-contact-page .elementor-element:has(.elementor-widget-hfe-breadcrumbs-widget) > .e-con-inner {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

body.np-about-page .elementor-widget-hfe-breadcrumbs-widget a,
body.np-contact-page .elementor-widget-hfe-breadcrumbs-widget a,
body.np-services-page .elementor-widget-hfe-breadcrumbs-widget a {
	color: var(--np-green) !important;
	text-decoration: none !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-weight: 500 !important;
}

body.np-about-page .elementor-widget-hfe-breadcrumbs-widget a:hover,
body.np-contact-page .elementor-widget-hfe-breadcrumbs-widget a:hover,
body.np-services-page .elementor-widget-hfe-breadcrumbs-widget a:hover {
	color: var(--np-gold) !important;
}

/* Section headings */
.elementor .np-services-head > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	text-align: center !important;
	gap: 0.75rem !important;
	max-width: 40rem;
	margin-left: auto !important;
	margin-right: auto !important;
}

.np-services-head__title .elementor-heading-title {
	font-family: Fraunces, serif !important;
	font-size: clamp(1.75rem, 4vw, 2.5rem) !important;
	font-weight: 600 !important;
	color: var(--np-green) !important;
	line-height: 1.2 !important;
	margin: 0 !important;
}

.np-services-head__lead,
.np-services-head__lead-wrap p {
	margin: 0 !important;
	font-size: clamp(0.9375rem, 1.8vw, 1.0625rem) !important;
	line-height: 1.6 !important;
	color: rgba(28, 28, 28, 0.72) !important;
}

/* Philosophy pillars — two columns, icons, full-card hover */
.elementor .np-services-philosophy > .e-con-inner,
.elementor .np-services-pricing > .e-con-inner,
.elementor .np-services-compare-section > .e-con-inner,
.elementor .np-services-faq > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	gap: clamp(2rem, 4vw, 2.5rem) !important;
}

.elementor .np-services-pillars {
	width: 100% !important;
}

.elementor .np-services-pillars > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: clamp(1.25rem, 2.5vw, 1.75rem) !important;
	align-items: stretch !important;
	width: 100% !important;
}

.elementor .np-services-pillar {
	position: relative !important;
	overflow: hidden !important;
	height: 100% !important;
	transition:
		transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1),
		border-color 0.35s ease !important;
	cursor: default;
}

.elementor .np-services-pillar::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--np-gold) 0%, rgba(212, 168, 83, 0.45) 100%);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
	z-index: 2;
	pointer-events: none;
}

.elementor .np-services-pillar::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(
		ellipse 120% 80% at 100% 0%,
		rgba(212, 168, 83, 0.14) 0%,
		transparent 55%
	);
	opacity: 0;
	transition: opacity 0.4s ease;
	pointer-events: none;
}

.elementor .np-services-pillar:hover {
	transform: translateY(-8px);
	box-shadow:
		0 28px 56px rgba(28, 28, 28, 0.12),
		0 0 0 1px rgba(59, 82, 73, 0.06);
}

.elementor .np-services-pillar--perform:hover {
	box-shadow:
		0 32px 64px rgba(28, 28, 28, 0.22),
		0 0 0 1px rgba(212, 168, 83, 0.35);
	border-color: rgba(212, 168, 83, 0.4) !important;
}

.elementor .np-services-pillar:hover::before {
	transform: scaleX(1);
}

.elementor .np-services-pillar:hover::after {
	opacity: 1;
}

.elementor .np-services-pillar > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	gap: 1rem !important;
	height: 100% !important;
	position: relative;
	z-index: 1;
}

.np-services-pillar__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 12px;
	background: rgba(212, 168, 83, 0.18);
	transition:
		transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
		background-color 0.35s ease,
		box-shadow 0.35s ease;
}

.np-services-pillar--perform .np-services-pillar__icon {
	background: rgba(212, 168, 83, 0.22);
}

.elementor .np-services-pillar:hover .np-services-pillar__icon {
	transform: scale(1.08) translateY(-2px);
	background: rgba(212, 168, 83, 0.32);
	box-shadow: 0 8px 20px rgba(212, 168, 83, 0.25);
}

.np-services-pillar__icon-img {
	display: block;
	width: 40px;
	height: 40px;
}

.np-services-pillar__title .elementor-heading-title {
	margin: 0 !important;
	font-family: Fraunces, serif !important;
	font-size: clamp(1.5rem, 3vw, 1.75rem) !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
}

.np-services-pillar--nourish .np-services-pillar__title .elementor-heading-title {
	color: var(--np-green) !important;
}

.np-services-pillar--perform .np-services-pillar__title .elementor-heading-title {
	color: var(--np-beige) !important;
}

.np-services-pillar__subtitle .elementor-heading-title {
	margin: 0 !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
}

.np-services-pillar--nourish .np-services-pillar__subtitle .elementor-heading-title {
	color: rgba(59, 82, 73, 0.65) !important;
}

.np-services-pillar--perform .np-services-pillar__subtitle .elementor-heading-title {
	color: var(--np-gold) !important;
}

.np-services-pillar__desc,
.np-services-pillar__desc-wrap p {
	margin: 0 !important;
	font-size: clamp(0.9375rem, 1.6vw, 1rem) !important;
	line-height: 1.65 !important;
	flex: 1;
}

.np-services-pillar--nourish .np-services-pillar__desc {
	color: rgba(28, 28, 28, 0.78) !important;
}

.np-services-pillar--perform .np-services-pillar__desc {
	color: rgba(249, 247, 244, 0.88) !important;
}

.np-services-pillar__highlights {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0.25rem 0 0;
	padding: 0;
	list-style: none;
}

.np-services-pillar__highlights li {
	margin: 0;
	padding: 0.4rem 0.75rem;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.3;
	border-radius: 100px;
	transition:
		background-color 0.3s ease,
		color 0.3s ease,
		transform 0.3s ease;
}

.np-services-pillar--nourish .np-services-pillar__highlights li {
	color: var(--np-green);
	background: rgba(59, 82, 73, 0.08);
	border: 1px solid rgba(59, 82, 73, 0.1);
}

.np-services-pillar--perform .np-services-pillar__highlights li {
	color: var(--np-beige);
	background: rgba(249, 247, 244, 0.1);
	border: 1px solid rgba(249, 247, 244, 0.14);
}

.elementor .np-services-pillar:hover .np-services-pillar__highlights li {
	transform: translateY(-1px);
}

.np-services-pillar--nourish:hover .np-services-pillar__highlights li {
	background: rgba(212, 168, 83, 0.2);
	border-color: rgba(212, 168, 83, 0.35);
}

.np-services-pillar--perform:hover .np-services-pillar__highlights li {
	background: rgba(212, 168, 83, 0.22);
	border-color: rgba(212, 168, 83, 0.45);
	color: var(--np-beige);
}

@media (max-width: 900px) {
	.elementor .np-services-pillars > .e-con-inner {
		grid-template-columns: 1fr !important;
	}

	.elementor .np-services-pillar:hover {
		transform: translateY(-4px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.elementor .np-services-pillar,
	.elementor .np-services-pillar::before,
	.elementor .np-services-pillar::after,
	.np-services-pillar__icon,
	.np-services-pillar__highlights li,
	.elementor .np-services-tier,
	.elementor .np-services-tier::before,
	.elementor .np-services-tier::after,
	.np-services-tier__features li,
	.np-services-tier__features li::before,
	.np-services-tier__amount,
	.np-services-tier__badge,
	.np-services-tier .elementor-button {
		transition: none !important;
	}

	.elementor .np-services-pillar:hover,
	.elementor .np-services-tier:hover,
	.elementor .np-services-tier--featured:hover {
		transform: none;
	}

	.elementor .np-services-tier:hover .np-services-tier__amount {
		transform: none;
	}
}

/* Pricing tiers — three-column cards with full-card hover */
.elementor .np-services-tiers > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(1.25rem, 2.5vw, 1.75rem) !important;
	align-items: stretch !important;
}

.elementor .np-services-tier {
	position: relative !important;
	overflow: hidden !important;
	height: 100% !important;
	transition:
		transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1),
		border-color 0.35s ease !important;
}

.elementor .np-services-tier:not(.np-services-tier--featured) {
	box-shadow:
		0 12px 32px rgba(28, 28, 28, 0.07),
		0 0 0 1px rgba(59, 82, 73, 0.06) !important;
}

.elementor .np-services-tier::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--np-gold) 0%, rgba(212, 168, 83, 0.4) 100%);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
	z-index: 2;
	pointer-events: none;
}

.elementor .np-services-tier::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(
		ellipse 100% 70% at 50% 0%,
		rgba(212, 168, 83, 0.12) 0%,
		transparent 58%
	);
	opacity: 0;
	transition: opacity 0.4s ease;
	pointer-events: none;
}

.elementor .np-services-tier:hover {
	transform: translateY(-10px);
	box-shadow:
		0 32px 64px rgba(28, 28, 28, 0.14),
		0 0 0 1px rgba(212, 168, 83, 0.2) !important;
}

.elementor .np-services-tier:hover::before {
	transform: scaleX(1);
}

.elementor .np-services-tier:hover::after {
	opacity: 1;
}

.elementor .np-services-tier > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	gap: 0.75rem !important;
	height: 100% !important;
	position: relative;
	z-index: 1;
}

.np-services-tier__badge {
	margin: 0 0 0.25rem;
	display: inline-block;
	padding: 0.35rem 0.65rem;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--np-text);
	background: var(--np-gold);
	border-radius: 4px;
}

.np-services-tier__price {
	margin: 0;
	font-family: Fraunces, serif;
	line-height: 1.1;
}

.np-services-tier__amount {
	display: block;
	font-size: clamp(2rem, 4vw, 2.5rem);
	font-weight: 600;
	color: inherit;
}

.np-services-tier__period {
	display: block;
	margin-top: 0.25rem;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.875rem;
	font-weight: 500;
	opacity: 0.75;
}

.np-services-tier--featured .np-services-tier__amount,
.np-services-tier--featured .np-services-tier__period {
	color: var(--np-beige);
}

.np-services-tier__tagline {
	margin: 0 !important;
	font-size: 0.9375rem !important;
	line-height: 1.5 !important;
}

.np-services-tier__features {
	margin: 0.5rem 0 0;
	padding: 0;
	list-style: none;
	flex: 1;
}

.np-services-tier__features li {
	position: relative;
	padding: 0.5rem 0 0.5rem 1.35rem;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.875rem;
	line-height: 1.45;
	border-bottom: 1px solid rgba(59, 82, 73, 0.08);
	transition:
		padding-left 0.35s ease,
		color 0.35s ease,
		border-color 0.35s ease;
}

.np-services-tier__features li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.85rem;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--np-gold);
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.elementor .np-services-tier:hover .np-services-tier__features li {
	padding-left: 1.5rem;
}

.elementor .np-services-tier:hover .np-services-tier__features li::before {
	transform: scale(1.35);
	box-shadow: 0 0 0 3px rgba(212, 168, 83, 0.25);
}

.np-services-tier--featured .np-services-tier__features li {
	border-bottom-color: rgba(249, 247, 244, 0.12);
	color: rgba(249, 247, 244, 0.9);
}

.np-services-tier--featured {
	box-shadow:
		0 20px 48px rgba(28, 28, 28, 0.18),
		0 0 0 2px var(--np-gold);
	transform: translateY(-6px);
}

.elementor .np-services-tier--featured:hover {
	transform: translateY(-12px);
	box-shadow:
		0 40px 72px rgba(28, 28, 28, 0.28),
		0 0 0 2px var(--np-gold) !important;
	border-color: rgba(212, 168, 83, 0.5) !important;
}

.elementor .np-services-tier--featured:hover::after {
	background: radial-gradient(
		ellipse 100% 80% at 50% 0%,
		rgba(212, 168, 83, 0.22) 0%,
		transparent 60%
	);
}

.np-services-tier__badge {
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.elementor .np-services-tier--featured:hover .np-services-tier__badge {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(212, 168, 83, 0.45);
}

.np-services-tier__amount {
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.elementor .np-services-tier:hover .np-services-tier__amount {
	transform: scale(1.02);
	transform-origin: left center;
}

.np-services-tier .elementor-widget-button {
	margin-top: auto !important;
}

.np-services-tier .elementor-button {
	width: 100%;
	justify-content: center;
	transition:
		background-color 0.35s ease,
		color 0.35s ease,
		border-color 0.35s ease,
		transform 0.35s ease,
		box-shadow 0.35s ease !important;
}

.elementor .np-services-tier:not(.np-services-tier--featured):hover .elementor-button {
	background-color: var(--np-green) !important;
	color: var(--np-beige) !important;
	border-color: var(--np-green) !important;
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(59, 82, 73, 0.22);
}

.elementor .np-services-tier--featured:hover .elementor-button {
	background-color: #e8bc6a !important;
	color: var(--np-text) !important;
	transform: translateY(-2px);
	box-shadow: 0 10px 28px rgba(212, 168, 83, 0.45);
}

.np-services-tier--featured .np-services-tier__name .elementor-heading-title {
	color: var(--np-beige) !important;
}

/* Comparison table — single outer border, clean grid, aligned last row */
body.np-services-page .np-services-compare-section .elementor-widget-html .elementor-widget-container {
	width: 100% !important;
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
	overflow: visible !important;
}

.np-services-compare-wrap {
	width: 100%;
	margin: 0;
	overflow: hidden;
	border-radius: 12px;
	border: 1px solid rgba(59, 82, 73, 0.12);
	background: var(--np-white);
	box-sizing: border-box;
	-webkit-overflow-scrolling: touch;
}

@media (max-width: 767px) {
	.np-services-compare-wrap {
		overflow-x: auto;
	}
}

.np-services-compare {
	width: 100%;
	min-width: 560px;
	margin: 0;
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	table-layout: fixed;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.875rem;
	line-height: 1.45;
	background: var(--np-white);
}

.np-services-compare th,
.np-services-compare td {
	box-sizing: border-box;
	margin: 0;
	padding: 0.9375rem 1.125rem;
	vertical-align: middle;
	text-align: left;
	border: 0;
	border-right: 1px solid rgba(59, 82, 73, 0.1);
	border-bottom: 1px solid rgba(59, 82, 73, 0.1);
	background: var(--np-beige);
}

.np-services-compare th:last-child,
.np-services-compare td:last-child {
	border-right: 0;
}

.np-services-compare thead th {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--np-green);
	background: rgba(59, 82, 73, 0.06);
}

.np-services-compare thead th:first-child {
	width: 34%;
	text-align: left;
}

.np-services-compare thead th:not(:first-child) {
	width: 22%;
	text-align: center;
}

.np-services-compare tbody th {
	font-weight: 600;
	color: var(--np-green);
	width: 34%;
	text-align: left;
}

.np-services-compare tbody td {
	text-align: center;
	color: rgba(28, 28, 28, 0.82);
}

.np-services-compare tbody tr:nth-child(even) th,
.np-services-compare tbody tr:nth-child(even) td {
	background: rgba(249, 247, 244, 0.65);
}

.np-services-compare tbody tr:last-child th,
.np-services-compare tbody tr:last-child td {
	border-bottom: 0;
	padding-top: 1rem;
	padding-bottom: 1rem;
}

.np-services-compare tbody tr:last-child th {
	font-weight: 700;
}

/* Services FAQ — reuse homepage accordion; max width */
body.np-services-page .np-services-faq .np-faq-accordion-widget {
	width: 100%;
	max-width: 48rem;
	margin-left: auto;
	margin-right: auto;
}

/* Services CTA — cyclists bg like contact */
body.np-services-page .np-services-cta.np-final-cta::before {
	background:
		linear-gradient(180deg, rgba(59, 82, 73, 0.92) 0%, rgba(59, 82, 73, 0.88) 100%),
		url("https://images.unsplash.com/photo-1517649763962-0c62306601b7?w=1600&h=700&fit=crop&q=75") center / cover no-repeat;
}

body.np-services-page .np-services-cta-actions .elementor-widget-button:last-child .elementor-button {
	background: transparent !important;
	color: var(--np-beige) !important;
	border: 2px solid var(--np-beige) !important;
}

body.np-services-page .np-services-cta-actions .elementor-widget-button:last-child .elementor-button:hover {
	background: var(--np-beige) !important;
	color: var(--np-green) !important;
}

@media (max-width: 1024px) {
	.elementor .np-services-tiers > .e-con-inner {
		grid-template-columns: 1fr !important;
		max-width: 28rem;
		margin-left: auto;
		margin-right: auto;
	}

	.np-services-tier--featured {
		transform: translateY(-4px);
		order: -1;
	}

	.elementor .np-services-tier:hover,
	.elementor .np-services-tier--featured:hover {
		transform: translateY(-6px);
	}
}

@media (max-width: 767px) {
	body.np-services-page .np-page-hero > .e-con-inner,
	body.np-contact-page .elementor-element:has(.np-contact-hero-content) > .e-con-inner {
		min-height: 0;
		padding-left: var(--np-gutter) !important;
		padding-right: var(--np-gutter) !important;
	}

	body.np-services-page .np-contact-hero-content .elementor-widget-heading:nth-child(2) .elementor-heading-title {
		max-width: none;
	}

	.elementor .np-services-tier .elementor-button,
	.elementor .np-services-cta-actions .elementor-button {
		width: 100% !important;
		justify-content: center;
	}
}

/* ==========================================================================
   About page (Final Blueprint — About Page)
   ========================================================================== */

body.np-about-page {
	background-color: var(--np-beige) !important;
	color: var(--np-text);
}

body.np-about-page .page-content {
	padding-top: 0;
	padding-bottom: 0;
}

/* Section headings */
.elementor .np-about-head > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	text-align: center !important;
	gap: 0.75rem !important;
	max-width: 40rem;
	margin-left: auto !important;
	margin-right: auto !important;
}

.np-about-head__title .elementor-heading-title {
	font-family: Fraunces, serif !important;
	font-size: clamp(1.75rem, 4vw, 2.5rem) !important;
	font-weight: 600 !important;
	color: var(--np-green) !important;
	line-height: 1.2 !important;
	margin: 0 !important;
}

.np-about-head__lead,
.np-about-head__lead-wrap p {
	margin: 0 !important;
	font-size: clamp(0.9375rem, 1.8vw, 1.0625rem) !important;
	line-height: 1.6 !important;
	color: rgba(28, 28, 28, 0.72) !important;
}

/* Founder story */
.elementor .np-about-founder > .e-con-inner,
.elementor .np-about-values > .e-con-inner,
.elementor .np-about-philosophy > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	gap: clamp(2rem, 4vw, 2.5rem) !important;
}

.elementor .np-about-founder-grid > .e-con-inner {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: clamp(2rem, 4vw, 3rem) !important;
}

.np-about-founder-image img,
.np-about-founder-media .elementor-widget-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 16px;
	object-fit: cover;
	object-position: center center;
	box-shadow:
		0 24px 48px rgba(28, 28, 28, 0.12),
		0 0 0 1px rgba(59, 82, 73, 0.08);
}

.elementor .np-about-founder-content > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	gap: 1rem !important;
}

.elementor .np-about-founder-content .elementor-widget-heading:first-child .elementor-heading-title {
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: var(--np-gold) !important;
}

.elementor .np-about-founder-content .elementor-widget-heading:nth-child(2) .elementor-heading-title {
	font-family: Fraunces, serif !important;
	font-size: clamp(1.75rem, 3.5vw, 2.25rem) !important;
	font-weight: 600 !important;
	color: var(--np-green) !important;
	line-height: 1.2 !important;
}

.elementor .np-about-founder-content .elementor-widget-text-editor p {
	margin: 0 0 1rem !important;
	font-size: 1rem !important;
	line-height: 1.65 !important;
	color: rgba(28, 28, 28, 0.82) !important;
}

.elementor .np-about-founder-content .elementor-widget-text-editor p:last-child {
	margin-bottom: 0 !important;
}

/* Core values — 4-column grid with card hover */
.elementor .np-about-values-grid > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 1.25rem !important;
	align-items: stretch !important;
}

.elementor .np-about-value-card {
	position: relative !important;
	overflow: hidden !important;
	height: 100% !important;
	transition:
		transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1),
		border-color 0.35s ease !important;
}

.elementor .np-about-value-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: var(--np-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
	pointer-events: none;
}

.elementor .np-about-value-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 40px rgba(28, 28, 28, 0.1);
	border-color: rgba(212, 168, 83, 0.35) !important;
}

.elementor .np-about-value-card:hover::before {
	transform: scaleX(1);
}

.elementor .np-about-value-card > .e-con-inner {
	height: 100% !important;
}

.np-about-value-card__title .elementor-heading-title {
	color: var(--np-green) !important;
}

.np-about-value-card__text p {
	margin: 0 !important;
	font-size: 0.875rem !important;
	line-height: 1.55 !important;
	color: rgba(28, 28, 28, 0.78) !important;
}

/* Coaching philosophy steps */
.elementor .np-about-steps > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 1.25rem !important;
	align-items: stretch !important;
}

.elementor .np-about-step-card {
	position: relative !important;
	overflow: hidden !important;
	height: 100% !important;
	transition:
		transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.elementor .np-about-step-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 16px 36px rgba(28, 28, 28, 0.1);
}

.elementor .np-about-step-card > .e-con-inner {
	height: 100% !important;
}

.elementor .np-about-step-card .elementor-widget-text-editor p {
	margin: 0 !important;
	font-size: 0.9375rem !important;
	line-height: 1.6 !important;
	color: rgba(28, 28, 28, 0.78) !important;
}

/* About results bar — uses homepage .np-social-proof / .np-proof-grid styles (no overrides) */
body.np-about-page .np-about-results.np-social-proof {
	width: 100% !important;
	max-width: 100% !important;
}

/* About CTA */
body.np-about-page .np-about-cta.np-final-cta::before {
	background:
		linear-gradient(180deg, rgba(59, 82, 73, 0.92) 0%, rgba(59, 82, 73, 0.88) 100%),
		url("https://images.unsplash.com/photo-1571019614242-c5c5dee9f50e?w=1600&h=700&fit=crop&q=80") center / cover no-repeat;
}

body.np-about-page .np-about-cta-actions .elementor-widget-button:last-child .elementor-button {
	background: transparent !important;
	color: var(--np-beige) !important;
	border: 2px solid var(--np-beige) !important;
}

body.np-about-page .np-about-cta-actions .elementor-widget-button:last-child .elementor-button:hover {
	background: var(--np-beige) !important;
	color: var(--np-green) !important;
}

@media (max-width: 1024px) {
	.elementor .np-about-values-grid > .e-con-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.elementor .np-about-steps > .e-con-inner {
		grid-template-columns: 1fr !important;
	}
}

@media (max-width: 767px) {
	.elementor .np-about-founder-grid > .e-con-inner {
		flex-direction: column !important;
	}

	.elementor .np-about-founder-media {
		order: -1;
	}

	.elementor .np-about-values-grid > .e-con-inner {
		grid-template-columns: 1fr !important;
	}

	.elementor .np-about-cta-actions .elementor-button {
		width: 100% !important;
		justify-content: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.elementor .np-about-value-card,
	.elementor .np-about-step-card {
		transition: none !important;
	}

	.elementor .np-about-value-card:hover,
	.elementor .np-about-step-card:hover {
		transform: none;
	}
}

/* ==========================================================================
   Legal pages — Privacy Policy & Terms of Service
   ========================================================================== */

body.np-legal-page {
	background-color: var(--np-beige) !important;
	color: var(--np-text);
}

body.np-legal-page .page-content {
	padding-top: 0;
	padding-bottom: 0;
}

body.np-legal-page .np-page-hero {
	width: 100% !important;
	max-width: 100% !important;
	overflow: hidden;
}

body.np-legal-page .np-page-hero > .e-con-inner {
	width: 100% !important;
	max-width: var(--np-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--np-gutter) !important;
	padding-right: var(--np-gutter) !important;
	min-height: clamp(320px, 42vh, 480px);
	align-items: center !important;
}

body.np-legal-page .np-contact-hero-content > .e-con-inner {
	justify-content: center !important;
	padding: clamp(2rem, 5vw, 3rem) clamp(1.25rem, 4vw, 2rem) !important;
	max-width: 40rem;
	margin-right: auto !important;
	margin-left: 0 !important;
	gap: clamp(1rem, 2vw, 1.25rem) !important;
}

body.np-legal-page .np-contact-hero-content .elementor-widget-heading:nth-child(2) .elementor-heading-title {
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-size: clamp(1.75rem, 4.5vw, 2.75rem) !important;
	font-weight: 600 !important;
	line-height: 1.12 !important;
	color: var(--np-text) !important;
	max-width: 20ch;
}

body.np-legal-page .np-contact-hero__lead,
body.np-legal-page .np-contact-hero-content .elementor-widget-text-editor p {
	color: rgba(28, 28, 28, 0.78) !important;
	max-width: 36rem;
}

body.np-legal-page .np-page-breadcrumb {
	width: 100% !important;
	max-width: 100% !important;
	background-color: #ffffff !important;
}

body.np-legal-page .np-page-breadcrumb > .e-con-inner {
	box-sizing: border-box;
	width: 100% !important;
	max-width: var(--np-container) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: 1.125rem var(--np-gutter) !important;
}

@media (min-width: 1230px) {
	body.np-legal-page .np-page-breadcrumb > .e-con-inner {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

body.np-legal-page .elementor-widget-hfe-breadcrumbs-widget a {
	color: var(--np-green) !important;
	text-decoration: none !important;
	font-family: "Plus Jakarta Sans", sans-serif !important;
	font-weight: 500 !important;
}

body.np-legal-page .elementor-widget-hfe-breadcrumbs-widget a:hover {
	color: var(--np-gold) !important;
}

/* Prose — all HTML tags inside legal text widget */
.elementor .np-legal-content > .e-con-inner {
	display: flex !important;
	justify-content: center !important;
}

.elementor .np-legal-content-inner {
	width: 100% !important;
	max-width: 46rem !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.np-legal-prose,
.np-legal-text-widget .elementor-widget-container {
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--np-text);
}

.np-legal-prose > *:first-child {
	margin-top: 0;
}

.np-legal-prose > *:last-child {
	margin-bottom: 0;
}

.np-legal-meta {
	font-size: 0.875rem;
	line-height: 1.5;
	color: rgba(28, 28, 28, 0.72);
	margin-bottom: 1.75rem !important;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid rgba(59, 82, 73, 0.12);
}

.np-legal-prose h2,
.np-legal-text-widget h2 {
	font-family: Fraunces, serif;
	font-size: clamp(1.5rem, 3.5vw, 2rem);
	font-weight: 600;
	line-height: 1.25;
	color: var(--np-green);
	margin: 2.25rem 0 0.875rem;
}

.np-legal-prose h3,
.np-legal-text-widget h3 {
	font-family: Fraunces, serif;
	font-size: clamp(1.25rem, 2.8vw, 1.5rem);
	font-weight: 600;
	line-height: 1.3;
	color: var(--np-green);
	margin: 1.75rem 0 0.75rem;
}

.np-legal-prose h4,
.np-legal-text-widget h4 {
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--np-text);
	margin: 1.5rem 0 0.5rem;
}

.np-legal-prose h5,
.np-legal-text-widget h5 {
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 1rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--np-green);
	margin: 1.25rem 0 0.5rem;
}

.np-legal-prose h6,
.np-legal-text-widget h6 {
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.875rem;
	font-weight: 600;
	color: rgba(28, 28, 28, 0.7);
	margin: 1rem 0 0.35rem;
}

.np-legal-prose p,
.np-legal-text-widget p {
	margin: 0 0 1rem;
}

.np-legal-prose a,
.np-legal-text-widget a {
	color: var(--np-green);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.np-legal-prose a:hover,
.np-legal-text-widget a:hover {
	color: var(--np-gold);
}

.np-legal-prose strong,
.np-legal-text-widget strong {
	font-weight: 700;
	color: var(--np-text);
}

.np-legal-prose em,
.np-legal-text-widget em {
	font-style: italic;
}

.np-legal-prose ul,
.np-legal-prose ol,
.np-legal-text-widget ul,
.np-legal-text-widget ol {
	margin: 0 0 1.25rem;
	padding-left: 1.35rem;
}

.np-legal-prose ul ul,
.np-legal-prose ol ol,
.np-legal-text-widget ul ul,
.np-legal-text-widget ol ol {
	margin-top: 0.5rem;
	margin-bottom: 0.5rem;
}

.np-legal-prose li,
.np-legal-text-widget li {
	margin-bottom: 0.4rem;
}

.np-legal-prose blockquote,
.np-legal-text-widget blockquote {
	margin: 1.5rem 0;
	padding: 1rem 1.25rem;
	border-left: 4px solid var(--np-gold);
	background: rgba(59, 82, 73, 0.06);
	border-radius: 0 6px 6px 0;
}

.np-legal-prose blockquote p,
.np-legal-text-widget blockquote p {
	margin: 0;
	font-style: italic;
	color: rgba(28, 28, 28, 0.85);
}

.np-legal-prose hr,
.np-legal-text-widget hr {
	border: none;
	border-top: 1px solid rgba(59, 82, 73, 0.15);
	margin: 2rem 0;
}

.np-legal-prose table,
.np-legal-text-widget table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.25rem 0 1.5rem;
	font-size: 0.9375rem;
}

.np-legal-prose th,
.np-legal-prose td,
.np-legal-text-widget th,
.np-legal-text-widget td {
	border: 1px solid rgba(59, 82, 73, 0.18);
	padding: 0.65rem 0.75rem;
	text-align: left;
	vertical-align: top;
}

.np-legal-prose th,
.np-legal-text-widget th {
	font-weight: 700;
	background: rgba(59, 82, 73, 0.08);
	color: var(--np-green);
}

.np-legal-prose dl,
.np-legal-text-widget dl {
	margin: 0 0 1.25rem;
}

.np-legal-prose dt,
.np-legal-text-widget dt {
	font-weight: 700;
	color: var(--np-green);
	margin-top: 0.75rem;
}

.np-legal-prose dd,
.np-legal-text-widget dd {
	margin: 0.25rem 0 0.75rem 1rem;
	color: rgba(28, 28, 28, 0.88);
}

.np-legal-prose code,
.np-legal-text-widget code {
	font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
	font-size: 0.875em;
	padding: 0.15em 0.4em;
	background: rgba(59, 82, 73, 0.1);
	border-radius: 4px;
}

.np-legal-prose pre,
.np-legal-text-widget pre {
	margin: 1rem 0 1.25rem;
	padding: 1rem 1.125rem;
	background: #1c1c1c;
	color: var(--np-beige);
	border-radius: 6px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.np-legal-prose pre code,
.np-legal-text-widget pre code {
	background: transparent;
	padding: 0;
	color: inherit;
	font-size: 0.8125rem;
	line-height: 1.55;
	white-space: pre-wrap;
	word-break: break-word;
}

/* ==========================================================================
   404 — Page not found
   ========================================================================== */

body.np-404-page {
	background-color: var(--np-beige) !important;
}

body.np-404-page .page-content {
	padding-top: 0;
	padding-bottom: 0;
}

.np-404 {
	width: 100%;
}

.np-404__hero {
	background: var(--np-green);
	padding: clamp(2.75rem, 6vw, 4.5rem) var(--np-gutter);
}

.np-404__hero-inner {
	max-width: var(--np-container);
	margin: 0 auto;
}

.np-404__eyebrow {
	margin: 0 0 0.5rem;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--np-gold);
}

.np-404__title {
	margin: 0 0 0.75rem;
	font-family: Fraunces, serif;
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 600;
	line-height: 1.15;
	color: var(--np-white);
}

.np-404__lead {
	margin: 0;
	max-width: 36rem;
	font-size: clamp(1rem, 2vw, 1.125rem);
	line-height: 1.6;
	color: rgba(249, 247, 244, 0.88);
}

.np-404__body {
	padding: clamp(3rem, 8vw, 5rem) var(--np-gutter) clamp(4rem, 10vw, 6rem);
}

.np-404__body-inner {
	max-width: var(--np-container);
	margin: 0 auto;
	text-align: center;
}

.np-404__code {
	margin: 0 0 1.5rem;
	font-family: Fraunces, serif;
	font-size: clamp(4rem, 18vw, 8rem);
	font-weight: 600;
	line-height: 1;
	color: rgba(59, 82, 73, 0.12);
	user-select: none;
}

.np-404__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem 1rem;
}

.np-404__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 28px;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	border-radius: 6px;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.np-404__btn--gold {
	background: var(--np-gold);
	color: var(--np-text);
	border: 2px solid var(--np-gold);
}

.np-404__btn--gold:hover {
	background: #e0b85e;
	border-color: #e0b85e;
	color: var(--np-text);
}

.np-404__btn--outline {
	background: transparent;
	color: var(--np-green);
	border: 2px solid var(--np-green);
}

.np-404__btn--outline:hover {
	background: var(--np-green);
	color: var(--np-white);
}

@media (max-width: 640px) {
	.np-404__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.np-404__btn {
		width: 100%;
	}
}

@media (max-width: 767px) {
	body.np-legal-page .np-contact-hero-content .elementor-widget-heading:nth-child(2) .elementor-heading-title {
		max-width: none;
	}

	.np-legal-prose table,
	.np-legal-text-widget table {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.np-legal-prose th,
	.np-legal-prose td,
	.np-legal-text-widget th,
	.np-legal-text-widget td {
		min-width: 7rem;
	}
}
