/**
 * File: wp-content/plugins/nadmedia-builder/assets/css/nm-builder-front.css
 *
 * Front-end styles for ordinary pages using NADmedia Builder mode.
 * Loaded only when the viewed page has Builder mode enabled.
 */

.nm-builder-root--page {
	--nm-builder-gap: clamp(1.25rem, 3vw, 2.5rem);
	color: var(--nm-builder-text);
	max-width: 100%;
}

.nm-builder-root--page > * + * {
	margin-top: var(--nm-builder-gap);
}

.nm-builder-section,
.nm-builder-text,
.nm-builder-hero,
.nm-builder-columns,
.nm-builder-buttons,
.nm-builder-image,
.nm-builder-shortcode {
	box-sizing: border-box;
}

.nm-builder-section--content,
.nm-builder-text,
.nm-builder-hero,
.nm-builder-columns,
.nm-builder-buttons {
	max-width: var(--nm-content-max, 1120px);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--nm-gutter, 1.25rem);
	padding-right: var(--nm-gutter, 1.25rem);
}

.nm-builder-section--wide {
	max-width: min(100%, 1280px);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--nm-gutter, 1.25rem);
	padding-right: var(--nm-gutter, 1.25rem);
}

.nm-builder-section--full {
	max-width: none;
	width: 100%;
}

.nm-builder-section--muted {
	background: var(--nm-style-section-background-color, var(--nm-style-section-background, var(--nm-builder-surface)));
	padding-top: var(--nm-style-section-padding-top, var(--nm-builder-gap));
	padding-bottom: var(--nm-style-section-padding-bottom, var(--nm-builder-gap));
}

.nm-builder-section--accent {
	background: var(--nm-style-section-background-color, var(--nm-style-section-background, var(--nm-builder-primary)));
	color: var(--nm-style-section-color, var(--nm-builder-background));
	padding-top: var(--nm-style-section-padding-top, var(--nm-builder-gap));
	padding-bottom: var(--nm-style-section-padding-bottom, var(--nm-builder-gap));
}

.nm-builder-hero {
	padding-top: clamp(2rem, 6vw, 4rem);
	padding-bottom: clamp(2rem, 6vw, 4rem);
}

.nm-builder-hero--centered {
	text-align: center;
}

.nm-builder-hero__eyebrow {
	margin: 0 0 0.5rem;
	color: var(--nm-builder-muted-text);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 0.875rem;
}

.nm-builder-hero__heading {
	margin: 0 0 0.75rem;
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	line-height: 1.15;
}

.nm-builder-hero__text {
	margin: 0 0 1.25rem;
	max-width: 40rem;
	color: var(--nm-builder-muted-text);
}

.nm-builder-hero--centered .nm-builder-hero__text {
	margin-left: auto;
	margin-right: auto;
}

.nm-builder-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: var(--nm-style-primary-button-padding, 0.55rem 1.1rem);
	border-radius: var(--nm-style-primary-button-border-radius, var(--nm-builder-radius));
	border: var(--nm-style-primary-button-border-width, 1px) solid var(--nm-style-primary-button-border-color, var(--nm-builder-primary));
	background: var(--nm-style-primary-button-background, var(--nm-builder-primary));
	color: var(--nm-style-primary-button-color, var(--nm-builder-background));
	text-decoration: none;
	font-weight: var(--nm-style-primary-button-font-weight, 600);
	font-size: var(--nm-style-primary-button-font-size, inherit);
}

.nm-builder-btn--secondary {
	background: var(--nm-style-secondary-button-background, transparent);
	color: var(--nm-style-secondary-button-color, var(--nm-builder-primary));
	border-color: var(--nm-style-secondary-button-border-color, var(--nm-builder-primary));
	border-width: var(--nm-style-secondary-button-border-width, 1px);
	border-radius: var(--nm-style-secondary-button-border-radius, var(--nm-builder-radius));
	padding: var(--nm-style-secondary-button-padding, 0.55rem 1.1rem);
	font-size: var(--nm-style-secondary-button-font-size, inherit);
	font-weight: var(--nm-style-secondary-button-font-weight, 600);
}

.nm-builder-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nm-style-section-gap, 0.75rem);
}

.nm-builder-buttons--center {
	justify-content: center;
}

.nm-builder-buttons--end {
	justify-content: flex-end;
}

.nm-builder-columns {
	display: grid;
	gap: var(--nm-style-section-gap, 1.25rem);
}

.nm-builder-columns--2 {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}

.nm-builder-columns--3 {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}

.nm-builder-image {
	margin: 0;
}

.nm-builder-image img {
	display: block;
	max-width: var(--nm-style-image-max-width, 100%);
	height: auto;
	border-radius: var(--nm-style-image-border-radius, var(--nm-builder-radius));
	object-fit: var(--nm-style-image-object-fit, unset);
	object-position: var(--nm-style-image-object-position, unset);
}

.nm-builder-image--center {
	text-align: center;
}

.nm-builder-image--center img {
	margin-left: auto;
	margin-right: auto;
}

