/* Neutralise Elementor wrappers so the original design-system CSS renders unchanged */
.elementor-widget-html > .elementor-widget-container { margin: 0 !important; padding: 0 !important; }
.e-con.cosmo-sec, .e-con.cosmo-sec > .e-con-inner { padding: 0 !important; margin: 0 !important; gap: 0 !important; --gap: 0px; --padding-top:0px; --padding-right:0px; --padding-bottom:0px; --padding-left:0px; max-width: none !important; }
.cosmo-sec .elementor-widget { width: 100%; margin: 0 !important; }
.page-content, .elementor { margin: 0; padding: 0; }
body.elementor-default, body { margin: 0; }

/* decorative hero layers must never swallow clicks (careers hero button) */
.hero-bg, .page-hero::before, .page-hero::after { pointer-events: none; }
.page-hero .container { position: relative; z-index: 1; }

/* Native Elementor sections (containers + widgets) that reuse the design-system classes */
.e-con.cosmo-n { --gap: 0px; --row-gap: 0px; --column-gap: 0px; --widgets-spacing: 0px; --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; }
.cosmo-n .elementor-widget { margin: 0; width: 100%; }
.cosmo-n .elementor-widget > .elementor-widget-container { margin: 0; padding: 0; }
.cosmo-n h2.elementor-heading-title { font-family: var(--ff-display); font-size: clamp(1.85rem, 3.3vw, 2.65rem); font-weight: 700; line-height: 1.12; letter-spacing: -.022em; color: var(--ink); }
.cosmo-n .elementor-widget-text-editor { font-family: var(--ff-body); color: inherit; font-size: inherit; line-height: inherit; }

/* Converted native containers: behave like the original plain blocks; original class rules (grid/flex/padding) still win */
.e-con.cosmo-n { --display: block; --flex-wrap: nowrap; --width: auto; --min-width: 0px; }
.e-con.cosmo-n.e-flex { --display: block; }
.cosmo-n > .elementor-widget, .cosmo-n .elementor-widget { min-width: 0; }
/* span-tag heading widgets were flex items in the original design: keep their box model (margin/padding) */
.cosmo-n .elementor-widget-heading > .elementor-widget-container > span { display: inline-block; }

/* Elementor editor / preview: the scroll-reveal script never runs for widgets rendered by the editor, so never hide them there */
.elementor-editor-active .reveal, .elementor-editor-preview .reveal, body[class*="elementor-editor"] .reveal,
.elementor-editor-active .reveal .kicker, .elementor-editor-preview .reveal .kicker,
.elementor-editor-active .hero-entrance > *, .elementor-editor-preview .hero-entrance > * {
  opacity: 1 !important; transform: none !important; animation: none !important; transition: none !important;
}
.elementor-editor-active .site-header, .elementor-editor-active .cbar-shell { pointer-events: none; }
/* image widgets: let the <img> sit directly in its container so the original .x img rules (height:100%, object-fit) work */
.cosmo-n .elementor-widget-image, .cosmo-n .elementor-widget-image > .elementor-widget-container { display: contents; }
/* absolutely positioned pieces (badges, overlays) must anchor to the original card/section, not to Elementor's widget wrapper */
.cosmo-n .elementor-widget { position: static; }
/* absolutely positioned leaf elements must not leave an empty flex item (extra gap) behind */
.cosmo-n .elementor-widget:has(> .elementor-widget-container > .case-badge), .cosmo-n .elementor-widget:has(> .elementor-widget-container > .case-badge) > .elementor-widget-container { display: contents; }
/* Elementor 4 optimised markup: no .elementor-widget-container wrapper */
.cosmo-n .elementor-widget-heading:has(> span) { display: flex; flex-direction: column; }
.cosmo-n .elementor-widget:has(> .case-badge) { display: contents; }
/* Hello Elementor theme styles .site-header / .site-footer (padding, flex); the design system owns them here */
#site-header.site-header { padding: 0; display: block; }
