/* CDH compensating styles — replaces the never-archived post-604/607 (header/footer)
   and generic per-page layout CSS. Uses stable Elementor class names, not element IDs.
   Loaded by the CDH Restore child theme on every page. */

/* Containers: restore flex layout Elementor normally sets via per-element CSS */
.e-con, .e-con-inner { display: flex; }
.e-con.e-flex, .e-con-full.e-flex { flex-direction: column; }
.e-con-inner { flex-direction: inherit; width: 100%; max-width: var(--container-max-width,1140px); margin-inline:auto; }

/* Header row: the top bar (logo | title | buttons | nav) should sit horizontally on desktop */
@media (min-width: 768px){
  .elementor-location-header > .e-con > .e-con-inner,
  header .e-con.e-parent > .e-con-inner { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 16px; }
}

/* Buttons: green pill like the original brand accent */
.elementor-button, a.elementor-button, .elementor-button-link {
  display:inline-flex; align-items:center; justify-content:center;
  background-color:#61CE70; color:#fff !important;
  padding:12px 24px; border-radius:4px; font-weight:500; line-height:1.2;
  text-decoration:none; transition:background-color .3s; margin:4px 0;
}
.elementor-button:hover, a.elementor-button:hover { background-color:#4bb85c; color:#fff !important; }
.elementor-button .elementor-button-text { color:#fff !important; }

/* Nav menu: horizontal, spaced, matching link color */
.elementor-nav-menu, ul.elementor-nav-menu { display:flex; flex-wrap:wrap; gap:8px 28px; list-style:none; margin:0; padding:0; align-items:center; }
.elementor-nav-menu > li { list-style:none; }
.elementor-nav-menu a.elementor-item { text-decoration:none; padding:8px 0; display:inline-block; }

/* Widget spacing so stacked sections breathe */
.elementor-widget { margin-bottom:16px; }
.elementor-widget-image img { max-width:100%; height:auto; }
.elementor-heading-title { margin:0 0 .3em; }

/* Section padding for the boxed containers */
.e-con-boxed > .e-con-inner { padding: 20px 16px; }

/* Hide broken/never-archived inline images gracefully (show alt text area, no torn icon) */
img[src=""], img:not([src]) { visibility:hidden; }

/* Icon widgets: the missing per-page CSS set explicit icon sizes; without it the
   SVG icons expand to full width. Constrain them to a sensible default. */
.elementor-icon { font-size: 50px; line-height: 1; display: inline-flex; }
.elementor-icon svg, .elementor-icon i { width: 1em; height: 1em; }
.elementor-icon svg { fill: currentColor; }
.elementor-view-default .elementor-icon { color: #61CE70; }
/* Icon-box: icon above text, centered, reasonable width */
.elementor-icon-box-wrapper { text-align: center; }
.elementor-icon-box-icon { margin-bottom: 12px; }
.elementor-icon-box-icon .elementor-icon { font-size: 56px; }
/* Widget-image inside content shouldn't exceed its column */
.elementor-widget-image { text-align: center; }