.nm-builder-image--end {
	text-align: right;
}

.nm-builder-image--end img {
	margin-left: auto;
}

.nm-builder-spacer--sm {
	height: 1rem;
}

.nm-builder-spacer--md {
	height: 2rem;
}

.nm-builder-spacer--lg {
	height: 4rem;
}

.nm-builder-cards,
.nm-builder-accordion {
	box-sizing: border-box;
}

.nm-builder-cards__grid {
	display: grid;
	gap: var(--nm-style-grid-gap, 1rem);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}

.nm-builder-accordion__q {
	width: 100%;
	min-height: 44px;
	text-align: left;
	cursor: pointer;
}

.nm-builder-hero--media {
	position: relative;
	overflow: hidden;
}

.nm-builder-hero__sound {
	position: absolute;
	bottom: max(
		env(safe-area-inset-bottom, 0px),
		clamp(1.25rem, 2.5vh, 2.75rem)
	);
	right: max(1rem, clamp(1rem, 2.5vw, 2rem));
	z-index: 4;
	min-height: 44px;
	cursor: pointer;
}

/* Semantic Design â€” wrappers (empty styles keep current look) */
[data-nm-block-id].nm-builder-section:not(.nm-builder-section--muted):not(.nm-builder-section--accent) {
	background-color: var(--nm-style-section-background-color, var(--nm-style-section-background, transparent));
	padding-top: var(--nm-style-section-padding-top, 0);
	padding-bottom: var(--nm-style-section-padding-bottom, 0);
}

[data-nm-block-id].nm-builder-section .nm-builder-kicker,
[data-nm-block-id].nm-builder-cards .nm-builder-kicker,
[data-nm-block-id].nm-builder-accordion .nm-builder-kicker {
	font-size: var(--nm-style-kicker-font-size, inherit);
	font-weight: var(--nm-style-kicker-font-weight, inherit);
	letter-spacing: var(--nm-style-kicker-letter-spacing, inherit);
	color: var(--nm-style-kicker-color, inherit);
	text-transform: var(--nm-style-kicker-text-transform, inherit);
}

[data-nm-block-id].nm-builder-section .nm-builder-section__heading,
[data-nm-block-id].nm-builder-text h2,
[data-nm-block-id].nm-builder-cards .nm-builder-cards__heading,
[data-nm-block-id].nm-builder-accordion__head h2 {
	font-size: var(--nm-style-heading-font-size, inherit);
	font-weight: var(--nm-style-heading-font-weight, inherit);
	line-height: var(--nm-style-heading-line-height, inherit);
	letter-spacing: var(--nm-style-heading-letter-spacing, inherit);
	color: var(--nm-style-heading-color, inherit);
	text-transform: var(--nm-style-heading-text-transform, inherit);
}

[data-nm-block-id].nm-builder-section .nm-builder-section__lead,
[data-nm-block-id].nm-builder-cards .nm-builder-cards__lead,
[data-nm-block-id].nm-builder-accordion__head > p {
	font-size: var(--nm-style-intro-font-size, inherit);
	font-weight: var(--nm-style-intro-font-weight, inherit);
	line-height: var(--nm-style-intro-line-height, inherit);
	color: var(--nm-style-intro-color, inherit);
}

[data-nm-block-id].nm-builder-section .nm-builder-section__body,
[data-nm-block-id].nm-builder-text .nm-builder-text__body {
	font-size: var(--nm-style-body-font-size, inherit);
	font-weight: var(--nm-style-body-font-weight, inherit);
	line-height: var(--nm-style-body-line-height, inherit);
	color: var(--nm-style-body-color, inherit);
}

[data-nm-block-id].nm-builder-text,
[data-nm-block-id].nm-builder-image,
[data-nm-block-id].nm-builder-shortcode,
[data-nm-block-id].nm-builder-columns,
[data-nm-block-id].nm-builder-cards,
[data-nm-block-id].nm-builder-accordion {
	background-color: var(--nm-style-section-background-color, var(--nm-style-section-background, transparent));
}

[data-nm-block-id].nm-builder-text,
[data-nm-block-id].nm-builder-image,
[data-nm-block-id].nm-builder-shortcode,
[data-nm-block-id].nm-builder-columns {
	padding-top: var(--nm-style-section-padding-top, 0);
	padding-bottom: var(--nm-style-section-padding-bottom, 0);
}

[data-nm-block-id].nm-builder-buttons {
	margin-top: var(--nm-style-section-margin-top, 0);
	padding-top: var(--nm-style-section-padding-top, 0);
	padding-bottom: var(--nm-style-section-padding-bottom, 0);
}

[data-nm-block-id].nm-builder-columns .nm-builder-columns__col {
	padding: var(--nm-style-column-padding, 0);
	background-color: var(--nm-style-column-background-color, transparent);
	border-radius: var(--nm-style-column-border-radius, 0);
}

[data-nm-block-id].nm-builder-spacer {
	padding-top: var(--nm-style-spacer-padding-top, 0);
	padding-bottom: var(--nm-style-spacer-padding-bottom, 0);
}

