/* ============================================================
   WordPress + Elementor guard layer for the Campbell River build.
   Everything visual lives in theme.css (the verbatim static stylesheet);
   this file only re-asserts what WordPress/Elementor would otherwise clobber,
   plus the WP-only chrome (mobile action bar, form notices, admin-bar offset).
   ============================================================ */

/* ---- Elementor wrappers must never constrain the full-bleed sections ----
   Scoped to sections that actually contain a Campbell River widget, so adding
   a stock Elementor section elsewhere keeps its normal boxed layout. */
.elementor-section:has([class*="elementor-widget-cr-"]) > .elementor-container,
.elementor-section.elementor-section-boxed:has([class*="elementor-widget-cr-"]) > .elementor-container {
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.elementor-section:has([class*="elementor-widget-cr-"]) .elementor-widget-wrap { display: block !important; padding: 0 !important; }
.elementor-section:has([class*="elementor-widget-cr-"]) .elementor-column-wrap,
.elementor-section:has([class*="elementor-widget-cr-"]) .elementor-widget-column-wrap { padding: 0 !important; }
[class*="elementor-widget-cr-"] { margin: 0 !important; margin-bottom: 0 !important; }
[class*="elementor-widget-cr-"] > .elementor-widget-container { padding: 0 !important; }
/* Elementor flexbox-container fallback (newer default). */
.e-con:has([class*="elementor-widget-cr-"]) > .e-con-inner { max-width: none !important; padding: 0 !important; margin: 0 !important; }

/* Our sections own their own width/typography — don't let Elementor's
   frontend defaults leak into the CRM widgets. */
[class*="elementor-widget-cr-"] :where(section, h1, h2, h3, h4, p, ul, li, a) { color: inherit; }
[class*="elementor-widget-cr-"] a { text-decoration: none; }

/* ---- Editor: reveal-on-scroll must not hide content while editing ---- */
.elementor-editor-active .reveal,
.elementor-editor-preview .reveal {
	opacity: 1 !important;
	transform: none !important;
}

/* ---- Logged-in admin bar: keep the sticky header below it ---- */
body.admin-bar .header { top: 32px; }
@media ( max-width: 782px ) {
	body.admin-bar .header { top: 46px; }
}

/* ---- Inline form confirmation notice ---- */
.crm-note {
	max-width: 1200px;
	margin: 0 auto 18px;
	padding: 14px 18px;
	border-radius: 12px;
	font-family: var(--f-display, "Sora", sans-serif);
	font-weight: 600;
	font-size: .96rem;
}
.crm-note--ok { background: rgba(15,181,174,.12); border: 1px solid rgba(15,181,174,.35); color: #0d7a75; }
.crm-note--warn { background: rgba(255,107,74,.1); border: 1px solid rgba(255,107,74,.35); color: #c0432a; }

/* ---- Sticky mobile call/audit bar (phones/tablets) ---- */
.crm-mbar {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 260;
	display: none;
	gap: 8px;
	padding: 8px 12px calc( 8px + env( safe-area-inset-bottom, 0px ) );
	background: rgba( 255, 255, 255, .96 );
	backdrop-filter: blur( 12px );
	-webkit-backdrop-filter: blur( 12px );
	box-shadow: 0 -6px 24px rgba( 6, 26, 46, .12 );
}
.crm-mbar a {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 50px;
	border-radius: 999px;
	font-family: var(--f-display, "Sora", sans-serif);
	font-weight: 600;
	font-size: .96rem;
	text-decoration: none;
}
.crm-mbar a svg { width: 18px; height: 18px; }
.crm-mbar-call { background: #0a2540; color: #fff; }
.crm-mbar-book { background: #ff6b4a; color: #fff; }
@media ( max-width: 900px ) {
	.crm-mbar { display: flex; }
	/* keep the last section clear of the fixed bar (only when it's shown) */
	body.has-crm-mbar { padding-bottom: 68px; }
}

/* ---- Elementor's front-end may inject a top bar; neutralize spacing ---- */
.elementor-page .elementor,
.elementor-page .elementor-inner { padding: 0 !important; margin: 0 !important; }
