/*
 * elementor.css — styling for the generic Elementor renderer (inc/elementor-render.php).
 * Provides sane, on-brand defaults so converted pages are clean and readable.
 * Loaded only on pages rendered by the converter. Per-page spacing is a QA pass.
 */

.usa-elementor { width: 100%; }
.usa-elementor img { height: auto; }

.usa-el { width: 100%; box-sizing: border-box; }
.usa-el__inner { box-sizing: border-box; width: 100%; }
.usa-el__inner--boxed {
	max-width: var(--usa-container);
	margin-inline: auto;
	padding-inline: var(--usa-gutter);
}

/* Flex children share space; widgets (direct children) flow naturally. */
.usa-el__inner > .usa-el { flex: 1 1 auto; min-width: 0; }

/* Vertical rhythm for widget-level children. */
.usa-el__inner > .usa-el-heading,
.usa-el__inner > .usa-el-text,
.usa-el__inner > .usa-el-button,
.usa-el__inner > .usa-el-iconlist,
.usa-el__inner > .usa-el-image { margin-block: 0.25rem; }

/* Widgets */
.usa-el-heading { line-height: 1.25; }
.usa-el-text { line-height: 1.6; }
.usa-el-text :where(ul, ol) { padding-left: 1.25rem; }
.usa-el-image { margin: 0; }
.usa-el-image img { display: inline-block; border-radius: 8px; }

.usa-el-iconlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.usa-el-iconlist li { position: relative; padding-left: 1.25rem; }
.usa-el-iconlist li::before { content: "›"; position: absolute; left: 0; color: var(--usa-orange); font-weight: 700; }

.usa-el-button { margin-block: 0.5rem; }
.usa-el-divider { border: 0; border-top: 1px solid var(--usa-border); margin-block: 1rem; width: 100%; }

.usa-el-box {
	background: #fff;
	border: 1px solid var(--usa-border);
	border-radius: 12px;
	padding: 1.5rem;
	text-align: center;
}
.usa-el-box__img { width: 100%; height: auto; border-radius: 8px; margin-bottom: 1rem; }
.usa-el-box__title { color: var(--usa-navy); margin-bottom: 0.5rem; }
.usa-el-box__desc { margin: 0; }

.usa-el-social { gap: 0.5rem; }
.usa-el-video { width: 100%; border-radius: 12px; }
.usa-el-map iframe { min-height: 360px; }
.usa-el-loop { margin-top: 1rem; }
.usa-el-form { margin-block: 1rem; }

/* Pages rendered by the converter get vertical spacing between top sections. */
.usa-page--elementor .usa-el > .usa-el__inner { padding-block: clamp(1.5rem, 4vw, 3rem); }
.usa-page--elementor .usa-el .usa-el .usa-el__inner { padding-block: 0; }

/* Mobile: flex columns stack. */
@media (max-width: 768px) {
	.usa-el__inner { flex-direction: column !important; }
	.usa-el__inner > .usa-el { width: 100% !important; flex-basis: auto !important; }
}
