/**
 * Neutralize Elementor chrome so sri-v4 layout matches the static HTML.
 * site.css owns all visual layout — Elementor wrappers must be layout-transparent.
 */

.premium-plus-home #main,
.premium-plus-home .elementor,
.premium-plus-home .elementor-458,
.premium-plus-home .elementor-element-gsriv5root,
.premium-plus-inner #main,
.premium-plus-inner .elementor,
.premium-plus-inner .elementor-element-gsriv5about,
.premium-plus-inner .elementor-element-gsriv5pgroot,
.premium-plus-inner .elementor-element-gsriv5pmcont,
.error-page #main,
.error-page .elementor {
	margin: 0 !important;
	padding: 0 !important;
	max-width: none !important;
	width: 100% !important;
}

.premium-plus-home .elementor-section,
.premium-plus-home .elementor-container,
.premium-plus-home .elementor-column,
.premium-plus-home .elementor-column-wrap,
.premium-plus-home .elementor-widget-wrap,
.premium-plus-home .e-con,
.premium-plus-home .e-con-inner,
.premium-plus-inner .elementor-section,
.premium-plus-inner .elementor-container,
.premium-plus-inner .elementor-column,
.premium-plus-inner .elementor-column-wrap,
.premium-plus-inner .elementor-widget-wrap,
.premium-plus-inner .e-con,
.premium-plus-inner .e-con-inner,
.error-page .elementor-section,
.error-page .elementor-container,
.error-page .elementor-column,
.error-page .elementor-column-wrap,
.error-page .elementor-widget-wrap,
.error-page .e-con,
.error-page .e-con-inner {
	max-width: none !important;
	width: 100% !important;
	margin: 0;
	padding: 0;
	gap: 0 !important;
	--padding-top: 0px !important;
	--padding-right: 0px !important;
	--padding-bottom: 0px !important;
	--padding-left: 0px !important;
	--gap: 0px !important;
	--row-gap: 0px !important;
	--column-gap: 0px !important;
	--content-width: 100% !important;
	box-sizing: border-box !important;
}

/* Block flow under main (not Elementor flex) so sticky/runway/chapter-overlap work */
.premium-plus-home .elementor > .e-con,
.premium-plus-home .e-con.e-parent,
.premium-plus-home #gsriv5root,
.premium-plus-home .elementor-element-gsriv5root,
.premium-plus-inner .elementor > .e-con,
.premium-plus-inner .e-con.e-parent,
.premium-plus-inner #gsriv5about,
.premium-plus-inner .elementor-element-gsriv5about,
.premium-plus-inner #gsriv5pgroot,
.premium-plus-inner .elementor-element-gsriv5pgroot,
.premium-plus-inner .elementor-element-gsriv5pmcont {
	display: block !important;
	flex-direction: unset !important;
	flex-wrap: unset !important;
	align-items: unset !important;
	justify-content: unset !important;
}

/* Frontend only: widget shells disappear so section CSS matches HTML box model */
body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-home .elementor-widget[class*="elementor-widget-premium-plus-"],
body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-home .elementor-widget[class*="elementor-widget-premium-plus-"] > .elementor-widget-container,
body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-inner .elementor-widget[class*="elementor-widget-premium-plus-"],
body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-inner .elementor-widget[class*="elementor-widget-premium-plus-"] > .elementor-widget-container {
	display: contents !important;
}

body.elementor-editor-active .premium-plus-home .elementor-widget[class*="elementor-widget-premium-plus-"],
body.elementor-editor-preview .premium-plus-home .elementor-widget[class*="elementor-widget-premium-plus-"],
body.elementor-editor-active .premium-plus-home .elementor-widget[class*="elementor-widget-premium-plus-"] > .elementor-widget-container,
body.elementor-editor-preview .premium-plus-home .elementor-widget[class*="elementor-widget-premium-plus-"] > .elementor-widget-container,
body.elementor-editor-active .premium-plus-inner .elementor-widget[class*="elementor-widget-premium-plus-"],
body.elementor-editor-preview .premium-plus-inner .elementor-widget[class*="elementor-widget-premium-plus-"],
body.elementor-editor-active .premium-plus-inner .elementor-widget[class*="elementor-widget-premium-plus-"] > .elementor-widget-container,
body.elementor-editor-preview .premium-plus-inner .elementor-widget[class*="elementor-widget-premium-plus-"] > .elementor-widget-container {
		display: block !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
		min-height: 0;
		overflow: visible;
	}