[data-nm-block-id].nm-builder-cards .nm-builder-cards__grid {
	margin-top: var(--nm-style-grid-margin-top, 0);
}

[data-nm-block-id].nm-builder-cards .nm-builder-card {
	background-color: var(--nm-style-card-background-color, transparent);
	border: var(--nm-style-card-border-width, 0) solid var(--nm-style-card-border-color, transparent);
	border-radius: var(--nm-style-card-border-radius, 0);
	padding: var(--nm-style-card-padding, 0);
}

[data-nm-block-id].nm-builder-cards .nm-builder-card__media {
	background-color: var(--nm-style-card-art-background-color, transparent);
	padding: var(--nm-style-card-art-padding, 0);
}

[data-nm-block-id].nm-builder-cards .nm-builder-card img {
	object-fit: var(--nm-style-card-image-object-fit, cover);
	object-position: var(--nm-style-card-image-object-position, center);
	border-radius: var(--nm-style-card-image-border-radius, 0);
}

[data-nm-block-id].nm-builder-cards .nm-builder-card__body {
	padding: var(--nm-style-card-body-padding, 0);
}

[data-nm-block-id].nm-builder-cards .nm-builder-card__body h3 {
	font-size: var(--nm-style-card-title-font-size, inherit);
	font-weight: var(--nm-style-card-title-font-weight, inherit);
	color: var(--nm-style-card-title-color, inherit);
}

[data-nm-block-id].nm-builder-cards .nm-builder-card__sub {
	font-size: var(--nm-style-card-sub-font-size, inherit);
	font-weight: var(--nm-style-card-sub-font-weight, inherit);
	color: var(--nm-style-card-sub-color, inherit);
}

[data-nm-block-id].nm-builder-cards .nm-builder-card__meta {
	font-size: var(--nm-style-card-meta-font-size, inherit);
	color: var(--nm-style-card-meta-color, inherit);
}

[data-nm-block-id].nm-builder-cards .nm-builder-btn--primary {
	background: var(--nm-style-card-button-background, var(--nm-builder-primary));
	color: var(--nm-style-card-button-color, var(--nm-builder-background));
	border-color: var(--nm-style-card-button-border-color, var(--nm-builder-primary));
	border-radius: var(--nm-style-card-button-border-radius, var(--nm-builder-radius));
	padding: var(--nm-style-card-button-padding, 0.55rem 1.1rem);
	font-size: var(--nm-style-card-button-font-size, inherit);
	margin-top: var(--nm-style-card-button-margin-top, 0);
}

[data-nm-block-id].nm-builder-accordion .nm-builder-accordion__q {
	font-size: var(--nm-style-question-font-size, inherit);
	font-weight: var(--nm-style-question-font-weight, inherit);
	color: var(--nm-style-question-color, inherit);
	background-color: var(--nm-style-question-background-color, transparent);
}

[data-nm-block-id].nm-builder-accordion .nm-builder-accordion__a {
	font-size: var(--nm-style-answer-font-size, inherit);
	color: var(--nm-style-answer-color, inherit);
	padding: var(--nm-style-answer-padding, 0);
}

/* —— Lead form success / error (generic; skin via CSS variables) —— */
.nm-builder-lead-form {
	position: relative;
}

.nm-builder-form-success,
.nm-builder-form-error {
	box-sizing: border-box;
	width: 100%;
	flex-basis: 100%;
	margin: 0 0 0.75rem;
	padding: 0.875rem 1rem;
	border-radius: var(--nm-builder-form-notice-radius, 6px);
	border: 1px solid var(--nm-builder-form-success-border, rgba(0, 0, 0, 0.08));
	background: var(--nm-builder-form-success-bg, #f7f7f5);
	color: var(--nm-builder-form-success-fg, inherit);
	box-shadow: var(--nm-builder-form-success-shadow, 0 1px 2px rgba(0, 0, 0, 0.04));
	opacity: 0;
	transform: translateY(-0.35rem);
	transition: opacity 0.28s ease, transform 0.28s ease;
}

.nm-builder-form-error {
	border-color: var(--nm-builder-form-error-border, rgba(160, 40, 40, 0.28));
	background: var(--nm-builder-form-error-bg, #fdf2f2);
	color: var(--nm-builder-form-error-fg, #7a1f1f);
}

.nm-builder-form-success.is-visible,
.nm-builder-form-error.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.nm-builder-form-success[hidden],
.nm-builder-form-error[hidden] {
	display: none !important;
}

.nm-builder-form-success__heading {
	display: block;
	font-size: 0.9375rem;
	font-weight: 700;
	margin: 0 0 0.25rem;
}

.nm-builder-form-success__message {
	font-size: 0.875rem;
	line-height: 1.45;
}

.nm-builder-lead-form.is-completed [data-nm-builder-lead-submit]:disabled {
	opacity: 0.85;
	cursor: default;
}

@media (prefers-reduced-motion: reduce) {
	.nm-builder-form-success,
	.nm-builder-form-error {
		transition: none;
		transform: none;
	}
}
