/* Frontend CSS for visual-editor components.
   Used on the live site AND inside the preview iframe. */

.ave-node { display: block; }
.ave-node > * { box-sizing: border-box; }

.ave-heading { margin: 0 0 .5em; line-height: 1.2; }

.ave-text { line-height: 1.6; }
.ave-text p:last-child { margin-bottom: 0; }

.ave-image { display: block; }
.ave-image img { max-width: 100%; height: auto; display: inline-block; }
.ave-image-placeholder {
	display:flex; align-items:center; justify-content:center;
	min-height:160px; background:#f5f5f5; color:#888;
	border:1px dashed #ccc; border-radius:6px;
}

.ave-btn-wrap { display: block; }
.ave-btn {
	display: inline-block; padding: 12px 22px; border-radius: 6px;
	font-weight: 600; text-decoration: none; line-height: 1; cursor: pointer;
	transition: opacity .15s ease, transform .15s ease;
	border: 2px solid transparent;
}
.ave-btn:hover { opacity: .92; transform: translateY(-1px); }
.ave-btn-primary   { background:#e98a15; color:#fff; }
.ave-btn-secondary { background:#102b3a; color:#fff; }
.ave-btn-ghost     { background:transparent; color:inherit; border-color:currentColor; }
.ave-btn-sm { padding: 8px 14px; font-size: 13px; }
.ave-btn-md { padding: 12px 22px; font-size: 15px; }
.ave-btn-lg { padding: 16px 30px; font-size: 17px; }

.ave-spacer { width: 100%; }

.ave-columns {
	display: grid;
	grid-template-columns: repeat(var(--ave-cols, 2), minmax(0, 1fr));
	gap: 24px;
}
@media (max-width: 720px) {
	.ave-columns { grid-template-columns: 1fr; }
}
.ave-col { min-width: 0; }

.ave-hero {
	position: relative; isolation: isolate;
	display: flex; align-items: center;
	padding: 80px 24px;
	background-color: #0b1e28;
}
.ave-hero-overlay {
	position: absolute; inset: 0; z-index: 0;
}
.ave-hero-inner {
	position: relative; z-index: 1;
	max-width: 1100px; margin: 0 auto; width: 100%;
}
.ave-hero-eyebrow {
	display: inline-block; font-size: 13px; letter-spacing: .12em;
	text-transform: uppercase; opacity: .85; margin-bottom: 14px;
}
.ave-hero-title { font-size: clamp(28px, 4vw, 56px); margin: 0 0 16px; line-height: 1.1; }
.ave-hero-subtitle { font-size: 18px; line-height: 1.5; opacity: .9; max-width: 720px; margin: 0 0 28px; }
.ave-hero-cta { display: flex; gap: 12px; flex-wrap: wrap; }

.ave-slider { position: relative; overflow: hidden; }
.ave-slider-track { position: relative; }
.ave-slide {
	display: none;
}
.ave-slide.is-active { display: grid; grid-template-columns: 1fr 1fr; min-height: 360px; }
@media (max-width: 720px) { .ave-slide.is-active { grid-template-columns: 1fr; } }
.ave-slide-text { padding: 32px; align-self: center; }
.ave-slide-image { min-height: 240px; background-color: #ddd; }
.ave-slider-dots {
	position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%);
	display: flex; gap: 8px;
}
.ave-slider-dot {
	width: 10px; height: 10px; border-radius: 50%;
	background: rgba(255,255,255,.5); border: 0; padding: 0; cursor: pointer;
}
.ave-slider-dot.is-active { background: #fff; }
.ave-slider-empty {
	padding: 40px; text-align: center; background: #f5f5f5;
	color: #888; border: 1px dashed #ccc; border-radius: 6px;
}
