@charset "UTF-8";
/* Former 03-components/_legacy.scss, split 1:1 in original order
   (perf pass 2/3 prep). Load order is cascade-significant — these
   stay first, exactly where the monolith sat. */
/* =================================================================
 * Section: Paragraph / basic copy block
 * Figma: UI Standards — paragraph/basic
 * First use: About DMEC intro
 * ================================================================= */
body.dmec-redesign-active .elementor-widget.intro-text .elementor-widget-container {
  max-width: 840px;
  margin-inline: auto;
}

body.dmec-redesign-active .elementor-widget.intro-text.intro-text p {
  margin: 0;
  font-size: 18px;
  line-height: 1.65;
  color: var(--dmec-color-heading);
  text-wrap: pretty;
}

/* =================================================================
 * Section: Infobox / action  (CTA blocks)
 * Figma: UI Standards — infobox/action
 * First use: About DMEC Become-a-Member + Contact CTAs
 * ================================================================= */
body.dmec-redesign-active .page-section__cta-2-col-teal {
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0;
  gap: 0;
}

/* --- Panel layout (generic, non-page-scoped) ----------------------- */
body.dmec-redesign-active .page-section__cta-2-col-teal > .e-con,
body.dmec-redesign-active .page-section__cta-2-col-teal > .e-con-inner > .e-con {
  min-height: 100%;
  /* BugZap #23: title → divider and divider → text are each 16px. */
  gap: 16px;
  justify-content: flex-end;
  padding: 60px 40px;
}

/* Keep the original 32px of air above the button now that the panel
   gap tightened to 16px for the heading/divider/text cluster.
   The button/text widget containers ship ~10px of their own padding,
   which pushed the VISIBLE gap to 42px — the reviewed About comp
   (Figma 1483:13217) shows ~32px text -> button. Zero them so the
   16px gap + 16px margin is what actually renders. */
body.dmec-redesign-active .page-section__cta-2-col-teal .elementor-widget-button {
  margin-top: 16px;
}

body.dmec-redesign-active .page-section__cta-2-col-teal .elementor-widget-button > .elementor-widget-container,
body.dmec-redesign-active .page-section__cta-2-col-teal .elementor-widget-text-editor > .elementor-widget-container {
  padding-top: 0;
  padding-bottom: 0;
}

/* Teal CTA panel backgrounds — Figma Secondary/Blue-Green 700 + 800
   per designer comments #360, #371.

   SCSS optimization pass: CLASS-ONLY (page-id guards removed). The
   one conflict — Cert & Training 531 carried this class on a band
   that is actually the BLUE variant — is resolved content-side: the
   migrate command strips the stale teal class from 7fc27d33@531
   (COMPONENT_CLASS_REMOVALS). Any page or clone carrying the teal
   class now gets the canonical teal pair. Double-chained for (0,4,1)
   over per-element Elementor backgrounds. */
body.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal > .e-con:first-child,
body.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal > .e-con-inner > .e-con:first-child {
  background-color: var(--dmec-secondary-bg-700);
}

body.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal > .e-con:nth-child(2),
body.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal > .e-con-inner > .e-con:nth-child(2) {
  background-color: var(--dmec-secondary-bg-800);
}

/* --- Heading typography (teal CTA) ---------------------------------- */
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal .elementor-heading-title {
  font-family: var(--dmec-font-family-body);
  font-size: 24px;
  font-weight: 700;
  line-height: var(--dmec-h02-lh);
  color: var(--dmec-white);
  text-wrap: balance;
}

/* --- Body text (teal CTA) ------------------------------------------ */
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal .elementor-widget-text-editor,
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal .elementor-widget-text-editor p {
  font-family: var(--dmec-font-family-body);
  font-size: 18px;
  font-weight: 400;
  line-height: var(--dmec-body-lg-lh);
  color: var(--dmec-white);
}

/* --- Inline links (teal CTA) ---------------------------------------
 *
 * BugZap #197 wrapped the bare support email in a `mailto:` anchor via
 * `dmec_redesign_linkify_emails()`. Before that the address was plain
 * text, so it inherited the white `p` colour above and looked correct.
 *
 * The band had never contained an inline anchor, so nothing in this
 * component claimed one — the new link fell through to the global
 * `body.dmec-redesign-active :where(#main-container) a` rule in
 * dmec-base.css and rendered `--dmec-color-link` blue on teal:
 * 1.07:1 contrast, effectively invisible.
 *
 * Mirrors the `page-section__band-dark` treatment in
 * _certification-training.scss. All four states are pinned so hover /
 * focus can't revert to the link colour; the inherited underline
 * carries the affordance, so colour is not the only signal.
 *
 * Scoped to `.elementor-widget-text-editor` on purpose — button
 * anchors (`.elementor-widget-button .elementor-button`) already
 * render white and are styled below.
 */
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal .elementor-widget-text-editor a,
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal .elementor-widget-text-editor a:hover,
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal .elementor-widget-text-editor a:focus,
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal .elementor-widget-text-editor a:active {
  color: var(--dmec-white);
  text-decoration: underline;
}

/* --- Button (teal CTA) --------------------------------------------- */
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal .elementor-button {
  font-family: var(--dmec-font-family-body);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.24;
  letter-spacing: 0.01em;
}

body.dmec-redesign-active.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal .elementor-button-text {
  font-family: var(--dmec-font-family-body);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.24;
  letter-spacing: 0.01em;
  color: var(--dmec-white);
}

/* --- Divider (teal CTA) ------------------------------------------- */
body.dmec-redesign-active .page-section__cta-2-col-teal .elementor-divider {
  padding-block: 0;
}

body.dmec-redesign-active .page-section__cta-2-col-teal .elementor-divider-separator {
  width: 120px;
  border-color: rgba(255, 255, 255, 0.4);
}

/* --- Responsive: teal CTA panels ----------------------------------- */
@media (max-width: 767px) {
  body.dmec-redesign-active .page-section__cta-2-col-teal > .e-con,
  body.dmec-redesign-active .page-section__cta-2-col-teal > .e-con-inner > .e-con {
    padding: 48px 24px;
  }
}
/* =================================================================
 * Component: Outlined (secondary) button
 *
 * Figma button/basic Variant=Outlined (119:4060 default, 119:4085
 * hovered): white surface, 1px Primary/600 border, Primary/700 bold
 * 16/1.24 label, 4px radius, 56px height. Hover swaps to a 2px
 * Primary/500 ring — rendered as border + inset ring so the button
 * geometry never shifts on hover (round-3 #76 class of bug).
 *
 * Applied via `dmec-button--outline` stamped on the demoted button
 * WIDGETS by the migrate command ("only one button can be primary" —
 * round-3 #78, #111). Chained (0,4,1)+ to beat Elementor's
 * per-element button colors.
 *
 * BugZap #148/#149: the DMECommunities "Follow these steps" CTA is an
 * Elementor GLOBAL widget (elementor-global-3893). Its class list is
 * rendered from the global template, not the page placement, so a
 * `dmec-button--outline` stamp written into a page's _elementor_data
 * never reaches the output element. The stable `.elementor-global-3893`
 * class is on every placement, so it is added as a parallel hook to
 * each rule below (chained for specificity parity).
 * ================================================================= */
body.dmec-redesign-active .dmec-button--outline.dmec-button--outline .elementor-button,
body.dmec-redesign-active .elementor-global-3893.elementor-global-3893.elementor-global-3893 .elementor-button {
  background: var(--dmec-white);
  border: 1px solid var(--dmec-primary-600);
  border-radius: 4px;
  color: var(--dmec-primary-700);
  min-height: 56px;
  padding: 16px 24px;
  font-family: var(--dmec-font-family-body);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.24;
  letter-spacing: 0.01em;
  box-shadow: none;
}

body.dmec-redesign-active .dmec-button--outline.dmec-button--outline .elementor-button .elementor-button-text,
body.dmec-redesign-active .elementor-global-3893.elementor-global-3893.elementor-global-3893 .elementor-button .elementor-button-text {
  color: var(--dmec-primary-700);
}

body.dmec-redesign-active .dmec-button--outline.dmec-button--outline .elementor-button:hover,
body.dmec-redesign-active .dmec-button--outline.dmec-button--outline .elementor-button:focus,
body.dmec-redesign-active .elementor-global-3893.elementor-global-3893.elementor-global-3893 .elementor-button:hover,
body.dmec-redesign-active .elementor-global-3893.elementor-global-3893.elementor-global-3893 .elementor-button:focus {
  background: var(--dmec-white);
  border-color: var(--dmec-primary-500);
  /* 1px border + 1px inset ring = the comp's 2px ring, no layout
     shift. */
  box-shadow: inset 0 0 0 1px var(--dmec-primary-500);
  color: var(--dmec-primary-700);
  text-decoration: none;
}

body.dmec-redesign-active .dmec-button--outline.dmec-button--outline .elementor-button:hover .elementor-button-text,
body.dmec-redesign-active .elementor-global-3893.elementor-global-3893.elementor-global-3893 .elementor-button:hover .elementor-button-text {
  color: var(--dmec-primary-700);
}

body.dmec-redesign-active .dmec-button--outline.dmec-button--outline .elementor-button:focus-visible,
body.dmec-redesign-active .elementor-global-3893.elementor-global-3893.elementor-global-3893 .elementor-button:focus-visible {
  outline: 2px solid var(--dmec-color-focus-ring);
  outline-offset: 2px;
}

/* =================================================================
 * Variant: Magenta button (round-4 #91)
 *
 * The Annual Conference "Register today" hero CTA is the brand
 * magenta (Tertiary/700) with a white border. The sitewide canonical
 * hover flips buttons to Primary/900 navy, which reads as a broken
 * state on a magenta button. This variant keeps the button in its
 * own family: hover darkens one step to Tertiary/800.
 *
 * (0,4,0) + later source order beats the canonical hover (0,3,0).
 * Stamped on the widget by the migrate command (38bffcc8@23342).
 * ================================================================= */
body.dmec-redesign-active.dmec-redesign-active .dmec-button--magenta .elementor-button:hover,
body.dmec-redesign-active.dmec-redesign-active .dmec-button--magenta .elementor-button:focus-visible {
  background-color: var(--dmec-tertiary-800);
  border-color: var(--dmec-white);
  color: var(--dmec-white);
  text-decoration: none;
}

/* =================================================================
 * Variant: Button on a colored band (round-4 #86)
 *
 * Band CTAs ship a 1px white border over photo/colored sections
 * (kaleta hero "Submit your nomination"). The generic canonical
 * hover repaints border-color Primary/900, which erases the white
 * ring mid-hover and reads as a broken state on the band. Mirror the
 * cta-2-col band treatment: darken the fill, keep the white ring.
 * Stamped by the migrate command (c7281a9@21853).
 * ================================================================= */
body.dmec-redesign-active.dmec-redesign-active .dmec-button--on-band .elementor-button:hover,
body.dmec-redesign-active.dmec-redesign-active .dmec-button--on-band .elementor-button:focus-visible {
  background-color: var(--dmec-primary-900);
  border-color: var(--dmec-white);
  color: var(--dmec-white);
  text-decoration: none;
}

