/* Artmark shared front-end rules — enqueued site-wide, so they apply to every
   Artmark widget without each one having to opt in. */

/* ---------------------------------------------------------------- */
/* Manual line breaks collapse on phones                             */
/* ---------------------------------------------------------------- */

/* Pressing Enter in a widget's text field inserts a hard line break, which is
   a deliberate typographic choice at desktop width ("Let's Build a More /
   Reliable Supply Chain"). On a phone that same break lands mid-sentence and
   leaves ragged short lines, so it is dropped and the text wraps naturally.

   This is safe because every break has a space beside it: nl2br() leaves the
   original newline in the markup, and the explicit "break onto a new line"
   headings emit "<br> ". Hiding the <br> therefore always leaves a word gap
   rather than joining two words together. */
@media (max-width: 767px) {
	[data-widget_type^="artmark-"] br,
	[class*="elementor-widget-artmark-"] br {
		display: none;
	}

	/* Opt a single element back in when a break really is wanted on mobile. */
	[data-widget_type^="artmark-"] br.am-br-keep,
	[class*="elementor-widget-artmark-"] br.am-br-keep {
		display: inline;
	}
}


/* ---------------------------------------------------------------- */
/* Bottom gradient band (Style -> Section -> Bottom Gradient)        */
/* ---------------------------------------------------------------- */

/* The switcher puts .am-bgrad-yes on the Elementor wrapper; the band is an
   ::after on the widget's root. isolation: isolate gives the root its own
   stacking context so z-index: -1 paints the band ABOVE the root's own
   background (flat colour or gradient) but BELOW every child, i.e. content
   is never tinted. Colour and height come from the widget controls. */
.am-bgrad-yes .am-banner,
.am-bgrad-yes .am-caps,
.am-bgrad-yes .am-mcap,
.am-bgrad-yes .am-chooser,
.am-bgrad-yes .am-commit,
.am-bgrad-yes .am-cmp,
.am-bgrad-yes .am-acf,
.am-bgrad-yes .am-cf,
.am-bgrad-yes .am-chero,
.am-bgrad-yes .am-conv,
.am-bgrad-yes .am-ctaband,
.am-bgrad-yes .am-diff,
.am-bgrad-yes .am-disc,
.am-bgrad-yes .am-divisions,
.am-bgrad-yes .am-faq,
.am-bgrad-yes .am-fcards,
.am-bgrad-yes .am-fres,
.am-bgrad-yes .am-flow,
.am-bgrad-yes .am-glance,
.am-bgrad-yes .am-gp,
.am-bgrad-yes .am-herit,
.am-bgrad-yes .am-inds,
.am-bgrad-yes .am-itiles,
.am-bgrad-yes .am-intro,
.am-bgrad-yes .am-ilist,
.am-bgrad-yes .am-mfg,
.am-bgrad-yes .am-mat,
.am-bgrad-yes .am-mosaic,
.am-bgrad-yes .am-nl,
.am-bgrad-yes .am-open,
.am-bgrad-yes .am-pcards,
.am-bgrad-yes .am-pillars,
.am-bgrad-yes .am-proc,
.am-bgrad-yes .am-quote,
.am-bgrad-yes .am-rail,
.am-bgrad-yes .am-reasons,
.am-bgrad-yes .am-req,
.am-bgrad-yes .am-rgrid,
.am-bgrad-yes .am-rhero,
.am-bgrad-yes .am-res,
.am-bgrad-yes .am-risk,
.am-bgrad-yes .am-tnav,
.am-bgrad-yes .am-svc,
.am-bgrad-yes .am-show,
.am-bgrad-yes .am-sol,
.am-bgrad-yes .am-split,
.am-bgrad-yes .am-statf,
.am-bgrad-yes .am-statement,
.am-bgrad-yes .am-stats,
.am-bgrad-yes .am-team,
.am-bgrad-yes .am-tband,
.am-bgrad-yes .am-vfeature,
.am-bgrad-yes .am-iso,
.am-bgrad-yes .am-vsp {
	position: relative;
	isolation: isolate;
}

