/*
 * Our Philosophy (Figma 405:6993). Loaded after site.css on this page only.
 */

/* ---------------------------------------------------------- origin block */

/* No shadow; the brass hairline across the top is set in the build. */
.elementor .e-con.ne-origin__card { box-shadow: none; }

.elementor-widget-text-editor.ne-origin__lead p { margin: 0; }

/* Desktop: a 798 x 720 photograph, square on its left corners, under a
   662-wide card that overlaps it by 176px (405:7124, 405:7126). */
@media (min-width: 1025px) {
	.elementor .e-con.ne-origin { --flex-wrap: nowrap; flex-wrap: nowrap; }
	.elementor .e-con.ne-origin__body { margin-left: -12.5%; }

	.e-con.ne-origin__card {
		--padding-top: 30px;
		--padding-right: 64px;
		--padding-bottom: 64px;
		--padding-left: 64px;
	}

	.ne-origin__shot img {
		width: 100%;
		height: 720px;
		object-fit: cover;
		border-radius: 0;
	}
}

/* ------------------------------------------------------- old way / new way */

/* Section labels. The Old Way sits centred between two 140px forest rules at
   60% (405:7148); The New Way has a brass sparkle and a brass 30% rule
   running to the edge (405:7198). */
.e-con.ne-phil-label { flex-wrap: nowrap; }
.ne-phil-label--old { opacity: .6; }

.elementor-widget-divider.ne-phil-label__rule { --divider-color: var(--ne-forest); min-width: 0; }
.elementor-widget-divider.ne-phil-label__rule .elementor-divider { padding: 0; }
.elementor .e-con > .elementor-widget-divider.ne-phil-label__rule { width: 140px; flex: 0 1 140px; }
.elementor .ne-phil-label--new > .elementor-widget-divider.ne-phil-label__rule {
	--divider-color: rgba(206, 128, 41, .3);
	width: auto;
	flex: 1 1 auto;
}

.elementor-widget-heading.ne-phil-label__text .elementor-heading-title {
	font-weight: 700 !important;
	text-transform: uppercase;
	white-space: nowrap;
}
.ne-phil-label--old .elementor-widget-heading.ne-phil-label__text .elementor-heading-title { color: var(--ne-forest) !important; }
.elementor .e-con > .elementor-widget.ne-phil-label__text { flex: 0 0 auto; width: auto; }

.elementor .e-con > .elementor-widget-icon.ne-phil-sparkle { flex: 0 0 20px; width: 20px; }
.ne-phil-sparkle .elementor-icon-wrapper { line-height: 0; }
.ne-phil-sparkle .elementor-icon { font-size: 20px; line-height: 0; }
.ne-phil-sparkle .elementor-icon svg { width: 20px; height: 20px; }

/* The Old Way panel (405:7153) fills the column so it ends level with the
   New Way card, its rows centred inside it. */
.elementor .e-con.ne-phil-oldway {
	--flex-grow: 1;
	flex-grow: 1;
	box-shadow: inset 0 2px 4px 1px rgba(0, 0, 0, .05);
}

/* A row (405:7156): its glyph in a 40px tile, title over a muted line. */
.elementor-widget-icon-box.ne-phil-oldrow__item .elementor-icon-box-wrapper {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 16px;
	text-align: left;
}

.elementor-widget-icon-box.ne-phil-oldrow__item .elementor-icon-box-icon {
	display: flex;
	flex: 0 0 40px;
	margin: 0;
}

.elementor-widget-icon-box.ne-phil-oldrow__item .elementor-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	font-size: 20px;
	line-height: 0;
	background: rgba(32, 55, 44, .05);
	border: 1px solid rgba(32, 55, 44, .1);
	border-radius: 0;
}

/* The glyphs carry their own 60% forest fill; nothing may fill the svg. */
.elementor-widget-icon-box.ne-phil-oldrow__item .elementor-icon svg { width: 20px; height: 20px; fill: none; }

.elementor-widget-icon-box.ne-phil-oldrow__item .elementor-icon-box-content { min-width: 0; }

.elementor-widget-icon-box.ne-phil-oldrow__item .elementor-icon-box-title {
	margin: 0 0 4px;
	font-family: var(--ne-font-heading);
	font-size: var(--ne-fs-h4);
	font-weight: 400;
	line-height: 1.1;
	color: rgba(32, 55, 44, .9);
}

.elementor-widget-icon-box.ne-phil-oldrow__item .elementor-icon-box-description {
	margin: 0;
	font-family: var(--ne-font-body);
	font-size: var(--ne-fs-small);
	line-height: 1.2;
	color: rgba(32, 55, 44, .6);
}

/* The New Way card (405:7205): white under an 8px brass cap, a soft brass
   shadow. */
.e-con.ne-phil-newway {
	--padding-top: 48px;
	--padding-right: 48px;
	--padding-bottom: 48px;
	--padding-left: 48px;
	box-shadow: 0 25px 50px -12px rgba(206, 128, 41, .1);
}

