/* CHP v0.5.0 source-fidelity guard.
 * The immutable Claude design-system and inline CSS are loaded separately and remain untouched.
 * These rules neutralise only Elementor's outer document wrappers so the original source DOM
 * receives the same viewport width it had in the source application.
 */
html,body{margin:0;padding:0}
body{overflow-x:hidden}
#chp-main{min-height:1px;width:100%;max-width:none;margin:0;padding:0}

/* The page/template root must never become Elementor's default boxed 1140/1200px canvas.
 * CHP source sections contain their own exact max-width:1200px inner wrappers and margins. */
#chp-main>.elementor,
#chp-main>.elementor>.e-con.e-parent,
#chp-main .elementor[data-elementor-type="wp-page"]>.e-con.e-parent,
.elementor-location-header>.elementor,
.elementor-location-header .elementor[data-elementor-type="header"]>.e-con.e-parent,
.elementor-location-footer>.elementor,
.elementor-location-footer .elementor[data-elementor-type="footer"]>.e-con.e-parent{
  width:100%!important;
  max-width:none!important;
  --width:100%!important;
  --content-width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* Seeded CHP top-level wrapper containers are transport wrappers only. The source section owns
 * spacing. Prevent Elementor's container defaults from adding a second gutter/gap. */
#chp-main .elementor[data-elementor-type="wp-page"]>.e-con.e-parent,
.elementor-location-header .elementor[data-elementor-type="header"]>.e-con.e-parent,
.elementor-location-footer .elementor[data-elementor-type="footer"]>.e-con.e-parent{
  padding:0!important;
  gap:0!important;
}

/* Custom CHP widgets must occupy the full transport wrapper. */
#chp-main .elementor-widget-chp-source-section,
#chp-main .elementor-widget-chp-page-hero,
#chp-main .elementor-widget-chp-project-grid,
#chp-main .elementor-widget-chp-project-detail,
#chp-main .elementor-widget-chp-map,
#chp-main .elementor-widget-chp-gallery,
#chp-main .elementor-widget-chp-report-filter,
#chp-main .elementor-widget-chp-careers,
#chp-main .elementor-widget-chp-cf7,
.elementor-location-header .elementor-widget-chp-header,
.elementor-location-footer .elementor-widget-chp-footer{
  width:100%!important;
  max-width:none!important;
  min-width:0;
}

.elementor-widget-chp-header>.elementor-widget-container,
.elementor-widget-chp-footer>.elementor-widget-container,
.elementor-widget-chp-page-hero>.elementor-widget-container,
.elementor-widget-chp-source-section>.elementor-widget-container,
.elementor-widget-chp-map>.elementor-widget-container,
.elementor-widget-chp-project-grid>.elementor-widget-container,
.elementor-widget-chp-project-detail>.elementor-widget-container,
.elementor-widget-chp-gallery>.elementor-widget-container,
.elementor-widget-chp-report-filter>.elementor-widget-container,
.elementor-widget-chp-careers>.elementor-widget-container,
.elementor-widget-chp-cf7>.elementor-widget-container{margin:0!important;padding:0!important;width:100%!important;max-width:none!important}

/* Containment only: nested widgets may still be edited normally. */
#chp-main .e-con,#chp-main .elementor-widget,#chp-main .elementor-widget-container,
.elementor-location-header .e-con,.elementor-location-footer .e-con{min-width:0}
.elementor-widget-text-editor p:last-child{margin-bottom:0}
.chp-source-button{font-family:var(--font-sans);text-decoration:none}

/* Prevent the source hero/header from being clipped by Elementor wrapper overflow settings. */
#chp-main .elementor-widget-chp-source-section>.elementor-widget-container,
.elementor-location-header .elementor-widget-chp-header>.elementor-widget-container,
.elementor-location-footer .elementor-widget-chp-footer>.elementor-widget-container{overflow:visible!important}
#chp-main .elementor[data-elementor-type="wp-page"]>.e-con.e-parent>.e-con-inner,
.elementor-location-header .elementor[data-elementor-type="header"]>.e-con.e-parent>.e-con-inner,
.elementor-location-footer .elementor[data-elementor-type="footer"]>.e-con.e-parent>.e-con-inner{width:100%!important;max-width:100%!important;padding:0!important;margin:0!important}