/* Principal Message: keep real boxes. display:contents + Elementor
   position:relative can collapse intro/letter into a hairline seam. */
body:not(.elementor-editor-active):not(.elementor-editor-preview).principal-page .elementor-widget-premium-plus-inner-page-content,
body:not(.elementor-editor-active):not(.elementor-editor-preview).principal-page .elementor-widget-premium-plus-inner-page-cta {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	margin-block-end: 0 !important;
	padding: 0 !important;
	float: none !important;
	min-height: 0;
	overflow: visible;
}

.principal-page .elementor-widget:not(:last-child) {
	margin-block-end: 0 !important;
}

body.elementor-editor-preview .page-transition,
body.elementor-editor-preview .cursor,
body.elementor-editor-active .page-transition,
body.elementor-editor-active .cursor,
html.elementor-html .page-transition,
html.elementor-html .cursor,
html.elementor-html .scroll-progress {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* Editor canvas: keep widget boxes so sections are visible while editing. */
html.elementor-html .inner-main,
body.elementor-editor-preview .inner-main {
	overflow: visible !important;
}

html.elementor-html .elementor-widget[class*="elementor-widget-premium-plus-"],
html.elementor-html .elementor-widget[class*="elementor-widget-premium-plus-"] > .elementor-widget-container,
body.elementor-editor-preview .elementor-widget[class*="elementor-widget-premium-plus-"],
body.elementor-editor-preview .elementor-widget[class*="elementor-widget-premium-plus-"] > .elementor-widget-container,
body.elementor-editor-active .elementor-widget[class*="elementor-widget-premium-plus-"],
body.elementor-editor-active .elementor-widget[class*="elementor-widget-premium-plus-"] > .elementor-widget-container {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	height: auto !important;
	min-height: 0;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	float: none !important;
}

html.elementor-html .e-con,
html.elementor-html .e-con-inner,
body.elementor-editor-preview .e-con,
body.elementor-editor-preview .e-con-inner {
	overflow: visible !important;
	height: auto !important;
}

/*
 * Elementor frontend CSS is dequeued on marketing pages. Theme also forces
 * display:contents on GEMS widgets and display:block on containers — both
 * override Elementor's Hide On Desktop / Tablet / Mobile. Re-apply hide with
 * matching !important + higher specificity.
 */
@media (max-width: 767px) {
	.premium-plus-home .elementor .elementor-hidden-phone,
	.premium-plus-home .elementor .elementor-hidden-mobile,
	.premium-plus-inner .elementor .elementor-hidden-phone,
	.premium-plus-inner .elementor .elementor-hidden-mobile,
	.premium-plus-home .elementor > .e-con.elementor-hidden-phone,
	.premium-plus-home .elementor > .e-con.elementor-hidden-mobile,
	.premium-plus-inner .elementor > .e-con.elementor-hidden-phone,
	.premium-plus-inner .elementor > .e-con.elementor-hidden-mobile,
	.premium-plus-home .e-con.e-parent.elementor-hidden-phone,
	.premium-plus-home .e-con.e-parent.elementor-hidden-mobile,
	.premium-plus-inner .e-con.e-parent.elementor-hidden-phone,
	.premium-plus-inner .e-con.e-parent.elementor-hidden-mobile,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-home .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-phone,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-home .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-mobile,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-inner .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-phone,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-inner .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-mobile,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-home .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-phone > .elementor-widget-container,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-home .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-mobile > .elementor-widget-container,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-inner .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-phone > .elementor-widget-container,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-inner .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-mobile > .elementor-widget-container {
		display: none !important;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.premium-plus-home .elementor .elementor-hidden-tablet,
	.premium-plus-inner .elementor .elementor-hidden-tablet,
	.premium-plus-home .elementor > .e-con.elementor-hidden-tablet,
	.premium-plus-inner .elementor > .e-con.elementor-hidden-tablet,
	.premium-plus-home .e-con.e-parent.elementor-hidden-tablet,
	.premium-plus-inner .e-con.e-parent.elementor-hidden-tablet,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-home .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-tablet,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-inner .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-tablet,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-home .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-tablet > .elementor-widget-container,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-inner .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-tablet > .elementor-widget-container {
		display: none !important;
	}
}

@media (min-width: 1025px) {
	.premium-plus-home .elementor .elementor-hidden-desktop,
	.premium-plus-inner .elementor .elementor-hidden-desktop,
	.premium-plus-home .elementor > .e-con.elementor-hidden-desktop,
	.premium-plus-inner .elementor > .e-con.elementor-hidden-desktop,
	.premium-plus-home .e-con.e-parent.elementor-hidden-desktop,
	.premium-plus-inner .e-con.e-parent.elementor-hidden-desktop,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-home .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-desktop,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-inner .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-desktop,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-home .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-desktop > .elementor-widget-container,
	body:not(.elementor-editor-active):not(.elementor-editor-preview) .premium-plus-inner .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-desktop > .elementor-widget-container {
		display: none !important;
	}
}

/* Elementor editor / preview device switcher (not live viewport width). */
html.elementor-html [data-elementor-device-mode="mobile"] .elementor-hidden-mobile,
html.elementor-html [data-elementor-device-mode="mobile"] .elementor-hidden-phone,
html.elementor-html [data-elementor-device-mode="mobile_extra"] .elementor-hidden-mobile_extra,
html.elementor-html [data-elementor-device-mode="tablet"] .elementor-hidden-tablet,
html.elementor-html [data-elementor-device-mode="tablet_extra"] .elementor-hidden-tablet_extra,
html.elementor-html [data-elementor-device-mode="laptop"] .elementor-hidden-laptop,
html.elementor-html [data-elementor-device-mode="desktop"] .elementor-hidden-desktop,
html.elementor-html [data-elementor-device-mode="widescreen"] .elementor-hidden-widescreen,
html.elementor-html [data-elementor-device-mode="mobile"] .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-mobile,
html.elementor-html [data-elementor-device-mode="mobile"] .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-phone,
html.elementor-html [data-elementor-device-mode="mobile_extra"] .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-mobile_extra,
html.elementor-html [data-elementor-device-mode="tablet"] .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-tablet,
html.elementor-html [data-elementor-device-mode="tablet_extra"] .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-tablet_extra,
html.elementor-html [data-elementor-device-mode="laptop"] .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-laptop,
html.elementor-html [data-elementor-device-mode="desktop"] .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-desktop,
html.elementor-html [data-elementor-device-mode="widescreen"] .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-widescreen,
html.elementor-html [data-elementor-device-mode="mobile"] .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-mobile > .elementor-widget-container,
html.elementor-html [data-elementor-device-mode="mobile"] .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-phone > .elementor-widget-container,
html.elementor-html [data-elementor-device-mode="tablet"] .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-tablet > .elementor-widget-container,
html.elementor-html [data-elementor-device-mode="desktop"] .elementor-widget[class*="elementor-widget-premium-plus-"].elementor-hidden-desktop > .elementor-widget-container,
body.elementor-editor-preview [data-elementor-device-mode="mobile"] .elementor-hidden-mobile,
body.elementor-editor-preview [data-elementor-device-mode="mobile"] .elementor-hidden-phone,
body.elementor-editor-preview [data-elementor-device-mode="tablet"] .elementor-hidden-tablet,
body.elementor-editor-preview [data-elementor-device-mode="desktop"] .elementor-hidden-desktop {
	display: none !important;
}

.premium-plus-home .elementor-element,
.premium-plus-inner .elementor-element {
	--widgets-spacing: 0px !important;
	--widgets-spacing-row: 0px !important;
	--widgets-spacing-column: 0px !important;
}

.premium-plus-home .elementor-section.elementor-section-boxed > .elementor-container,
.premium-plus-home .e-con.e-con-boxed,
.premium-plus-inner .elementor-section.elementor-section-boxed > .elementor-container,
.premium-plus-inner .e-con.e-con-boxed {
	max-width: none !important;
}

/* Elementor must not shrink cover-fill media; responsive-images.css sets defaults */
.premium-plus-home .elementor img,
.premium-plus-home .elementor video,
.premium-plus-inner .elementor img,
.premium-plus-inner .elementor video {
	max-width: 100%;
	}

.premium-plus-home .hero img,
.premium-plus-home .hero video,
.premium-plus-home .showcase-card img,
.premium-plus-home .facet-visual img,
.premium-plus-home .experience-image img,
.premium-plus-home .how-image img,
.premium-plus-home .testimonial-media img,
.premium-plus-home .academic-tile img,
.premium-plus-home .academic-tile__media img,
.premium-plus-home .academic-feature__media img,
.premium-plus-home .social-card__media img,
.premium-plus-home .campus-acc__media img,
.premium-plus-home .life-panel img,
.premium-plus-home .motion-slide img,
.premium-plus-home .motion-slide__media img,
.premium-plus-home .campus-card__media img,
.premium-plus-home .life-feature__media img,
.premium-plus-home .wall-tile__media img,
.premium-plus-home .community-face__photo img,
.premium-plus-inner img.page-hero__media,
.premium-plus-inner .about-hero__bg img,
.premium-plus-inner [class*="__media"] img,
.premium-plus-inner [class*="__bg"] img,
.premium-plus-inner [class*="__image"] img,
.premium-plus-inner [class*="__photo"] img,
.premium-plus-inner .split-story__image img,
.premium-plus-inner .feature-card__image img,
.premium-plus-inner .gallery-item img,
.premium-plus-inner .phase-card img,
.premium-plus-inner .post-card img,
.premium-plus-inner .person-card__image img,
.premium-plus-inner .about-partners__item img {
	max-width: none;
	/* Override Elementor's height:auto — cover panels need height:100% + object-fit. */
	height: 100%;
}

/* Letter portrait is aspect-ratio cropped, not a cover-fill panel. */
.premium-plus-inner .principal-letter__photo img {
	width: 100%;
	max-width: 100%;
	height: auto;
}

/* Inner-page letter/CTA sections must stay full-bleed; Elementor flex
   items otherwise shrink to the breadcrumb/title width. */
.premium-plus-inner .principal-intro,
.premium-plus-inner .principal-letter,
.premium-plus-inner .principal-support,
.premium-plus-inner .elementor-widget-premium-plus-inner-page-content,
.premium-plus-inner .elementor-widget-premium-plus-inner-page-cta {
	width: 100%;
	max-width: none;
	align-self: stretch;
}

/*
 * Elementor canvas only. Public pages still use site.js scroll-reveal.
 * Preview does not load site.js, so [data-reveal] would stay opacity:0
 * (empty cream sections with only the wire pattern visible).
 */
html.elementor-html [data-reveal],
body.elementor-editor-active [data-reveal],
body.elementor-editor-preview [data-reveal] {
	opacity: 1 !important;
	transform: none !important;
	translate: none !important;
}

html.elementor-html [data-runway],
html.elementor-html .manifesto-runway,
body.elementor-editor-active [data-runway],
body.elementor-editor-active .manifesto-runway,
body.elementor-editor-preview [data-runway],
body.elementor-editor-preview .manifesto-runway {
	height: auto !important;
	min-height: 0 !important;
}

html.elementor-html .sticky-camera,
html.elementor-html .manifesto-camera,
body.elementor-editor-active .sticky-camera,
body.elementor-editor-active .manifesto-camera,
body.elementor-editor-preview .sticky-camera,
body.elementor-editor-preview .manifesto-camera {
	position: relative !important;
	height: auto !important;
	min-height: 0 !important;
	overflow: visible !important;
	inset: auto !important;
}

html.elementor-html .showcase-track,
html.elementor-html .facet-track,
html.elementor-html .motion-track,
body.elementor-editor-active .showcase-track,
body.elementor-editor-active .facet-track,
body.elementor-editor-active .motion-track,
body.elementor-editor-preview .showcase-track,
body.elementor-editor-preview .facet-track,
body.elementor-editor-preview .motion-track {
	display: grid !important;
	width: auto !important;
	height: auto !important;
	transform: none !important;
}

html.elementor-html .chapter-overlap__base,
html.elementor-html .chapter-overlap__depth,
html.elementor-html .chapter-overlap__cover,
body.elementor-editor-active .chapter-overlap__base,
body.elementor-editor-active .chapter-overlap__depth,
body.elementor-editor-active .chapter-overlap__cover,
body.elementor-editor-preview .chapter-overlap__base,
body.elementor-editor-preview .chapter-overlap__depth,
body.elementor-editor-preview .chapter-overlap__cover {
	position: relative !important;
	transform: none !important;
	opacity: 1 !important;
	top: auto !important;
}

html.elementor-html .manifesto-title,
html.elementor-html .manifesto-body,
html.elementor-html [data-manifesto-wire],
body.elementor-editor-active .manifesto-title,
body.elementor-editor-active .manifesto-body,
body.elementor-editor-active [data-manifesto-wire],
body.elementor-editor-preview .manifesto-title,
body.elementor-editor-preview .manifesto-body,
body.elementor-editor-preview [data-manifesto-wire] {
	opacity: 1 !important;
	transform: none !important;
	translate: none !important;
}