/* Curiosity-Driven (405:7209): the brass disc beside the copy. */
.e-con.ne-phil-curiosity {
	--padding-top: 40px;
	--padding-right: 40px;
	--padding-bottom: 40px;
	--padding-left: 40px;
}

.elementor .e-con > .elementor-widget-icon.ne-phil-disc { flex: 0 0 59px; width: 59px; }
.ne-phil-disc .elementor-icon-wrapper { line-height: 0; }

.ne-phil-disc .elementor-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 59px;
	height: 59px;
	font-size: 27px;
	line-height: 0;
	border-radius: 50%;
	background: var(--ne-brass);
	box-shadow: 0 2.96px 4.43px -2.96px rgba(206, 128, 41, .3), 0 7.39px 11.08px -2.22px rgba(206, 128, 41, .3);
}

.ne-phil-disc .elementor-icon svg { width: 27px; height: 27px; }

.elementor .e-con.ne-phil-curiosity__copy { flex: 1 1 auto; min-width: 0; }

.elementor-widget-heading.ne-phil-newcard__title .elementor-heading-title { font-weight: 400 !important; }
.ne-phil-curiosity .elementor-widget-text-editor.ne-phil-newcard__copy { color: rgba(32, 55, 44, .7) !important; }
.elementor-widget-text-editor.ne-phil-newcard__copy p { margin: 0; line-height: 1.3; }

/* Figma sets "Whole Child Growth" on one line, running into the card's right
   padding; only where the card is wide enough for that. */
@media (min-width: 1280px) {
	.ne-phil-newcard--dark .ne-phil-newcard__title .elementor-heading-title { white-space: nowrap; }
}

/* Individual Pathways and Whole Child Growth (405:7225, 405:7237). */
.elementor .e-con.ne-phil-newcard {
	--padding-top: 32px;
	--padding-right: 32px;
	--padding-bottom: 32px;
	--padding-left: 32px;
	position: relative;
	height: 100%;
	overflow: hidden;
}

.ne-phil-newcard > .elementor-element { position: relative; z-index: 1; }
.ne-phil-newcard .elementor-widget.ne-phil-newcard__title { padding-top: 17px; }

.e-con.ne-phil-newcard--light {
	box-shadow: 0 4px 6px -4px rgba(32, 55, 44, .05), 0 10px 15px -3px rgba(32, 55, 44, .05);
}
.ne-phil-newcard--light .elementor-widget-text-editor.ne-phil-newcard__copy { color: rgba(32, 55, 44, .6) !important; }

/* A 128px quarter disc of forest at 5% in the top right corner (405:7236). */
.e-con.ne-phil-newcard--light::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 128px;
	height: 128px;
	background: rgba(32, 55, 44, .05);
	border-bottom-left-radius: 9999px;
	pointer-events: none;
}

.e-con.ne-phil-newcard--dark {
	box-shadow: 0 8px 10px -6px rgba(32, 55, 44, .2), 0 20px 25px -5px rgba(32, 55, 44, .2);
}
.ne-phil-newcard--dark .elementor-widget-heading.ne-phil-newcard__title .elementor-heading-title {
	font-weight: 700 !important;
	color: var(--ne-white) !important;
}
.ne-phil-newcard--dark .elementor-widget-text-editor.ne-phil-newcard__copy { color: rgba(255, 255, 255, .7) !important; }

/* A blurred brass glow under a faint leaf in the bottom right (405:7238,
   405:7239). The card clips both. */
.e-con.ne-phil-newcard--dark::after {
	content: "";
	position: absolute;
	right: -16px;
	bottom: -49px;
	width: 160px;
	height: 160px;
	background: rgba(206, 128, 41, .2);
	filter: blur(40px);
	pointer-events: none;
	z-index: 0;
}

.elementor .e-con > .elementor-widget-icon.ne-phil-leaf {
	position: absolute;
	right: 16px;
	bottom: 15px;
	width: 60px;
	margin: 0;
	pointer-events: none;
}
.ne-phil-leaf .elementor-icon-wrapper { line-height: 0; }
.ne-phil-leaf .elementor-icon { font-size: 60px; line-height: 0; }
.ne-phil-leaf .elementor-icon svg { width: 60px; height: 60px; }

/* The 56px brass tiles (405:7226, 405:7242). */
.ne-phil-tile .elementor-icon-wrapper { line-height: 0; text-align: left; }

.ne-phil-tile .elementor-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	font-size: 30px;
	line-height: 0;
	border-radius: 0;
	background: #C59B58;
}

.ne-phil-newcard--dark .ne-phil-tile .elementor-icon {
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}

.ne-phil-tile .elementor-icon svg { width: 30px; height: 36px; }

/* The shift arrow (405:7253, as on Home): 192 x 71, from the Old Way panel's
   edge to just inside the New Way card. Hidden once the columns stack. */
