/* Layout glue between the legacy Bootstrap-3 based NRGHost markup and Elementor containers. */
.elementor-editor-active .wow { visibility: visible !important; }

.e-con.tlr-row { --gap: 0px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; width: 100%; }
.e-con.tlr-row-inner.tlr-boxed { width: 100%; max-width: 1170px; margin-left: auto; margin-right: auto; --gap: 0px; }
.e-con.tlr-col { --gap: 0px; min-width: 0; }
.e-con.tlr-col > .elementor-widget { width: 100%; --margin-bottom: 0px; }

/* Legacy content elements carried 35px bottom spacing */
:where(.e-con.tlr-col) > :where(.elementor-widget.wpb_content_element) { --margin-bottom: 35px; margin-bottom: 35px; }

/* Portfolio grid (masonry columns, like the legacy Post Grid layout) */
.tlr-portfolio-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 20px; align-items: start; width: 100%; max-width: 1170px; margin: 0 auto; padding: 0 15px; box-sizing: border-box; }
.tlr-portfolio-grid.tlr-cols-2 { grid-template-columns: repeat(2, 1fr); }
.tlr-portfolio-grid.tlr-cols-3 { grid-template-columns: repeat(3, 1fr); }
.tlr-portfolio-item { margin-bottom: 25px; }
.tlr-portfolio-item img { width: 100%; height: auto; display: block; }
.tlr-portfolio-item .title { font-size: 15px; font-weight: 400; line-height: 1.5; margin: 18px 0 8px; }
.tlr-portfolio-item .tlr-excerpt { font-size: 11px; line-height: 1.7; margin: 0 0 8px; }
.tlr-portfolio-item .simple-link { font-size: 11px; }
.tlr-portfolio-grid { margin-top: 30px; }
@media (max-width: 1024px) { .tlr-portfolio-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .tlr-portfolio-grid { grid-template-columns: 1fr; } }

/* Elementor nested tabs styled like the legacy NRGHost tab switcher */
.elementor .tlr-nested-tabs { padding: 30px 0 60px; --n-tabs-gap: 0px; --n-tabs-title-gap: 0px; --n-tabs-title-spacing: 0px; }
.elementor .tlr-nested-tabs .e-n-tabs-heading { display: flex; justify-content: center; flex-wrap: wrap; gap: 0; margin-bottom: 70px; background: none; }
.elementor .tlr-nested-tabs .e-n-tab-title { flex-grow: 0; font-family: 'bold', sans-serif, Arial; font-size: 18px; line-height: 22px; padding: 14px 25px; color: #c6cad2; background: #232c3b; border: 0; border-left: 1px solid #fff; border-radius: 0; box-shadow: none; }
.elementor .tlr-nested-tabs .e-n-tab-title:first-child { border-left: 0; }
.elementor .tlr-nested-tabs .e-n-tab-title:hover,
.elementor .tlr-nested-tabs .e-n-tab-title[aria-selected="true"] { color: #fff; background: #ff6c3a; }
.elementor .tlr-nested-tabs .e-n-tab-title .e-n-tab-title-text { font: inherit; color: inherit; }
.elementor .tlr-nested-tabs .e-n-tabs-content > .e-con { border: 0; padding: 0; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; max-width: 1170px; margin: 0 auto; }
.elementor .tlr-nested-tabs .tlr-tabs-select { display: none; }
@media (max-width: 991px) {
	.elementor .tlr-nested-tabs { padding: 0; }
	.elementor .tlr-nested-tabs .tlr-tabs-select { display: block; margin: 0 15px 40px; height: 52px; }
	.elementor .tlr-nested-tabs .tlr-tabs-select .tabs-select-text, .elementor .tlr-nested-tabs .tlr-tabs-select select { height: 52px; box-sizing: border-box; }
	.elementor .tlr-nested-tabs .tlr-tabs-select .tabs-select-text { display: block; }
	.elementor .tlr-nested-tabs .tlr-tabs-select select { display: block; }
	.elementor .tlr-nested-tabs .e-n-tabs-heading { display: none; }
}

/* Elementor's frontend reset flattens image radii; restore the Bootstrap helpers the legacy markup relies on */
.elementor img.img-circle { border-radius: 50%; }
.elementor img.img-rounded { border-radius: 6px; }
.elementor img.img-thumbnail { border-radius: 4px; }

/* Domain search spinner is only shown while a lookup runs */
#loading { display: none; }

/* Rows that were wrapped in a Bootstrap .container */
.e-con.tlr-row.tlr-row-boxed { max-width: 1170px; margin-left: auto; margin-right: auto; }

.e-con.tlr-col.text-image-box { --padding-top: 30px; --padding-bottom: 30px; }

/* Legacy margins collapsed through the wrapper; flex containers do not collapse them */
/* js_composer: `.wpb_text_column :last-child { margin-bottom: 0 }` applied to every descendant */
.elementor-widget.wpb_text_column :last-child { margin-bottom: 0; }

/* CF7 6.x spinner should not take part in layout */
.wpcf7 .wpcf7-spinner { position: absolute; margin: 0; }
.wpcf7 form p:has(.wpcf7-submit) { position: relative; min-height: 73px; }

.elementor-widget.wpb_video_widget { padding-left: 15px !important; padding-right: 15px !important; box-sizing: border-box; }

.elementor .table-responsive.wpb_content_element { margin-bottom: 0; }
.elementor .table-responsive.wpb_content_element.block { margin-bottom: 35px; }

.elementor .vc_separator { display: flex; flex-flow: row nowrap; align-items: center; margin-bottom: 35px; }
.elementor .vc_separator .vc_sep_holder { height: 1px; position: relative; flex: 1 1 auto; min-width: 10%; }
.elementor .vc_separator .vc_sep_holder .vc_sep_line { height: 1px; border-top: 1px solid #ebebeb; display: block; position: relative; top: 1px; width: 100%; }
.elementor .vc_separator.vc_separator_no_text .vc_sep_holder_r { display: none; }

@media (max-width: 991px) {
	.e-con.tlr-col.text-image-box { --padding-top: 0px; }
}

/* VC margins collapsed through empty text blocks; flex containers do not */
.elementor-widget.wpb_content_element + .elementor-widget .heading:has(> :first-child:not(:empty)) { margin-top: 0; }
