/* Dunzy Opportunities 0.5.6 | all seven page layout contract.
   Source of authority: existing Elementor class names, not inferred DOM order.
   Applies to page IDs 4132-4138; does not affect the site footer or other pages. */
:where(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138) {
  --dz56-section:64px;
  --dz56-card-gap:24px;
  --dz56-panel-pad:30px;
  --dz56-label-gap:12px;
  --dz56-heading-gap:22px;
  --dz56-paragraph-gap:28px;
}
/* Top-level sections. The Elementor hierarchy remains editable; nested grids
   and tiles deliberately do NOT receive outer section margins. */
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
  .elementor > .e-con.e-parent:is(.dzop21-shell,.dzop53-section,.dzop55-section),
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
  .elementor > .e-con:not(.e-child):is(.dzop21-shell,.dzop53-section,.dzop55-section) {
  box-sizing:border-box!important;
  margin-block-start:var(--dz56-section)!important;
  margin-block-end:0!important;
}
/* Fallback for Elementor revisions with an extra outer wrapper; only documented
   page section classes are targeted, never nested cards or inner copy wrappers. */
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
  .elementor-element:is(.dzop21-intro,.dzop21-hero,.dzop21-lead,.dzop21-split,.dzop21-opportunities,.dzop21-quote,.dzop21-highlight,.dzop21-cta,.dzop50-about,.dzop50-benefits,.dzop50-step-grid,.dzop50-job-board,.dzop50-feature,.dzop50-form,.dzop53-section,.dzop55-section):not(.dzop55-panel):not(.dzop55-grid):not(.dzop53-grid):not(.dzop53-tile):not(.dzop50-step) {
  margin-block-start:var(--dz56-section)!important;
  margin-block-end:0!important;
}
/* First introduction stays snug beneath the header; hero immediately after intro
   still has its own measured transition rather than theme defaults. */
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
  .elementor-element.dzop21-intro {margin-block-start:28px!important;padding-block:0!important;}
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
  .elementor-element.dzop21-hero {margin-block-start:30px!important;}
/* Normalize outer whitespace, never erase the interior padding of featured
   panels, colored backgrounds, image frames, or callout boxes. */
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
  .elementor-element:is(.dzop50-about,.dzop50-benefits,.dzop50-job-board,.dzop50-form,.dzop21-lead,.dzop21-opportunities,.dzop55-section:not(.dzop55-note)) {
  padding-block:0!important;
}
/* Section title anatomy: kicker -> heading -> intro -> module. Elementor
   widget margins are explicitly reset, so no margin collapse / touching. */
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element:is(.dzop50-about,.dzop50-benefits,.dzop50-form,.dzop53-section,.dzop55-section,.dzop21-intro) > .elementor-widget-heading:first-child {
  margin:0 0 var(--dz56-label-gap)!important;
}
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element:is(.dzop50-about,.dzop50-benefits,.dzop50-form,.dzop53-section,.dzop55-section,.dzop21-intro) > .elementor-widget-heading:nth-child(2) {
  margin:0 0 var(--dz56-heading-gap)!important;
}
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element:is(.dzop50-about,.dzop50-form,.dzop53-section,.dzop55-section,.dzop21-intro) > .elementor-widget-text-editor {
  margin:0 0 var(--dz56-paragraph-gap)!important;
}
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element:is(.dzop50-about,.dzop50-form,.dzop53-section,.dzop55-section) > .elementor-widget-text-editor:last-child {
  margin-bottom:0!important;
}
/* Nested grids and their actual children. No edge-touching labels or text. */
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element:is(.dzop55-grid,.dzop53-grid,.dzop21-card-grid,.dzop50-step-grid) {
  gap:var(--dz56-card-gap)!important;
  row-gap:var(--dz56-card-gap)!important;
  align-items:stretch!important;
  margin-block:0!important;
}
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element:is(.dzop55-panel,.dzop53-tile,.dzop50-step) {
  box-sizing:border-box!important;
  padding:var(--dz56-panel-pad)!important;
  margin:0!important;
  min-width:0!important;
  min-height:0!important;
}
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element:is(.dzop55-panel,.dzop53-tile,.dzop50-step) > .elementor-widget-heading:first-child {
  margin:0 0 12px!important;
}
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element:is(.dzop55-panel,.dzop53-tile,.dzop50-step) > .elementor-widget-heading:nth-child(2) {
  margin:0 0 16px!important;
}
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element:is(.dzop55-panel,.dzop53-tile,.dzop50-step) > .elementor-widget-text-editor {
  margin:0!important;
}
/* Notes, side callouts, feature split, process panels: preserve their approved
   backgrounds and color identities, but give their contents actual breathing room. */
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element:is(.dzop55-note,.dzop53-partner-statement,.dzop53-event-playbook,.dzop53-city-roadmap,.dzop21-quote,.dzop21-highlight,.dzop50-feature) {
  padding:clamp(26px,3vw,42px)!important;
  box-sizing:border-box!important;
}
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element:is(.dzop55-note,.dzop53-partner-statement,.dzop21-quote) > .elementor-widget-heading:first-child {
  margin:0 0 12px!important;
}
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element:is(.dzop55-note,.dzop53-partner-statement,.dzop21-quote) > .elementor-widget-heading:nth-child(2) {
  margin:0 0 22px!important;
}
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element:is(.dzop55-note,.dzop53-partner-statement,.dzop21-quote) > .elementor-widget-text-editor {
  margin:0!important;
}
/* Forms and CTA are separate major sections, regardless of dynamic shortcode
   content (job listings, consent checkbox, private submission handling). */
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element.dzop50-form {margin-block-start:var(--dz56-section)!important;}
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element.dzop21-cta {margin:72px auto 70px!important;}
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .dzop50-form .dunzy-growth-form {row-gap:22px!important;}
/* Photo cards retain 4:3 locked frames; split/hero images keep their own format. */
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element.dzop21-card-photo {aspect-ratio:4/3!important;overflow:hidden!important;}
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element.dzop21-card-photo img {width:100%!important;height:100%!important;aspect-ratio:4/3!important;object-fit:cover!important;}
/* Make card stacks breathe even when Elementor builds them as columns rather
   than CSS grid: in that case use inner parent gap, not margins on children. */
:is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
 .elementor-element.dzop53-ambassador-steps {row-gap:24px!important;}
@media(max-width:767px){
 :where(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138){
  --dz56-section:44px;--dz56-card-gap:18px;--dz56-panel-pad:22px;--dz56-heading-gap:18px;--dz56-paragraph-gap:22px;
 }
 :is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
  .elementor-element:is(.dzop55-note,.dzop53-partner-statement,.dzop53-event-playbook,.dzop53-city-roadmap,.dzop21-quote,.dzop21-highlight,.dzop50-feature){padding:24px 22px!important;}
 :is(body.page-id-4132,body.page-id-4133,body.page-id-4134,body.page-id-4135,body.page-id-4136,body.page-id-4137,body.page-id-4138)
  .elementor-element.dzop21-cta{margin:52px auto 48px!important;}
}
