/*
Theme Name: Hello Child — Multi-Tenant Marketplace
Theme URI: https://ovationwireless.com/
Description: Hello Elementor child theme with multi-tenant marketplace framework (WooCommerce + Formidable Pro + Acowebs).
Author: Jeff Reep
Author URI: https://ovationwireless.com/
Template: hello-elementor
Version: 1.29.27
Text Domain: hello-child-mkt
*/

/* =========================================================================
   Sticky footer (QA review v1, item 1).

   Hello Elementor renders the footer immediately after the content, so on a
   short page — an empty device catalog, a CPanel sub-screen, a brand-new
   tenant's account page — it lands mid-viewport instead of at the bottom.
   There was no min-height or flex rule anywhere in this theme.

   Make <body> a full-height column and let the content block absorb the
   slack. Only IN-FLOW children are affected, so the fixed-position admin bar,
   the preview pill (#mkt-preview-bar), the view-as overlay and the service
   modals are all untouched.

   Elementor Canvas pages (Sign In, Create Account, Reset Password) have no
   header or footer and carry their own min-height:100vh grids; a single-child
   column flex box leaves them exactly as they were.
   ========================================================================= */
body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

body > header,
body > footer,
body > .elementor-location-header,
body > .elementor-location-footer,
body > .site-header,
body > .site-footer {
	flex: 0 0 auto;
}

body > main,
body > #content,
body > .site-main,
body > .page-content,
body > .elementor-location-single,
body > .elementor-location-archive {
	flex: 1 0 auto;
}

/* Belt and braces: whatever wrapper the footer ends up in, the last in-flow
   block is pushed down. This alone is sufficient; the flex:1 rules above are
   insurance for markup shapes we do not control. */
body > footer,
body > .site-footer,
body > .elementor-location-footer {
	margin-top: auto;
}

/* The admin bar is 32px of fixed chrome; without this a logged-in user gets a
   permanent hairline scrollbar on every short page. */
body.admin-bar {
	min-height: calc(100vh - 32px);
}

@media screen and (max-width: 782px) {
	body.admin-bar { min-height: calc(100vh - 46px); }
}

/* Never inside the Elementor editor canvas — it manages its own layout. */
body.elementor-editor-active,
body.elementor-editor-preview {
	display: block;
}
