/**
 * MAXBRIO — Formulário de Orçamento
 * CSS estrutural (layout/box model). Cores, tipografia, bordas,
 * sombra e espaçamento vêm dos controles de Estilo do Elementor
 * (gerados automaticamente via "selectors" nos controles do widget).
 */

.mbo-widget * { box-sizing: border-box; }

.mbo-outer { display: block; }

.mbo-eyebrow { display: inline-block; margin-bottom: .5rem; }

.mbo-title { margin: 0 0 .4rem; line-height: 1.2; }

.mbo-note { margin: 0 0 1.5rem; font-size: .85rem; }

.mbo-body { display: flex; flex-direction: column; gap: 1.75rem; }

.mbo-subcard { padding: 1.75rem; margin-bottom: 0; }

.mbo-subtitle { margin: 0 0 1.1rem; }

.mbo-grid-2 { display: grid; grid-template-columns: 1fr; gap: 1rem; margin-bottom: 1rem; }

@media (min-width: 640px) {
	.mbo-grid-2 { grid-template-columns: 1fr 1fr; }
}

.mbo-field { display: flex; flex-direction: column; gap: .4rem; }

.mbo-field-button { justify-content: flex-end; }

.mbo-req { color: #4FA8DC; }

.mbo-input {
	width: 100%;
	padding: .85rem 1.05rem;
	border: 1.5px solid #DCEAF3;
	font-size: 1rem;
	font-family: inherit;
	transition: border-color .2s ease;
}

.mbo-input:focus { outline: none; }

textarea.mbo-input { resize: vertical; min-height: 100px; }

.mbo-field-error { display: none; font-size: .82rem; color: #C0392B; margin: 0; }

.mbo-field.is-invalid .mbo-field-error { display: block; }

.mbo-btn-primary,
.mbo-btn-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: none;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	transition: transform .2s ease, opacity .2s ease;
}

.mbo-btn-block { width: 100%; }

.mbo-btn-primary:active,
.mbo-btn-secondary:active { transform: scale(.98); }

.mbo-align-right { text-align: right; margin-top: 1rem; }

.mbo-align-row { display: flex; gap: .9rem; flex-wrap: wrap; margin-top: 1.5rem; }

.mbo-cart-table { width: 100%; border-collapse: collapse; font-size: .92rem; }

.mbo-cart-table th { text-align: left; padding: .6rem 0; border-bottom: 2px solid #DCEAF3; }

.mbo-cart-table td { padding: .6rem 0; border-bottom: 1px solid #DCEAF3; }

.mbo-cart-remove-cell { text-align: right; }

.mbo-remove-item { background: none; border: none; cursor: pointer; font-size: .82rem; text-decoration: underline; }

.mbo-success { padding: 1.75rem; border-radius: 22px; margin-top: 1.5rem; }

.mbo-success h3 { margin: 0 0 .6rem; }

.mbo-success p { margin: 0; }

/* Notificação flutuante (toast) — um único elemento compartilhado, */
/* anexado ao <body>, reaproveitado por todas as instâncias do widget. */
.mbo-toast {
	position: fixed;
	left: 50%;
	bottom: 24px;
	z-index: 99999;
	transform: translate( -50%, 140% );
	padding: .95rem 1.4rem;
	border-radius: 999px;
	font-weight: 600;
	font-size: .94rem;
	max-width: calc( 100vw - 2rem );
	box-shadow: 0 22px 60px rgba( 11, 36, 64, .18 );
	transition: transform .4s cubic-bezier( .2, .9, .3, 1.2 );
}

.mbo-toast.is-visible { transform: translate( -50%, 0 ); }