/* =================================================================
 * Page: Conferences & Webinars
 * Figma node: 721:18738
 * Post: 523 / slug conferences-and-webinars
 * ================================================================= */
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-f217016,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-17e4fa18,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-5553793e {
  max-width: 1280px;
  margin-inline: auto;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-f217016 {
  padding: 40px;
  text-align: center;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-205a452 .elementor-heading-title {
  color: #2f2f2f;
  font-size: clamp(32px, 3vw, 42px);
  line-height: 1.08;
  letter-spacing: 0;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-96f05d8 > .elementor-widget-container {
  max-width: 60ch;
  margin: 12px auto 0;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-58fcc31 .elementor-button {
  padding: 15px 36px;
}

/* Section spacing — matches the canonical 80 px visual-gap pattern:
   intro (f217016) padding-bottom 40 px + this margin-top 40 px = 80 px.
   Bottom: 0 px — the following .page-section__latest-news carries its
   own margin-top (80 px) which provides the gap to the news section.
   CSS custom property overrides ensure we win over .e-con defaults
   without. Requires `wp dmec redesign clean-element-settings`. */
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 {
  --margin-top: 40px;
  --margin-bottom: 0px;
  --padding-top: 0px;
  --padding-right: 40px;
  --padding-bottom: 0px;
  --padding-left: 40px;
  padding: 0 40px 0;
  margin-top: 40px;
  margin-bottom: 0;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-32469d5 {
  --gap: 32px;
  gap: 32px;
  max-width: 1200px;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid > .e-con {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 6px 18px rgba(20, 40, 80, 0.08);
  transition: background-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid > .e-con:hover,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid > .e-con:focus-within {
  background: var(--dmec-primary-900);
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(20, 40, 80, 0.12);
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid > .e-con > .elementor-widget-image img {
  aspect-ratio: 1.45;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid .subpage-grid-card-bottom {
  /* BugZap #186: pack copy from the top. The Elementor e-con defaults let the
     copy distribute to the bottom of the equal-height card; pin it to a
     top-aligned flex column. */
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  flex: 1 1 auto;
  gap: 16px;
  padding: 40px;
  border: 0;
  background: var(--dmec-white);
  transition: background-color 180ms ease;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid .subpage-grid-card-bottom h4,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid .subpage-grid-card-bottom h4 a {
  color: #2455a6;
  font-size: 24px;
  line-height: 1.15;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid > .e-con:hover .subpage-grid-card-bottom h4 a,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid > .e-con:focus-within .subpage-grid-card-bottom h4 a {
  color: var(--dmec-white);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid .subpage-grid-card-bottom .elementor-widget-text-editor,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid .subpage-grid-card-bottom .elementor-widget-text-editor p {
  color: #5b5b5b;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid > .e-con:hover .subpage-grid-card-bottom,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid > .e-con:focus-within .subpage-grid-card-bottom {
  background: var(--dmec-primary-900);
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid > .e-con:hover .subpage-grid-card-bottom .elementor-widget-text-editor,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid > .e-con:hover .subpage-grid-card-bottom .elementor-widget-text-editor p,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid > .e-con:focus-within .subpage-grid-card-bottom .elementor-widget-text-editor,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867 .subpage-grid > .e-con:focus-within .subpage-grid-card-bottom .elementor-widget-text-editor p {
  color: var(--dmec-neutral-warm-100);
}

body.dmec-redesign-active.page-id-523 .page-section__ads-square {
  display: none;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-17e4fa18 {
  --margin-left: calc(50% - 50vw);
  --margin-right: calc(50% - 50vw);
  --margin-top: 80px;
  --margin-block-start: 80px;
  --padding-top: 0px;
  --padding-right: 0px;
  --padding-bottom: 0px;
  --padding-left: 0px;
  --gap: 0px;
  width: 100vw;
  max-width: none;
  margin-top: 80px !important;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0;
  gap: 0;
  background: transparent;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-global-4212 .elementor-heading-title {
  font-family: "myriad-pro", sans-serif;
  font-size: 24px;
  line-height: 1.25;
  text-wrap: balance;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-global-4212 > .elementor-widget-container {
  margin-bottom: 32px;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-6887fb43 {
  max-width: 460px;
  margin-inline: auto;
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news > .e-con-inner,
body.dmec-redesign-active.page-id-523 .page-section__cta-2-col-teal > .e-con-inner,
body.dmec-redesign-active.page-id-523 .footer-sponsors-section > .e-con-inner {
  max-width: 1200px;
  margin-inline: auto;
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news > .e-con-inner {
  padding: 0;
  gap: 0 48px;
  align-items: start;
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news .latest-news-col-1 {
  max-width: 540px;
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news .latest-news-col-2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: flex-start;
  max-width: 400px;
  margin: 0;
  text-align: center;
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news .latest-news-col-2::after {
  content: "";
  display: block;
  width: 44px;
  height: 10px;
  margin: 12px auto 0;
  background: radial-gradient(circle, #7d7d7d 0 4px, transparent 4.5px) 0 50%/10px 10px no-repeat, radial-gradient(circle, #bdbdbd 0 4px, transparent 4.5px) 50% 50%/10px 10px no-repeat, radial-gradient(circle, #bdbdbd 0 4px, transparent 4.5px) 100% 50%/10px 10px no-repeat;
}

/* Swiper / loop-carousel height overrides — Elementor's JS sets
   inline `style="height: Xpx"` on these elements. Inline styles are
   (1,0,0) specificity which only can beat from a
   stylesheet. These six rules are the ONLY place in the Conferences
   block where is retained — they fight JS-injected inline
   styles, not stored Elementor settings, so the CLI cleanup can't
   help. TODO: replace with a JS hook that strips the inline height
   after Swiper init. */
body.dmec-redesign-active.page-id-523 .page-section__latest-news .swiper {
  display: block;
  max-width: 400px;
  margin-inline: auto;
  margin-bottom: 0;
  height: auto;
  grid-template-rows: auto !important; /* fights inline style */
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news .elementor-widget-loop-carousel,
body.dmec-redesign-active.page-id-523 .page-section__latest-news .elementor-widget-loop-carousel > .elementor-widget-container {
  height: auto !important; /* fights inline style */
  min-height: 0 !important; /* fights inline style */
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news .swiper-wrapper,
body.dmec-redesign-active.page-id-523 .page-section__latest-news .swiper-slide,
body.dmec-redesign-active.page-id-523 .page-section__latest-news .swiper-slide > .elementor-element,
body.dmec-redesign-active.page-id-523 .page-section__latest-news .swiper-slide .elementor-element-32cd0ac {
  height: auto !important; /* fights inline style */
  min-height: 0 !important; /* fights inline style */
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news .elementor-global-4215 .swiper-slide > .elementor-element {
  height: auto !important; /* fights inline style */
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news .elementor-element.elementor-element-87d5605 .elementor-widget-container {
  overflow: hidden;
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news .elementor-element.elementor-element-87d5605 img {
  display: block;
  width: 100%;
  height: 240px;
  object-fit: cover;
  object-position: center center;
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news .elementor-widget-heading.elementor-global-4211 > .elementor-widget-container {
  margin-bottom: 24px;
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news #post-titles-list .post-title-link {
  padding: 20px 0;
  font-size: 20px;
  line-height: 1.35;
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news .swiper-slide .elementor-element-db0e714 .elementor-heading-title {
  font-size: 20px;
  line-height: 1.25;
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news .swiper-slide .elementor-element-873193f .elementor-widget-container,
body.dmec-redesign-active.page-id-523 .page-section__latest-news .swiper-slide .elementor-element-eaa18b7 .elementor-heading-title,
body.dmec-redesign-active.page-id-523 .page-section__latest-news .swiper-slide .elementor-element-eaa18b7 .elementor-heading-title a {
  font-size: 16px;
  line-height: 1.5;
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news .elementor-swiper-button {
  display: none;
}

body.dmec-redesign-active.page-id-523 .page-section__latest-news .swiper-pagination,
body.dmec-redesign-active.page-id-523 .page-section__latest-news .swiper-pagination-clickable,
body.dmec-redesign-active.page-id-523 .page-section__latest-news .swiper-pagination-bullets {
  margin-top: 12px;
}

body.dmec-redesign-active.page-id-523 .page-section__cta-2-col-teal {
  margin-top: 0;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-585a56f7,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-52334dd6 {
  justify-content: center;
  gap: 24px;
  padding: 48px 36px;
  min-height: 256px;
}

body.dmec-redesign-active.page-id-523 .page-section__cta-2-col-teal .elementor-widget-heading > .elementor-widget-container,
body.dmec-redesign-active.page-id-523 .page-section__cta-2-col-teal .elementor-widget-text-editor > .elementor-widget-container,
body.dmec-redesign-active.page-id-523 .page-section__cta-2-col-teal .elementor-widget-button > .elementor-widget-container,
body.dmec-redesign-active.page-id-523 .page-section__cta-2-col-teal .elementor-widget-divider {
  margin: 0;
}

body.dmec-redesign-active.page-id-523 .page-section__cta-2-col-teal .elementor-widget-divider {
  padding: 0;
}

body.dmec-redesign-active.page-id-523 .page-section__cta-2-col-teal .elementor-widget-text-editor p {
  margin: 0;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-52334dd6,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-52334dd6 .elementor-widget-container,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-52334dd6 .elementor-heading-title,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-52334dd6 .elementor-widget-text-editor,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-52334dd6 .elementor-widget-text-editor p {
  text-align: center;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-52334dd6 .elementor-element-36ca7841,
body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-52334dd6 .elementor-element-36ca7841 > .elementor-widget-container {
  max-width: 440px;
  margin-inline: auto;
}

body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-52334dd6 .elementor-button-wrapper {
  text-align: center;
}

body.dmec-redesign-active.page-id-523 .page-section__cta-2-col-teal .elementor-button {
  border: 1px solid rgba(255, 255, 255, 0.9);
}

/* CTA buttons inside the dark-bg `page-section__cta-2-col-*` sections
   need a 1-px white border per Figma — without it the flat blue
   button reads as floating against the navy/teal section bg. The
   page-id-523 rule above only covers `_-teal` on Calendar of Events;
   this rule extends the treatment to any cta-2-col variant (-teal,
   -blue, future variants) on every redesign-active page (Membership +
   children, etc.). */
body.dmec-redesign-active [class*=page-section__cta-2-col] .elementor-button {
  border: 1px solid rgba(255, 255, 255, 0.9);
}

/* CTA button hover — override Elementor's default purple hover with
   Primary/800 for a consistent dark-navy shift on all CTA variants
   (navy and teal). The `_section-cta-2-col-blue.scss` component already
   has its own :hover rule at a higher specificity; this wildcard catches
   teal + any future variant that would otherwise fall through to
   Elementor's magenta. */
/* Elementor's button widget generates hover background-color from its
   own settings at specificity (0,4,0). Our (0,3,1) loses without a
   bump. Adding .elementor-button-link brings us to (0,4,1). */
body.dmec-redesign-active [class*=page-section__cta-2-col] .elementor-button.elementor-button-link:hover,
body.dmec-redesign-active .page-section__cta-3-col-teal-v2 .elementor-button.elementor-button-link:hover {
  /* Canonical button hover unified on Primary/900 (BugZap round-2). */
  background-color: var(--dmec-primary-900);
}

/* Vertical spacing above the navy / teal CTA band: zero margin-top so
 * the preceding component's full-bleed background (e.g. the
 * `.page-section__latest-news` gray) flows directly into the navy/teal
 * CTA without any white gap. The visible breathing room between the
 * preceding section's content and the CTA's content is provided by the
 * preceding section's padding-bottom (80 px on Latest News) plus the
 * CTA's own padding-top — no margin needed.
 *
 * NOTE: Elementor sections use `margin-block-start: var(--margin-block-start)`
 * loaded later than ours, so a plain `margin-top` is overridden. We
 * zero out the CSS variable + force `margin-top: 0` so the rule wins
 * regardless of where Elementor's CSS lands in the cascade. */
body.dmec-redesign-active [class*=page-section__cta-2-col] {
  --margin-top: 0;
  --margin-block-start: 0;
  --margin-bottom: 0;
  margin-top: 0;
  margin-bottom: 0;
}

body.dmec-redesign-active.page-id-523 .footer-sponsors-section {
  background: #f3f1ef;
}

body.dmec-redesign-active.page-id-523 .footer-sponsors-section .elementor-heading-title {
  text-wrap: balance;
}

/* BugZap open batch 2026-06-05: conference/webinar page follow-ups. */
body.dmec-redesign-active .annual-conference-menu .elementor-item,
body.dmec-redesign-active .annual-conference-menu .elementor-item:hover,
body.dmec-redesign-active .annual-conference-menu .elementor-item:focus,
body.dmec-redesign-active .annual-conference-menu .elementor-item.elementor-item-active {
  text-decoration: none !important;
}

body.dmec-redesign-active .annual-conference-menu .elementor-item::before,
body.dmec-redesign-active .annual-conference-menu .elementor-item::after {
  display: none !important;
}

body.dmec-redesign-active .annual-conference-menu .elementor-item.elementor-item-active::after {
  display: block !important;
  position: absolute;
  right: auto;
  bottom: 8px;
  left: 50%;
  width: calc(100% - 30px);
  height: 2px;
  background: currentColor;
  transform: translateX(-50%);
}

body.dmec-redesign-active.page-id-23342 .elementor-element.elementor-element-a9ffb16 {
  color: var(--dmec-white);
}

body.dmec-redesign-active.page-id-23342 .elementor-element.elementor-element-a9ffb16 :where(.elementor-widget-container,
.elementor-heading-title,
.elementor-testimonial__content,
.elementor-testimonial__text,
.elementor-testimonial__name,
.elementor-testimonial__title,
p,
li,
span,
strong) {
  color: var(--dmec-white);
}

body.dmec-redesign-active.page-id-23342 .elementor-element.elementor-element-7684dee .elementor-swiper-button-prev {
  left: -56px;
}

body.dmec-redesign-active.page-id-23342 .elementor-element.elementor-element-7684dee .elementor-swiper-button-next {
  right: -56px;
}

body.dmec-redesign-active.single-post.postid-25082 .elementor-element.elementor-element-4e3fa9e2 {
  color: var(--dmec-white);
}

body.dmec-redesign-active.single-post.postid-25082 .elementor-element.elementor-element-4e3fa9e2 :where(.elementor-widget-container,
.elementor-heading-title,
p,
li,
span,
strong) {
  color: var(--dmec-white);
}

body.dmec-redesign-active.single-post.postid-25082 .page-section__cta-2-col-blue > .elementor-element {
  padding-inline: clamp(96px, 7vw, 105px);
}

body.dmec-redesign-active.single-post.postid-25082 .page-section__cta-2-col-blue .elementor-widget-heading {
  width: 100%;
  max-width: none;
}

body.dmec-redesign-active.single-post.postid-25082 .elementor-element.elementor-element-7b4cbb61 .elementor-heading-title {
  white-space: pre-line;
}

@media (max-width: 1024px) {
  body.dmec-redesign-active .subpage-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-f217016,
  body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867,
  body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-17e4fa18 {
    padding-left: 32px;
    padding-right: 32px;
  }
}
@media (max-width: 767px) {
  body.dmec-redesign-active .subpage-grid {
    grid-template-columns: 1fr;
  }
  body.dmec-redesign-active .subpage-grid .subpage-grid-card-bottom {
    padding: 20px;
  }
  body.dmec-redesign-active .subpage-grid.subpage-grid .subpage-grid-card-bottom h4,
  body.dmec-redesign-active .subpage-grid.subpage-grid .subpage-grid-card-bottom h4 a,
  body.dmec-redesign-active .page-section__latest-news .swiper-slide .elementor-element-db0e714 .elementor-heading-title {
    font-size: 24px;
  }
  body.dmec-redesign-active .page-section__latest-news.page-section__latest-news .post-title-link {
    padding: 16px 0;
    font-size: 18px;
  }
  body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-f217016 {
    padding: 48px 20px 64px;
  }
  body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-ee4e867,
  body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-17e4fa18 {
    padding-left: 20px;
    padding-right: 20px;
  }
  body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-17e4fa18 {
    padding-top: 0;
    padding-bottom: 0;
  }
  body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-585a56f7,
  body.dmec-redesign-active.page-id-523 .elementor-element.elementor-element-52334dd6 {
    padding: 40px 24px;
  }
}
/* ============================================================
   BugZap #181 — Event Code of Conduct (page 20146)
   The Round-4 sweep stripped this page's page-header blue-section /
   purple-box-outer-container classes, so the canonical hero-pill straddle
   rules no longer fire and the magenta pill sits flush inside the blue band
   with the content jammed beneath it. Re-create the straddle + clearance,
   scoped to this page only.
   NOTE: first pass — verify the exact overhang/clearance on deploy and tune.
   ============================================================ */
body.dmec-redesign-active.page-id-20146 .page-header__purple-box {
  position: relative;
  bottom: -44px; /* overhang the blue band's bottom edge (canonical ~44px) */
  z-index: 2;
}

body.dmec-redesign-active.page-id-20146 .elementor-element-a98b60b {
  /* reserve space below the band so the overhanging pill clears the
     content that follows (content shifts down to keep the spacing). */
  margin-bottom: 44px;
}

/* ============================================================
   BugZap #182 — Archived Webinars (page 661)
   The webinar-search section lost its max-width cap (renders full-width) and
   the filter tabs butt against the teal search bar with no top padding.
   Scoped to the page.
   NOTE: first pass — verify content width + tab spacing on deploy and tune.
   ============================================================ */
body.dmec-redesign-active.page-id-661 .elementor-element-69ad4154 {
  max-width: 1200px;
  margin-inline: auto;
}

body.dmec-redesign-active.page-id-661 .elementor-element-4c50f15 {
  padding-top: 24px; /* the missing space above the filter tabs */
}

/* =================================================================
 * Page: Homepage — Hero (Half A: layout + 5-up quick-link row)
 * Figma node: 417:7605
 * Container: .dmec-home-hero  (Elementor data-id="600e0d6")
 *
 * Half A covers structural layout and the 5-up quick-link row only.
 * Half B (carousel promo card fill, date-badge, CTA) is blocked on
 * exact Figma hex values.
 * ================================================================= */
/* Zero Elementor's default 10px padding on the hero container and the
 * carousel's direct child .e-con — these produce visible white gaps around
 * the carousel image that are not in the Figma spec. */
body.dmec-redesign-active .dmec-home-hero {
  padding: 0;
}

body.dmec-redesign-active .dmec-home-hero > .e-con-full.e-child {
  padding: 0;
}

/* 5-up quick-link tile row.
 *
 * Spec sourced from Figma node 417:7607 — "tile / section" + "tile / basic".
 * Each tile is a white card with a soft navy-tinted drop-shadow; the row
 * distributes 5 tiles evenly (flex: 1 1 0) with a 32px gap inside a centered
 * max-1200px content column (matches Figma's 1440-frame minus 120px gutters).
 *
 * Vertical position: Elementor's per-post CSS authors the row at
 *   --margin-top: -70px; --margin-bottom: 80px; --z-index: 9;
 * which pulls the row up so each ~100px tile's vertical midpoint lands on
 * the carousel's bottom edge (half-cover). We MUST NOT add padding-top
 * here — it would push the tiles back down and cancel that overlap.
 * Padding-bottom is fine; it just buys breathing room before the next
 * section. We do NOT override Elementor's .elementor-align-justify
 * behavior with min/max widths — flex:1 on each row item lets the tiles
 * share space like the Figma "flex-[1_0_0]" auto-layout. */
body.dmec-redesign-active .dmec-home-hero .slide-buttons-container {
  --margin-top: -80px;
  /* Round-4 #116: was 90px, which (with the welcome section's 40px
     padding) produced a 160px visible cards-to-heading gap. 10px
     lands the visible gap on the canonical 80px rhythm.
     Pull-up adjusted from -90px to -80px: a994de98 zeroed the 10px
     top-padding that .e-con-inner previously had, which moved tile
     tops up by 10px. Reducing |margin-top| by 10px restores the
     intended straddle (~60px inside carousel / ~57px below). */
  --margin-bottom: 10px;
  padding: 0;
  margin-top: -80px;
  margin-bottom: 10px;
}

body.dmec-redesign-active .dmec-home-hero .slide-buttons-container > .e-con-inner {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 32px;
  max-width: 1200px;
  margin-inline: auto;
  padding: 0;
}

/* Only the 5 button-wrapping containers (.e-con) participate in the flex row;
 * a sibling .elementor-widget-html (data-id 7919dd0) also lives in this parent
 * and must NOT be flex-distributed into the row.
 *
 * min-width: 0 is required here alongside flex: 1 1 0. Without it, the flex
 * item resolves min-width: auto = min-content-width of its longest word (e.g.
 * "AbsenceAuthority™" at 48px padding = ~296px). Five tiles at 296px + 4×32px
 * gaps = 1608px which overflows the 1200px row and expands the hero section.
 * With min-width: 0, tiles shrink freely and white-space: normal on the button
 * text wraps labels that exceed the cell width. */
body.dmec-redesign-active .dmec-home-hero .slide-buttons-container > .e-con-inner > .elementor-element.e-con {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  /* Elementor defaults 10px padding on .e-con — zero it so the white card
   * (button) renders edge-to-edge inside the flex cell, matching Figma. */
  padding: 0;
}

/* Neutralize the phantom Elementor HTML/script widget (Elementor data-id 7919)
 * that sits as a 6th child of the flex row. Even at width:0 it still counted as
 * a flex item, reserving an extra 32px gap and shrinking the 5 real tiles to
 * 208px instead of the Figma ~214px. display:none removes it from the flex
 * formatting context entirely (no gap reserved); its inline jQuery executes at
 * parse time, so hiding the empty wrapper has no functional effect.
 * (1200px row − 4×32px gap) / 5 = 214.4px tiles, matching Figma. */
body.dmec-redesign-active .dmec-home-hero .slide-buttons-container > .e-con-inner > .elementor-widget-html {
  display: none;
}

/* .elementor-widget-button is a block-level flex item inside .e-con (flex
 * column). flex: 1 1 auto makes it grow to fill the .e-con height that
 * align-items: stretch assigns from the tallest sibling in the row. The
 * tallest tile is a 2-line tile: 32px + 53px + 32px = 117px. All tiles
 * then stretch to 117px, and the button chain (widget-container →
 * button-wrapper → a.elementor-button) inherits that via height: 100%.
 * width: 100% fills the cross-axis (horizontal) as before. */
body.dmec-redesign-active .dmec-home-hero .slide-buttons-container .elementor-widget-button {
  flex: 1 1 auto;
  width: 100%;
}

/* Tile / basic — white card with soft navy shadow.
 *
 * Notes on box sizing / wrap:
 *   - box-sizing: border-box so width:100% includes padding, keeping the
 *     button strictly inside its .elementor-widget-button wrapper.
 *   - min-width: 0 lets the button shrink under flex pressure instead of
 *     refusing to go below its intrinsic content width.
 *   - white-space: normal directly on .elementor-button (not just the inner
 *     text span) overrides Elementor's default nowrap so long labels like
 *     "AbsenceNavigator™ Leave Planning" wrap instead of overflowing. */
body.dmec-redesign-active .dmec-home-hero .slide-buttons-container .elementor-button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  height: 100%; /* Fill the button-wrapper height (propagated from widget flex: 1) */
  min-width: 0;
  /* Elementor's post-21.css stores max-height: 100px on this element.
   * That cap was set when the tiles were intended to be exactly 100px,
   * but with py-[32px] Figma padding the 2-line tiles need 117px to fit
   * properly. Override to none so the natural content + padding height
   * drives tile sizing (single-line: 90px, 2-line: 117px; row stretches
   * all tiles to the tallest via align-items: stretch on .e-con-inner). */
  max-height: none;
  /* Figma 163:4349 tile/basic: px-[48px] py-[32px]. The phantom html widget
   * that stole a 32px gap is now display:none'd above, so tiles render at the
   * Figma ~214px width. H-padding is kept at 40px (not Figma's 48px): at 214px
   * width, 40px padding yields a 134px text area — ample clearance for "2025
   * Annual" (~116px on Windows ClearType). 48px would leave only ~118px (~2px
   * margin), too tight to trust across Windows font rendering. Outer tile size
   * (214×117) matches Figma either way. */
  padding: 32px 40px;
  border: 0;
  border-radius: 4px;
  background-color: var(--dmec-white);
  color: var(--dmec-color-link); /* Primary/700 #2455a6 */
  font-family: var(--dmec-font-family-body);
  font-weight: 700;
  font-size: 20px;
  line-height: 1.32;
  text-align: center;
  text-decoration: none;
  text-transform: none;
  white-space: normal;
  overflow-wrap: break-word;
  box-shadow: 0 0 32px 0 color-mix(in srgb, var(--dmec-primary-1000) 16%, transparent);
  transition: box-shadow 150ms ease, transform 150ms ease;
}

/* min-width: 0 at every flex-item depth between the row and the button text.
 *
 * Elementor's DOM is:
 *   .elementor-widget-button (flex item of row, we set display:flex)
 *     └ .elementor-widget-container (block, but becomes a flex item of the
 *        widget wrapper — this is the sneaky one; min-width: auto here
 *        resolves to the min-content width of "AbsenceNavigator™" and forces
 *        the whole button to overflow its 208px cell)
 *        └ .elementor-button-wrapper (block)
 *           └ a.elementor-button (flex column, we set this one too)
 *              └ .elementor-button-content-wrapper (flex item of button)
 *                 └ .elementor-button-text
 *
 * Flex items default to min-width: auto = min-content width of the widest
 * unbreakable word, which defeats flex:1 on the row and makes tiles collide.
 * overflow-wrap: break-word is the last-resort break so the glyphs do land
 * inside the tile even for the longest label. */
body.dmec-redesign-active .dmec-home-hero .slide-buttons-container .elementor-widget-container,
body.dmec-redesign-active .dmec-home-hero .slide-buttons-container .elementor-button-wrapper,
body.dmec-redesign-active .dmec-home-hero .slide-buttons-container .elementor-button .elementor-button-content-wrapper,
body.dmec-redesign-active .dmec-home-hero .slide-buttons-container .elementor-button .elementor-button-text {
  min-width: 0;
  white-space: normal;
  overflow-wrap: break-word;
}

/* Propagate the flex item's definite height (117px, from widget flex: 1 1 auto)
 * through the two block ancestors so a.elementor-button { height: 100% } can
 * resolve against a non-cyclic, definite size.  CSS flex two-pass layout
 * resolves the initial cycle: intrinsic sizes are computed first (no % heights),
 * then after flex layout assigns a definite height to the widget, the %
 * heights on widget-container and button-wrapper resolve correctly. */
body.dmec-redesign-active .dmec-home-hero .slide-buttons-container .elementor-widget-container,
body.dmec-redesign-active .dmec-home-hero .slide-buttons-container .elementor-button-wrapper {
  height: 100%;
}

body.dmec-redesign-active .dmec-home-hero .slide-buttons-container .elementor-button:hover {
  box-shadow: 0 0 40px 0 color-mix(in srgb, var(--dmec-primary-1000) 22%, transparent);
  transform: translateY(-1px);
}

body.dmec-redesign-active .dmec-home-hero .slide-buttons-container .elementor-button:focus-visible {
  outline: 2px solid var(--dmec-color-focus-ring);
  outline-offset: 2px;
}

/* Hero section — shell rules.
 *
 * The carousel renders Swiper slides, all of which wrap content in
 * .hp-banner-slide (author-added, pre-existing). All 9 slides share
 * the same typographic hierarchy (eyebrow, title, body). Three slides
 * additionally carry .hp-banner-slide--navy for the navy-card treatment
 * (injected via docs/redesign/scripts/inject-home-classes.php deep pass).
 * The other 6 use inherited body text color on a transparent ground.
 *
 * The slide itself is the interactive hit target — the whole card is
 * wrapped in an <a>; we do not add a separate CTA button.
 */
/* --- Shared slide shell ---
 * Figma hero (node 417:7607) shows flush edges — no outer radius, and the
 * hero image on the left column runs edge-to-edge (it's set as the left
 * .e-con's background-image, not an <img>). We MUST NOT add outer padding
 * here: the slide is a two-column flex parent whose left column is the
 * image and right column is the text copy, which already carries its own
 * internal `padding: 0 50px` from Elementor. Any padding on the slide
 * itself pushes the image off the edge and exposes the slide background. */
body.dmec-redesign-active .dmec-home-hero .hp-banner-slide {
  padding: 0;
  min-height: 380px;
  box-sizing: border-box;
  /* All slides sit on dark/colored backgrounds — force white text
   * uniformly rather than enumerating per-slide element IDs.
   * Specificity (0,3,1) beats the sitewide text-editor rule (0,1,1). */
  color: var(--dmec-white);
}

/* Cascade white down through every text node inside each slide.
 * Explicit color: inherit here wins over the sitewide
 * var(--dmec-neutral-warm-800) rule that targets p / li directly. */
body.dmec-redesign-active .dmec-home-hero .hp-banner-slide :where(h1, h2, h3, h4, h5, h6, p, li, span) {
  color: inherit;
}

/* Heading links inside slides (e.g. <h2><a href="…">…</a></h2>) must
 * stay white. The interaction-states rule `.elementor-heading-title a
 * { color: var(--dmec-color-link) }` sits at (0,3,1) and beats the
 * :where(h2) rule above at (0,3,0), leaving the <a> node Primary/700
 * blue on a dark background. Bump to (0,4,1) with
 * `.elementor-element.hp-banner-slide` so this wins regardless of
 * cascade order. Same treatment for hover — white + underline. */
body.dmec-redesign-active .dmec-home-hero .elementor-element.hp-banner-slide a {
  color: inherit;
  text-decoration: none;
}

body.dmec-redesign-active .dmec-home-hero .elementor-element.hp-banner-slide a:hover {
  color: inherit;
  text-decoration: underline;
}

/* Slide right column — copy padding + vertical centering.
 *
 * Per Figma 162:5076 ("hero / hero / main"): the right panel is 600 px
 * wide, with `pl-[40px] pr-[20px] py-[40px]` and a flex column that
 * centers the text block vertically (`items-center` on a 480-px panel).
 * Internal gap between the title block and the body is 20 px, with a
 * 4 px gap between eyebrow and heading inside the title block.
 *
 * The 600-px max-width matches the canonical panel size so the column
 * doesn't shrink below spec at narrower viewports.
 *
 * IMPORTANT — left column must flex-grow to meet the right column.
 *
 * The slide-level background colour (set per-Elementor on
 * `.hp-banner-slide`) fills the entire slide width. The right column
 * is fixed at 600 px and the left column has its own width — at wider
 * viewports there's slack between them, and that slack shows the
 * slide's bg colour through the gap. Visually the colored panel then
 * appears wider than 600 px, with content sitting much further from
 * the apparent left edge than the canonical 40 px.
 *
 * Earlier this was masked with `margin-left: auto` on the right col
 * (which pushed it right and left an 82-px gap), making the
 * right-side spacing look wrong even though the in-element padding
 * was correct. The proper fix is to grow the left (photo) column to
 * meet the right column so there's no gap to begin with. */
body.dmec-redesign-active .dmec-home-hero .hp-banner-slide > .elementor-element:first-child,
body.dmec-redesign-active .dmec-home-hero .hp-banner-slide > .e-con:first-child {
  flex: 1 1 auto;
  min-width: 0;
}

body.dmec-redesign-active .dmec-home-hero .hp-banner-slide > .elementor-element:last-child,
body.dmec-redesign-active .dmec-home-hero .hp-banner-slide > .e-con:last-child {
  flex: 0 0 600px;
  max-width: 600px;
  margin-left: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 20px;
  padding: 40px 20px 40px 40px;
}

/* --- Shared typography (all 9 slides) ---
 * Per Figma 162:5076 type styles: eyebrow PT Sans Bold 16/1.24 with
 * tracking 0.04em uppercase; heading PT Sans Bold 32/1.2; body Open
 * Sans Regular 16/1.5. Margins between blocks are owned by the parent
 * column's `gap: 20px`, so individual elements have margin: 0. */
/* Eyebrow label (h6). */
body.dmec-redesign-active .dmec-home-hero .hp-banner-slide.hp-banner-slide h6 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.24;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Main title (h2). */
body.dmec-redesign-active .dmec-home-hero .hp-banner-slide.hp-banner-slide h2 {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
  text-wrap: balance;
}

body.dmec-redesign-active .dmec-home-hero .elementor-element-664a9f5 {
  max-width: 392px;
}

body.dmec-redesign-active .dmec-home-hero .elementor-element-664a9f5 .elementor-heading-title {
  max-width: 392px;
  text-wrap: balance;
}

/* Body copy. */
body.dmec-redesign-active .dmec-home-hero .hp-banner-slide .elementor-widget-text-editor {
  max-width: 62ch;
}

body.dmec-redesign-active .dmec-home-hero .hp-banner-slide .elementor-widget-text-editor p {
  font-size: 16px;
  line-height: 1.5;
  margin: 0;
}

/* Teal-background slides: background-color only — text already white
 * from the universal .hp-banner-slide rule above. The right-column
 * container inherits the same teal so the panel fills edge-to-edge. */
body.dmec-redesign-active .dmec-home-hero .elementor-element.elementor-element-478fcca.hp-banner-slide,
body.dmec-redesign-active .dmec-home-hero .elementor-element.elementor-element-d32ccaa.hp-banner-slide,
body.dmec-redesign-active .dmec-home-hero .elementor-element.elementor-element-0755ef5.hp-banner-slide {
  background-color: var(--dmec-secondary-bg-900); /* #0f746d */
}

body.dmec-redesign-active .dmec-home-hero .elementor-element.elementor-element-478fcca.hp-banner-slide > .e-con:last-child,
body.dmec-redesign-active .dmec-home-hero .elementor-element.elementor-element-d32ccaa.hp-banner-slide > .e-con:last-child,
body.dmec-redesign-active .dmec-home-hero .elementor-element.elementor-element-0755ef5.hp-banner-slide > .e-con:last-child {
  background-color: inherit;
}

/* --- Navy variant: fill + white text only ---
 *
 * Elementor stores per-widget background colors in a post-scoped rule like
 *   .elementor-21 .elementor-element.elementor-element-XXXXXXX:not(.elementor-motion-effects-element-type-background)
 * whose specificity is (0,4,0). To win without editing stored data, we chain
 * `.elementor-element` into the selector — that puts us at (0,4,1), which
 * beats Elementor's rule regardless of cascade order. */
body.dmec-redesign-active .dmec-home-hero .elementor-element.hp-banner-slide--navy {
  background-color: var(--dmec-primary-800); /* #1d4689 — confirmed */
  color: var(--dmec-white);
}

body.dmec-redesign-active .dmec-home-hero .elementor-element.hp-banner-slide--navy :where(h1, h2, h3, h4, h5, h6),
body.dmec-redesign-active .dmec-home-hero .elementor-element.hp-banner-slide--navy :where(p, li, span) {
  color: var(--dmec-white);
}

/* --- Swiper navigation + pagination ---
 *
 * Figma 162:5076 / 721:18182 doesn't redesign the carousel arrows — per
 * product direction we keep the live-site treatment here: a bare white
 * Elementor `eicon` chevron, transparent background, no border, no pill,
 * no hover chrome shift. Live measurements at dmec.org show the buttons
 * render at 25×25 with the chevron drawn by the icon font itself; we
 * leave Elementor's defaults in place and only ensure pagination dots
 * stay hidden (the redesign doesn't expose them).
 *
 * Earlier Phase 2 work added a navy pill + blur + hover-magenta-shift
 * here. That treatment isn't in Figma and visibly fights the canonical
 * navy slide (the pill bg sits over the heading and clips "2026" on
 * "COMPLIANCE CONFERENCE 2026"). Reverting to live-site bare chevron
 * removes the conflict and restores parity with what's shipped.
 *
 * Pagination bullets stay hidden — not part of any redesign frame. */
body.dmec-redesign-active .dmec-home-hero [data-widget_type="nested-carousel.default"] .swiper-pagination {
  display: none;
}

/* =================================================================
 * Page: Homepage — Welcome + Stats band
 * Figma node: 417:7608 / 417:7609
 * ================================================================= */
body.dmec-redesign-active .elementor-element.dmec-home-welcome {
  padding: 40px 0 80px;
  margin: 0;
}

/* Homepage — Upcoming Events section (post-21 element 8205760).
 * The gray section should touch the teal stats band directly; the
 * 80px rhythm belongs inside the gray section above the heading, not
 * as a white band between the two colored sections. */
body.dmec-redesign-active.page-id-21 .elementor-element-8205760 {
  --margin-top: 0;
  --padding-block-start: 80px;
  margin-top: 0;
  padding-top: 80px;
}

/* Canonical class equivalent — used when the CLI stamps
   `.dmec-home-events` onto the Elementor container. */
body.dmec-redesign-active .dmec-home-events {
  --margin-top: 0;
  --padding-block-start: 80px;
  margin-top: 0;
  padding-top: 80px;
}

body.dmec-redesign-active.page-id-21 .elementor-element-8205760 > .elementor-element-86eea85 {
  display: none;
}

/* Homepage — Latest News & Resources section (post-21 element 1fbd465).
 * Elementor data has a 180-px Spacer widget (element f9a4784) inserted
 * before the heading + 40 px section padding-top, producing ~250 px of
 * dead space above the "Latest news & resources" heading. Hide the
 * spacer and bump section padding to 60 px so the heading has the same
 * breathing room as Upcoming Events above it. */
body.dmec-redesign-active.page-id-21 .elementor-element-1fbd465 .elementor-element-f9a4784 {
  display: none;
}

body.dmec-redesign-active.page-id-21 .elementor-element-1fbd465 {
  --padding-block-start: 80px;
  padding-top: 80px;
}

body.dmec-redesign-active .elementor-element.dmec-home-welcome > .e-con-inner {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 0;
}

/* The welcome section is e-con-full → e-con-boxed(9304c57) → .e-con-inner.
   The 20 px gap Elementor sets lives on that inner wrapper. */
body.dmec-redesign-active .elementor-element.dmec-home-welcome .e-con-inner {
  gap: 16px;
}

body.dmec-redesign-active .elementor-element.dmec-home-welcome h1.elementor-heading-title {
  margin: 0 auto 24px;
  max-width: 980px;
  /* Round-3 #117: designer confirmed non-clickable headings are
     Neutral/900 on the homepage too — back on the heading token. */
  color: var(--dmec-color-heading);
  font-size: clamp(40px, 3vw, 50px);
  font-weight: 700;
  line-height: 1.08;
  text-align: center;
  text-transform: uppercase;
  white-space: pre-line;
  text-wrap: balance;
}

body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-widget-text-editor {
  max-width: 820px;
  margin: 0 auto;
}

body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-widget-text-editor p {
  margin: 0;
  color: var(--dmec-color-text);
  font-size: 19px;
  line-height: 1.68;
  text-align: center;
}

body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-2a0b5a7 {
  justify-content: center;
  align-items: center;
  gap: 16px;
  margin-top: 32px;
}

body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-30a7920 {
  order: 1;
}

body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-f0633ac {
  order: 2;
}

body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-f0633ac,
body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-30a7920 {
  width: auto;
  flex: 0 0 auto;
}

body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-f0633ac .elementor-button,
body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-30a7920 .elementor-button {
  min-width: 188px;
  padding: 19px 32px;
  border-radius: 3px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  box-shadow: none;
  transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease;
}

body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-30a7920 .elementor-button {
  background: #fff;
  border: 1px solid #2455a6;
  color: #2455a6;
}

/* Round-3 #118: both welcome buttons need explicit hovers — their
   element-id base rules at (0,4,1) outrank the generic canonical
   hover. Primary darkens to 900; outlined fills Primary/100. */
body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-f0633ac .elementor-button:hover {
  background: var(--dmec-primary-900);
  border-color: var(--dmec-primary-900);
  color: #fff;
  text-decoration: none;
}

body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-30a7920 .elementor-button:hover {
  /* Figma button/basic Outlined Hovered (119:4085): white surface,
     2px Primary/500 ring (border + inset ring, no layout shift). */
  background: var(--dmec-white);
  border-color: var(--dmec-primary-500);
  box-shadow: inset 0 0 0 1px var(--dmec-primary-500);
  color: var(--dmec-primary-700);
  text-decoration: none;
}

body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-f0633ac .elementor-button {
  background: #2455a6;
  border: 1px solid #2455a6;
  color: #fff;
}

body.dmec-redesign-active .elementor-element.dmec-home-stats {
  padding: 80px 0;
  /* Round-3 #119: green overlay/band darker — Secondary/Blue-Green
     800 family. Flagged for designer confirmation of exact step. */
  background-color: var(--dmec-secondary-bg-800);
  background-position: left center;
}

body.dmec-redesign-active .elementor-element.dmec-home-stats > .e-con-inner {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 0;
  row-gap: 36px;
}

body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-9f4219c .elementor-heading-title {
  margin: 0 auto;
  max-width: 980px;
  color: #fff;
  font-size: clamp(34px, 2.6vw, 42px);
  font-weight: 700;
  line-height: 1.1;
  text-align: center;
  text-transform: uppercase;
  text-wrap: balance;
}

body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-e9bde55 {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-top: 8px;
}

body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-e9bde55 > .e-con-inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
  align-items: start;
  justify-items: stretch;
}

body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-e9bde55 > .e-con-inner > .e-con {
  --width: 100%;
  display: flex;
  width: 100%;
  max-width: none;
  min-width: 0;
  justify-self: stretch;
  align-self: stretch;
  align-items: center;
  text-align: center;
}

body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-e9bde55 > .e-con-inner > .elementor-element.elementor-element-94379a1,
body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-e9bde55 > .e-con-inner > .elementor-element.elementor-element-ad58c07,
body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-e9bde55 > .e-con-inner > .elementor-element.elementor-element-6c7e25b {
  --width: 100%;
  width: 100%;
  max-width: none;
}

body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-e9bde55 .elementor-heading-title {
  color: #fff;
}

body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-4fe0de8 .elementor-heading-title,
body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-1fcc793 .elementor-heading-title,
body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-b561e13 .elementor-heading-title {
  font-size: clamp(46px, 3.4vw, 60px);
  /* Round-3 #120: stat figures render bold. */
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}

body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-2119562 .elementor-heading-title,
body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-6dd80db .elementor-heading-title,
body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-91430c9 .elementor-heading-title {
  font-size: 21px;
  line-height: 1.18;
  letter-spacing: 0.02em;
}

body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-widget-divider {
  width: 82px;
  margin: 12px auto 14px;
}

body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-widget-divider .elementor-divider-separator {
  border-color: rgba(255, 255, 255, 0.5);
}

body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-a3f6870 .elementor-heading-title,
body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-f0c47d8 .elementor-heading-title,
body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-c79104c .elementor-heading-title {
  font-size: 21px;
  line-height: 1.38;
  text-wrap: balance;
}

@media (max-width: 1024px) {
  body.dmec-redesign-active .elementor-element.dmec-home-welcome {
    padding: 56px 0 72px;
  }
  body.dmec-redesign-active .elementor-element.dmec-home-stats {
    padding: 56px 24px 88px;
  }
  body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-e9bde55 > .e-con-inner {
    gap: 24px;
  }
}
@media (max-width: 767px) {
  body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-2a0b5a7 {
    flex-direction: column;
  }
  body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-f0633ac,
  body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-30a7920 {
    width: 100%;
  }
  body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-f0633ac .elementor-button,
  body.dmec-redesign-active .elementor-element.dmec-home-welcome .elementor-element-30a7920 .elementor-button {
    width: 100%;
  }
  body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-e9bde55 > .e-con-inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-4fe0de8 .elementor-heading-title,
  body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-1fcc793 .elementor-heading-title,
  body.dmec-redesign-active .elementor-element.dmec-home-stats .elementor-element-b561e13 .elementor-heading-title {
    font-size: 44px;
  }
}
/* =================================================================
 * Page: Homepage — Upcoming Events
 *
 * The homepage events section is now rendered by the canonical
 * `[dmec_upcoming_events]` shortcode (see `dmec-upcoming-events.php`
 * + `dmec-upcoming-events.css`). All per-page Elementor-element
 * overrides that previously lived here have been retired — the
 * shortcode emits `.dmec-card-event` markup which is owned by
 * `_card-event.scss`.
 *
 * Keep this boundary edge-to-edge; the legacy `-200px` pull-up caused
 * the navy news band to overlap Upcoming Events.
 * ================================================================= */
body.dmec-redesign-active .elementor-element.dmec-home-news {
  --margin-top: -200px;
  --margin-block-start: -200px;
  margin-top: -200px;
}

/* Round-3 #122/#123: the events section title and subtitle render
   ALL CAPS. Scoped to the section's heading widgets. */
body.dmec-redesign-active .dmec-home-events .elementor-widget-heading .elementor-heading-title {
  text-transform: uppercase;
}

/* =================================================================
 * Page: Homepage — Latest News & Resources
 * Figma note: updated heading/link color, tighter text measure,
 * and clearer link states.
 * ================================================================= */
body.dmec-redesign-active .elementor-element.dmec-home-news {
  position: relative;
  padding: 80px 120px;
}

body.dmec-redesign-active .elementor-element.elementor-element-6ac822f {
  display: block;
  z-index: auto;
}

@media (max-width: 767px) {
  body.dmec-redesign-active .elementor-element.elementor-element-6ac822f {
    display: none;
  }
  body.dmec-redesign-active .elementor-element.dmec-home-news {
    --margin-top: 0;
    --margin-block-start: 0;
    margin-top: 0;
    padding: 80px 24px;
  }
}
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-34fa612 {
  position: relative;
  z-index: 12;
}

/* Section master heading "LATEST NEWS & RESOURCES".
 * Figma I201:6196;127:6146: PT Sans Bold 32 / 1.2, color white, uppercase,
 * centered, max-width 700. Local was 34/34px which made the heading
 * too tight vertically and slightly too large vs canonical. */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-34fa612 .elementor-heading-title {
  color: var(--dmec-white);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: uppercase;
  max-width: 700px;
  margin-inline: auto;
  text-align: center;
}

/* Info block sub-heads "RESOURCES & LEGISLATIVE UPDATES" and
 * "ARTICLES & PODCASTS" (left and right info block titles).
 * Figma I201:6100;127:6150: PT Sans Bold 24 / 1.32, color
 * Neutral/warm/900 (#2B2B2B), uppercase. Local was rendering at 30 px
 * (legacy theme value); bring to canonical 24 px.
 *
 * Selectors target the heading-widget IDs themselves (ea359b1 left,
 * 64e8237 right) — NOT the head-row IDs (d864a92 / 51f9fe6) — because
 * the head row also contains the "View All" heading widget, which has
 * its own 16-px size and would otherwise inherit 24 px from this rule. */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-ea359b1 .elementor-heading-title,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-64e8237 .elementor-heading-title {
  color: var(--dmec-neutral-warm-900); /* #2B2B2B */
  font-size: 24px;
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: 0;
  text-transform: uppercase;
}

body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-1aba198 {
  position: relative;
  z-index: 4;
}

body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-f9a4784 {
  display: none;
}

body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-7b38ebe {
  gap: 28px;
  align-items: stretch;
}

/* Info blocks — flat, no rounded corners.
 *
 * Per Figma 201:6201 the two info blocks ("Resources & Legislative
 * Updates" white block on left, "Articles & Podcasts" Neutral/cold/100
 * block on right) are flat panels with no radius and no shadow. The
 * earlier 6-px radius + drop-shadow was a legacy chrome treatment
 * that Figma removed in the redesign.
 *
 * Background colors per canonical:
 *   358304a (Resources & Legislative Updates) → #FFFFFF
 *   7a7f916 (Articles & Podcasts)             → #F4F6FA (Neutral/cold/100) */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-358304a,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-7a7f916 {
  border-radius: 0;
  box-shadow: none;
}

body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-7a7f916 {
  background-color: var(--dmec-neutral-cold-100); /* #f4f6fa */
}

body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-d864a92,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-51f9fe6 {
  margin-bottom: 20px;
}

/* Head row vertical alignment — Figma 721:18189 has the subheading
 * + "View All" widgets vertically center-aligned within the row.
 * Without this, when "Resources & Legislative Updates" wraps to two
 * lines, "View All" top-aligns with the first heading line (looks
 * misaligned). The head-row containers are .elementor-element-4161b95
 * (left/Resources) and .elementor-element-6066929 (right/Articles);
 * each holds the subheading widget + the View All widget as its
 * ONLY two flex children — so adding `align-items: center` to that
 * specific inner row vertically centers them without disturbing the
 * surrounding info-block layout. */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-4161b95 > .e-con-inner,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-6066929 > .e-con-inner {
  align-items: center;
}

/* Strip the underline from the View All arrow icon link. Elementor's
 * `<a class="elementor-icon">` defaults to `text-decoration: from-font`,
 * which on sans-serif renders as an underline near the icon's
 * baseline. Setting `text-decoration: none` on the icon link removes
 * any artifact. */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-icon {
  text-decoration: none;
}

/* Add visible breathing room between "View All" text and the arrow
 * icon. FontAwesome's `fa-arrow-right` fills nearly its entire 24-px
 * box with the glyph stroke — at 8 px box-to-box gap, the arrow's
 * left tip ends up almost touching the "l" of "All", reading as if
 * the arrow is overlapping the text. Increasing the wrapper's flex
 * gap to 12 px gives a clean separation.
 *
 * NOTE: View All wrappers (.elementor-element-0288199 / e6e4b67) are
 * `e-con-full` containers — Elementor skips the `.e-con-inner` wrapper
 * for those, so the heading widget + icon widget are DIRECT children
 * of the wrapper itself. Target the wrapper, not a phantom `.e-con-inner`. */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-0288199,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-e6e4b67 {
  align-items: center;
}

/* View All icon — margin spacing.
 *
 * Elementor's CSS-variable gap system is locked to 8 px on the View All
 * wrapper. Use margin-inline-start on the icon widget to stack ON TOP
 * of the resolved gap. Per Figma 201:6105 the View All button has the
 * icon adjacent to the label container which already carries px-[8px]
 * internal padding — so the visible gap from "All" text to the SVG
 * vector's left tip is roughly 8 px (label padding) + 5 px (Figma
 * vector's 20.83% left inset inside its 24-px icon box) ≈ 13 px.
 * The 8-px margin-inline-start here, plus the 8-px wrapper gap, lines
 * the icon box up so that the rendered SVG arrow's visible tip sits
 * about 13 px from "All" — matching Figma. */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-a516ee4,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-e6e4b67 .elementor-widget-icon {
  margin-inline-start: 8px;
  /* Optical lift: PT Sans Bold "View All" has its visual mid-line a
   * couple pixels above geometric mid because of the cap-height to
   * x-height delta in mixed-case. The SVG arrow's horizontal stroke
   * sits at the geometric center of the 24-px icon box, so against
   * the text it reads slightly low. Translate the icon up 4 px (no
   * layout effect) so the arrow stroke hits the optical mid-line of
   * "View All". */
  transform: translateY(-4px);
}

/* View All icon — swap FontAwesome glyph for Figma-spec inline SVG.
 *
 * FontAwesome Free ships only the Solid variant of `fa-arrow-right`, a
 * heavy filled glyph that reads ~30 % thicker than Figma 201:6105's
 * thin-stroke vector. `font-weight: 100` is a no-op without FA Light
 * enrolled (which DMEC's site does not load), so we cannot make FA
 * itself thinner.
 *
 * Solution: hide FA's glyph (`::before { content: none }`) and paint a
 * custom SVG onto the `<i>` element using `mask-image` +
 * `background-color`, so the arrow color still inherits the canonical
 * Primary/700 blue. The SVG geometry mirrors Figma 145:16153's vector
 * inset (28.71 %_22.2 %_28.74 %_20.83 % inside a 24-px box):
 *
 *   • horizontal line   (5,12) → (18,12)
 *   • chevron head      (13,7) → (18,12) → (13,17)
 *
 * stroke-width 2, round caps/joins, fill none. Bounding box ≈ 13×10,
 * matching Figma's vector aspect (1.34 wide-to-tall). */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-a516ee4 i,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-e6e4b67 .elementor-widget-icon i {
  width: 24px;
  height: 24px;
  display: inline-block;
  font-size: 0;
  line-height: 0;
  color: transparent;
  background-color: var(--dmec-primary-700, #2455a6);
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='5' y1='12' x2='18' y2='12'/><polyline points='13,7 18,12 13,17'/></svg>") center/24px 24px no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='5' y1='12' x2='18' y2='12'/><polyline points='13,7 18,12 13,17'/></svg>") center/24px 24px no-repeat;
}

body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-a516ee4 i::before,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-e6e4b67 .elementor-widget-icon i::before {
  content: none;
}

/* Info-blocks wrapper — Figma 721:18189 specifies `rounded-[8px]
 * overflow-clip` on the parent that holds LEFT (white) + RIGHT
 * (gray) info blocks. The 8-px radius is on ALL FOUR corners; the
 * inner blocks themselves have no radius and are clipped by the
 * parent's overflow. Without this rule the info blocks render as
 * sharp rectangles. */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-7b38ebe {
  border-radius: 8px;
  overflow: hidden;
}

/* Head row min-height — both head rows need the same effective height
 * so View All ends up at the same vertical position across both
 * columns. Without a fixed height, LEFT (subheading wraps to 2 lines)
 * has a taller row than RIGHT (single line "Articles & Podcasts"),
 * and `align-items: center` puts View All at each column's local
 * midline — different y across columns. Per Figma 721:18189 the head
 * row is `h-[64px]` which fits a 2-line wrapped subheading, so set
 * `min-height: 64px` on both rows. With align-items: center already
 * in place, the View Alls now line up across columns. */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-4161b95,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-6066929 {
  min-height: 64px;
}

/* CTA 3-col teal section: white border on blue buttons so they read
   against the teal background. Targets `.page-section__cta-3-col-teal-v2`
   which appears on /membership/company-affiliations…, /about-dmec/, etc. */
body.dmec-redesign-active :where(.page-section__cta-3-col-teal, .page-section__cta-3-col-teal-v2) .elementor-button {
  border: 1px solid #fff;
}

/* CTA 3-col teal panel backgrounds (BugZap #35). The migrated pages
   ship three assorted Elementor greens (#10847C / #11766F / #005A54);
   the canonical family is Secondary/Blue-Green 700 + 800 alternating,
   matching the 2-col teal band. Chained classes beat Elementor's
   per-element background at (0,4,0) without !important.

   The Media page's band (40a00ff) is a THREE-column section but the live
   content tags it `page-section__cta-2-col-teal`, and it lives in a saved
   library template — so the element-id stamp never reaches it (the migrate
   scan is post_type=page only). Key off the native `cta-2-col-teal` class
   instead, guarded by `:has(> .e-con:nth-child(3))` so genuine 2-column
   teal bands (no 3rd child) are untouched. */
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-3-col-teal-v2.page-section__cta-3-col-teal-v2 > .e-con:nth-child(odd),
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-3-col-teal-v2.page-section__cta-3-col-teal-v2 > .e-con-inner > .e-con:nth-child(odd),
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal:has(> .e-con:nth-child(3)) > .e-con:nth-child(odd),
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal:has(> .e-con-inner > .e-con:nth-child(3)) > .e-con-inner > .e-con:nth-child(odd) {
  background-color: var(--dmec-secondary-bg-700);
}

body.dmec-redesign-active.dmec-redesign-active .page-section__cta-3-col-teal-v2.page-section__cta-3-col-teal-v2 > .e-con:nth-child(even),
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-3-col-teal-v2.page-section__cta-3-col-teal-v2 > .e-con-inner > .e-con:nth-child(even),
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal:has(> .e-con:nth-child(3)) > .e-con:nth-child(even),
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-2-col-teal.page-section__cta-2-col-teal:has(> .e-con-inner > .e-con:nth-child(3)) > .e-con-inner > .e-con:nth-child(even) {
  background-color: var(--dmec-secondary-bg-800);
}

/* CTA 3-col teal typography per Figma.
   Headings 24 px, body copy 18 px, button labels 16 px.
   2-col-teal typography is fully covered earlier in this file;
   2-col-blue has its own rules in _section-cta-2-col-blue.scss. */
body.dmec-redesign-active.dmec-redesign-active .page-section__cta-3-col-teal-v2.page-section__cta-3-col-teal-v2 .elementor-heading-title {
  font-family: var(--dmec-font-family-body);
  font-size: 24px;
  font-weight: 700;
  line-height: var(--dmec-h02-lh);
  color: var(--dmec-white);
}

body.dmec-redesign-active.dmec-redesign-active .page-section__cta-3-col-teal-v2.page-section__cta-3-col-teal-v2 .elementor-widget-text-editor p {
  font-family: var(--dmec-font-family-body);
  font-size: 18px;
  font-weight: 400;
  line-height: var(--dmec-body-lg-lh);
  color: var(--dmec-white);
}

body.dmec-redesign-active.dmec-redesign-active .page-section__cta-3-col-teal-v2.page-section__cta-3-col-teal-v2 .elementor-button {
  font-family: var(--dmec-font-family-body);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.24;
  letter-spacing: 0.01em;
}

/* Post list items — typography per Figma 201:6201.
 * Title:   PT Sans Bold 20/1.32, color Primary/600 (#356EBD)
 * Date:    PT Sans Regular 12, +0.04em tracking, uppercase, #404040
 * Excerpt: PT Sans Regular 16/1.4, color Neutral/warm/800 (#404040) */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-widget-posts .elementor-post {
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(36, 85, 166, 0.12);
}

body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-widget-posts .elementor-post:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-widget-posts .elementor-post__meta-data {
  margin-bottom: 10px;
  color: var(--dmec-neutral-warm-800); /* #404040 */
  font-size: 12px;
  font-weight: 400;
  line-height: 1.32;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-widget-posts .elementor-post__title {
  margin-bottom: 10px;
  color: var(--dmec-primary-600); /* #356EBD */
  font-size: 20px;
  font-weight: 700;
  line-height: 1.32;
}

body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-widget-posts .elementor-post__excerpt {
  color: var(--dmec-neutral-warm-800); /* #404040 */
  font-size: 16px;
  line-height: 1.4;
}

/* Content Control plugin: member-restricted posts render their excerpt wrapped
   in `.cc-content-excerpt` (plus empty control/denial containers) instead of
   plain excerpt text. That wrapper carries a 2em (32px) block margin the plain
   text lacks, so restricted cards sit with extra space and read as "styled
   differently." Force the wrapper to inherit the excerpt's flow + typography
   (defensive against any plugin font/color too) and hide the empty containers.
   Unscoped from dmec-home-news so it also normalizes other post lists. */
body.dmec-redesign-active .elementor-post__excerpt .cc-content-excerpt {
  margin: 0;
  font: inherit;
  color: inherit;
}

body.dmec-redesign-active .elementor-post__excerpt .content-control-container:empty,
body.dmec-redesign-active .elementor-post__excerpt .denial-message-container:empty {
  display: none;
}

/* "View All" buttons — Figma 201:6105 / 201:6165.
 *
 * Canonical button is 145 × 56, padding 16 24, 4 px rounded, with
 * "View All" label (PT Sans Bold 16/1.24 Primary/700 +0.01em
 * uppercase-equivalent tracking) and a 24 × 24 chevron-right icon to
 * the right of the label. Inner spacing between label and icon is
 * effectively 8 px (the canonical wraps the label in a px-8 container,
 * so the visible gap between text right edge and icon left edge is 8).
 *
 * In the local DOM the "button" is two side-by-side widgets inside a
 * flex container:
 *
 *   .elementor-element-0288199  (left button)
 *   ├── .elementor-element-808b76d  heading widget — "View All" link
 *   └── .elementor-element-a516ee4  icon widget — chevron-right
 *
 *   .elementor-element-e6e4b67  (right button)
 *   ├── .elementor-element-ee5468d  heading widget
 *   └── .elementor-element-442ddc9  icon widget
 *
 * Style the OUTER container as the button shape; let the inner widgets
 * sit inside it with the correct gap. */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-0288199,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-e6e4b67 {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  min-height: 56px;
  /* Padding asymmetric on Y (top 16, bottom 8) — Figma 201:6105 spec
   * is symmetric `py-16` but in our LEFT column the H3 wraps to two
   * lines and the symmetric box centers View All visually high
   * relative to the all-caps subheading. With `align-items: center`
   * on the head row, shaving 8 px off the wrapper's bottom shrinks
   * the wrapper and re-centers it, effectively dropping the View All
   * text ~4 px so it lands closer to the optical mid-line of the
   * 2-line H3. The tradeoff: RIGHT column (single-line H3) also
   * drops 4 px, but the visual still reads as centered against its
   * subheading. */
  padding: 16px 24px 8px 24px;
  border-radius: 4px;
  flex: 0 0 auto;
  width: auto;
}

/* "View All" label typography (h6 inside the heading widget). */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-808b76d .elementor-heading-title,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-ee5468d .elementor-heading-title {
  margin: 0;
  color: var(--dmec-primary-700); /* #2455A6 */
  font-size: 16px;
  font-weight: 700;
  line-height: 1.24;
  letter-spacing: 0.01em;
  white-space: nowrap;
  text-transform: none;
}

body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-808b76d .elementor-heading-title a,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-ee5468d .elementor-heading-title a {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-decoration: none;
}

/* Chevron-right icon — 24 × 24, Primary/700 (matches the label color).
 * Constrain the widget itself to 24 × 24 with line-height: 1 so the
 * inline-baseline rendering doesn't push the icon-row taller than the
 * label-row inside the parent flex container (the 32-tall icon row was
 * making the button 64 tall instead of canonical 56). */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-a516ee4,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-442ddc9 {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  line-height: 1;
}

body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-a516ee4 .elementor-widget-container,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-442ddc9 .elementor-widget-container,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-a516ee4 .elementor-icon-wrapper,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-442ddc9 .elementor-icon-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  line-height: 1;
}

body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-a516ee4 .elementor-icon,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-442ddc9 .elementor-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: var(--dmec-primary-700); /* #2455A6 */
  font-size: 24px;
  line-height: 1;
}

body.dmec-redesign-active .elementor-element.dmec-home-news > .e-con-inner {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 0;
}

body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-24d4917 .elementor-heading-title,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-b9407f1 .elementor-heading-title {
  color: #2f2f2f;
  font-weight: 700;
}

body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-widget-posts .elementor-post__title,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-widget-posts .elementor-post__title a {
  color: #2455a6;
  text-decoration: none;
}

@media (max-width: 1024px) {
  body.dmec-redesign-active .elementor-element.dmec-home-news {
    padding: 80px 24px;
  }
}
/* #125/#126: homepage news/resources post-title links take the canonical
   hovered link state — link-hover color + underline (Matt: "follow the body
   text link color and underline"). The earlier rule targeted `h4` / the Loop
   Grid `.e-loop-item`, but this is a Posts widget whose titles are
   `.elementor-post__title a`; and the per-element title rule above
   (`…dmec-home-news .elementor-widget-posts .elementor-post__title a`, ~0,5,2)
   out-ranked the foundation `a:hover`, so no hover ever showed. Match that
   selector depth + `:hover` to land at (0,6,2) and win. Row-level
   `.elementor-post:hover` / `:focus-within` so hovering anywhere on the row
   lights the title. The "View All" arrow is a separate icon widget and is not
   matched here, so it never gets underlined. */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-widget-posts .elementor-post__title a:hover,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-widget-posts .elementor-post:hover .elementor-post__title a,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-widget-posts .elementor-post:focus-within .elementor-post__title a {
  color: var(--dmec-color-link-hover);
  text-decoration: underline;
  text-decoration-thickness: from-font;
}

/* #125 (round-2 bounce-back — Matt: "Still no hover state on View All"):
   the previous pass only added hover to the post-title links; the "View All"
   button itself never reacted. Label + arrow are SEPARATE widgets inside the
   button wrapper (0288199 / e6e4b67), so hovering anywhere on the button must
   light BOTH. Drive the state off the wrapper `:hover` (and `:focus-within`
   for keyboard): the label text takes link-hover color + underline; the arrow
   takes the color only (its underline stays suppressed by the guard below).
   Selector depth (wrapper id + heading-title + a) lands at ~(0,6,2) to beat
   the per-element label rule above. */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-0288199:hover .elementor-element-808b76d .elementor-heading-title a,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-0288199:focus-within .elementor-element-808b76d .elementor-heading-title a,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-e6e4b67:hover .elementor-element-ee5468d .elementor-heading-title a,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-e6e4b67:focus-within .elementor-element-ee5468d .elementor-heading-title a {
  color: var(--dmec-color-link-hover);
  text-decoration: underline;
  text-decoration-thickness: from-font;
}

/* Arrow icon follows the label color on button hover/focus (no underline). */
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-0288199:hover .elementor-icon,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-0288199:focus-within .elementor-icon,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-e6e4b67:hover .elementor-icon,
body.dmec-redesign-active .elementor-element.dmec-home-news .elementor-element-e6e4b67:focus-within .elementor-icon {
  color: var(--dmec-color-link-hover);
}

/* Belt-and-braces: the "View All" arrow icon link must never underline,
   even though the global `a:hover` adds underline inside #main-container. */
body.dmec-redesign-active .dmec-home-news .elementor-icon,
body.dmec-redesign-active .dmec-home-news .elementor-icon:hover {
  text-decoration: none;
}

/* =================================================================
 * Page: Homepage — Member CTA (Become a DMEC Member)
 *
 * The member CTA section ships as `.dmec-home-member-cta` (canonical
 * class stamped by the CLI migrate command). Same navy/teal band
 * treatment as the subpage CTA components — padding matches the
 * blue CTA (80 px top/bottom, 120 px left/right).
 * ================================================================= */
body.dmec-redesign-active .dmec-home-member-cta {
  /* Figma 721:18187 — the 52px "Become a member" pill half-overhangs the
   * stats band above it (centered on the band's bottom edge, 26px above /
   * 26px below). The CTA ships as its own section with the button carrying
   * an intrinsic negative offset, so this margin is calibrated to land the
   * pill's centre on the band edge; padding-bottom holds the canonical 80px
   * gap below the button. z-index keeps the pill above the band overlay. */
  position: relative;
  z-index: 2;
  margin-top: 4px;
  padding: 0 120px 80px;
}

/* Figma 721:18187 "button / basic" — 52px pill, Primary/700 fill with a
 * 1px white ring, 16px PT Sans Bold label. Overrides the larger global
 * button metrics so the CTA matches the design's compact pill. */
/* Doubled `.dmec-home-member-cta` to out-specify Elementor's per-widget
 * border rule (which zeroes border-width) — same pattern the blue CTA uses
 * (`_section-cta-2-col-blue`). The white ring matters here because the pill
 * sits over the dark stats band. */
body.dmec-redesign-active .dmec-home-member-cta.dmec-home-member-cta .elementor-button {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 52px;
  padding: 0 24px;
  border: 1px solid var(--dmec-white);
  border-radius: 4px;
  background: var(--dmec-primary-700);
  color: var(--dmec-white);
  font-family: var(--dmec-font-family-body);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.24;
  letter-spacing: 0.16px;
  white-space: nowrap;
  box-shadow: none;
}

@media (max-width: 1024px) {
  body.dmec-redesign-active .dmec-home-member-cta {
    padding: 56px 40px;
  }
}
@media (max-width: 767px) {
  body.dmec-redesign-active .dmec-home-member-cta {
    padding: 48px 24px;
  }
}
/* =================================================================
 * Page: Homepage — Quick Links
 * Figma note: darker heading, cards clickable, remove "Go now",
 * and add basic interactive states.
 * ================================================================= */
body.dmec-redesign-active .elementor-element.page-section__quick-links {
  --padding-top: 80px;
  --padding-bottom: 80px;
  padding: 80px 120px;
}

body.dmec-redesign-active .elementor-element.page-section__quick-links > .e-con-inner {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 0;
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .elementor-element-62bcb91 .elementor-heading-title {
  /* Round-3 #117 family: heading token (Neutral/900) here too. */
  color: var(--dmec-color-heading);
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .elementor-element-240c0ce > .e-con-inner {
  gap: 32px;
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card {
  position: relative;
  padding: 24px 24px 40px;
  border: 1px solid transparent;
  border-radius: 8px;
  box-shadow: 0 0 32px rgba(18, 44, 86, 0.16);
  transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card:hover,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card:focus-within {
  border-color: var(--dmec-primary-600);
  transform: translateY(-2px);
  box-shadow: 0 0 36px rgba(18, 44, 86, 0.22);
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card img {
  opacity: 0;
  width: 80px;
  height: 80px;
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .elementor-element-9849865 .elementor-widget-container,
body.dmec-redesign-active .elementor-element.page-section__quick-links .elementor-element-0369ab1 .elementor-widget-container,
body.dmec-redesign-active .elementor-element.page-section__quick-links .elementor-element-c01df9b .elementor-widget-container {
  width: 80px;
  height: 80px;
  background-color: var(--dmec-white);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 52px 52px;
  border-radius: 100px;
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .elementor-element-9849865 .elementor-widget-container {
  background-image: url("../img/quicklinks/learning-center.svg");
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .elementor-element-0369ab1 .elementor-widget-container {
  background-image: url("../img/quicklinks/communities.svg");
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .elementor-element-c01df9b .elementor-widget-container {
  background-image: url("../img/quicklinks/dashboard.svg");
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-heading-title {
  position: relative;
  z-index: 2;
  font-size: 20px;
  line-height: 1.32;
  margin-bottom: 16px;
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-widget-text-editor,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-widget-text-editor p {
  position: relative;
  z-index: 2;
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-widget-text-editor p {
  color: var(--dmec-white);
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 0.16px;
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-9afb81c,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-d84f732,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-d44f216 {
  position: static;
  margin: 0;
  padding: 0;
  min-height: 0;
  gap: 0;
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-8b1cad3,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-d351f61,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-7ebb9f1,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-widget-icon {
  display: none;
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-55da781,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-043cde2,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-26ae86b {
  position: absolute;
  inset: 0;
  z-index: 3;
  margin: 0;
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-55da781 .elementor-widget-container,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-043cde2 .elementor-widget-container,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-26ae86b .elementor-widget-container,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-55da781 .elementor-heading-title,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-043cde2 .elementor-heading-title,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-26ae86b .elementor-heading-title {
  position: absolute;
  inset: 0;
  margin: 0;
  color: transparent;
  font-size: 0;
  line-height: 0;
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-55da781 a,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-043cde2 a,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-26ae86b a {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: block;
  width: 100%;
  height: 100%;
  font-size: 0;
  line-height: 0;
  color: transparent;
  background: transparent;
  text-indent: -9999px;
  overflow: hidden;
}

body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-55da781 a:focus-visible,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-043cde2 a:focus-visible,
body.dmec-redesign-active .elementor-element.page-section__quick-links .quick-links-card .elementor-element-26ae86b a:focus-visible {
  outline: 2px solid var(--dmec-white);
  outline-offset: -2px;
}

@media (max-width: 1024px) {
  body.dmec-redesign-active .elementor-element.page-section__quick-links {
    padding: 0 24px 80px;
  }
}
/* =================================================================
 * Shared: social/share icons
 * Hard reset to compact square icon buttons.
 * ================================================================= */
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn {
  width: 45px !important;
  height: 45px !important;
  min-width: 45px !important;
  border: 1px solid var(--dmec-neutral-warm-400) !important;
  border-radius: 0 !important;
  background: var(--dmec-white) !important;
  color: var(--dmec-primary-700) !important;
  padding: 0 !important;
  transition: border-color 160ms ease, color 160ms ease, background 160ms ease;
}

body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn i,
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn svg {
  color: var(--dmec-primary-700) !important;
  fill: var(--dmec-primary-700) !important;
  font-size: 16px !important;
}

body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn:hover {
  background: var(--dmec-white) !important;
  border-color: var(--dmec-neutral-warm-400) !important;
  color: var(--dmec-primary-700) !important;
}

body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn:focus-visible {
  outline: 2px solid var(--dmec-color-focus-ring);
  outline-offset: 2px;
}

body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn:hover i,
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn:hover svg {
  color: var(--dmec-primary-700) !important;
  fill: var(--dmec-primary-700) !important;
}

/* Default-state icon color override on the SPAN wrapper. Elementor stock
   sets `.elementor-share-btn__icon { color: #10847C }` (teal) which the
   inner <i>/<svg> inherits. Targeting the SPAN directly (not just the
   <i>) ensures Font Awesome icons read currentColor blue. */
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn__icon {
  color: var(--dmec-primary-700) !important;
}

/* Divider single-1px fix. Elementor's stock share-buttons widget puts a
   1px border on every `.elementor-grid-item` on all four sides, so adjacent
   items render as a doubled 2px line. Drop the left border on every item
   after the first; the preceding item's right border becomes the single
   shared divider. The first item still has its left border (outer edge);
   the last item still has its right border (outer edge). */
body.dmec-redesign-active .elementor-share-buttons--view-icon .elementor-grid-item + .elementor-grid-item {
  border-left-width: 0 !important;
}

/* =================================================================
 * Section: Content max-width
 * Per design system, body content sections cap at 1200px. Elementor's
 * `.e-con-inner` ships with max-width 1470px which lets text run too
 * wide on 1440-1600 viewports. Scope to redesign-active (or
 * header-redesign-active) so non-redesigned pages keep Elementor's
 * default. Hero sections that need full-bleed should use `.e-con-full`
 * which is unaffected.
 * ================================================================= */
body.dmec-redesign-active .e-con.e-con-boxed > .e-con-inner {
  max-width: 1200px !important;
}

/* =================================================================
 * Section: Suppress empty grey-bg Elementor sections
 *
 * Several pages (About DMEC, others) ship with an empty Elementor
 * `e-con-full.e-child` whose only purpose is a `background: #f0f0f0`
 * spacer that visually appears as a grey rectangle between content
 * sections. There's no content inside (just whitespace text nodes), so
 * we hide it. Targets only Elementor children that:
 *   • are the ONLY child of their `.e-con-inner` parent
 *   • have NO element children (whitespace only)
 *
 * Browsers without `:has()` simply ignore the rule and keep the
 * existing visual spacer — graceful degradation.
 * ================================================================= */
body.dmec-redesign-active .e-con-inner > .e-con-full.e-child:only-child:not(:has(*)) {
  display: none;
}

/* =================================================================
 * Section: Social Button
 * Figma: Components — button / social (`193:5806`)
 * Canonical consumer: Calendar of Events share row
 * ================================================================= */
body.dmec-redesign-active .dmec-social-button,
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn,
body.dmec-redesign-active .share-button-container .elementor-share-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  padding: 12px !important;
  background: transparent !important;
  background-color: transparent !important;
  border: 1px solid var(--dmec-neutral-warm-300) !important;
  border-radius: 0 !important;
  box-sizing: border-box;
  color: var(--dmec-primary-700) !important;
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}

body.dmec-redesign-active .dmec-social-button:hover,
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn:hover,
body.dmec-redesign-active .share-button-container .elementor-share-btn:hover {
  background: var(--dmec-primary-200) !important;
  background-color: var(--dmec-primary-200) !important;
  border-color: var(--dmec-primary-500) !important;
  color: var(--dmec-primary-700) !important;
}

body.dmec-redesign-active .dmec-social-button:active,
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn:active,
body.dmec-redesign-active .share-button-container .elementor-share-btn:active {
  background: var(--dmec-neutral-warm-100) !important;
  background-color: var(--dmec-neutral-warm-100) !important;
  border-color: var(--dmec-neutral-warm-200) !important;
}

body.dmec-redesign-active .dmec-social-button:focus-visible,
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn:focus-visible,
body.dmec-redesign-active .share-button-container .elementor-share-btn:focus-visible {
  outline: 4px solid var(--dmec-color-focus-ring-strong);
  outline-offset: 2px;
}

body.dmec-redesign-active .dmec-social-button[aria-disabled=true],
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn[aria-disabled=true],
body.dmec-redesign-active .share-button-container .elementor-share-btn[aria-disabled=true] {
  color: var(--dmec-neutral-warm-400) !important;
  background: transparent !important;
  background-color: transparent !important;
  border-color: var(--dmec-neutral-warm-200) !important;
  cursor: not-allowed;
}

body.dmec-redesign-active .dmec-social-button__icon,
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn__icon,
body.dmec-redesign-active .share-button-container .elementor-share-btn__icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 20px !important;
  height: 20px !important;
  line-height: 1;
}

body.dmec-redesign-active .dmec-social-button__icon > *,
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn__icon,
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn:hover .elementor-share-btn__icon,
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn:focus-visible .elementor-share-btn__icon,
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn i,
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-share-btn svg,
body.dmec-redesign-active .share-button-container .elementor-share-btn__icon > * {
  font-size: 20px !important;
  line-height: 1;
  color: var(--dmec-primary-700) !important;
  fill: var(--dmec-primary-700) !important;
}

body.dmec-redesign-active .dmec-social-module,
body.dmec-redesign-active .share-button-container .elementor-grid {
  display: inline-flex;
  align-items: center;
  gap: 0;
}

body.dmec-redesign-active .share-button-container .elementor-grid-item {
  margin: 0;
  padding: 0;
  position: relative;
}

body.dmec-redesign-active .share-button-container .elementor-grid-item + .elementor-grid-item {
  margin-left: -1px;
  border-left-width: 0 !important;
}

body.dmec-redesign-active .share-button-container .elementor-grid-item:has(.elementor-share-btn:hover),
body.dmec-redesign-active .share-button-container .elementor-grid-item:has(.elementor-share-btn:active),
body.dmec-redesign-active .share-button-container .elementor-grid-item:has(.elementor-share-btn:focus-visible) {
  z-index: 2;
}

body.dmec-redesign-active .share-button-container .elementor-grid-item + .elementor-grid-item .elementor-share-btn {
  border-left-width: 1px !important;
}

/* =================================================================
 * Section: Card / event
 * Figma: Components — card / event (`174:9729`)
 * Canonical consumer: emitted by `[dmec_upcoming_events]` shortcode
 * partial. Previously the rule list also included a per-page
 * Elementor-element chain for `body.dmec-redesign-active.page-id-2177
 * .page-section__comp9 .e-loop-item .elementor-element-XXX` to drape
 * the same chrome over the legacy loop-grid markup; that chain was
 * retired in the events-canonical migration since the partial now
 * emits `.dmec-card-event` directly on every consumer page.
 * ================================================================= */
body.dmec-redesign-active .dmec-card-event {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  min-height: 128px;
  padding: 24px;
  background: var(--dmec-white);
  border-radius: 8px;
  box-shadow: var(--dmec-shadow-default);
  overflow: hidden;
  transition: transform 180ms ease, box-shadow 180ms ease;
}

/* Figma card/event State=Hovered (174:9826): navy inversion — card
   bg Primary/900, white underlined title, Neutral/warm/100 date,
   24px/24% shadow. (Replaces the lift treatment; round-3 #124.) */
body.dmec-redesign-active .dmec-card-event:hover,
body.dmec-redesign-active .dmec-card-event:focus-within {
  background: var(--dmec-primary-900);
  box-shadow: 0 0 24px 0 rgba(18, 44, 86, 0.24);
}

body.dmec-redesign-active .dmec-card-event:focus-visible {
  outline: 4px solid var(--dmec-color-focus-ring-strong);
  outline-offset: 2px;
}

body.dmec-redesign-active .dmec-card-event__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  min-width: 80px;
  height: 80px;
  border-radius: 999px;
  background: var(--dmec-tertiary-600) url("../img/events/video-camera-front-outline-rounded.svg") center/52px 52px no-repeat;
}

body.dmec-redesign-active .dmec-card-event__icon-glyph {
  opacity: 0;
  width: 52px;
  height: 52px;
}

body.dmec-redesign-active .dmec-card-event__text {
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

body.dmec-redesign-active .dmec-card-event__title,
body.dmec-redesign-active .dmec-card-event__title a {
  display: block;
  max-width: 700px;
  margin: 0;
  font-family: var(--dmec-font-family-body);
  font-size: var(--dmec-h04-size);
  font-weight: 700;
  line-height: var(--dmec-h04-lh);
  color: var(--dmec-color-link);
  text-decoration: none;
  text-wrap: pretty;
}

/* Round-4 #131-family: underline only the anchor — decorating the
   title element too paints a second line (propagated decoration +
   the link's own at the foundation offset). */
body.dmec-redesign-active .dmec-card-event:hover .dmec-card-event__title,
body.dmec-redesign-active .dmec-card-event:focus-within .dmec-card-event__title {
  color: var(--dmec-white);
  text-decoration: none;
}

body.dmec-redesign-active.dmec-redesign-active .dmec-card-event:hover .dmec-card-event__title a,
body.dmec-redesign-active.dmec-redesign-active .dmec-card-event:focus-within .dmec-card-event__title a {
  color: var(--dmec-white);
  text-decoration: underline;
  text-decoration-thickness: from-font;
  /* Hold PT Sans Bold (700) on hover — foundation a:hover{font-weight:inherit} at
     (0,4,2) would beat the default (0,2,2) rule and shift card titles 700→400.
     Doubled .dmec-redesign-active brings this selector to (0,5,2) to win. */
  font-weight: 700;
}

body.dmec-redesign-active .dmec-card-event:hover .dmec-card-event__date,
body.dmec-redesign-active .dmec-card-event:focus-within .dmec-card-event__date {
  color: var(--dmec-neutral-warm-100);
}

body.dmec-redesign-active .dmec-card-event__date {
  margin: 0;
  font-family: var(--dmec-font-family-body);
  font-size: var(--dmec-caption-size);
  font-weight: 400;
  line-height: var(--dmec-caption-lh);
  letter-spacing: var(--dmec-caption-track-allcaps);
  text-transform: uppercase;
  color: var(--dmec-neutral-warm-700);
}

/* =================================================================
 * Component: Card stretched-link (a11y)
 *
 * Subpage-grid cards (Resources / Community / Certification & Training /
 * Find a Job loop, etc.) ship from Elementor with three redundant
 * anchors per card — image wrapper, title, "More" button, trailing
 * arrow icon — all pointing to the same destination. The
 * dmec-card-link.js partial removes the "More" button and the trailing
 * arrow icon, then flags:
 *
 *   • the card container with `dmec-card-stretched`
 *   • the title anchor with `dmec-card-stretched-link`
 *
 * This rule grows the title anchor's hit area to cover the entire card
 * (the "stretched link" pattern) so the whole card is clickable while
 * remaining a single tab-stop / single screen-reader announcement.
 *
 * Focus indicator moves to the card via `:focus-within` so the canonical
 * 4-px Tertiary/500 ring outlines the actual click target.
 *
 * Companion: dmec-card-link.js (DOM modifier, runtime).
 * ================================================================= */
.dmec-card-stretched {
  position: relative;
}

.dmec-card-stretched-link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

/* Empty card-wide anchor injected by `dmec-card-link.js` for cards with
 * a single-anchor pattern (e.g. Quick Links cards on the homepage —
 * "Go now" → card-wide overlay). Without text content the link is 0×0
 * so its ::after stretches over nothing. Position the link itself
 * absolute over the whole card. */
.dmec-card-stretched > a.dmec-card-stretched-link:empty {
  position: absolute;
  inset: 0;
  z-index: 3;
}

/* Anything else inside the card sits above the stretched-link overlay
   so user text-selection still works on body copy and other anchors
   (none expected after More+ removal, but defensive). */
.dmec-card-stretched > *,
.dmec-card-stretched .subpage-grid-card-bottom > * {
  position: relative;
  z-index: 2;
}

/* Hover treatment on whole card — title gets the underline cue when
   the user hovers anywhere on the card body. */
.dmec-card-stretched:hover .dmec-card-stretched-link {
  text-decoration: underline;
}

body.dmec-redesign-active :where(#main-container) .quick-links-card.dmec-card-stretched:hover,
body.dmec-redesign-active :where(#main-container) .quick-links-card.dmec-card-stretched:focus-within {
  outline: 4px solid var(--dmec-primary-600);
  outline-offset: 0;
}

/* Focus moves to the card container so the canonical ring outlines the
   actual click target instead of just the title text. Uses
   :has(:focus-visible) so the ring appears only on keyboard navigation,
   NOT on mouse clicks (BugZap #140 — no purple outline after click). */
.dmec-card-stretched:has(:focus-visible) {
  outline: 4px solid var(--dmec-focus-ring);
  outline-offset: 2px;
}

/* Suppress the title link's own focus ring since the card now wears
   it. Without this we'd get a doubled ring (title + card). */
.dmec-card-stretched-link:focus-visible {
  outline: none;
}

/* =================================================================
 * Component: Hero Pill (Header Block)
 *
 * Per Figma 162:8798 ("HeaderBlock" / x-large), the magenta page-title
 * pill should be a content-hugging block with 80px L/R + 20px T/B
 * inner padding around its text — NOT a full-width band that stretches
 * across the 1200px content container.
 *
 * Elementor renders this as an `e-con` with classic background
 * `Tertiary/700` (#701471) whose only child is a heading widget
 * containing the page-title `<h1>`. We can't filter by computed
 * background-color in CSS, so we target the structural pattern instead:
 * a child e-con whose only child is a heading widget that contains an
 * `h1.elementor-heading-title`. This pattern only matches the hero pill
 * (other H1s exist on a page only as the body title, never inside this
 * specific Elementor structure).
 *
 * Padding: the heading widget's own `.elementor-widget-container` ships
 * with `padding: 20px` from Elementor defaults. We override the inline
 * padding to `20px 80px` to match the Figma spec exactly. The e-con's
 * own padding stays at 0; sizing is hug-content via `width: fit-content`
 * + auto inline margins to recenter inside the row.
 * ================================================================= */
body.dmec-redesign-active .e-con.e-child:has(> .elementor-widget-heading:only-child > .elementor-widget-container > h1.elementor-heading-title) {
  width: fit-content;
  max-width: calc(100% - 32px);
  margin-inline: auto;
}

body.dmec-redesign-active .e-con.e-child:has(> .elementor-widget-heading:only-child > .elementor-widget-container > h1.elementor-heading-title) > .elementor-widget-heading > .elementor-widget-container {
  padding: 20px 80px;
}

/* =================================================================
 * Component: Latest News & Resources section (canonical)
 *
 * The "Read the latest news about integrated disability and absence
 * management..." section ships from Elementor under the canonical
 * class `.page-section__latest-news`, but each host page has its own
 * copy of the section with its own data-id and its own per-section
 * inline background-color rule generated by Elementor's auto-CSS
 * pipeline. Result: the same component renders with three different
 * neutral backgrounds across four pages (#f0f0f0, #f4f6fa, transparent
 * etc).
 *
 * Pin the canonical visuals here. `--dmec-neutral-cold-100` (#f4f6fa)
 * is the design-token-defined card/section neutral. The `!important`
 * is required to win over Elementor's per-section inline rule chain
 * (`body.elementor-page-N .elementor-element-{ID}`) without us
 * having to maintain a list of per-page IDs.
 *
 * The Homepage version uses a different component class entirely
 * (`.dmec-home-news`, dark blue Primary/700 band) — that section is
 * intentionally distinct and not affected by this rule.
 * ================================================================= */
/* Zero the parent Elementor wrapper that contains the Latest News
   component. Elementor's .e-con-boxed > .e-con-inner has a default
   10px padding that creates a visible white strip above the gray
   Latest News background. */
body.dmec-redesign-active .e-con:has(> .e-con-inner .dmec-latest-news),
body.dmec-redesign-active .e-con:has(> .e-con-inner .page-section__latest-news) {
  padding: 0;
  margin: 0;
}

body.dmec-redesign-active .e-con:has(> .e-con-inner .dmec-latest-news) > .e-con-inner,
body.dmec-redesign-active .e-con:has(> .e-con-inner .page-section__latest-news) > .e-con-inner {
  padding: 0;
}

body.dmec-redesign-active .page-section__latest-news {
  padding-top: 80px;
  padding-bottom: 80px;
  background-color: var(--dmec-neutral-cold-100);
  /* Full-bleed background per Figma 201:7181 — section's parent
   * container constrains it to 1200 px on most pages, but the
   * canonical design extends the gray bg edge-to-edge of the
   * viewport. Same negative-margin pattern as `.page-section__cta-2-col-teal`. */
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  /* No top margin — the gray section's bg should flow directly
   * against whatever component precedes it (stats band, ad space, etc.)
   * with no white gap. The 80 px section padding-top provides the
   * visible breathing room above the heading. */
  margin-top: 0;
  /* No bottom margin — the gray section's bg should flow directly
   * into whatever component follows (navy/teal CTA, partners, etc.)
   * with no white gap between. The 80 px section padding-bottom
   * provides the visible breathing room from the carousel content
   * to the next component's content. */
  margin-bottom: 0;
}

/* Internal typography pinned to Figma node 201:7181 (Latest News &
   Resources InfoBox). Each per-page SCSS file used to copy these
   rules with its own data-id (3dbcb21 / 6ab47372 / 3290bf41) AND
   used the wrong values besides — H6 was ending up at 24px navy
   instead of the 12px charcoal Caption/medium token, H2 at
   Headline-02 (32px Bold) instead of Headline-03/regular, etc.
   Pin once, here, against the canonical class. */
/* H6 supertext "LATEST NEWS & RESOURCES" — Caption/medium/bold-all caps:
   PT Sans Bold 12px, Neutral/warm/800 #404040.
   BugZap #16: tracking is the canonical all-caps caption 0.04em — the
   old hardcoded 4px here was silently overriding the fixed value in
   dmec-latest-news.css at higher specificity (found during the About
   Figma re-verify).
   Specificity: (0,4,2) — doubled body class + doubled component class + h6
   to beat Elementor's (0,4,0) widget typography. */
body.dmec-redesign-active.dmec-redesign-active .page-section__latest-news.page-section__latest-news h6 {
  font-family: var(--dmec-font-family-body);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: var(--dmec-caption-track-allcaps, 0.04em);
  text-transform: uppercase;
  color: var(--dmec-neutral-warm-800);
}

/* H2 description "Read the latest news about…" — Headline 03 / regular:
   PT Sans Regular 24px, Neutral/warm/900 #2B2B2B. */
body.dmec-redesign-active.dmec-redesign-active .page-section__latest-news.page-section__latest-news h2 {
  font-family: var(--dmec-font-family-body);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.32;
  letter-spacing: 0;
  color: var(--dmec-neutral-warm-900);
}

/* Post-title link list — Headline 04 / bold:
   PT Sans Bold 20px, Primary/600 #356EBD. */
body.dmec-redesign-active.dmec-redesign-active .page-section__latest-news.page-section__latest-news .post-title-link {
  font-family: var(--dmec-font-family-body);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.32;
  color: var(--dmec-primary-600);
  text-decoration: none;
}

body.dmec-redesign-active .page-section__latest-news a {
  text-decoration: none;
}

/* Active / hover — shift to Tertiary/600 magenta per the canonical
   carousel-list interaction. */
body.dmec-redesign-active.dmec-redesign-active .page-section__latest-news.page-section__latest-news .post-title-link.active,
body.dmec-redesign-active.dmec-redesign-active .page-section__latest-news.page-section__latest-news .post-title-link:hover {
  color: var(--dmec-tertiary-600, #9a239c);
  text-decoration: none;
}

/* Carousel nav arrows — Elementor's loop-carousel widget defaults to
   a white-pill ‘pebble’ style (background: #fff, border-radius: 999px).
   Per Figma 201:7181 the arrows are transparent square-rounded buttons
   that just contain the chevron — `button / icon` shape with `p-[8px]`
   and `rounded-[4px]`. Pin both states. */
body.dmec-redesign-active .page-section__latest-news .elementor-swiper-button {
  background-color: transparent !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  padding: 8px !important;
  color: var(--dmec-primary-700) !important;
}

body.dmec-redesign-active .page-section__latest-news .elementor-swiper-button:hover {
  background-color: rgba(36, 85, 166, 0.08) !important;
}

body.dmec-redesign-active .page-section__latest-news .elementor-swiper-button:focus-visible {
  outline: 4px solid var(--dmec-focus-ring);
  outline-offset: 2px;
  background-color: transparent !important;
}

/* Pre-init flash suppression — before Swiper's JS upgrades the
   `.swiper` wrapper (adding `.swiper-initialized`), all slides render
   in their natural flow as a vertical list of titles, producing the
   ‘broken stacked headings’ flash we kept seeing on /community/ etc.
   Hide every slide except the first until init runs. */
body.dmec-redesign-active .page-section__latest-news .swiper:not(.swiper-initialized) .swiper-slide:not(:first-child) {
  display: none !important;
}

/* =================================================================
 * Loop-carousel variant (Cert & Training, Community legacy pages).
 * Pass 2 dedup: these rules were byte-identical copies scoped to
 * page-id-531 and page-id-532; the loop-carousel only renders inside
 * `.page-section__latest-news`, so the class alone is the scope.
 * ================================================================= */
body.dmec-redesign-active .page-section__latest-news .elementor-widget-loop-carousel {
  position: relative;
}

body.dmec-redesign-active .page-section__latest-news .elementor-widget-loop-carousel .elementor-widget-container {
  padding-inline: 40px;
}

body.dmec-redesign-active .page-section__latest-news .elementor-widget-loop-carousel .elementor-swiper-button {
  inset-inline: auto;
  top: 50%;
  margin-top: -17.5px;
  width: 35px;
  height: 35px;
  border-radius: 999px;
  background: var(--dmec-white);
  box-shadow: var(--dmec-shadow-default);
}

body.dmec-redesign-active .page-section__latest-news .elementor-widget-loop-carousel .elementor-swiper-button-prev {
  left: 16px;
}

body.dmec-redesign-active .page-section__latest-news .elementor-widget-loop-carousel .elementor-swiper-button-next {
  right: 16px;
}

/* Slide-level styling (531 carried these; harmless on 532's slides,
   which already render white/flat). */
body.dmec-redesign-active .page-section__latest-news .elementor-widget-loop-carousel .swiper-slide {
  background: var(--dmec-white);
  border: 1px solid rgba(18, 44, 86, 0.12);
  overflow: hidden;
}

body.dmec-redesign-active .page-section__latest-news .elementor-widget-loop-carousel .swiper-slide > .elementor,
body.dmec-redesign-active .page-section__latest-news .elementor-widget-loop-carousel .swiper-slide .e-con,
body.dmec-redesign-active .page-section__latest-news .elementor-widget-loop-carousel .swiper-slide .elementor-widget-container,
body.dmec-redesign-active .page-section__latest-news .elementor-widget-loop-carousel .swiper-slide img {
  border-radius: 0 !important; /* grandfathered from page-id-531 rules */
  box-shadow: none !important;
}

body.dmec-redesign-active .page-section__latest-news .elementor-widget-loop-carousel .swiper-slide .e-con {
  background: transparent !important;
}

/* =================================================================
 * Component: Breadcrumbs (canonical)
 *
 * Yoast/Blocksy emit `<p id="breadcrumbs">` with `a` and `strong`
 * children. Every redesigned subpage applies the same typography +
 * link styling. Previously each per-page SCSS file (resources,
 * certification-training, community) carried its own copy of these
 * rules scoped by `page-id-N`, producing 28 lines of byte-identical
 * CSS per page × N pages.
 *
 * Canonicalize to one rule scoped to `body.dmec-redesign-active`. The
 * specificity is (0,0,2,1) which is BELOW the existing per-page
 * (0,0,3,1) rules; that's intentional during the migration so the
 * per-page files can be stripped one-by-one without flipping behavior
 * mid-roll-out. Once the per-page duplicates are removed, this rule
 * becomes the single source of truth.
 *
 * Figma: see Breadcrumbs spec on the page-tracker wiki for the
 * canonical Body 16/1.24 PT Sans treatment.
 * ================================================================= */
body.dmec-redesign-active #breadcrumbs,
body.dmec-redesign-active #breadcrumbs a,
body.dmec-redesign-active #breadcrumbs strong {
  font-family: var(--dmec-font-family-body) !important;
  font-size: 16px !important;
  line-height: 1.24 !important;
}

body.dmec-redesign-active #breadcrumbs {
  margin: 0;
  color: var(--dmec-neutral-warm-900);
}

body.dmec-redesign-active #breadcrumbs a {
  color: var(--dmec-primary-600) !important;
  text-decoration: none;
  transition: color 160ms ease;
  /* The foundation `a { font-weight: inherit }` rule would pull from the
     parent <p#breadcrumbs> which has no explicit weight (browser default 400).
     Breadcrumbs are PT Sans Bold per Figma — declare explicitly so the
     (1,1,2) ID-bearing specificity here beats the foundation rule at (0,1,2). */
  font-weight: 700;
}

body.dmec-redesign-active #breadcrumbs a:hover {
  /* BugZap #14: hover must match the canonical link-hover state
     (Primary/900), not the legacy magenta. */
  color: var(--dmec-color-link-hover) !important;
  text-decoration: underline;
  /* Hold the bold weight on hover — the foundation BugZap-76 hover rule
     `a:hover { font-weight: inherit }` at (0,3,1) would otherwise pull
     from the parent <p> at 400, shifting breadcrumb links from bold to
     normal on hover. Specificity here: (1,2,2) — beats the foundation rule. */
  font-weight: 700;
}

body.dmec-redesign-active #breadcrumbs a:focus-visible {
  outline: 4px solid var(--dmec-focus-ring);
  outline-offset: 2px;
  border-radius: 2px;
}

body.dmec-redesign-active #breadcrumbs strong {
  font-weight: 700;
  color: var(--dmec-neutral-warm-900);
}

/* =================================================================
 * Component: Breadcrumb + Share row (single-line treatment)
 *
 * Article pages (resources/work-magazine/* etc.) ship from Elementor as
 * two SIBLING full-bleed rows directly under the page-header band:
 *
 *   .elementor-element-11033d61   breadcrumb row    (h ≈ 38)
 *   .elementor-element-60e48599   share-buttons row (h ≈ 64)
 *
 * Stacked vertically by default — breadcrumb on its own line, share
 * buttons on the next line. Per Figma the canonical treatment is a
 * SINGLE row with breadcrumbs left-aligned + share buttons right-
 * aligned, both vertically centered, 120 px L/R gutters, sitting 60 px
 * below the magenta hero pill.
 *
 * Implementation strategy (CSS-only — no DOM restructure):
 *   1. Stretch the breadcrumb row's inner to 64 px (matches share row
 *      height) and `align-items: center` so the breadcrumb anchors to
 *      vertical mid.
 *   2. Pull the share row UP by -64 px via `margin-top` so it overlaps
 *      the breadcrumb row's vertical span. Subsequent siblings shift
 *      up by 38 px (= old breadcrumb-row height that's now absorbed),
 *      which is desired — visual gap to the next content block stays
 *      consistent because the breadcrumb-row height is now donated to
 *      the merged row.
 *   3. Justify the share row's inner to flex-end so icons sit right.
 *   4. Use the same 1200 px max-width centered layout as the rest of
 *      the page content (= 120 px gutters at Figma's 1440 px frame).
 *   5. 60 px gap above by raising the breadcrumb row's margin-top from
 *      its current 0 to 40 (current pill→bcRow gap is 20 px; +40 → 60).
 *   6. Share-button border narrowing handled in `_social-button.scss`
 *      (already 1 px solid Neutral/warm/300). The "perceived 2 px" in
 *      Matt's screenshot was the visual sum of two adjacent borders
 *      across the inter-icon gap; merging icon borders via the same
 *      `-1 px margin-left` trick used for `.share-button-container`
 *      collapses adjacent borders to a single hairline.
 * ================================================================= */
/* (1)+(2)+(4)+(5) — row-level layout fix */
body.dmec-redesign-active .elementor-element.elementor-element-11033d61 {
  margin-block-start: 40px; /* (5) → +40 = 60 px from pill */
  min-height: 64px; /* (1) → match share row */
}

body.dmec-redesign-active .elementor-element.elementor-element-60e48599 {
  margin-block-start: -64px; /* (2) → overlap breadcrumb row */
  position: relative;
  z-index: 2;
  pointer-events: none; /* let breadcrumb beneath stay clickable */
}

/* Re-enable pointer events on the share buttons themselves (the row
 * itself is pass-through so the breadcrumb anchors below remain
 * clickable in their visual half of the row). */
body.dmec-redesign-active .elementor-element.elementor-element-60e48599 .elementor-widget-share-buttons {
  pointer-events: auto;
}

/* (1)+(3)+(4) — inner alignment + gutters */
body.dmec-redesign-active .elementor-element.elementor-element-11033d61 > .e-con-inner,
body.dmec-redesign-active .elementor-element.elementor-element-60e48599 > .e-con-inner {
  align-items: center;
  min-height: 64px;
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-top: 0;
  padding-bottom: 0;
}

/* (3) — anchor share buttons to the right.
 *
 * Elementor sets `--flex-direction: row-reverse` on this row's e-con-inner
 * (configured in the page's Elementor data). With `flex-direction:
 * row-reverse`, the "end" of the main axis is the LEFT — so a naive
 * `justify-content: flex-end` ends up at the left. Force `flex-direction:
 * row` to get a normal axis, then flex-end aligns the share widget to
 * the right. */
body.dmec-redesign-active .elementor-element.elementor-element-60e48599 > .e-con-inner {
  flex-direction: row;
  justify-content: flex-end;
}

/* (6) — strip the grid-item's redundant 1-px border.
 *
 * Elementor renders each share button inside a `.elementor-grid-item`
 * box which itself ships a `1px solid #c7c7c7` border (in addition to
 * the button's own `1px solid Neutral/warm/300` border from
 * `_social-button.scss`). Two stacked 1-px borders read visually as
 * 2 px of gray — the "double border" Matt observed.
 *
 * Zero out the grid-item border so only the button's canonical 1-px
 * border renders. Then collapse adjacent button borders so the
 * inter-icon dividing line is also a single 1-px hairline (same
 * negative-margin trick `.share-button-container` uses for the
 * Calendar of Events share row). */
body.dmec-redesign-active .elementor-widget-share-buttons .elementor-grid-item {
  border: 0 !important;
}

body.dmec-redesign-active .elementor-widget-share-buttons .elementor-grid-item + .elementor-grid-item {
  margin-left: -1px !important;
}

/* =================================================================
 * Generic inner-page breadcrumb + share treatment
 *
 * The rules above target article-page-specific Elementor data-ids.
 * Many other inner pages (Membership children, Certification, etc.)
 * use the same pattern via semantic classes `.breadcrumb-container`
 * and `.share-button-container`. These rules provide the canonical
 * 1200 px max-width centered layout, single-row collapse, and
 * vertical centering for ANY page carrying those classes.
 *
 * The element-specific rules above still win on article pages thanks
 * to their higher specificity (element-ID selector), so there is no
 * conflict.
 * ================================================================= */
/* --- Breadcrumb row: 1200 px centered, consistent height ---------- */
body.dmec-redesign-active .breadcrumb-container {
  margin-block-start: 40px;
  min-height: 40px;
}

/* Specificity must beat `body.dmec-redesign-active .e-con.e-con-boxed > .e-con-inner`
   (0,3,1) which also sets max-width. Chaining `.e-con-boxed` gives us (0,3,1)
   and we win by source order (this file loads after the base rule). */
body.dmec-redesign-active .breadcrumb-container.e-con-boxed > .e-con-inner {
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  min-height: 40px;
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-top: 0;
  padding-bottom: 0;
}

/* Figma breadcrumbs/section (817:21138): the merged row hugs its
   content — social buttons are 46px (12px padding + 20px icon + 1px
   borders), breadcrumbs 28px, both center-aligned, row top 104px
   below the band. 48px keeps the text within ±1px of the comp; the
   old 60-64px min-heights were adding ~15px of phantom air that read
   as the breadcrumbs sitting too low (round-2 QA). */
body.dmec-redesign-active .breadcrumb-container:has(+ .share-button-container) {
  min-height: 48px;
}

body.dmec-redesign-active .breadcrumb-container.e-con-boxed:has(+ .share-button-container) > .e-con-inner {
  min-height: 48px;
}

/* --- Breadcrumb-row child fixes ---------------------------------- */
/* Some pages (e.g. page-20946 AbsenceExemplar) nest a spacer widget
   and the breadcrumb widget inside the same `.breadcrumb-container`.
   The spacer gets `flex: 0 0 auto` at 1200 px from Elementor, stealing
   the full row and leaving the breadcrumb at 0 px (text renders
   vertically). Hide the spacer — it's decorative — and let the
   breadcrumb fill the row. */
body.dmec-redesign-active .breadcrumb-container .elementor-widget-spacer {
  display: none;
}

body.dmec-redesign-active .breadcrumb-container .elementor-widget-breadcrumbs {
  flex: 1 1 100%;
  width: 100%;
  min-width: 0;
}

/* Normal landing-page handoff: breadcrumb row to first content section. */
body.dmec-redesign-active .breadcrumb-container + .e-con:not(.share-button-container) {
  --padding-top: 32px;
  padding-top: 32px;
}

/* Merged-row handoff: when a share row follows the breadcrumb (single
   merged row), the content sits TWO siblings after the breadcrumb-
   container, so the rule above (which targets the breadcrumb's immediate
   sibling — here the share row) misses it. Give the content after the
   share row the same 32px breadcrumb→content gap. BugZap #67/#68. */
body.dmec-redesign-active .breadcrumb-container + .share-button-container + .e-con {
  --padding-top: 32px;
  padding-top: 32px;
}

/* --- Share-button row: pull up into breadcrumb row, right-align -- */
body.dmec-redesign-active .share-button-container {
  margin-block-start: -48px;
  position: relative;
  z-index: 2;
  pointer-events: none;
}

body.dmec-redesign-active .share-button-container.e-con-boxed > .e-con-inner {
  align-items: center;
  min-height: 48px;
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-top: 0;
  padding-bottom: 0;
  flex-direction: row;
  justify-content: flex-end;
}

body.dmec-redesign-active .share-button-container .elementor-widget-shortcode,
body.dmec-redesign-active .share-button-container .elementor-widget-share-buttons {
  pointer-events: auto;
}

/* =================================================================
 * Component: Section intro H2 (canonical)
 *
 * The "Read the latest news…", "Explore by topic", "Find what fits"
 * style H2 lead-ins on subpages all ship from the same Elementor
 * heading widget template — Elementor data-id `f217016` — and are
 * meant to render with the canonical Headline 02 token (PT Sans Bold
 * 32, Primary/700).
 *
 * Each per-page file (resources, certification-training, community)
 * carried its own copy of this rule scoped by `page-id-N` even though
 * the rule body was byte-identical. Move it here so the data-id alone
 * is the discriminator — Elementor data-ids are unique to the
 * template instance and appear with the same value on every host page
 * that uses this template, so the page-id constraint was redundant.
 * ================================================================= */
/* SCSS optimization pass 1: class-only selectors. The class is
   stamped template-wide wherever element id `f217016` appears
   (TEMPLATE_CLASS_STAMPS), so clones inherit it. */
/* --- Section spacing ------------------------------------------------ */
body.dmec-redesign-active .page-section__h2-intro {
  padding: 40px 0;
}

/* Elementor injects varying inline padding on the inner container
   (pb 40–60 px depending on the page instance). Zero it out so only
   the section's 40 px padding applies. Gap between children pinned to
   Figma's 16 px (title → text gap per comment #364). */
body.dmec-redesign-active .page-section__h2-intro > .e-con-inner {
  padding: 0;
  gap: 16px;
}

/* --- Heading typography --------------------------------------------- */
body.dmec-redesign-active.dmec-redesign-active .page-section__h2-intro.page-section__h2-intro .elementor-heading-title {
  font-family: var(--dmec-font-family-body);
  font-size: var(--dmec-h02-size);
  line-height: var(--dmec-h02-lh);
  font-weight: 700;
  color: var(--dmec-color-heading);
  /* BugZap #30: this title style is ALL CAPS everywhere. */
  text-transform: uppercase;
}

/* --- Body text — non-clickable text must be Neutral, not blue ------- */
body.dmec-redesign-active.dmec-redesign-active .page-section__h2-intro.page-section__h2-intro .elementor-widget-text-editor,
body.dmec-redesign-active.dmec-redesign-active .page-section__h2-intro.page-section__h2-intro .elementor-widget-text-editor p {
  color: var(--dmec-color-text);
}

/* =================================================================
 * Component: Subpage 3-card grid (canonical)
 *
 * The card grid ("explore by topic" etc.) used on /resources/,
 * /certification-and-training/, /community/, About DMEC, State
 * Policy, DMECommunities, and any page cloned from the same
 * template.
 *
 * SCSS optimization pass 1: selectors are CLASS-ONLY. The
 * `page-section__subpage-grid` class is stamped by the CLI migrate
 * command — explicitly per page (COMPONENT_CLASS_STAMPS) and
 * template-wide wherever element id `300e26d` appears
 * (TEMPLATE_CLASS_STAMPS) — so cloned pages inherit the styling with
 * no [data-id] coupling. Run `wp dmec migrate-canonical` before
 * shipping a build of this file.
 *
 * Card spec: Figma card/basic (174:5975) — 24px top/side padding,
 * 40px bottom, Headline 04 title in Primary/700, 32px/12% shadow.
 * Hover: Figma navy inversion (Primary/900 bg, white text).
 *
 * Shell/body/hover background rules are double-chained — Elementor
 * stores a stale #F0F0F0 per-element background on several pages'
 * cards at (0,4,0), which beat the single-chain rules (seen on
 * /about-dmec/ during the Figma re-verify).
 * ================================================================= */
/* --- Section spacing ------------------------------------------------ */
body.dmec-redesign-active .page-section__subpage-grid {
  margin-top: 40px;
  margin-bottom: 0;
}

/* --- Grid layout ---------------------------------------------------
   Two host structures exist in content:
     A) boxed section: the stamped element wraps an .e-con-inner and
        cards are the inner's children
     B) flat e-grid (e-con-full): the stamped element IS the grid and
        cards are its direct children (State Policy 8def9f4,
        DMECommunities/Partnership 478ec9e3)
   The stamp must sit on the element whose CHILDREN are the cards —
   never on an outer wrapper (stamping 12e145e flattened the real
   grid inside it; regression caught on /dmec-state-policy/). */
body.dmec-redesign-active .page-section__subpage-grid > .e-con-inner,
body.dmec-redesign-active .page-section__subpage-grid.e-con-full {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 40px;
  row-gap: 40px;
  max-width: 1200px;
  padding-inline: 0;
}

/* Card shell — vertical flex column, square corners, shadow. */
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid > .e-con-inner > .e-con,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid.e-con-full > .e-con {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--dmec-white);
  border-radius: 0;
  /* position + overflow isolate each card's stretched-link overlay
     so hover zones never bleed across the grid (formerly a
     page-id-15890 rule — generic benefit). */
  position: relative;
  overflow: hidden;
  /* Zero out Elementor's default container padding so card images
     go full-bleed edge-to-edge (BugZap #139). The text area
     (.subpage-grid-card-bottom) carries its own 24/24/40 padding. */
  padding: 0;
  /* Figma card/basic default shadow: 32px blur at 12%. */
  box-shadow: 0 0 32px 0 rgba(18, 44, 86, 0.12);
  transition: background-color 200ms ease, box-shadow 200ms ease;
}

/* Card body container. */
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid .subpage-grid-card-bottom {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 16px;
  /* Figma card/basic (174:5975): 24px top/sides, 40px bottom. */
  padding: 24px 24px 40px;
  background: var(--dmec-white);
  transition: background-color 200ms ease;
}

/* Card title — Figma card/basic: Headline 04 (20px) in Primary/700.
   Confirmed with Matt 2026-06-10 (full card spec, including the 700
   title over the 600 link token). */
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid .subpage-grid-card-bottom h4,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid .subpage-grid-card-bottom h4 a {
  margin: 0;
  font-family: var(--dmec-font-family-body);
  font-size: var(--dmec-h04-size);
  font-weight: 700;
  line-height: var(--dmec-h04-lh);
  color: var(--dmec-primary-700);
  text-decoration: none;
  text-wrap: pretty;
}

/* Card body copy — Body text/medium/regular (16px Neutral/warm/800). */
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid .subpage-grid-card-bottom .elementor-widget-text-editor,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid .subpage-grid-card-bottom .elementor-widget-text-editor p {
  margin: 0;
  font-family: var(--dmec-font-family-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--dmec-neutral-warm-800);
}

/* "More" link area — pinned to bottom, underlined navy with a CSS
   pseudo-arrow. */
body.dmec-redesign-active .page-section__subpage-grid .subpage-grid-card-bottom > .e-con:last-child {
  display: inline-flex;
  align-items: center;
  gap: 0;
  margin-top: auto;
}

body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid .subpage-grid-card-bottom > .e-con:last-child h6,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid .subpage-grid-card-bottom > .e-con:last-child h6 a {
  margin: 0;
  font-family: var(--dmec-font-family-body);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.24;
  color: var(--dmec-color-link);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

body.dmec-redesign-active .page-section__subpage-grid .subpage-grid-card-bottom > .e-con:last-child h6 a::after {
  content: " →";
}

body.dmec-redesign-active .page-section__subpage-grid .subpage-grid-card-bottom > .e-con:last-child .elementor-icon {
  display: none;
}

/* Card hover / focus — Figma navy colour inversion.
   Uses :has(:focus-visible) instead of :focus-within so the inversion
   fires only on keyboard navigation, NOT mouse clicks (BugZap #140). */
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid > .e-con-inner > .e-con:hover,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid.e-con-full > .e-con:hover,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid > .e-con-inner > .e-con:has(:focus-visible),
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid.e-con-full > .e-con:has(:focus-visible) {
  background: var(--dmec-primary-900, #17386f);
  box-shadow: 0 8px 24px 0 rgba(18, 44, 86, 0.32);
}

body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid > .e-con-inner > .e-con:hover .subpage-grid-card-bottom,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid.e-con-full > .e-con:hover .subpage-grid-card-bottom,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid > .e-con-inner > .e-con:has(:focus-visible) .subpage-grid-card-bottom,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.page-section__subpage-grid.e-con-full > .e-con:has(:focus-visible) .subpage-grid-card-bottom {
  background: var(--dmec-primary-900, #17386f);
}

/* Title → white + underline on hover. */
/* Round-4 #131-family: underline only the anchor — decorating the
   H4 too paints a second line on hover. */
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con:hover .subpage-grid-card-bottom h4,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.e-con-full > .e-con:hover .subpage-grid-card-bottom h4,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con:has(:focus-visible) .subpage-grid-card-bottom h4,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.e-con-full > .e-con:has(:focus-visible) .subpage-grid-card-bottom h4 {
  color: #ffffff;
  text-decoration: none;
}

body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con:hover .subpage-grid-card-bottom h4 a,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.e-con-full > .e-con:hover .subpage-grid-card-bottom h4 a,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con:has(:focus-visible) .subpage-grid-card-bottom h4 a,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.e-con-full > .e-con:has(:focus-visible) .subpage-grid-card-bottom h4 a {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

/* Body text → near-white on hover. */
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con:hover .subpage-grid-card-bottom .elementor-widget-text-editor,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.e-con-full > .e-con:hover .subpage-grid-card-bottom .elementor-widget-text-editor,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con:hover .subpage-grid-card-bottom .elementor-widget-text-editor p,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.e-con-full > .e-con:hover .subpage-grid-card-bottom .elementor-widget-text-editor p,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con:has(:focus-visible) .subpage-grid-card-bottom .elementor-widget-text-editor,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.e-con-full > .e-con:has(:focus-visible) .subpage-grid-card-bottom .elementor-widget-text-editor,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con:has(:focus-visible) .subpage-grid-card-bottom .elementor-widget-text-editor p,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.e-con-full > .e-con:has(:focus-visible) .subpage-grid-card-bottom .elementor-widget-text-editor p {
  color: var(--dmec-neutral-warm-100, #fbf7f5);
}

/* "More" link → white on hover. */
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con:hover .subpage-grid-card-bottom > .e-con:last-child h6,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.e-con-full > .e-con:hover .subpage-grid-card-bottom > .e-con:last-child h6,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con:hover .subpage-grid-card-bottom > .e-con:last-child h6 a,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.e-con-full > .e-con:hover .subpage-grid-card-bottom > .e-con:last-child h6 a,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con:has(:focus-visible) .subpage-grid-card-bottom > .e-con:last-child h6,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.e-con-full > .e-con:has(:focus-visible) .subpage-grid-card-bottom > .e-con:last-child h6,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con:has(:focus-visible) .subpage-grid-card-bottom > .e-con:last-child h6 a,
body.dmec-redesign-active.dmec-redesign-active .page-section__subpage-grid.e-con-full > .e-con:has(:focus-visible) .subpage-grid-card-bottom > .e-con:last-child h6 a {
  color: #ffffff;
}

/* Card image (when host page includes one) — full-bleed 16:9 block. */
body.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con > .elementor-widget-image,
body.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con > .elementor-widget-image .elementor-widget-container,
body.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con > .elementor-widget-image a {
  display: block;
}

body.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con > .elementor-widget-image a:hover,
body.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con > .elementor-widget-image a:focus {
  color: inherit;
  text-decoration: none;
}

body.dmec-redesign-active .page-section__subpage-grid > .e-con-inner > .e-con > .elementor-widget-image img {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
}

/* --- Responsive: 2-col at tablet, 1-col at mobile ----------------- */
@media (max-width: 1100px) {
  body.dmec-redesign-active .page-section__subpage-grid > .e-con-inner,
  body.dmec-redesign-active .page-section__subpage-grid.e-con-full {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1101px) {
  /* About DMEC: a lone 4th card centers under the row of three. */
  body.dmec-redesign-active.page-id-107 .page-section__subpage-grid > .e-con-inner > .e-con:last-child:nth-child(3n+1) {
    grid-column: 2;
  }
}
@media (max-width: 767px) {
  body.dmec-redesign-active .page-section__subpage-grid > .e-con-inner,
  body.dmec-redesign-active .page-section__subpage-grid.e-con-full {
    grid-template-columns: 1fr;
  }
}
/* =================================================================
 * Component: Hero Banner — bare-pill variant (canonical)
 *
 * The transparent hero container that sits above the navy page-header
 * band, overlapping it with a negative top margin. Contains a magenta
 * Tertiary/700 pill with the page H1.
 *
 * Used on Resources, Community, and Membership. Cert & Training uses
 * the `page-header__*` class variant instead (stamped via CLI
 * migrate).
 *
 * Target class: `.page-section__hero-banner`, stamped onto the hero
 * section container (Elementor data-id `9b0e196`) by the CLI migrate
 * command's `run_hero_classes_fix()` step.
 *
 * Design tokens used:
 *   --dmec-tertiary-700     pill background
 *   --dmec-white            H1 text color
 *   --dmec-font-family-display  H1 font (page override to body OK)
 * ================================================================= */
/* --- Container reset ---------------------------------------------- */
body.dmec-redesign-active .page-section__hero-banner {
  position: relative;
  overflow: visible;
  min-height: 0;
  padding: 0;
  background: transparent;
}

body.dmec-redesign-active .page-section__hero-banner::before {
  display: none;
}

/* Hide responsive-visibility wrappers that Elementor ships */
body.dmec-redesign-active .page-section__hero-banner > .elementor-hidden-desktop,
body.dmec-redesign-active .page-section__hero-banner > .elementor-hidden-tablet {
  display: none;
}

/* --- Inner container (negative-margin overlap) -------------------- */
body.dmec-redesign-active .page-section__hero-banner > .e-con {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 100%;
  margin: -80px 0 0;
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

/* --- Magenta pill ------------------------------------------------- */
body.dmec-redesign-active .page-section__hero-banner .page-section__hero-pill {
  width: min(500px, 100% - 48px);
  min-height: 88px;
  margin-inline: auto;
  background: var(--dmec-tertiary-700);
  border-radius: 3px;
}

/* --- H1 typography ------------------------------------------------ */
body.dmec-redesign-active .page-section__hero-banner.page-section__hero-banner h1 {
  margin: 0;
  font-family: var(--dmec-font-family-display);
  font-size: 40px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--dmec-white);
  text-align: center;
}

/* --- Mobile responsive -------------------------------------------- */
@media (max-width: 767px) {
  body.dmec-redesign-active .page-section__hero-banner > .elementor-hidden-mobile {
    display: none;
  }
  body.dmec-redesign-active .page-section__hero-banner > .elementor-hidden-desktop,
  body.dmec-redesign-active .page-section__hero-banner > .elementor-hidden-tablet {
    display: block;
  }
  body.dmec-redesign-active .page-section__hero-banner > .e-con {
    margin-top: -72px;
  }
  body.dmec-redesign-active .page-section__hero-banner .page-section__hero-pill {
    width: min(320px, 100% - 32px);
    min-height: 76px;
  }
  body.dmec-redesign-active .page-section__hero-banner.page-section__hero-banner h1 {
    font-size: 32px;
  }
}
/* =================================================================
 * Component: Page Header — navy band + magenta pill (canonical)
 *
 * Relocated from `05-pages/_calendar-find-job.scss` where these rules
 * were already class-based (`.page-header__*`) but living in the
 * wrong architectural layer. No page-id qualifiers — any page
 * carrying the `page-header__*` classes via CLI migrate gets the
 * full canonical chrome.
 *
 * Used on: Calendar of Events (2177), Find a Job (2367),
 * Certification & Training (531), Membership (478), State Policy
 * (15890), About DMEC, and any future page the orchestrator stamps.
 *
 * Structural patterns:
 *   Calendar/Find-a-Job: pill outer-container is SIBLING of blue-section
 *   Orchestrator pages:  pill outer-container is NESTED inside blue-section
 *   Both are handled via the `:has()` rules below.
 * ================================================================= */
/* --- Outer container ---------------------------------------------- */
body.dmec-redesign-active .page-header__outer-container {
  /* The sibling-pattern pill is position:absolute against this
     wrapper. Without an explicit containing block here, pages whose
     Elementor data leaves the wrapper static drop the pill to the
     next positioned ancestor — seen as the pill rendering fully
     below the band on /education-content/ (regression QA). */
  position: relative;
  overflow: visible;
  min-height: 204px;
  --padding-top: 0px;
  --padding-right: 0px;
  --padding-bottom: 0px;
  --padding-left: 0px;
  padding: 0;
}

/* --- Navy band ----------------------------------------------------
   Triple-chained class = (0,4,1) so the canonical navy beats the
   per-element background Elementor stores for migrated pages (several
   About subpages shipped with a stale #104B7D band — BugZap hero-mess
   reports #42/#45/#47/#56/#70/#71). */
body.dmec-redesign-active .page-header__blue-section.page-header__blue-section.page-header__blue-section {
  position: relative;
  z-index: 1;
  min-height: 160px;
  justify-content: flex-start;
  align-items: center;
  padding: 80px 60px;
  background-color: #1d4689;
  color: #ffffff;
  overflow: hidden;
}

/* Geometric SVG overlay — only on pages WITHOUT a hero photo.
   Pages with photos carry `.page-header__has-hero-image` on the
   section; they keep Elementor's stored background-image (the photo)
   and skip the SVG pattern. */
body.dmec-redesign-active .page-header__blue-section:not(.page-header__has-hero-image) {
  background-image: url("../img/resources-header-transparent.svg");
  background-position: left -324px top -87px;
  background-repeat: no-repeat;
  background-size: 1176px 1176px;
}

body.dmec-redesign-active .page-header__blue-section.page-header__blue-section .elementor-heading-title {
  font-family: "PT Sans", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: 0;
  text-transform: uppercase;
  color: #ffffff;
  white-space: nowrap;
}

body.dmec-redesign-active .page-header__blue-section :where(.e-con-inner, .elementor-element, .elementor-widget-container, p, span, li) {
  color: inherit;
}

/* --- Legacy image cleanup -----------------------------------------
   Hide stale image widgets ONLY on pages WITHOUT a hero photo.
   Pages carrying `.page-header__has-hero-image` use an Image widget
   AS the hero photo — it must remain visible. */
body.dmec-redesign-active .page-header__blue-section:not(.page-header__has-hero-image) > .elementor-widget-image,
body.dmec-redesign-active .page-header__blue-section:not(.page-header__has-hero-image) > .elementor-element:not([class*=page-header__purple-box-outer-container]):not(.page-header__purple-box-outer-container) > .elementor-widget-image {
  display: none;
}

/* Hero photo on pages WITH the modifier — make the image widget
   fill the blue-section as an absolute-positioned cover layer
   behind the pill and breadcrumbs. */
body.dmec-redesign-active .page-header__blue-section.page-header__has-hero-image > .elementor-widget-image {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

body.dmec-redesign-active .page-header__blue-section.page-header__blue-section.page-header__blue-section.page-header__has-hero-image {
  min-height: clamp(240px, 28vw, 360px);
  background-color: var(--dmec-primary-800);
  background-position: center center;
  background-size: cover;
}

body.dmec-redesign-active .page-header__blue-section.page-header__has-hero-image > .elementor-widget-image,
body.dmec-redesign-active .page-header__blue-section.page-header__has-hero-image > .elementor-widget-image .elementor-widget-container,
body.dmec-redesign-active .page-header__blue-section.page-header__has-hero-image > .elementor-widget-image picture {
  width: 100%;
  height: 100%;
}

body.dmec-redesign-active .page-header__blue-section.page-header__has-hero-image > .elementor-widget-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

/* --- Pill outer container ----------------------------------------- */
body.dmec-redesign-active .page-header__purple-box-outer-container {
  position: absolute !important;
  top: auto !important;
  left: 0;
  right: 0;
  bottom: 0;
  --margin-top: 0px;
  margin-top: 0 !important;
  z-index: 2;
  align-items: center;
  justify-content: center;
  padding-inline: 60px;
}

body.dmec-redesign-active .page-header__purple-box-outer-container > .elementor-element {
  width: auto;
  max-width: 100%;
}

/* Width-collapse for the pill chain. Two structural patterns:
 *   Calendar/Find-a-Job: outer-container > .elementor-element > .e-con-inner > pill
 *   Orchestrator pages:  outer-container > .e-con-inner > pill */
body.dmec-redesign-active .page-header__purple-box-outer-container > .elementor-element,
body.dmec-redesign-active .page-header__purple-box-outer-container > .elementor-element > .e-con-inner,
body.dmec-redesign-active .page-header__purple-box-outer-container > .e-con-inner {
  --width: auto;
  width: auto;
  max-width: 100%;
  justify-content: center;
}

/* --- Magenta pill ------------------------------------------------- */
body.dmec-redesign-active .page-header__purple-box {
  --width: auto;
  --display: inline-flex;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: fit-content !important;
  min-width: min(500px, 100% - 32px);
  max-width: calc(100% - 32px);
  min-height: 0;
  padding: 20px 80px;
  border-radius: 4px;
  background: #701471;
  text-align: center;
}

body.dmec-redesign-active .page-header__purple-box > .elementor-widget-heading {
  flex: 0 1 auto;
  width: max-content !important;
  max-width: 100%;
  margin: 0;
  text-align: center;
}

/* Specificity (0,4,1) via double-class chain — must beat Elementor's
   per-post global-typography rule at (0,4,0):
   .elementor-{pid} .elementor-element.elementor-element-{eid} .elementor-heading-title */
body.dmec-redesign-active .page-header__purple-box.page-header__purple-box .elementor-heading-title {
  display: block;
  font-family: "PT Sans", sans-serif;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.2;
  color: #ffffff;
  text-transform: none;
  text-align: center;
  white-space: nowrap;
}

body.dmec-redesign-active .page-header__purple-box.page-header__pill-title-about .elementor-heading-title {
  font-size: 0;
  line-height: 1;
}

body.dmec-redesign-active .page-header__purple-box.page-header__pill-title-about .elementor-heading-title::after {
  content: "ABOUT DMEC";
  display: inline-block;
  font-size: clamp(2.25rem, 4vw, 2.5rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: uppercase;
}

/* BugZap #29/#38/#54: About subpages show the section name as the band eyebrow
   (matching the canonical hero eyebrow, e.g. "SURVEYS & BENCHMARKING") with the
   page's own title in the pill. The pill's `page-header__pill-title-about` class
   — which forced "ABOUT DMEC" into the pill and hid the real title — is removed
   by the migrate command (COMPONENT_CLASS_REMOVALS); this adds the "ABOUT DMEC"
   band eyebrow. Scoped to the three About subpages; the About landing (107)
   keeps "ABOUT DMEC" in its pill. */
/* Match the canonical About hero (who-we-are, page 1213): a 204px min-height
   band with the eyebrow at 82px from the band top and the pill straddling the
   bottom. The three subpages' bands shipped shorter (160px) with extra flow
   children that pinned a flow-positioned eyebrow to the very top, so the
   eyebrow is positioned ABSOLUTELY against the (position:relative) band to
   reproduce who-we-are's placement independent of sibling flow. */
body.dmec-redesign-active:is(.page-id-15890, .page-id-1212, .page-id-16991) .page-header__blue-section.page-header__blue-section.page-header__blue-section {
  min-height: 204px;
}

body.dmec-redesign-active:is(.page-id-15890, .page-id-1212, .page-id-16991) .page-header__blue-section::before {
  content: "ABOUT DMEC";
  position: absolute;
  top: 82px;
  left: 0;
  right: 0;
  margin: 0 auto;
  font-family: "PT Sans", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  color: #ffffff;
  text-align: center;
  text-transform: uppercase;
}

body.dmec-redesign-active .page-header__purple-box .elementor-heading-title br {
  display: none;
}

body.dmec-redesign-active .page-header__purple-box .elementor-widget-container {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0 !important;
  margin: 0;
  text-align: center;
}

/* --- Nested-pill straddle (orchestrator pages) --------------------
   REGRESSION GUARD: the base navy-band rule above runs at (0,4,1)
   (triple-chained to beat stale Elementor backgrounds). This
   exception must outrank it or `overflow: hidden` clips the
   straddling pill mid-band (seen on /certification-and-training/ and
   /about-dmec/ during round-2 QA). Triple chain + :has() = (0,5,1). */
body.dmec-redesign-active .page-header__blue-section.page-header__blue-section.page-header__blue-section:has(> .page-header__purple-box-outer-container) {
  overflow: visible;
}

body.dmec-redesign-active .page-header__blue-section > .page-header__purple-box-outer-container {
  bottom: -44px !important;
}

/* Sibling-pill pages use a wrapper around the blue band. Straddle the
   pill from that wrapper so Certification descendants, Calendar, and
   Find-a-Job follow the same canonical header geometry. */
body.dmec-redesign-active .page-header__outer-container > .page-header__purple-box-outer-container {
  bottom: -44px !important;
}

/* In the sibling pattern the pill is anchored to the WRAPPER, so the
   band must fill the wrapper's full 204px — otherwise the pill
   "centers" on an invisible edge 44px below the navy and renders
   fully detached (education-content regression, round-2 QA). The
   triple chain keeps parity with the base band rule's specificity. */
body.dmec-redesign-active .page-header__outer-container > .page-header__blue-section.page-header__blue-section.page-header__blue-section {
  min-height: 204px;
}

/* BugZap #34: the former About-scoped -64px/-54px pill offsets are
   gone. The -44px straddle equals half the pill's rendered height, so
   the pill is vertically centered on the band's bottom edge on every
   page — exactly the Figma alignment Matt called out on /media/. */
/* Breadcrumb push for nested pattern.
   BugZap #24/#67/#68: the visual gap between the magenta pill and the
   breadcrumb row is 60px everywhere. The pill overhangs the band by
   44px (half its height), so the row's margin from the band edge is
   44 + 60 = 104px. */
body.dmec-redesign-active .page-header__blue-section:has(> .page-header__purple-box-outer-container) ~ .breadcrumb-container {
  margin-top: 104px;
}

body.dmec-redesign-active .page-header__outer-container:has(> .page-header__purple-box-outer-container) + .breadcrumb-container {
  margin-top: 104px;
}

/* Keep Membership on the same measured hero-to-breadcrumb rhythm. */
body.dmec-redesign-active.page-id-478 .page-header__blue-section.page-header__has-hero-image:has(> .page-header__purple-box-outer-container) ~ .breadcrumb-container {
  margin-top: 104px;
}

/* BugZap #162/#70/#71/#159 (round-2): on the resource/thank-you hero pages the
   breadcrumb is an inline Elementor `breadcrumbs` widget in its own `.e-con`
   that follows the hero BLOCK (the `.e-con` wrapping the band) — it carries no
   `.breadcrumb-container` class and isn't a band sibling, so the rules above
   can't reach it and it tucks under the straddling pill. After the pill-nesting
   migrate (step 6b) the band's direct child is the pill-outer, so match the
   nested-hero block + the adjacent breadcrumb `.e-con`. Zero the hero block's
   10px bottom padding so the row measures from the band edge, then push it the
   canonical 104px (44px pill overhang + 60px gap). */
body.dmec-redesign-active .e-con:has(> .page-header__blue-section > .page-header__purple-box-outer-container) {
  padding-bottom: 0;
}

body.dmec-redesign-active .e-con:has(> .page-header__blue-section > .page-header__purple-box-outer-container) + .e-con:has(.elementor-widget-breadcrumbs) {
  margin-top: 104px;
}

/* BugZap #159 (benchmarking-report, page 15662): this hero's title wraps to two
   lines, so the pill renders ~136px tall. The canonical -44px overhang centers
   an 88px (1-line) pill but leaves a tall pill sitting high (92/44) — Matt's
   "not vertically centered." Center it on the band edge with half-height
   overhang, then push the breadcrumb to keep the canonical 60px below the taller
   pill (68 overhang + 60 = 128). Scoped to this page because it is the only
   two-line hero pill. */
body.dmec-redesign-active.page-id-15662 .page-header__outer-container > .page-header__purple-box-outer-container {
  bottom: -68px !important;
}

body.dmec-redesign-active.page-id-15662 .page-header__outer-container:has(> .page-header__purple-box-outer-container) + .breadcrumb-container {
  margin-top: 128px;
}

/* BugZap #169 (benchmarking-whitepaper-download, page 15631): the pill title
   "2024 DMEC Absence Plan Design and Practices Benchmarking Report" is too long
   for the canonical single line (the global pill rule sets `white-space: nowrap`
   + heading `width: max-content`, so it overflowed the pill edges). Adopt the
   two-line treatment: allow the title to wrap, cap the pill width so it breaks
   onto two balanced lines, then apply the same -68px overhang + 128px breadcrumb
   offset as the #159 two-line hero so the taller pill stays vertically centered
   on the band edge. */
body.dmec-redesign-active.page-id-15631 .page-header__purple-box > .elementor-widget-heading {
  width: auto !important;
  max-width: 100%;
}

body.dmec-redesign-active.page-id-15631 .page-header__purple-box.page-header__purple-box .elementor-heading-title {
  white-space: normal;
}

body.dmec-redesign-active.page-id-15631 .page-header__purple-box {
  max-width: 900px !important;
  padding: 24px 56px;
}

/* This hero nests the pill straight under `.page-header__blue-section` (not the
   `.page-header__outer-container` variant #159 uses), so the half-height
   overhang targets the blue-section child. -68px centers the ~144px two-line
   pill on the band edge (76/68). The breadcrumb sits in normal flow and is
   unaffected by the pill's absolute shift, so a small top margin restores the
   canonical ~60px gap below the lowered pill. */
body.dmec-redesign-active.page-id-15631 .page-header__blue-section > .page-header__purple-box-outer-container {
  bottom: -68px !important;
}

body.dmec-redesign-active.page-id-15631 .elementor-widget-breadcrumbs {
  margin-top: 14px;
}

/* --- Responsive --------------------------------------------------- */
@media (max-width: 1024px) {
  body.dmec-redesign-active .page-header__blue-section {
    padding: 72px 32px;
  }
  body.dmec-redesign-active .page-header__purple-box {
    padding: 20px 48px;
  }
}
@media (max-width: 767px) {
  body.dmec-redesign-active .page-header__blue-section {
    padding: 64px 20px;
  }
  body.dmec-redesign-active .page-header__purple-box-outer-container {
    padding-inline: 20px;
  }
  body.dmec-redesign-active .page-header__purple-box {
    width: calc(100vw - 40px) !important;
    min-width: 0;
    max-width: calc(100vw - 40px) !important;
    padding: 16px 24px;
  }
  body.dmec-redesign-active .page-header__purple-box > .elementor-widget-heading {
    width: 100% !important;
  }
  body.dmec-redesign-active .page-header__purple-box.page-header__purple-box .elementor-heading-title {
    font-size: 32px;
    white-space: normal;
    text-align: center;
    text-wrap: balance;
  }
}
/* =================================================================
 * Component: CTA 2-Column Blue Band (canonical)
 *
 * Two side-by-side navy panels (Primary/900 left, Primary/1000 right)
 * with heading, body text, divider, and a white-bordered button.
 * Used on Resources, Community, Certification & Training, Membership,
 * Calendar of Events, and Find a Job.
 *
 * Previously duplicated in every per-page SCSS file scoped by
 * `page-id-NNN [data-id="XXXX"]`. Now unified behind the semantic
 * class `.page-section__cta-2-col-blue`, stamped onto Elementor
 * containers by the CLI migrate command.
 *
 * Design tokens used:
 *   --dmec-primary-700   button bg
 *   --dmec-primary-800   button hover bg
 *   --dmec-primary-900   left panel bg
 *   --dmec-primary-1000  right panel bg
 *   --dmec-white          text + button border
 *   --dmec-font-family-body  all text
 *   --dmec-h02-size / --dmec-h02-lh   heading
 *   --dmec-body-lg-size / --dmec-body-lg-lh   body text
 *   --dmec-color-focus-ring   focus-visible outline
 * ================================================================= */
/* --- Section container — zero padding so panels control spacing --- */
body.dmec-redesign-active .page-section__cta-2-col-blue {
  --gap: 0px;
  gap: 0;
  padding: 0;
}

/* --- Panel layout ------------------------------------------------- */
body.dmec-redesign-active .page-section__cta-2-col-blue > .elementor-element {
  flex: 1 1 0;
  gap: 32px;
  justify-content: flex-end;
  padding: 60px 120px;
}

body.dmec-redesign-active .page-section__cta-2-col-blue > .elementor-element:first-child {
  background: var(--dmec-primary-900);
}

body.dmec-redesign-active .page-section__cta-2-col-blue > .elementor-element:last-child {
  background: var(--dmec-primary-1000);
}

/* --- Divider ------------------------------------------------------ */
body.dmec-redesign-active .page-section__cta-2-col-blue .elementor-divider {
  padding-block: 0;
}

body.dmec-redesign-active .page-section__cta-2-col-blue .elementor-divider-separator {
  width: 120px;
  border-color: rgba(255, 255, 255, 0.4);
}

/* --- Heading typography ------------------------------------------- */
body.dmec-redesign-active .page-section__cta-2-col-blue.page-section__cta-2-col-blue .elementor-heading-title {
  font-family: var(--dmec-font-family-body);
  font-size: var(--dmec-h02-size);
  font-weight: 700;
  line-height: var(--dmec-h02-lh);
  color: var(--dmec-white);
}

body.dmec-redesign-active .page-section__cta-2-col-blue > .elementor-element:last-child .elementor-widget-heading {
  width: 540px;
  max-width: 100%;
}

body.dmec-redesign-active .page-section__cta-2-col-blue > .elementor-element:last-child .elementor-heading-title {
  max-width: 540px;
  white-space: pre-line;
}

/* --- Body text ---------------------------------------------------- */
body.dmec-redesign-active .page-section__cta-2-col-blue.page-section__cta-2-col-blue .elementor-widget-text-editor,
body.dmec-redesign-active .page-section__cta-2-col-blue.page-section__cta-2-col-blue .elementor-widget-text-editor p {
  font-family: var(--dmec-font-family-body);
  font-size: var(--dmec-body-lg-size);
  font-weight: 400;
  line-height: var(--dmec-body-lg-lh);
  color: var(--dmec-white);
}

/* --- Button ------------------------------------------------------- */
body.dmec-redesign-active .page-section__cta-2-col-blue.page-section__cta-2-col-blue .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 16px 24px;
  border: 1px solid var(--dmec-white);
  border-radius: 4px;
  background: var(--dmec-primary-700);
  font-family: var(--dmec-font-family-body);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.24;
  letter-spacing: 0.01em;
  box-shadow: none;
}

body.dmec-redesign-active .page-section__cta-2-col-blue .elementor-button:hover {
  /* Canonical button hover unified on Primary/900 (BugZap round-2);
     the 1px white border keeps the button legible on the 900 panel. */
  background: var(--dmec-primary-900);
}

body.dmec-redesign-active .page-section__cta-2-col-blue .elementor-button:focus-visible {
  outline: 2px solid var(--dmec-color-focus-ring);
  outline-offset: 2px;
}

body.dmec-redesign-active .page-section__cta-2-col-blue .elementor-button-content-wrapper {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

body.dmec-redesign-active .page-section__cta-2-col-blue.page-section__cta-2-col-blue .elementor-button-text {
  font-family: var(--dmec-font-family-body);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.24;
  letter-spacing: 0.01em;
  color: var(--dmec-white);
}

/* --- Responsive --------------------------------------------------- */
@media (max-width: 767px) {
  body.dmec-redesign-active .page-section__cta-2-col-blue > .elementor-element {
    padding: 48px 24px;
  }
}
/* =================================================================
 * Component: Content panel (white/gray inset section)
 *
 * BugZap round-2 (#39/#48/#55): inset content panels across the About
 * subtree shipped with assorted Elementor padding (50px, 60px). Per
 * the Figma component the panel padding is 40px on all sides.
 *
 * Applied via the `page-section__content-panel` class stamped by the
 * CLI migrate command (COMPONENT_CLASS_STAMPS). Triple-chained class
 * = (0,4,1) so it beats Elementor's per-element padding at (0,4,0)
 * without `!important`.
 * ================================================================= */
body.dmec-redesign-active .page-section__content-panel.page-section__content-panel.page-section__content-panel {
  --padding-top: 40px;
  --padding-right: 40px;
  --padding-bottom: 40px;
  --padding-left: 40px;
  padding: 40px;
}

/* The 40px spec is the VISIBLE inset (panel edge → text), so the
   inner wrapper and edge widgets must not stack their own spacing on
   top of the panel padding (measured +20px per side on Terms of Use).
   Covers BOTH the boxed inner wrapper (.e-con-inner) and a full-width
   direct child container (.e-con-full) — the latter shipped its own
   40px Elementor padding on Sponsored Content and Benchmarking
   Dashboard Full, doubling the inset to 80px (BugZap #153/#157). The
   panel itself always supplies the 40px, so any direct-child padding is
   by definition double-counting. */
body.dmec-redesign-active .page-section__content-panel.page-section__content-panel > .e-con-inner,
body.dmec-redesign-active .page-section__content-panel.page-section__content-panel > .e-con-full {
  padding: 0;
}

/* Elementor stores 20px vertical padding on each widget's container
   inside these panels — at the panel edges that stacked to a 60px
   visible inset. Internal rhythm comes from text margins and the
   container gap, so the widget-container padding contributes nothing
   but drift. */
body.dmec-redesign-active .page-section__content-panel.page-section__content-panel .elementor-widget > .elementor-widget-container {
  padding-top: 0;
  padding-bottom: 0;
}

/* Long-form copy cap (BugZap #61): readable measure is 720px max per
   the accessibility direction. Applied via stamp on sections whose
   body copy ran the full 1200px container. */
body.dmec-redesign-active .page-section__narrow-text.page-section__narrow-text .elementor-widget-text-editor,
body.dmec-redesign-active .page-section__narrow-text.page-section__narrow-text .elementor-widget-text-editor .elementor-widget-container,
body.dmec-redesign-active .elementor-widget-text-editor.page-section__narrow-text.page-section__narrow-text {
  max-width: 720px;
  margin-inline: auto;
}

/* Background override — force white on sections that shipped with
   Elementor's default #F0F0F0 / #F4F6FA gray. Triple-chained (0,4,1)
   to beat the per-element inline background at (0,4,0).
   Resources BugZap #142, #150. */
body.dmec-redesign-active .page-section__bg-white.page-section__bg-white.page-section__bg-white {
  --background-color: var( --dmec-white );
  background-color: var(--dmec-white);
}

/* Neutral headings (BugZap #101): some sections' heading widgets carry a
   per-element Elementor color pointing at the global "Primary" swatch
   (#104B7D legacy blue), so non-link section/feature titles render blue and
   read as clickable. Per the design only actual links are blue; titles are
   Neutral. Stamp this class on the section to force its headings to the
   canonical heading color. Double class + .elementor-heading-title = (0,4,1),
   beating Elementor's per-element `.elementor-{pid} .elementor-element-{eid}
   .elementor-heading-title` color rule at (0,3,0). `!important` is the
   sanctioned external-layer counter: on Calendar of Events (#98) the blue
   comes from The Events Calendar plugin stylesheet with its own
   `!important`, which plain specificity can't beat. */
body.dmec-redesign-active .page-section__neutral-headings.page-section__neutral-headings .elementor-heading-title {
  color: var(--dmec-color-heading) !important;
}

/* Margin flush — suppress the 80px bottom-margin Elementor ships
   on boxed sections that should sit tight against the next band.
   Resources BugZap #141. */
body.dmec-redesign-active .dmec-no-margin-bottom.dmec-no-margin-bottom.dmec-no-margin-bottom {
  margin-bottom: 0;
}

/* Margin-top flush — zero out negative top-margin Elementor ships on
   sections that pull content up into the breadcrumb band.
   Resources BugZap #160. */
body.dmec-redesign-active .dmec-no-margin-top.dmec-no-margin-top.dmec-no-margin-top {
  margin-top: 0;
}

/* `page-section__panel-light` (BugZap #60) is a MARKER class with no
   rules of its own. The CLMS dark band hosts a floating light
   two-panel card (white + Neutral/cold gray, same as production); the
   issue-#134 band-wide white-text rule in
   `05-pages/_certification-training.scss` was painting the card's
   copy white-on-white. That rule now carves out
   `:not( .page-section__panel-light * )`, letting the panels' own
   Elementor colors (navy headings, dark body — matching production)
   show through. The class is stamped by the CLI migrate command. */
/* Full-width 2-col content block (BugZap #62): the cols-2 pattern
   shipped with a 700px max-width and 320px columns baked into the
   Elementor data. The canonical block fills its 1200px container with
   two equal columns. Chained classes give (0,4,1) over Elementor's
   per-element sizing. */
body.dmec-redesign-active .cols-2-container.cols-2-container.cols-2-container {
  --width: 100%;
  width: 100%;
  max-width: 100%;
}

body.dmec-redesign-active .cols-2-container.cols-2-container :where(.cols-2-text-column, .cols-2-image-column) {
  --width: 50%;
  flex: 1 1 0;
  min-width: 0;
}

/* =================================================================
 * Component: Metrics band photo wash (round-4 #137, round-3 #119)
 *
 * The "Advancing Absence & Disability Management" stats band renders
 * a photo background (homepage-member.jpg) whose teal tint is baked
 * into the JPEG — there is no Elementor overlay layer, so a plain
 * background-color can never darken it (the opaque photo paints over
 * it). Designer: "green overlay should be darker."
 *
 * Treatment: a ::before wash in Secondary/Blue-Green 800 over the
 * photo, content lifted above it. Applied to both carriers of the
 * band: `.page-section__metrics` (subpages) and `.dmec-home-stats`
 * (homepage — supersedes the round-3 #119 background-color attempt).
 *
 * Wash strength is eyeballed at 45% pending designer confirmation of
 * the exact step.
 * ================================================================= */
body.dmec-redesign-active :is(.page-section__metrics, .elementor-element.dmec-home-stats) {
  position: relative;
  isolation: isolate;
}

body.dmec-redesign-active :is(.page-section__metrics, .elementor-element.dmec-home-stats)::before {
  content: "";
  position: absolute;
  inset: 0;
  /* BugZap #177: darker green overlay over the stats photo. Solid fallback
     first for engines without color-mix; then the tinted wash. Bumped from
     45% to 65% so the darker-green overlay reads clearly. */
  background-color: rgba(10, 88, 83, 0.65);
  background-color: color-mix(in srgb, var(--dmec-secondary-bg-800) 65%, transparent);
  pointer-events: none;
  z-index: 0;
}

body.dmec-redesign-active :is(.page-section__metrics, .elementor-element.dmec-home-stats) > .e-con-inner,
body.dmec-redesign-active :is(.page-section__metrics, .elementor-element.dmec-home-stats) > .e-con {
  position: relative;
  z-index: 1;
}

/* =================================================================
 * Component: Accordion — Figma accordions/basic (334:4381)
 *
 * Rewritten round-3 (#83/#105, round-2 #49/#57): the library variant
 * is a borderless DIVIDER list, not the boxed-card treatment shipped
 * previously.
 *
 *   Item      no box — border-bottom 1px Neutral/cold/300, no radius
 *   Head      16px padding, 16px gap, 24px leading icon,
 *             Headline 05 bold (16/1.4) in Primary/600
 *   Hovered   bg Primary/100, border-bottom Primary/500,
 *             title Primary/900 (334:4391); expanded matches
 *   Body      8px top / 20px bottom / 56px sides (indented under the
 *             icon), Body medium (16/1.4) in Neutral/cold/800
 *
 * The plus/minus circle GLYPHS are an Elementor widget icon setting
 * (content, not CSS) — flagged in the round-3 notes for a migrate
 * patch if pages ship chevrons.
 *
 * !important retained where the previous component needed it against
 * Elementor's widget-level borders/padding.
 * ================================================================= */
body.dmec-redesign-active :where(#main-container) :is(.elementor-accordion, .elementor-toggle, .e-n-accordion) {
  display: flex;
  flex-direction: column;
  gap: 0;
}

body.dmec-redesign-active :where(#main-container) :is(.elementor-accordion-item, .elementor-toggle-item, .e-n-accordion-item) {
  overflow: hidden;
  background: transparent;
  border: 0 !important;
  border-bottom: 1px solid var(--dmec-neutral-cold-300) !important;
  border-radius: 0;
  box-shadow: none;
}

body.dmec-redesign-active :where(#main-container) :is(.elementor-tab-title, .e-n-accordion-item-title) {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 56px;
  padding: 16px !important;
  background: transparent;
  border: 0 !important;
  font-family: var(--dmec-font-family-body);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--dmec-color-link);
  text-decoration: none;
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

body.dmec-redesign-active :where(#main-container) :is(.elementor-tab-title, .e-n-accordion-item-title) :is(.elementor-accordion-title, .elementor-toggle-title, .e-n-accordion-item-title-text) {
  padding: 0;
  color: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
}

/* HOVER ONLY (Figma 334:4391): Primary/100 wash, Primary/500 divider,
   Primary/900 title. Per Figma the EXPANDED-default state is NOT washed —
   it stays white bg / Primary/600 title (334:4408). So this treatment is
   scoped to :hover / :focus-within and must NOT include the open/active
   state. */
body.dmec-redesign-active :where(#main-container) :is(.elementor-tab-title, .e-n-accordion-item-title):hover,
body.dmec-redesign-active :where(#main-container) :is(.elementor-tab-title, .e-n-accordion-item-title):focus-within {
  background: var(--dmec-primary-100);
  color: var(--dmec-color-link-hover);
}

body.dmec-redesign-active :where(#main-container) :is(.elementor-accordion-item, .elementor-toggle-item, .e-n-accordion-item):has(:is(.elementor-tab-title, .e-n-accordion-item-title):hover) {
  border-bottom-color: var(--dmec-primary-500) !important;
}

/* Expanded title color (BugZap #57/#49/#83/#105). Elementor's nested-
   accordion default paints the OPEN title near-black (#1f2124) via
   `.e-n-accordion-item[open] > .e-n-accordion-item-title` (0,4,0). Per
   Figma 334:4408 the expanded title stays Primary/600 — the SAME as
   collapsed; only HOVER darkens to Primary/900. (Earlier this wrongly set
   link-hover/Primary-900 on the open state.) Override the dark default to
   Primary/600 at (0,4,1). The title-text `<h4>` inherits via `color:
   inherit` above. */
body.dmec-redesign-active :where(#main-container) .e-n-accordion-item[open] > .e-n-accordion-item-title,
body.dmec-redesign-active :where(#main-container) .e-n-accordion-item-title[aria-expanded=true] {
  color: var(--dmec-color-link);
}

body.dmec-redesign-active :where(#main-container) :is(.elementor-tab-title, .e-n-accordion-item-title):focus-visible {
  outline: 2px solid var(--dmec-color-focus-ring);
  outline-offset: 2px;
}

/* Leading 24px icon in the link color; follows the title state. */
body.dmec-redesign-active :where(#main-container) :is(.elementor-accordion-icon, .elementor-toggle-icon, .e-n-accordion-item-title-icon) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  margin: 0;
  font-size: 24px;
  color: currentColor;
}

body.dmec-redesign-active :where(#main-container) :is(.elementor-accordion-icon i, .elementor-toggle-icon i, .e-n-accordion-item-title-icon i, .elementor-accordion-icon svg, .elementor-toggle-icon svg, .e-n-accordion-item-title-icon svg) {
  color: currentColor;
  fill: currentColor;
  width: 24px;
  height: 24px;
}

/* Center the +/- glyph inside the 24px circle. Elementor's nested
   accordion wraps the icon in e-closed/e-opened state spans that don't
   fill the circle, so the glyph rendered off-center (BugZap #164: "the +
   is misaligned in the circle"). Make the state wrappers and the glyph
   flex-center and fill the circle so the mark sits dead center. */
body.dmec-redesign-active :where(#main-container) :is(.elementor-accordion-icon, .elementor-toggle-icon, .e-n-accordion-item-title-icon) > span,
body.dmec-redesign-active :where(#main-container) :is(.elementor-accordion-icon, .elementor-toggle-icon, .e-n-accordion-item-title-icon) i,
body.dmec-redesign-active :where(#main-container) :is(.elementor-accordion-icon, .elementor-toggle-icon, .e-n-accordion-item-title-icon) svg {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  line-height: 1;
}

/* Glyph = Figma "add/remove-circle-outline" (334:4387): a thin outline
   circle + plus/minus in the title colour. The pages shipped a SOLID FA
   plus/minus inside a 2px MAGENTA ring (Elementor per-element icon border,
   #701471) — the "old"/mixed look Matt flagged. Strip that ring + the FA
   glyph, then paint the Material circle-outline mark via `mask` so it is
   one `currentColor` glyph that follows the title state (Primary/600
   normal, Primary/900 on hover) and is inherently centred — which also
   resolves #164's off-centre "+". */
body.dmec-redesign-active :where(#main-container) :is(.elementor-accordion-icon, .elementor-toggle-icon, .e-n-accordion-item-title-icon) {
  /* The CIRCLE is a real 2px CSS border in the title colour (crisp at
     24px, unlike a masked thin-stroke circle which anti-aliases to near
     invisibility). Replaces the pages' 2px MAGENTA ring (#701471). The
     +/- inside is a thin masked glyph (lines only, no circle). */
  box-sizing: border-box;
  border: 2px solid currentColor !important;
  border-radius: 50% !important;
  background: transparent !important;
}

/* Force the icon to inherit the TITLE colour, not Elementor's per-element
   `--n-accordion-icon-normal-color` (set to magenta #701471 on these pages
   at (0,3,0)). The extra `.e-n-accordion-item-title` ancestor lands this at
   (0,4,1) so it wins, and `inherit` then tracks the title across normal /
   hover. */
body.dmec-redesign-active :where(#main-container) .e-n-accordion-item-title-icon,
body.dmec-redesign-active :where(#main-container) .e-n-accordion-item-title-icon i {
  /* `!important` is the sanctioned counter to Elementor's per-element
     icon colours (`--n-accordion-icon-normal/hover/active-color`, all set
     to magenta on these pages): they paint the icon in normal AND the
     [open] active state at specificities that plain rules lose to.
     `inherit` then tracks the title in every state. */
  color: inherit !important;
}

body.dmec-redesign-active :where(#main-container) .e-n-accordion-item-title-icon i {
  font-size: 0;
  background-color: currentColor;
  -webkit-mask: var(--dmec-acc-icon) center/14px 14px no-repeat;
  mask: var(--dmec-acc-icon) center/14px 14px no-repeat;
}

body.dmec-redesign-active :where(#main-container) .e-n-accordion-item-title-icon i::before {
  content: none;
}

body.dmec-redesign-active :where(#main-container) .e-n-accordion-item-title-icon .e-closed i {
  --dmec-acc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke='black' stroke-width='2.5' stroke-linecap='round'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E");
}

body.dmec-redesign-active :where(#main-container) .e-n-accordion-item-title-icon .e-opened i {
  --dmec-acc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke='black' stroke-width='2.5' stroke-linecap='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E");
}

/* Body: 8px top, 20px bottom, 56px sides (indent under the icon). */
body.dmec-redesign-active :where(#main-container) :is(.elementor-tab-content, .elementor-toggle-content, .e-n-accordion-item > .e-con.e-child) {
  padding: 8px 56px 20px !important;
  border: 0 !important;
  background: transparent;
  font-family: var(--dmec-font-family-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--dmec-neutral-cold-800);
}

body.dmec-redesign-active :where(#main-container) :is(.elementor-tab-content, .elementor-toggle-content, .e-n-accordion-item > .e-con.e-child) :is(p, ul, ol) {
  margin-top: 0;
}

@media (max-width: 767px) {
  body.dmec-redesign-active :where(#main-container) :is(.elementor-tab-content, .elementor-toggle-content, .e-n-accordion-item > .e-con.e-child) {
    padding: 8px 16px 20px !important;
  }
}
/* Round-3 #94: Elementor stores horizontal padding on the accordion
   WIDGET's container, pushing the whole list ~40px right of sibling
   headings (compliance agenda). The divider-list comp is flush with
   its column. */
body.dmec-redesign-active :where(#main-container) :is(.elementor-widget-n-accordion, .elementor-widget-accordion, .elementor-widget-toggle) > .elementor-widget-container {
  padding-left: 0;
  padding-right: 0;
}

/* =================================================================
 * Component: Pagination
 *
 * Shared states for Elementor post pagination and Swiper bullets on
 * redesign-active pages. This covers default, hover/focus, current,
 * and disabled states without relying on per-widget color settings.
 * ================================================================= */
body.dmec-redesign-active :where(#main-container) :is(.elementor-pagination, .page-numbers) {
  font-family: var(--dmec-font-family-body);
}

body.dmec-redesign-active :where(#main-container) .elementor-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 32px;
}

body.dmec-redesign-active :where(#main-container) .elementor-pagination .page-numbers,
body.dmec-redesign-active :where(#main-container) .page-numbers:not(ul) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--dmec-primary-600);
  border-radius: 4px;
  background: var(--dmec-white);
  color: var(--dmec-primary-700);
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

body.dmec-redesign-active :where(#main-container) .elementor-pagination a.page-numbers:hover,
body.dmec-redesign-active :where(#main-container) a.page-numbers:hover {
  border-color: var(--dmec-primary-800);
  background: var(--dmec-primary-100);
  color: var(--dmec-primary-800);
  text-decoration: none;
}

/* Hold 700 weight on hover — both selectors above (0,4,2) and (0,3,2) tie or lose
   to the foundation a:hover{font-weight:inherit} rule at (0,4,2) in dmec-base.css
   (priority 50 > priority 30, so base wins ties). Bump to (0,5,2) by doubling
   .elementor-pagination and .page-numbers to hold PT Sans Bold per Figma. */
body.dmec-redesign-active :where(#main-container) .elementor-pagination.elementor-pagination a.page-numbers:hover,
body.dmec-redesign-active.dmec-redesign-active :where(#main-container) a.page-numbers.page-numbers:hover {
  font-weight: 700;
}

body.dmec-redesign-active :where(#main-container) .elementor-pagination a.page-numbers:focus-visible,
body.dmec-redesign-active :where(#main-container) a.page-numbers:focus-visible {
  outline: 2px solid var(--dmec-color-focus-ring);
  outline-offset: 2px;
}

body.dmec-redesign-active :where(#main-container) .elementor-pagination .page-numbers.current,
body.dmec-redesign-active :where(#main-container) .page-numbers.current {
  border-color: var(--dmec-primary-700);
  background: var(--dmec-primary-700);
  color: var(--dmec-white);
}

body.dmec-redesign-active :where(#main-container) .elementor-pagination .page-numbers:is(.prev, .next):not(a),
body.dmec-redesign-active :where(#main-container) .elementor-pagination .page-numbers[aria-disabled=true],
body.dmec-redesign-active :where(#main-container) .page-numbers:is(.prev, .next):not(a),
body.dmec-redesign-active :where(#main-container) .page-numbers[aria-disabled=true] {
  border-color: var(--dmec-neutral-warm-300);
  background: var(--dmec-neutral-warm-100);
  color: var(--dmec-neutral-warm-500);
  cursor: not-allowed;
  pointer-events: none;
}

body.dmec-redesign-active :where(#main-container) .elementor-pagination .page-numbers.dots,
body.dmec-redesign-active :where(#main-container) .page-numbers.dots {
  border-color: transparent;
  background: transparent;
  color: var(--dmec-neutral-warm-700);
}

body.dmec-redesign-active :where(#main-container) .swiper-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

body.dmec-redesign-active :where(#main-container) .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  margin: 0 !important;
  border: 1px solid var(--dmec-primary-600);
  background: transparent;
  opacity: 1;
  transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

body.dmec-redesign-active :where(#main-container) .swiper-pagination-bullet:hover {
  border-color: var(--dmec-primary-800);
  background: var(--dmec-primary-100);
  transform: scale(1.1);
}

body.dmec-redesign-active :where(#main-container) .swiper-pagination-bullet:focus-visible {
  outline: 2px solid var(--dmec-color-focus-ring);
  outline-offset: 2px;
}

body.dmec-redesign-active :where(#main-container) .swiper-pagination-bullet-active {
  border-color: var(--dmec-primary-700);
  background: var(--dmec-primary-700);
}

/* =================================================================
 * Component: Shared interaction states
 *
 * Live-design-system hardening for redesign-active page content:
 * clickable text is blue, non-clickable copy stays neutral, links
 * darken + underline on hover/active, and card/button pressed states
 * use the darker primary token.
 * ================================================================= */
body.dmec-redesign-active :where(#main-container) :where(.elementor-widget-text-editor, .elementor-widget-text-editor p, .elementor-widget-text-editor li) {
  color: var(--dmec-neutral-warm-800);
}

body.dmec-redesign-active :where(#main-container) :where(.elementor-widget-text-editor a, .entry-content p a, .entry-content li a) {
  color: var(--dmec-color-link);
  text-decoration: underline;
  text-underline-offset: 0.15em;
  text-decoration-thickness: from-font;
}

body.dmec-redesign-active :where(#main-container) :where(.elementor-widget-text-editor a, .entry-content p a, .entry-content li a):hover {
  color: var(--dmec-color-link-hover);
  text-decoration: underline;
}

body.dmec-redesign-active :where(#main-container) :where(.elementor-widget-text-editor a, .entry-content p a, .entry-content li a):focus-visible {
  outline: 2px solid var(--dmec-color-focus-ring);
  outline-offset: 2px;
}

body.dmec-redesign-active :where(#main-container) :where(.elementor-widget-text-editor a, .entry-content p a, .entry-content li a):active {
  color: var(--dmec-primary-1000);
  text-decoration: underline;
}

/* Canonical button hover (BugZap #20/#22/#53/#65/#74): darken to
   Primary/900 with white text and NO underline — buttons must not
   inherit the content-link underline from the foundation a:hover
   rule. Source order after _foundation.scss resolves the tie. */
body.dmec-redesign-active.dmec-redesign-active :where(#main-container) :where(.elementor-button, button, input[type=submit]):hover:not(:where(.elementor-widget-video-playlist button, .e-n-accordion button)) {
  background-color: var(--dmec-primary-900);
  border-color: var(--dmec-primary-900);
  color: var(--dmec-white);
  text-decoration: none;
}

/* Linked headings (BugZap #33). Elementor ships
   `.elementor-widget-heading .elementor-heading-title a { color:
   inherit }` at (0,2,1), which beat the foundation link rule and left
   clickable staff/role names rendering as plain Neutral/900 headings
   (seen on /leadership-and-staff/). Clickable text takes the link
   tokens; components with their own title-link colors (subpage-grid
   cards at (0,5,2), dark bands) still outrank this. */
body.dmec-redesign-active :where(#main-container) .elementor-widget-heading .elementor-heading-title a {
  color: var(--dmec-color-link);
}

body.dmec-redesign-active :where(#main-container) .elementor-widget-heading .elementor-heading-title a:hover {
  color: var(--dmec-color-link-hover);
  text-decoration: underline;
}

/* Video-playlist item titles render inside bare <button> elements that
   were inheriting a white button color and disappearing against the
   white list background (BugZap #59). Force inheritance from the
   playlist's own title colors. */
body.dmec-redesign-active :where(#main-container) .elementor-widget-video-playlist .e-tab-title button,
body.dmec-redesign-active :where(#main-container) .elementor-widget-video-playlist .e-tab-title-text button {
  background: transparent;
  border: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  text-align: inherit;
}

body.dmec-redesign-active :where(#main-container) :where(.elementor-button, button, input[type=submit]):active,
body.dmec-redesign-active :where(#main-container) :where(.elementor-button, button, input[type=submit])[aria-pressed=true] {
  background-color: var(--dmec-primary-1000);
  border-color: var(--dmec-primary-1000);
  color: var(--dmec-white);
}

body.dmec-redesign-active :where(#main-container) :where(.dmec-card-event, .dmec-card-stretched, .quick-links-card, .subpage-grid > .e-con):active {
  transform: translateY(0);
  box-shadow: 0 4px 16px 0 rgba(18, 44, 86, 0.22);
}

body.dmec-redesign-active :where(#main-container) :where(.elementor-widget-icon svg, .elementor-widget-icon svg path, .elementor-icon svg, .elementor-icon svg path) {
  fill: currentColor;
}

/* Form input focus (round-3 #90): canonical focused state per the
   input/search/basic convention — Primary/500 border shift + the
   standard ring. Beats Elementor form widget borders at (0,2,1)+. */
body.dmec-redesign-active :where(#main-container) :where(input[type=text], input[type=email], input[type=tel], input[type=number], input[type=search], input[type=url], textarea, select):focus {
  border-color: var(--dmec-primary-500);
  outline: 2px solid var(--dmec-color-focus-ring);
  outline-offset: 1px;
}

/* Double-underline guard (round-3 #131): some migrated content links
   carry a border-bottom that stacks with the canonical underline on
   hover, reading as two lines. Text links underline via
   text-decoration only. */
body.dmec-redesign-active :where(#main-container) .elementor-widget-text-editor a,
body.dmec-redesign-active :where(#main-container) .elementor-widget-text-editor a:hover {
  border-bottom: 0;
  box-shadow: none;
}

/* Posts-widget title links (round-4 #135): Elementor's classic posts
   skin pins `.elementor-post__title a` to its own color with no hover
   shift. Titles already inherit the link token; hover darkens to the
   canonical Primary/900 + underline, matching body links. */
body.dmec-redesign-active :where(#main-container) .elementor-posts .elementor-post__title a:hover,
body.dmec-redesign-active :where(#main-container) .elementor-posts .elementor-post__title a:focus-visible {
  color: var(--dmec-color-link-hover);
  text-decoration: underline;
}

/* =================================================================
 * Component: Feedback prompt
 *
 * Canonical green feedback strip/card. Some pages emit this through
 * Elementor classes and some through shortcode markup, so keep the
 * selectors semantic and additive.
 * ================================================================= */
body.dmec-redesign-active :where(#main-container) :where(.dmec-feedback, .page-section__feedback, .feedback-component, .elementor-element.feedback-component) {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 40px;
  background: var(--dmec-secondary-bg-800);
  color: var(--dmec-white);
  border-radius: 4px;
}

body.dmec-redesign-active :where(#main-container) :where(.dmec-feedback, .page-section__feedback, .feedback-component) :where(h2, h3, h4, h5, h6, p, span) {
  color: var(--dmec-white);
}

body.dmec-redesign-active :where(#main-container) :where(.dmec-feedback, .page-section__feedback, .feedback-component) :where(a, button) {
  color: var(--dmec-white);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

body.dmec-redesign-active :where(#main-container) :where(.dmec-feedback, .page-section__feedback, .feedback-component) :where(.elementor-icon, .elementor-widget-icon, svg) {
  flex: 0 0 auto;
  color: var(--dmec-white);
  fill: currentColor;
}

/* Attendee-feedback band split (round-4 #92, designer-specified):
   main band Secondary/Blue-Green/800, feedback card 700. Stamped by
   the migrate command on the Annual Conference instance
   (a9ffb16 + 3818bce @ 23342). Double-chained to clear the
   per-element Elementor backgrounds. */
body.dmec-redesign-active.dmec-redesign-active .page-section__feedback-band.page-section__feedback-band.page-section__feedback-band {
  background-color: var(--dmec-secondary-bg-800);
}

body.dmec-redesign-active.dmec-redesign-active .page-section__feedback-band .page-section__feedback-card.page-section__feedback-card {
  background-color: var(--dmec-secondary-bg-700);
}

/* =================================================================
 * Component: WP core post-password form
 *
 * Sponsor Resource pages (and any other post_password-protected
 * content) render WordPress's default `<form class="post-password-form">`
 * below the canonical Hero Pill. WP core ships unstyled inputs/submit
 * that fall back to system fonts — by default the input was rendering
 * in DM Sans 16px and the submit in `-apple-system` 13px, neither of
 * which match the redesign typography.
 *
 * This file styles the form to match canonical input + button patterns
 * already used elsewhere on the site (PT Sans, primary-blue solid
 * button, 3px corner radius, sensible padding). It scopes everything
 * so it only fires on redesigned pages.
 * ================================================================= */
body.dmec-redesign-active .post-password-form {
  max-width: 720px;
  margin: 32px auto;
  padding-inline: 20px;
}

/* BugZap #58: when the password gate is showing, the page content is
   a single short section but Blocksy still applies its viewport-fill
   min-height to #main-container, leaving a ~200px dead band before
   the Partners section. Collapse the fill on gated views only. */
body.dmec-redesign-active #main-container:has(.post-password-form) {
  min-height: 0;
}

body.dmec-redesign-active .post-password-form p {
  font-family: "PT Sans", sans-serif;
  font-size: 18px;
  line-height: 1.5;
  color: #404040;
}

/* WordPress default markup wraps the form fields in a single `<p>`:
 *   <p>
 *     <label>Password: <input name="post_password"></label>
 *     <input type="submit">
 *   </p>
 * Make that paragraph a flex row so the label (with input inside) and
 * the submit button line up horizontally on the same baseline. */
body.dmec-redesign-active .post-password-form > p:last-child {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

/* The label contains "Password:" text + the input. Put them side-by-side
 * (label text → input), and let the whole label flex-grow so the
 * submit button stays on the right. */
body.dmec-redesign-active .post-password-form label {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1 1 auto;
  min-width: 240px;
  height: 48px;
  font-family: "PT Sans", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  color: #1d4689;
}

body.dmec-redesign-active .post-password-form input[name=post_password] {
  flex: 1 1 auto;
  min-width: 0;
  box-sizing: border-box;
  margin: 0;
  height: 48px;
  padding: 0 16px;
  font-family: "PT Sans", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  color: #1d4689;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 3px;
  box-shadow: none;
  transition: border-color 120ms ease, box-shadow 120ms ease;
}

body.dmec-redesign-active .post-password-form input[name=post_password]:focus {
  outline: 2px solid rgba(29, 70, 137, 0.32);
  outline-offset: 2px;
  border-color: #1d4689;
}

body.dmec-redesign-active .post-password-form input[type=submit] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  box-sizing: border-box;
  height: 48px;
  min-height: 48px;
  /* No vertical padding — `height: 48px` + flex-center handles
   * vertical alignment so the button sits flush at the same top
   * as the input. */
  padding: 0 32px;
  font-family: "PT Sans", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.01em;
  color: #ffffff;
  background: #1d4689;
  border: 0;
  border-radius: 3px;
  cursor: pointer;
  transition: background-color 120ms ease;
}

body.dmec-redesign-active .post-password-form input[type=submit]:hover {
  background: #163867;
}

body.dmec-redesign-active .post-password-form input[type=submit]:focus-visible {
  outline: 3px solid rgba(29, 70, 137, 0.4);
  outline-offset: 2px;
}

/* =================================================================
 * Pages: Calendar of Events + Find a Job
 *
 * Shared patterns live in canonical components:
 *   - Page header  → 03-components/_section-page-header.scss
 *   - CTA band     → 03-components/_section-cta-2-col-blue.scss
 *
 * SCSS optimization pass 2: every rule here is CLASS-ONLY. The
 * classes are stamped by the CLI migrate command
 * (COMPONENT_CLASS_STAMPS), so cloned pages keep the styling:
 *   - page-section__cta-2-col-blue--centered  CTA variant (both pages)
 *   - dmec-job-* family                       Find-a-Job card cluster
 *
 * Deleted as duplicates of canonical/token layers (Backstop-verify):
 *   - Calendar share-row sizing (covered by _section-breadcrumb-share)
 *   - Find-a-Job body copy + link colors (covered by foundation +
 *     interaction-states tokens)
 * ================================================================= */
/* --- Calendar: "Upcoming Events" heading section (comp9) ---------- */
body.dmec-redesign-active .page-section__comp9 {
  padding: 28px 0 48px;
}

body.dmec-redesign-active .page-section__comp9 > .e-con-inner {
  max-width: 1200px;
  padding-inline: 0;
}

/* Single heading widget in the section — no element-id needed. */
body.dmec-redesign-active .page-section__comp9 .elementor-widget-heading .elementor-heading-title {
  color: #163867;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: 0;
  text-transform: uppercase;
  text-align: center;
  text-wrap: balance;
  max-width: 28ch;
  margin: 0 auto 10px;
}

/* --- CTA centered variant (Calendar + Find a Job) ------------------ */
body.dmec-redesign-active .page-section__cta-2-col-blue--centered {
  margin-top: 12px;
}

body.dmec-redesign-active .page-section__cta-2-col-blue--centered > .elementor-element {
  min-height: 0;
  justify-content: center;
  align-items: center;
  text-align: center;
}

body.dmec-redesign-active .page-section__cta-2-col-blue--centered .elementor-heading-title {
  text-transform: uppercase;
  text-wrap: balance;
  max-width: 15ch;
  margin-inline: auto;
}

body.dmec-redesign-active .page-section__cta-2-col-blue--centered .elementor-widget-text-editor,
body.dmec-redesign-active .page-section__cta-2-col-blue--centered .elementor-widget-text-editor p {
  font-weight: 700;
  max-width: 26ch;
  margin: 0 auto;
}

body.dmec-redesign-active .page-section__cta-2-col-blue--centered > .elementor-element:last-child .elementor-button-text {
  text-transform: capitalize;
}

/* --- Find a Job: card cluster -------------------------------------- */
body.dmec-redesign-active .dmec-job-section > .e-con-inner {
  padding-top: 0;
}

body.dmec-redesign-active .dmec-job-card {
  background: #ffffff;
  border-radius: 8px;
  padding: 40px;
}

body.dmec-redesign-active .dmec-job-card__row {
  gap: 40px;
  align-items: stretch;
  border-radius: 8px;
  overflow: hidden;
}

body.dmec-redesign-active .dmec-job-card__title .elementor-heading-title {
  font-family: "PT Sans", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.32;
  color: #2b2b2b;
}

body.dmec-redesign-active .dmec-job-card__copy {
  max-width: 700px;
}

body.dmec-redesign-active .dmec-job-card__media-col {
  align-self: stretch;
}

body.dmec-redesign-active .dmec-job-card__media {
  height: 100%;
}

body.dmec-redesign-active .dmec-job-card__media img {
  width: 100%;
  height: 100%;
  min-height: 100%;
  object-fit: cover;
  border-radius: 8px;
}

/* --- Responsive --------------------------------------------------- */
@media (max-width: 1024px) {
  body.dmec-redesign-active .page-section__comp9 {
    padding-inline: 24px;
  }
  body.dmec-redesign-active .page-section__cta-2-col-blue--centered > .elementor-element {
    padding: 48px 40px;
  }
  body.dmec-redesign-active .dmec-job-card {
    padding: 32px;
  }
}
@media (max-width: 767px) {
  body.dmec-redesign-active .page-section__comp9 .elementor-widget-heading .elementor-heading-title {
    font-size: 26px;
  }
  body.dmec-redesign-active .dmec-job-card__row {
    flex-direction: column;
    align-items: flex-start;
  }
  body.dmec-redesign-active .page-section__cta-2-col-blue--centered > .elementor-element {
    padding: 40px 24px;
  }
  body.dmec-redesign-active .dmec-job-card {
    padding: 24px;
  }
}
/* =================================================================
 * Page: Resources section (page-id-527 + subpages)
 *
 * Core shared patterns extracted to canonical components:
 *   - Hero banner  → 03-components/_section-hero-banner.scss
 *   - Card grid    → 03-components/_section-subpage-grid.scss
 *   - CTA band     → 03-components/_section-cta-2-col-blue.scss
 *   - Breadcrumb   → 03-components/_section-breadcrumb-share.scss
 *   - H2 intro     → 03-components/_section-h2-intro.scss
 *   - Latest news  → 03-components/_section-latest-news.scss
 *
 * Resources BugZap round additions below — rules that address
 * subpage-specific spacing/layout bugs not covered by existing
 * canonical components.
 * ================================================================= */
/* --- FAQ Fridays Archive: tabs padding (BugZap #147) -------------- */
/* Elementor's n-tabs widget ships with 40px top/bottom padding on the
   tab heading row, creating excessive whitespace between the search
   bar and the first content. Reduce to a tighter 16px. */
body.dmec-redesign-active .page-section__tabs-tight .e-n-tabs-heading {
  padding-top: 16px;
  padding-bottom: 16px;
}

body.dmec-redesign-active .page-section__tabs-tight .e-n-tabs-content {
  padding-top: 16px;
}

/* --- Vendor Directory: whitespace trim (BugZap #155) -------------- */
/* The partner tile grid section ships with 60px bottom padding; trim
   to 40px for tighter visual rhythm. */
body.dmec-redesign-active .page-section__vendor-grid.page-section__vendor-grid.page-section__vendor-grid {
  --padding-bottom: 40px;
  padding-bottom: 40px;
}

/* --- Title max-width for two-line wrapping (BugZap #159) ---------- */
/* Benchmarking report download H1 should wrap to two lines per the
   Figma comp. Cap at 720px — matches the narrow-text spec and forces
   wrapping at standard viewport widths.

   The page-header pill (.page-header__purple-box) sets
   `white-space: nowrap`, which the heading inherits — that kept the
   long title on one line, overflowing the pill (BugZap #159 regression,
   and the overflow half of #162). Reset to `normal` here so max-width
   actually wraps the title; balance the line breaks for an even pill.
   The class is doubled (specificity 0,4,2) to out-rank the pill's own
   `white-space: nowrap` descendant rule (0,4,1) — a single class (0,3,2)
   lost the cascade and the title stayed on one line. */
body.dmec-redesign-active .page-section__title-narrow.page-section__title-narrow h1.elementor-heading-title {
  max-width: 720px;
  white-space: normal;
  text-wrap: balance;
}

/* --- Partner carousel hover (BugZap #143) -------------------------- */
/* Elementor loop-carousel tiles ship with no hover state. Add an
   elevated shadow matching the custom PHP .dmec-partner-tile hover.

   Hook the EXISTING `footer-sponsors-section` class, not a stamped
   `page-section__partner-carousel` class: the carousel section's
   element (93505ad) is not present in the page's own _elementor_data
   (it renders from a shared/global template), so a per-page class
   stamp can never reach it. `footer-sponsors-section` already ships on
   the section wherever the carousel appears, so the CSS travels with
   the content. (See _conferences-webinars.scss, which styles the same
   class.) */
body.dmec-redesign-active .footer-sponsors-section .swiper-slide .e-con {
  transition: box-shadow 200ms ease;
}

body.dmec-redesign-active .footer-sponsors-section .swiper-slide .e-con:hover {
  box-shadow: 0 4px 24px 0 rgba(18, 44, 86, 0.22);
}

/* =================================================================
 * Page: Certification & Training (page-id-531)
 *
 * Shared patterns extracted to canonical components:
 *   - Page header  → 03-components/_section-page-header.scss
 *   - Card grid    → 03-components/_section-subpage-grid.scss
 *   - CTA band     → 03-components/_section-cta-2-col-blue.scss
 *   - Latest news  → 03-components/_section-latest-news.scss
 *
 * Remaining rules below are genuinely page-specific overrides.
 * ================================================================= */
/* Pricing fee cards (BugZap #73): the white card inside each fees-grid
   column kept its natural height while the column stretched to the
   tallest sibling, leaving a dead band of background below the short
   card. Stretch the card to fill its column so both cards bottom out
   together. Class-based — `fees-grid` ships in the Elementor data. */
body.dmec-redesign-active .e-con:has(> .fees-grid),
body.dmec-redesign-active .fees-grid > .e-con,
body.dmec-redesign-active .fees-grid > .e-con-inner > .e-con {
  height: 100%;
}

body.dmec-redesign-active.page-id-531 .page-section__ad-space {
  margin-top: 80px;
  margin-bottom: 80px;
}

body.dmec-redesign-active.page-id-531 .page-section__ad-space:has(~ .e-con .page-section__latest-news) {
  margin-bottom: 80px;
}

/* Carousel swiper + slide styling: deduplicated into
   03-components/_section-latest-news.scss (pass 2). */
/* --- Certification child dark bands --------------------------------
 * #134: legacy Elementor dark containers without canonical component
 * classes left body copy dark gray on navy/teal panels.
 *
 * SCSS optimization pass 1: the bands now carry
 * `page-section__band-dark` (template-wide stamp on the former
 * data-id list: 67903aae, 0a32bb5, 776b4c2, 128881b, 4289719,
 * 6025f1b), so the rule is class-only, page-agnostic, and survives
 * page cloning.
 *
 * BugZap #60: the floating LIGHT card inside the CLMS dark band is
 * stamped `page-section__panel-light` and carved out so it keeps its
 * production dark-text styling (white + gray panels).
 */
body.dmec-redesign-active.dmec-redesign-active .page-section__band-dark.page-section__band-dark :is(h1, h2, h3, h4, h5, h6, .elementor-heading-title, .elementor-widget-text-editor, .elementor-widget-text-editor p, .elementor-widget-text-editor li, .elementor-widget-text-editor span, .elementor-widget-text-editor b, .elementor-widget-text-editor strong, .elementor-widget-text-editor em):not(.page-section__panel-light *) {
  color: var(--dmec-white);
}

body.dmec-redesign-active.dmec-redesign-active .page-section__band-dark.page-section__band-dark .elementor-widget-text-editor a:not(.page-section__panel-light *),
body.dmec-redesign-active.dmec-redesign-active .page-section__band-dark.page-section__band-dark .elementor-widget-text-editor a:hover:not(.page-section__panel-light *),
body.dmec-redesign-active.dmec-redesign-active .page-section__band-dark.page-section__band-dark .elementor-widget-text-editor a:focus:not(.page-section__panel-light *),
body.dmec-redesign-active.dmec-redesign-active .page-section__band-dark.page-section__band-dark .elementor-widget-text-editor a:active:not(.page-section__panel-light *) {
  color: var(--dmec-white);
}

/* =================================================================
 * Page: Community
 *
 * Pass 2: class-only. The accent-grid look is the stamped variant
 * `page-section__subpage-grid--accent` (navy top border, no card
 * images, 80px bottom rhythm) so cloned pages keep it. The hidden ad
 * slot uses the stamped `dmec-hide` utility. Carousel styling moved
 * to 03-components/_section-latest-news.scss.
 * ================================================================= */
body.dmec-redesign-active .page-section__subpage-grid--accent > .e-con-inner > .e-con {
  border-top: 8px solid var(--dmec-primary-900);
}

body.dmec-redesign-active .page-section__subpage-grid--accent > .e-con-inner > .e-con > .elementor-widget-image {
  display: none;
}

body.dmec-redesign-active .page-section__subpage-grid--accent {
  margin-bottom: 80px;
}

/* =================================================================
 * Page: Membership (+ shared ad-space component)
 * Figma feedback batch: Testing page comments #106–#315
 *
 * Pass 2: class-only. Former page-id-478 [data-id] rules are keyed
 * to classes stamped by the CLI migrate command. The ad-space slot
 * (template element 42bb5eb) is stamped `page-section__ad-space`
 * template-wide; pages that hide it entirely carry `dmec-hide`.
 *
 * IMPORTANT: these rules assume `wp dmec redesign
 * clean-element-settings` has run — without it Elementor's stored
 * padding/margin custom properties at (0,3,0) compete.
 * ================================================================= */
/* --- Hero H1 uses the body face on Membership (Figma spec) --------- */
body.dmec-redesign-active .page-section__hero-banner--body-font h1 {
  font-family: var(--dmec-font-family-body);
}

/* --- Membership breadcrumb row (former 56083810) ------------------- */
body.dmec-redesign-active .dmec-membership-bc-row.dmec-membership-bc-row {
  --margin-top: 56px;
  --margin-bottom: 0px;
  --padding-top: 0px;
  --padding-right: 24px;
  --padding-bottom: 0px;
  --padding-left: 24px;
  margin-top: 56px;
  padding: 0 24px;
}

/* --- Ad space (template-wide class) -------------------------------- */
/* Default: 80px bottom margin provides the gap to the next section.
   When followed by Latest News (which brings its own 80px padding-top)
   the margin is zeroed; a fully empty slot before Latest News hides. */
body.dmec-redesign-active .page-section__ad-space {
  --margin-top: 0px;
  --margin-bottom: 80px;
  --min-height: 0px;
  --padding-top: 0px;
  --padding-bottom: 0px;
  margin-top: 0;
  margin-bottom: 80px;
  min-height: 0;
  padding: 0;
}

body.dmec-redesign-active .page-section__ad-space:has(~ .e-con .dmec-latest-news),
body.dmec-redesign-active .page-section__ad-space:has(~ .e-con .page-section__latest-news) {
  margin-bottom: 0;
}

body.dmec-redesign-active .page-section__ad-space:not(:has(> .e-con-inner > *)):has(~ .e-con .dmec-latest-news),
body.dmec-redesign-active .page-section__ad-space:not(:has(> .e-con-inner > *)):has(~ .e-con .page-section__latest-news),
body.dmec-redesign-active .page-section__ad-space:has(> .e-con-inner > .e-con-full.e-child:only-child:not(:has(*))):has(~ .e-con .dmec-latest-news),
body.dmec-redesign-active .page-section__ad-space:has(> .e-con-inner > .e-con-full.e-child:only-child:not(:has(*))):has(~ .e-con .page-section__latest-news) {
  display: none;
}

/* --- Membership CTA sits 80px below the preceding block ------------ */
body.dmec-redesign-active.page-id-478 .page-section__cta-2-col-blue {
  --margin-top: 80px;
  --margin-block-start: 80px;
  margin-top: 80px;
}

/* --- Latest News wrapper (former 2862fb54) ------------------------- */
body.dmec-redesign-active .dmec-news-wrapper.dmec-news-wrapper {
  --margin-top: 80px;
  --margin-block-start: 80px;
  --margin-bottom: 0px;
  --padding-top: 0px;
  --padding-right: 0px;
  --padding-bottom: 0px;
  --padding-left: 0px;
  margin: 80px 0 0 !important; /* grandfathered */
  padding: 0;
}

body.dmec-redesign-active .dmec-news-wrapper .dmec-latest-news {
  margin-top: 0;
}

/* =================================================================
 * Page: DMEC & State Policy Resource Hub
 *
 * Pass 2: class-only. Former page-id-15890 [data-id] rules are keyed
 * to classes stamped by the CLI migrate command:
 *   dmec-card-pair / __card / __head   equal-height navy-band cards
 *   dmec-events-flush / -collapse      Upcoming Events tightening
 *   dmec-gap-top-40 / dmec-gap-bottom-80 / dmec-hide   utilities
 * !important usage below is grandfathered from the original rules
 * (Elementor --height consumption can't be out-specified).
 * ================================================================= */
/* --- Equal-height card pair (Strategic Priorities / DMECommunities) */
body.dmec-redesign-active .dmec-card-pair,
body.dmec-redesign-active .dmec-card-pair > .e-con-inner {
  align-items: stretch;
}

body.dmec-redesign-active .dmec-card-pair > .e-con-inner > .e-con {
  display: flex;
  flex-direction: column;
}

body.dmec-redesign-active .dmec-card-pair > .e-con {
  display: flex;
  flex-direction: column;
  height: 100%;
}

body.dmec-redesign-active .dmec-card-pair__card {
  flex: 1;
}

body.dmec-redesign-active .dmec-card-pair__card > .e-con-inner {
  flex: 1;
  display: flex;
  flex-direction: column;
}

body.dmec-redesign-active .dmec-card-pair__card > .e-con-inner > .e-con {
  flex: 1;
}

@media (min-width: 1025px) {
  body.dmec-redesign-active .dmec-card-pair__head {
    min-height: 152px;
  }
}
/* --- Upcoming Events tightening ----------------------------------- */
body.dmec-redesign-active .dmec-events-flush,
body.dmec-redesign-active .dmec-events-flush > .e-con-inner {
  padding: 0 !important;
  gap: 0 !important;
}

body.dmec-redesign-active .dmec-events-collapse {
  --min-height: 0px !important;
  --height: auto !important;
  --container-widget-flex-grow: 0;
  min-height: 0 !important;
  height: auto !important;
  flex-grow: 0 !important;
  flex-basis: auto !important;
  padding: 0 !important;
}

body.dmec-redesign-active .dmec-events-collapse > .e-con-inner {
  min-height: 0 !important;
  padding-bottom: 0 !important;
}

/* =================================================================
 * PR #177 verified broad Figma spacing fixes.
 *
 * These are intentionally page/data-id scoped to the verified failures
 * from the deep broad pass, avoiding broader Elementor rhythm changes.
 * ================================================================= */
/* BugZap #64: utility seam gap — stamped on blocks that must keep
   80px of air before the next full-bleed band. */
body.dmec-redesign-active .dmec-gap-bottom-80.dmec-gap-bottom-80.dmec-gap-bottom-80 {
  --margin-bottom: 80px;
  --margin-block-end: 80px;
  margin-bottom: 80px;
}

/* Pass 2 utility set (stamped by the migrate command). */
body.dmec-redesign-active .dmec-gap-top-40.dmec-gap-top-40.dmec-gap-top-40 {
  --margin-top: 40px;
  --margin-block-start: 40px;
  margin-top: 40px;
}

body.dmec-redesign-active .dmec-gap-top-80.dmec-gap-top-80.dmec-gap-top-80 {
  --margin-top: 80px;
  --margin-block-start: 80px;
  margin-top: 80px;
}

/* Round-3 #84/#109: center stamped copy. */
body.dmec-redesign-active .dmec-text-center.dmec-text-center.dmec-text-center,
body.dmec-redesign-active .dmec-text-center.dmec-text-center.dmec-text-center :is(h1, h2, h3, h4, p, .elementor-heading-title) {
  text-align: center;
}

/* Round-3 #112/#113: softened lede copy — Neutral/warm/700, one step
   lighter than the warm-800 body default. Flagged: if the designer
   wants lighter still, this is the single value to change. */
body.dmec-redesign-active .dmec-text-soft.dmec-text-soft.dmec-text-soft,
body.dmec-redesign-active .dmec-text-soft.dmec-text-soft.dmec-text-soft :is(p, span, li) {
  color: var(--dmec-neutral-warm-700);
}

body.dmec-redesign-active .dmec-hide.dmec-hide {
  display: none !important; /* grandfathered — replaces per-page display:none !important rules */
  min-height: 0;
  margin: 0;
  padding: 0;
}

/* BugZap #36: National Partners first tier band sits 80px below the
   intro copy (was a stray 107px Elementor margin). Class stamped by
   the CLI migrate command; chained for (0,4,1) over Elementor's
   per-element margin. */
body.dmec-redesign-active .page-section__partner-tiers.page-section__partner-tiers.page-section__partner-tiers {
  /* Spec is 80px between the visible TEXTS (intro copy -> tier
     heading), per Matt. The intro section carries ~40px of trailing
     inner spacing and the tier band ~40px of leading inner spacing,
     so the section margin contributes 0 — measured text-to-text on
     staging lands at exactly 80px. */
  --margin-top: 0px;
  --margin-block-start: 0px;
  margin-top: 0;
}

/* #180: About top-level card grid needs the standard 80px rhythm
   before Latest News after the hidden ad slot. */
body.dmec-redesign-active.page-id-107 .page-section__subpage-grid {
  margin-bottom: 80px;
}

/* #144, #290, #291, #338: roster grids to partners/footer should be 80px. */
body.dmec-redesign-active:is(.page-id-1197, .page-id-1199, .page-id-321) [data-id="6f310bc"] {
  padding-bottom: 20px;
}

body.dmec-redesign-active.page-id-1199 [data-id="6f310bc"] {
  padding-bottom: 13px;
}

/* #290: EAB roster grid to partners should be 80px. */
body.dmec-redesign-active.page-id-321 [data-id="5b85f9b"] {
  margin-bottom: -40px;
}

/* #292/#293: partnership intro body copy to card grid should be 80px. */
body.dmec-redesign-active.page-id-1212 .page-section__subpage-grid {
  margin-top: 80px;
  margin-bottom: 80px;
}

body.dmec-redesign-active.page-id-1212 .page-section__subpage-grid > .e-con-inner {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40px;
  align-items: stretch;
}

body.dmec-redesign-active.page-id-1212 .page-section__subpage-grid > .e-con-inner > .e-con {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 100%;
}

@media (min-width: 1101px) {
  body.dmec-redesign-active.page-id-1212 .page-section__subpage-grid > .e-con-inner > .e-con > .subpage-grid-card-bottom {
    flex: 1 1 auto;
  }
}
@media (max-width: 1100px) {
  body.dmec-redesign-active.page-id-1212 .page-section__subpage-grid > .e-con-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  body.dmec-redesign-active.page-id-1212 .page-section__subpage-grid > .e-con-inner {
    grid-template-columns: 1fr;
  }
}
/* #292: collapse the empty spacer before Latest News. */
body.dmec-redesign-active.page-id-1212 [data-id="5b2922a"] {
  display: none;
  min-height: 0;
}

/* #322/#323: CLMS hero/top content copy width and CTA border. */
body.dmec-redesign-active.page-id-18844 [data-id="446ca75a"] :where(.elementor-widget-heading, .elementor-widget-text-editor, .elementor-widget-button) {
  max-width: 700px;
  margin-right: auto;
  margin-left: auto;
}

body.dmec-redesign-active.page-id-18844 [data-id="446ca75a"] .elementor-button {
  border: 1px solid var(--dmec-white);
}

body.dmec-redesign-active.page-id-18844 [data-id=a116703] {
  max-width: 700px;
  margin-right: auto;
  margin-left: auto;
}

/* #325: FMLA/ADA feedback block should render as the Figma teal testimonial component. */
body.dmec-redesign-active.page-id-12962 .page-section__feedback {
  background-color: var(--dmec-secondary-bg-800);
  color: var(--dmec-white);
  border-radius: 4px;
}

body.dmec-redesign-active.page-id-12962 .page-section__feedback :where(h3, p, span, b, .elementor-icon) {
  color: var(--dmec-white);
}

body.dmec-redesign-active.page-id-12962 .page-section__feedback > .e-con-inner {
  gap: 24px;
}

body.dmec-redesign-active.page-id-12962 [data-id="97eeb6e"],
body.dmec-redesign-active.page-id-12962 [data-id=a90b440] {
  background-color: transparent;
}

body.dmec-redesign-active.page-id-12962 [data-id=a90b440] {
  display: block;
  max-width: 760px;
}

body.dmec-redesign-active.page-id-12962 [data-id=a90b440] > .e-con {
  padding: 0;
  border: 0;
}

body.dmec-redesign-active.page-id-12962 [data-id=a90b440] > .e-con:not(:first-child) {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.45);
}

/* #296-#299 / BugZap #43 #46 #50: the seam before Partners on the
   partnership subpages is VISUAL-EDGE math, not box math. The old
   negative margins (-60/-117/-125/-40) compensated for junk that is
   now removed at the source: widget-less ghost containers collapse in
   _foundation.scss, and `dmec-seam-flush` (stamped by the migrate
   command on the four tab sections) zeroes the transparent trailing
   padding. Partners' own 80px padding-top then IS the 80px visible
   gap from the tab panel's edge to the heading text. */
body.dmec-redesign-active .dmec-seam-flush.dmec-seam-flush.dmec-seam-flush {
  --padding-bottom: 0px;
  --margin-bottom: 0px;
  --margin-block-end: 0px;
  padding-bottom: 0;
  margin-bottom: 0;
}

body.dmec-redesign-active .dmec-seam-flush.dmec-seam-flush > .e-con-inner {
  padding-bottom: 0;
}

/* The transparent wrapper chain inside the section carries its own
   trailing space (10px paddings, a 40px Elementor margin on the tab
   wrapper). Zero pb/mb on the wrapper levels only — tab/panel
   components hold their visible padding on the e-n-tabs content,
   which sits deeper than these two wrapper levels. Inter-child
   rhythm is supplied by the container gap, not margins. */
body.dmec-redesign-active .dmec-seam-flush.dmec-seam-flush > .e-con-inner > .e-con,
body.dmec-redesign-active .dmec-seam-flush.dmec-seam-flush > .e-con,
body.dmec-redesign-active .dmec-seam-flush.dmec-seam-flush > .e-con-inner > .e-con > .e-con,
body.dmec-redesign-active .dmec-seam-flush.dmec-seam-flush > .e-con > .e-con,
body.dmec-redesign-active .dmec-seam-flush.dmec-seam-flush > .e-con-inner > .e-con > .e-con-inner {
  --padding-bottom: 0px;
  --margin-bottom: 0px;
  --margin-block-end: 0px;
  padding-bottom: 0;
  margin-bottom: 0;
}

/* #343: conferences top-page breadcrumb to intro heading should be 32px. */
body.dmec-redesign-active.page-id-523 .page-section__h2-intro {
  padding-top: 32px !important;
}

/* #336: resource detail intro to tabbed/card resources should be 80px,
   and #180 keeps the lower transition at the verified 21px value. */
body.dmec-redesign-active.page-id-2253 [data-id="0470b1d"] {
  margin-top: 154px;
  margin-bottom: 21px;
}

/* #339/#340: @Work lower content/listing section uses the standard gray
   background and 80px block-edge rhythm before the CTA band. */
body.dmec-redesign-active.page-id-774 [data-id="7be9c721"] {
  background: var(--dmec-neutral-cold-100);
  margin-bottom: 234px;
}

/* #264-#268, #337, #358, #372: mapped "no white space" lower
   transitions mean adjacent lower blocks touch with 0px outside gap. */
body.dmec-redesign-active.page-id-1511 [data-id="133918c6"] {
  margin-bottom: -3px;
}

/* Round-3 #102: the Webinars page-id-1511 pill override (-64px) is
   gone — the pill follows the global centered -44px straddle like
   every other page. */
body.dmec-redesign-active.page-id-267 [data-id="7caf9561"],
body.dmec-redesign-active.page-id-6070 [data-id=cd9002d] {
  margin-bottom: 0;
}

/* #365: benefits content to Become a Member CTA should be 80px;
   #180 removes the duplicate selector and keeps the later verified value. */
body.dmec-redesign-active.page-id-2118 [data-id="32db2978"] {
  margin-bottom: 21px;
}

/* #180: About three-column teal CTA cards should render flush with no
   internal white gutters and no gap before the Partners region. */
body.dmec-redesign-active:is(.page-id-1213, .page-id-2347) .page-section__cta-3-col-teal-v2,
body.dmec-redesign-active.page-id-267 [data-id="7caf9561"] {
  --margin-bottom: 0px;
  --margin-block-end: 0px;
  gap: 0;
  margin-bottom: 0;
  padding: 0;
}

body.dmec-redesign-active:is(.page-id-1213, .page-id-2347) .page-section__cta-3-col-teal-v2 > .e-con,
body.dmec-redesign-active.page-id-267 [data-id="7caf9561"] > .e-con {
  flex: 1 1 0;
  margin: 0;
}

body.dmec-redesign-active:is(.page-id-1213, .page-id-2347) .page-section__cta-3-col-teal-v2 > .e-con > .e-con,
body.dmec-redesign-active.page-id-267 [data-id="7caf9561"] > .e-con > .e-con {
  padding: 48px 40px;
}

/* About partner/tab content pages use 80px content rhythm between the
	 partners band and footer, while other About pages keep the 0px seam. */
body.dmec-redesign-active:is(.page-id-1212, .page-id-16812, .page-id-16817, .page-id-16822, .page-id-16827, .page-id-16991) .dmec-partners {
  /* BugZap #43/#46 (round-2): the partners band sat flush (0px seam) against
     the preceding white content panel — Matt's pin shows the colored boxes
     touching. The band's base margin-top is 0 (dmec-partners.css); add the
     80px component gap above it. (Its internal padding-top handles the heading
     inset.) */
  margin-top: 80px;
  padding-bottom: 20px;
}

/* BugZap #167 (benchmarking-whitepaper, page 15631): the partners band sits only
   ~20px below the "Download the Report" panel (its base margin-top is 0). Unlike
   the About pages above (which start from a 0px seam), this page already carries
   a 20px trailing gap, so a 60px top margin lands the canonical 80px between the
   panel and the partners band. */
body.dmec-redesign-active.page-id-15631 .dmec-partners {
  margin-top: 60px;
}

/* #180 follow-up: remove the residual white strip before the custom footer
   on About pages where Partners is the final colored section. */
body.dmec-redesign-active:is(.page-id-1197, .page-id-321, .page-id-1199, .page-id-2347, .page-id-267) .dmec-partners {
  margin-bottom: 0;
}

body.dmec-redesign-active:is(.page-id-1197, .page-id-321, .page-id-1199, .page-id-2347, .page-id-267) .dmec-partners ~ #dmec-footer {
  margin-top: 0;
}

/* BugZap open batch 2026-06-04: tighten remaining measured staging
   spacing/card issues without broad Elementor rhythm changes. */
/* #1: State Policy card grid should hand off to Latest News with 80px,
   not the staged 50px inner padding. */
body.dmec-redesign-active.page-id-15890 .page-section__subpage-grid > .e-con-inner {
  padding-bottom: 80px;
}

/* BugZap #115 (emerging-leaders, page 21893) — REDO (round-3). The earlier fix
   targeted the KEY DATES -> Winner gap, which wasn't the issue (and over-tightened
   it). Matt's actual ask: 40px between the white winner content and the bottom of
   the grey wrapper (1829f163, which had 0 bottom padding so the content sat flush),
   then 80px before Our National Partners (the band sat flush at 0px). */
body.dmec-redesign-active.page-id-21893 .elementor-element-1829f163 {
  /* This is an `e-con-full` flex element whose `padding-block-end` does NOT
     read the `--padding-block-end` var (it computes 0 regardless), so the var
     approach is a no-op here. Force the physical longhand with !important to
     beat Elementor's generated padding and render 40px of grey below the white
     winner panel. The 80px to the partners band is preserved (this is internal
     padding, so the band's margin-top still measures from the new grey bottom). */
  padding-bottom: 40px !important;
}

body.dmec-redesign-active.page-id-21893 .dmec-partners {
  margin-top: 80px;
}

/* BugZap #58 (Atlanta Life password page, page 3171): the password form ->
   partners band measured 132px (live-toggle: 80px section inner padding-bottom
   on 65dcad43 + 32px form trailing + a 20px EMPTY spacer 740816b3). Drop the
   empty spacer and trim the section's bottom padding so the field sits the
   canonical 80px above the partners band. */
body.dmec-redesign-active.page-id-3171 .elementor-element-740816b3 {
  display: none;
}

body.dmec-redesign-active.page-id-3171 .elementor-element-65dcad43 > .e-con-inner {
  padding-bottom: 48px;
}

/* BugZap #161 (AbsenceExemplar dashboards, page 2191): last content -> partners
   band measured 200px (live-toggle: 80px gray-section inner padding-bottom +
   ~60px column trailing + an empty 60px spacer 6067f236). Drop the empty spacer
   and trim the gray section's inner bottom padding so the content sits the
   canonical 80px above the partners band. */
body.dmec-redesign-active.page-id-2191 .elementor-element-6067f236 {
  display: none;
}

body.dmec-redesign-active.page-id-2191 .elementor-element-e832c69 > .e-con-inner {
  padding-bottom: 20px;
}

/* BugZap #170 (re-bounce of #161): after the spacer removal above, the gray
   inset panel (.elementor-element-a5bf242) ended only 20px above the partners
   band — too tight. Like page 15631, the panel already carries a 20px trailing
   gap, so a 60px top margin on the partners band lands the canonical 80px
   between the gray panel and the partners section. */
body.dmec-redesign-active.page-id-2191 .dmec-partners {
  margin-top: 60px;
}

/* #2 REMOVED (BugZap #24/#67/#68): the former -64px straddle for
   Certification descendants over-dropped the pill — centering an 88px
   pill on the band edge is -44px, not -64px, which left pill->breadcrumb
   at 40px instead of the canonical 60px. The canonical -44px straddle in
   _section-page-header now governs these pages (matches Board of
   Directors and the Figma spec: blue->row 104, pill overhang 44,
   pill->row 60). */
/* #3: The LMS SCORM page's unclassed breadcrumb + share sibling rows
   (797bcdb0 / 4dad2747) are now driven by the canonical
   `.breadcrumb-container` / `.share-button-container` component
   (_section-breadcrumb-share + _section-page-header), applied via
   COMPONENT_CLASS_STAMPS (BugZap #67/#68). The former page-id/data-id
   overrides here forced a wrong 64px gap and used the forbidden
   page-id/data-id selector pattern — removed. */
body.dmec-redesign-active.page-id-2321 [data-id=a2161d8] {
  margin-bottom: 0;
}

/* #5-#6: empty Elementor spacer rows after teal CTA bands should not
   create white strips before the partners band. */
body.dmec-redesign-active.page-id-2321 [data-id="022bab5"],
body.dmec-redesign-active.page-id-2315 [data-id=f47ceb8],
body.dmec-redesign-active.page-id-2315 [data-id=f4a2226] {
  display: none;
  min-height: 0;
  height: 0;
}

/* #8-#9: Advisory group people-grid image widgets should crop to the
   card width instead of exposing the tall white portrait canvas. */
body.dmec-redesign-active:is(.page-id-1795, .page-id-1797) .person-grid-item .elementor-widget-image,
body.dmec-redesign-active:is(.page-id-1795, .page-id-1797) .person-grid-item .elementor-widget-image .elementor-widget-container {
  aspect-ratio: 1/1;
  overflow: hidden;
  width: 100%;
}

body.dmec-redesign-active:is(.page-id-1795, .page-id-1797) .person-grid-item .elementor-widget-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}

body.dmec-redesign-active.page-id-1795 [data-id="8addbda"] {
  display: none;
}

body.dmec-redesign-active:is(.page-id-1795, .page-id-1797) [data-id="6a743521"].page-section__cta-3-col-teal-v2 {
  margin-top: 80px;
  padding: 0;
  gap: 0;
}

body.dmec-redesign-active .page-section__cta-3-col-teal-v2 > .e-con-full {
  padding-bottom: 50px;
}

body.dmec-redesign-active.page-id-1795 [data-id=fcdf868] > .e-con-inner,
body.dmec-redesign-active.page-id-1797 [data-id=f51c9fb] > .e-con-inner {
  padding-bottom: 0;
}

/* #10: @Work lower resources region should leave only the standard
   80px rhythm before the following section. */
body.dmec-redesign-active.page-id-774 [data-id="7be9c721"] {
  margin-bottom: 80px;
}

/* #11: AbsenceAuthority disclaimer is on white, so add the requested
   80px before the gray partners band. */
body.dmec-redesign-active.page-id-11904 [data-id="64da0e4"] {
  margin-bottom: 80px;
}

/* #12: State and Local Leave Law Map spacer before partners should be
   80px. */
body.dmec-redesign-active.page-id-2229 [data-id=d34d3f4] {
  min-height: 80px;
}

/* BugZap round 2026-06-05: resource/community component follow-ups. */
body.dmec-redesign-active .page-header__blue-section {
  color: var(--dmec-white);
}

body.dmec-redesign-active .page-header__blue-section :where(h1, h2, h3, h4, h5, h6, .elementor-heading-title, .elementor-widget-text-editor, .elementor-widget-text-editor p) {
  color: var(--dmec-white);
}

body.dmec-redesign-active .page-header__blue-section .elementor-button {
  border: 1px solid var(--dmec-white);
}

body.dmec-redesign-active:is(.page-id-570, .page-id-576) .page-section__cta-2-col-blue {
  margin-top: 80px;
}

body.dmec-redesign-active .page-header__purple-box-outer-container,
body.dmec-redesign-active .page-header__purple-box-outer-container > .e-con-boxed > .e-con-inner {
  padding-top: 0;
  padding-bottom: 0;
}

body.dmec-redesign-active.page-id-2192 [data-id=ebac2ce] {
  --padding-top: 8px !important;
  padding-top: 8px !important;
  padding-bottom: 50px;
}

body.dmec-redesign-active.page-id-2253 [data-id="3e474241"] {
  padding-bottom: 0;
}

body.dmec-redesign-active.page-id-2191 [data-id=e832c69] {
  margin-bottom: 0;
}

body.dmec-redesign-active.page-id-2229 [data-id="2765394"] {
  min-height: 80px;
}

body.dmec-redesign-active.page-id-2253 [data-id="0470b1d"] {
  margin-top: 40px;
}

body.dmec-redesign-active.page-id-21853 .page-section__metrics,
body.dmec-redesign-active.page-id-21853 .page-section__metrics :where(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title, .elementor-widget-text-editor, .elementor-widget-text-editor p) {
  color: var(--dmec-white);
}

/* (Removed round-4) page-id-18844 band-dark heading duplicate: it
   whitened headings WITHOUT the panel-light carve-out and outranked
   the canonical carved rule in _certification-training.scss, painting
   "Who Should Participate" white on the white CLMS card. The
   canonical class-only rule fully covers the band. */
body.dmec-redesign-active.page-id-18844 .page-section__band-dark [data-id="792a9cb"],
body.dmec-redesign-active.page-id-18844 .page-section__band-dark [data-id=c9a1194],
body.dmec-redesign-active.page-id-18844 .page-section__band-dark [data-id="792a9cb"] :where(h1, h2, h3, h4, h5, h6, p, li, .elementor-heading-title, .elementor-widget-text-editor),
body.dmec-redesign-active.page-id-18844 .page-section__band-dark [data-id=c9a1194] :where(h1, h2, h3, h4, h5, h6, p, li, .elementor-heading-title, .elementor-widget-text-editor) {
  color: var(--dmec-color-text) !important;
}

body.dmec-redesign-active.parent-pageid-23342 [data-id="1b2ff7d0"] {
  width: 100%;
  max-width: 1200px;
  margin-right: auto;
  margin-left: auto;
}

body.dmec-redesign-active.parent-pageid-23342 [data-id="1b2ff7d0"] img {
  display: block;
  width: 100%;
  height: 10px; /* BugZap #106: blue rule between subnav and workshop header is 10px on live (was 16px). */
  object-fit: cover;
  object-position: center;
}

/* Round-4 #96: agenda day-content wrappers ship `40px 100px` padding;
   spec is 40px all around. Utility stamped template-wide on the four
   day wrappers (578d78c5 / 6333914 / 7b53418 / 46aec619). Triple
   chain + double body = (0,5,0) over the per-element (0,4,0). */
body.dmec-redesign-active.dmec-redesign-active .dmec-pad-40.dmec-pad-40.dmec-pad-40 {
  padding: 40px;
}

/* Resources BugZap #154: map section 80px block-axis padding. */
body.dmec-redesign-active.dmec-redesign-active .dmec-pad-80.dmec-pad-80.dmec-pad-80 {
  padding-block: 80px;
}

/* Round-4 #80 (final form): the EAC "Current Members" photo row
   (c7ff101) renders from template content, not the page's own
   Elementor data, so it can't be stamped directly. Anchor on the
   stampable section (dmec-people-grid on fcdf868@1795) and open the
   40px gap structurally: the row that follows the heading widget. */
body.dmec-redesign-active .dmec-people-grid .elementor-widget-heading + .e-con {
  margin-top: 40px;
}