.am-bgrad-yes .am-banner::after,
.am-bgrad-yes .am-caps::after,
.am-bgrad-yes .am-mcap::after,
.am-bgrad-yes .am-chooser::after,
.am-bgrad-yes .am-commit::after,
.am-bgrad-yes .am-cmp::after,
.am-bgrad-yes .am-acf::after,
.am-bgrad-yes .am-cf::after,
.am-bgrad-yes .am-chero::after,
.am-bgrad-yes .am-conv::after,
.am-bgrad-yes .am-ctaband::after,
.am-bgrad-yes .am-diff::after,
.am-bgrad-yes .am-disc::after,
.am-bgrad-yes .am-divisions::after,
.am-bgrad-yes .am-faq::after,
.am-bgrad-yes .am-fcards::after,
.am-bgrad-yes .am-fres::after,
.am-bgrad-yes .am-flow::after,
.am-bgrad-yes .am-glance::after,
.am-bgrad-yes .am-gp::after,
.am-bgrad-yes .am-herit::after,
.am-bgrad-yes .am-inds::after,
.am-bgrad-yes .am-itiles::after,
.am-bgrad-yes .am-intro::after,
.am-bgrad-yes .am-ilist::after,
.am-bgrad-yes .am-mfg::after,
.am-bgrad-yes .am-mat::after,
.am-bgrad-yes .am-mosaic::after,
.am-bgrad-yes .am-nl::after,
.am-bgrad-yes .am-open::after,
.am-bgrad-yes .am-pcards::after,
.am-bgrad-yes .am-pillars::after,
.am-bgrad-yes .am-proc::after,
.am-bgrad-yes .am-quote::after,
.am-bgrad-yes .am-rail::after,
.am-bgrad-yes .am-reasons::after,
.am-bgrad-yes .am-req::after,
.am-bgrad-yes .am-rgrid::after,
.am-bgrad-yes .am-rhero::after,
.am-bgrad-yes .am-res::after,
.am-bgrad-yes .am-risk::after,
.am-bgrad-yes .am-tnav::after,
.am-bgrad-yes .am-svc::after,
.am-bgrad-yes .am-show::after,
.am-bgrad-yes .am-sol::after,
.am-bgrad-yes .am-split::after,
.am-bgrad-yes .am-statf::after,
.am-bgrad-yes .am-statement::after,
.am-bgrad-yes .am-stats::after,
.am-bgrad-yes .am-team::after,
.am-bgrad-yes .am-tband::after,
.am-bgrad-yes .am-vfeature::after,
.am-bgrad-yes .am-iso::after,
.am-bgrad-yes .am-vsp::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: -1;
	height: var(--am-bgrad-h, 192px);
	background-image: linear-gradient(180deg, transparent 0%, var(--am-bgrad-c, #ffffff) 100%);
	pointer-events: none;
}

/* Eased (S-curve) version where color-mix() is available: a straight two-stop
   gradient meets the flat colours at either end with a sudden change of slope,
   which the eye reads as a faint line (Mach band) even though the colours are
   identical. Extra stops flatten the curve into both ends so the join vanishes. */
@supports (background: color-mix(in srgb, red, blue)) {
	.am-bgrad-yes .am-banner::after,
	.am-bgrad-yes .am-caps::after,
	.am-bgrad-yes .am-mcap::after,
	.am-bgrad-yes .am-chooser::after,
	.am-bgrad-yes .am-commit::after,
	.am-bgrad-yes .am-cmp::after,
	.am-bgrad-yes .am-acf::after,
	.am-bgrad-yes .am-cf::after,
	.am-bgrad-yes .am-chero::after,
	.am-bgrad-yes .am-conv::after,
	.am-bgrad-yes .am-ctaband::after,
	.am-bgrad-yes .am-diff::after,
	.am-bgrad-yes .am-disc::after,
	.am-bgrad-yes .am-divisions::after,
	.am-bgrad-yes .am-faq::after,
	.am-bgrad-yes .am-fcards::after,
	.am-bgrad-yes .am-fres::after,
	.am-bgrad-yes .am-flow::after,
	.am-bgrad-yes .am-glance::after,
	.am-bgrad-yes .am-gp::after,
	.am-bgrad-yes .am-herit::after,
	.am-bgrad-yes .am-inds::after,
	.am-bgrad-yes .am-itiles::after,
	.am-bgrad-yes .am-intro::after,
	.am-bgrad-yes .am-ilist::after,
	.am-bgrad-yes .am-mfg::after,
	.am-bgrad-yes .am-mat::after,
	.am-bgrad-yes .am-mosaic::after,
	.am-bgrad-yes .am-nl::after,
	.am-bgrad-yes .am-open::after,
	.am-bgrad-yes .am-pcards::after,
	.am-bgrad-yes .am-pillars::after,
	.am-bgrad-yes .am-proc::after,
	.am-bgrad-yes .am-quote::after,
	.am-bgrad-yes .am-rail::after,
	.am-bgrad-yes .am-reasons::after,
	.am-bgrad-yes .am-req::after,
	.am-bgrad-yes .am-rgrid::after,
	.am-bgrad-yes .am-rhero::after,
	.am-bgrad-yes .am-res::after,
	.am-bgrad-yes .am-risk::after,
	.am-bgrad-yes .am-tnav::after,
	.am-bgrad-yes .am-svc::after,
	.am-bgrad-yes .am-show::after,
	.am-bgrad-yes .am-sol::after,
	.am-bgrad-yes .am-split::after,
	.am-bgrad-yes .am-statf::after,
	.am-bgrad-yes .am-statement::after,
	.am-bgrad-yes .am-stats::after,
	.am-bgrad-yes .am-team::after,
	.am-bgrad-yes .am-tband::after,
	.am-bgrad-yes .am-vfeature::after,
	.am-bgrad-yes .am-iso::after,
	.am-bgrad-yes .am-vsp::after {
		background-image: linear-gradient(
			180deg,
			transparent 0%,
			color-mix(in srgb, var(--am-bgrad-c, #ffffff) 8%, transparent) 20%,
			color-mix(in srgb, var(--am-bgrad-c, #ffffff) 30%, transparent) 40%,
			color-mix(in srgb, var(--am-bgrad-c, #ffffff) 70%, transparent) 60%,
			color-mix(in srgb, var(--am-bgrad-c, #ffffff) 92%, transparent) 80%,
			var(--am-bgrad-c, #ffffff) 100%
		);
	}
}


/* ---------------------------------------------------------------- */
/* Section background gradient (Style -> Section -> Background Gradient) */
/* ---------------------------------------------------------------- */

/* Own gradient rather than Elementor's group control: that one is strictly
   linear, and a linear ramp meeting a flat colour shows a faint line (Mach
   band) at the join no matter where the stops sit. Colours, stops and angle
   arrive as custom properties from the widget controls; the switch puts
   .am-tgrad-yes on the Elementor wrapper. */
.am-tgrad-yes .am-banner,
.am-tgrad-yes .am-caps,
.am-tgrad-yes .am-mcap,
.am-tgrad-yes .am-chooser,
.am-tgrad-yes .am-commit,
.am-tgrad-yes .am-cmp,
.am-tgrad-yes .am-acf,
.am-tgrad-yes .am-cf,
.am-tgrad-yes .am-chero,
.am-tgrad-yes .am-conv,
.am-tgrad-yes .am-ctaband,
.am-tgrad-yes .am-diff,
.am-tgrad-yes .am-disc,
.am-tgrad-yes .am-divisions,
.am-tgrad-yes .am-faq,
.am-tgrad-yes .am-fcards,
.am-tgrad-yes .am-fres,
.am-tgrad-yes .am-flow,
.am-tgrad-yes .am-glance,
.am-tgrad-yes .am-gp,
.am-tgrad-yes .am-herit,
.am-tgrad-yes .am-inds,
.am-tgrad-yes .am-itiles,
.am-tgrad-yes .am-intro,
.am-tgrad-yes .am-ilist,
.am-tgrad-yes .am-mfg,
.am-tgrad-yes .am-mat,
.am-tgrad-yes .am-mosaic,
.am-tgrad-yes .am-nl,
.am-tgrad-yes .am-open,
.am-tgrad-yes .am-pcards,
.am-tgrad-yes .am-pillars,
.am-tgrad-yes .am-proc,
.am-tgrad-yes .am-quote,
.am-tgrad-yes .am-rail,
.am-tgrad-yes .am-reasons,
.am-tgrad-yes .am-req,
.am-tgrad-yes .am-rgrid,
.am-tgrad-yes .am-rhero,
.am-tgrad-yes .am-res,
.am-tgrad-yes .am-risk,
.am-tgrad-yes .am-tnav,
.am-tgrad-yes .am-svc,
.am-tgrad-yes .am-show,
.am-tgrad-yes .am-sol,
.am-tgrad-yes .am-split,
.am-tgrad-yes .am-statf,
.am-tgrad-yes .am-statement,
.am-tgrad-yes .am-stats,
.am-tgrad-yes .am-team,
.am-tgrad-yes .am-tband,
.am-tgrad-yes .am-vfeature,
.am-tgrad-yes .am-iso,
.am-tgrad-yes .am-vsp {
	--am-tg-a: #d3edfe;
	--am-tg-b: #ffffff;
	--am-tg-s: 0%;
	--am-tg-e: 100%;
	--am-tg-angle: 180deg;
	background-image: linear-gradient(var(--am-tg-angle), var(--am-tg-a) var(--am-tg-s), var(--am-tg-b) var(--am-tg-e));
}

/* Smooth Ends: an S-curve of intermediate stops between the two locations so
   the slope is ~0 where the ramp meets each solid colour. */
@supports (background: color-mix(in srgb, red, blue)) {
	.am-tgrad-yes.am-tgrad-ease-yes .am-banner,
	.am-tgrad-yes.am-tgrad-ease-yes .am-caps,
	.am-tgrad-yes.am-tgrad-ease-yes .am-mcap,
	.am-tgrad-yes.am-tgrad-ease-yes .am-chooser,
	.am-tgrad-yes.am-tgrad-ease-yes .am-commit,
	.am-tgrad-yes.am-tgrad-ease-yes .am-cmp,
	.am-tgrad-yes.am-tgrad-ease-yes .am-acf,
	.am-tgrad-yes.am-tgrad-ease-yes .am-cf,
	.am-tgrad-yes.am-tgrad-ease-yes .am-chero,
	.am-tgrad-yes.am-tgrad-ease-yes .am-conv,
	.am-tgrad-yes.am-tgrad-ease-yes .am-ctaband,
	.am-tgrad-yes.am-tgrad-ease-yes .am-diff,
	.am-tgrad-yes.am-tgrad-ease-yes .am-disc,
	.am-tgrad-yes.am-tgrad-ease-yes .am-divisions,
	.am-tgrad-yes.am-tgrad-ease-yes .am-faq,
	.am-tgrad-yes.am-tgrad-ease-yes .am-fcards,
	.am-tgrad-yes.am-tgrad-ease-yes .am-fres,
	.am-tgrad-yes.am-tgrad-ease-yes .am-flow,
	.am-tgrad-yes.am-tgrad-ease-yes .am-glance,
	.am-tgrad-yes.am-tgrad-ease-yes .am-gp,
	.am-tgrad-yes.am-tgrad-ease-yes .am-herit,
	.am-tgrad-yes.am-tgrad-ease-yes .am-inds,
	.am-tgrad-yes.am-tgrad-ease-yes .am-itiles,
	.am-tgrad-yes.am-tgrad-ease-yes .am-intro,
	.am-tgrad-yes.am-tgrad-ease-yes .am-ilist,
	.am-tgrad-yes.am-tgrad-ease-yes .am-mfg,
	.am-tgrad-yes.am-tgrad-ease-yes .am-mat,
	.am-tgrad-yes.am-tgrad-ease-yes .am-mosaic,
	.am-tgrad-yes.am-tgrad-ease-yes .am-nl,
	.am-tgrad-yes.am-tgrad-ease-yes .am-open,
	.am-tgrad-yes.am-tgrad-ease-yes .am-pcards,
	.am-tgrad-yes.am-tgrad-ease-yes .am-pillars,
	.am-tgrad-yes.am-tgrad-ease-yes .am-proc,
	.am-tgrad-yes.am-tgrad-ease-yes .am-quote,
	.am-tgrad-yes.am-tgrad-ease-yes .am-rail,
	.am-tgrad-yes.am-tgrad-ease-yes .am-reasons,
	.am-tgrad-yes.am-tgrad-ease-yes .am-req,
	.am-tgrad-yes.am-tgrad-ease-yes .am-rgrid,
	.am-tgrad-yes.am-tgrad-ease-yes .am-rhero,
	.am-tgrad-yes.am-tgrad-ease-yes .am-res,
	.am-tgrad-yes.am-tgrad-ease-yes .am-risk,
	.am-tgrad-yes.am-tgrad-ease-yes .am-tnav,
	.am-tgrad-yes.am-tgrad-ease-yes .am-svc,
	.am-tgrad-yes.am-tgrad-ease-yes .am-show,
	.am-tgrad-yes.am-tgrad-ease-yes .am-sol,
	.am-tgrad-yes.am-tgrad-ease-yes .am-split,
	.am-tgrad-yes.am-tgrad-ease-yes .am-statf,
	.am-tgrad-yes.am-tgrad-ease-yes .am-statement,
	.am-tgrad-yes.am-tgrad-ease-yes .am-stats,
	.am-tgrad-yes.am-tgrad-ease-yes .am-team,
	.am-tgrad-yes.am-tgrad-ease-yes .am-tband,
	.am-tgrad-yes.am-tgrad-ease-yes .am-vfeature,
	.am-tgrad-yes.am-tgrad-ease-yes .am-iso,
	.am-tgrad-yes.am-tgrad-ease-yes .am-vsp {
		background-image: linear-gradient(
			var(--am-tg-angle),
			var(--am-tg-a) var(--am-tg-s),
			color-mix(in srgb, var(--am-tg-a) 92%, var(--am-tg-b)) calc(var(--am-tg-s) + (var(--am-tg-e) - var(--am-tg-s)) * 0.2),
			color-mix(in srgb, var(--am-tg-a) 70%, var(--am-tg-b)) calc(var(--am-tg-s) + (var(--am-tg-e) - var(--am-tg-s)) * 0.4),
			color-mix(in srgb, var(--am-tg-a) 30%, var(--am-tg-b)) calc(var(--am-tg-s) + (var(--am-tg-e) - var(--am-tg-s)) * 0.6),
			color-mix(in srgb, var(--am-tg-a) 8%, var(--am-tg-b)) calc(var(--am-tg-s) + (var(--am-tg-e) - var(--am-tg-s)) * 0.8),
			var(--am-tg-b) var(--am-tg-e)
		);
	}
}