@media (min-width: 1025px) {
	.elementor .e-con.ne-phil-oldway::after {
		content: "The Shift";
		position: absolute;
		left: calc(100% - 26px);
		top: 43%;
		z-index: 3;
		width: 192px;
		height: 71px;
		padding-left: 34px;
		box-sizing: border-box;
		transform: translateY(-50%);
		font-family: var(--ne-font-body);
		font-size: 13px;
		font-weight: 700;
		line-height: 71px;
		letter-spacing: .2em;
		text-transform: uppercase;
		text-align: left;
		white-space: nowrap;
		color: var(--ne-white);
		background: linear-gradient(90deg, rgba(244, 235, 221, .3) 0%, rgba(209, 182, 123, .9) 40%, #CE8029 100%);
		clip-path: polygon(0 31.25%, 68.08% 31.25%, 68.08% 0, 100% 50%, 68.08% 100%, 68.08% 68.75%, 0 68.75%);
		pointer-events: none;
	}
}

@media (max-width: 767px) {
	.e-con.ne-phil-newway {
		--padding-top: 24px;
		--padding-right: 20px;
		--padding-bottom: 24px;
		--padding-left: 20px;
	}

	.e-con.ne-phil-curiosity {
		--padding-top: 28px;
		--padding-right: 24px;
		--padding-bottom: 28px;
		--padding-left: 24px;
	}

	.elementor .e-con.ne-phil-newcard {
		--padding-top: 28px;
		--padding-right: 24px;
		--padding-bottom: 28px;
		--padding-left: 24px;
	}

	.elementor .e-con.ne-phil-oldway {
		--padding-top: 20px;
		--padding-right: 20px;
		--padding-bottom: 20px;
		--padding-left: 20px;
	}
}

/* ------------------------------------------------------------ principles */

/* The intro, bold, between two 2px brass hairlines across the column. */
.elementor.elementor .e-con > .elementor-widget.ne-principles__intro { max-width: none; width: 100%; }
.ne-principles__statement .elementor-widget-divider .elementor-divider { padding: 0; }
.ne-principles__intro .elementor-heading-title { font-weight: 700 !important; }
.elementor-widget.ne-principles__intro { padding: 20px 0; }

/* Cards (405:7278): ivory at 5% with a white 10% hairline, r24. */
.e-con.ne-principle {
	--padding-top: 30px;
	--padding-right: 48px;
	--padding-bottom: 40px;
	--padding-left: 48px;
}

/* Marker (405:7280): a 46px brass disc in a 65px brass halo at 32%. */
.ne-principle__marker .elementor-icon-wrapper { display: flex; justify-content: center; line-height: 0; }

.ne-principle__marker .elementor-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 65px;
	height: 65px;
	font-size: 46px;
	line-height: 0;
	border-radius: 50%;
	background: rgba(197, 155, 88, .32);
}

.elementor-widget-icon.ne-principle__marker .elementor-icon svg { width: 46px; height: 46px; fill: #B78B46 !important; }
.elementor-widget.ne-principle__marker { margin-bottom: 8px; }

@media (max-width: 767px) {
	.e-con.ne-principle {
		--padding-top: 28px;
		--padding-right: 24px;
		--padding-bottom: 32px;
		--padding-left: 24px;
	}
	.elementor-widget.ne-principles__intro { padding: 16px 0; }
	/* Six lines of 34px bold is a wall on a phone; the h3 step reads as one statement. */
	.ne-principles__intro .elementor-heading-title { font-size: var(--ne-fs-h3) !important; line-height: 1.25 !important; }
}

/* --------------------------------------------------------------- promise */

/* The film (405:7114): 1298 x 540, wider than the text column, under a black
   36% tint. */
.elementor .e-con.ne-promise__film {
	--width: min(1298px, calc(100vw - 48px));
	width: min(1298px, calc(100vw - 48px));
	max-width: none;
	flex-shrink: 0;
	margin-inline: calc((100% - min(1298px, calc(100vw - 48px))) / 2);
}

.ne-promise .e-con.ne-promise__film::after { background: rgba(0, 0, 0, .36); }

.elementor .e-con > .elementor-widget.ne-video__poster { width: 100%; align-self: stretch; }
.ne-promise .ne-promise__film .ne-video__poster img { width: 100%; height: 540px; }

@media (max-width: 1024px) {
	.ne-promise .ne-promise__film .ne-video__poster img { height: 400px; }
}

@media (max-width: 767px) {
	.elementor .e-con.ne-promise__film { --width: 100%; width: 100%; margin-inline: 0; }
	.ne-promise .ne-promise__film .ne-video__poster img { height: 240px; }
}

/* Stacked, the card starts a little below the photograph so its brass
   hairline reads as the card's own top edge. */
@media (max-width: 1024px) {
	.elementor .e-con.ne-origin__body { margin-top: 24px; }
}

/* Phones: the two promise buttons stack centred. */
@media (max-width: 767px) {
	.ne-promise__actions .elementor-widget-button,
	.ne-promise__actions .elementor-button-wrapper { text-align: center; }
	.ne-promise__actions .e-con { align-items: center; }
}
