/* =====================================================================
   Intenção de Matrícula EMEI — estilos da página
   Paleta institucional do portal (roxo #853769)
   Mobile first + acessível
   ===================================================================== */

:root {
	--emei-primary: #853769;
	--emei-primary-dark: #6d2c56;
	--emei-primary-light: rgba(133, 55, 105, 0.10);
	--emei-accent: #f0a500;
	--emei-success: #2e7d32;
	--emei-warning: #b26a00;
	--emei-border: #d9d9e3;
	--emei-text-muted: #6c757d;
}

/* ---------- Hero ---------- */
.emei-hero {
	width: 100%;
	background: var(--emei-primary-light);
}
.emei-hero__img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}

/* ---------- Página ---------- */
.emei-page {
	max-width: 880px;
}
.emei-title {
	font-weight: 800;
	color: var(--emei-primary);
	font-size: 2rem;
	line-height: 1.15;
	margin-bottom: .5rem;
}
.emei-title span { color: var(--emei-accent); }
.emei-subtitle {
	max-width: 640px;
	color: var(--emei-text-muted);
	font-size: 1.02rem;
	line-height: 1.55;
}
.emei-alert-info {
	background: var(--emei-primary-light);
	border: 1px solid rgba(133,55,105,.25);
	color: var(--emei-primary-dark);
	border-radius: .6rem;
	max-width: 700px;
	font-size: .95rem;
	padding: .85rem 1.1rem;
	text-align: left;
	display: flex;
	align-items: flex-start;
}
.emei-alert-info .fas { margin-top: 3px; }
.emei-alert-warning {
	background: #fff6e6;
	border: 1px solid #f0c67e;
	color: var(--emei-warning);
	border-radius: .6rem;
}

/* ---------- Stepper ---------- */
.emei-stepper {
	list-style: none;
	display: flex;
	justify-content: space-between;
	gap: 4px;
	padding: 1.1rem 1rem .9rem;
	margin: 1.75rem 0;
	counter-reset: step;
	background: #fff;
	border: 1px solid var(--emei-border);
	border-radius: .8rem;
	box-shadow: 0 4px 16px rgba(51, 20, 40, .05);
}
.emei-step {
	flex: 1 1 0;
	text-align: center;
	position: relative;
	color: var(--emei-text-muted);
	font-size: .8rem;
}
.emei-step::before {
	content: "";
	position: absolute;
	top: 16px;
	left: -50%;
	width: 100%;
	height: 3px;
	background: var(--emei-border);
	z-index: 0;
}
.emei-step:first-child::before { display: none; }
.emei-step__num {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #fff;
	border: 3px solid var(--emei-border);
	font-weight: 700;
	margin-bottom: .35rem;
	transition: all .25s;
}
.emei-step__label { display: block; }
.emei-step.is-active .emei-step__num,
.emei-step.is-done .emei-step__num {
	background: var(--emei-primary);
	border-color: var(--emei-primary);
	color: #fff;
}
.emei-step.is-active .emei-step__num {
	box-shadow: 0 0 0 4px var(--emei-primary-light);
	transform: scale(1.08);
}
.emei-step.is-done .emei-step__num::after {
	content: "\f00c";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	font-size: .8rem;
}
.emei-step.is-done .emei-step__num { font-size: 0; }
.emei-step.is-active { color: var(--emei-primary); font-weight: 700; }
.emei-step.is-done { color: var(--emei-primary); }
.emei-step.is-done::before { background: var(--emei-primary); }

/* ---------- Cards ---------- */
.emei-card {
	position: relative;
	background: #fff;
	border: 1px solid var(--emei-border);
	border-radius: .9rem;
	box-shadow: 0 6px 24px rgba(51, 20, 40, .07);
	padding: 1.5rem 1.6rem 1.35rem;
	margin-bottom: 1.35rem;
	overflow: hidden;
}
/* Faixa superior institucional */
.emei-card::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 5px;
	background: linear-gradient(90deg, var(--emei-primary), var(--emei-accent));
}
.emei-card__title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--emei-primary);
	display: flex;
	align-items: center;
	gap: .65rem;
	margin-bottom: 1.1rem;
	padding-bottom: .7rem;
	border-bottom: 1px solid #eee;
}
.emei-card__step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px; height: 30px;
	border-radius: 50%;
	background: var(--emei-primary);
	color: #fff;
	font-size: .95rem;
	flex: 0 0 auto;
}

/* ---------- Campos ---------- */
/* O CSS do portal força .form-row como block; reativamos o grid flex. */
.emei-card .form-row {
	display: flex !important;
	flex-wrap: wrap;
	margin-left: -8px;
	margin-right: -8px;
}
.emei-card .form-row > [class*="col-"] {
	padding-left: 8px;
	padding-right: 8px;
	float: none;
}
.emei-card .emei-address-row {
	display: grid !important;
	grid-template-columns: minmax(290px, 5fr) minmax(0, 7fr);
	gap: 16px;
	margin-left: 0;
	margin-right: 0;
	align-items: start;
}
.emei-card .emei-address-row > .form-group {
	display: flex;
	flex-direction: column;
	min-width: 0;
	width: auto;
	max-width: none;
	margin-bottom: .85rem;
	padding-left: 0;
	padding-right: 0;
}
.emei-card .emei-address-row .form-control {
	height: 42px;
	min-height: 42px;
	margin: 0;
}
.emei-card .form-group { margin-bottom: .85rem; }
.emei-card .form-row:last-of-type .form-group { margin-bottom: .2rem; }
.emei-page label {
	font-weight: 600;
	margin-bottom: .25rem;
	display: block;
	font-size: .85rem;
	color: #3a3a44;
}
.emei-page .req { color: #d63333; }
.emei-page .form-control {
	background: #fff;
	border: 1px solid var(--emei-border);
	border-radius: .5rem;
	height: auto;
	min-height: 42px;
	padding: .45rem .7rem;
	font-size: .95rem;
	line-height: 1.4;
	width: 100%;
	box-sizing: border-box;
	box-shadow: none;
	transition: border-color .15s, box-shadow .15s;
}
.emei-page .form-control::placeholder { color: #adadba; }
.emei-page .form-control:hover { border-color: #b9b9c6; }
.emei-page .form-control:focus {
	border-color: var(--emei-primary);
	box-shadow: 0 0 0 .18rem var(--emei-primary-light);
	outline: none;
}
.emei-page .form-control.is-invalid {
	border-color: #d63333;
	box-shadow: 0 0 0 .18rem rgba(214,51,51,.12);
}
.emei-page .form-control.is-valid {
	border-color: #198754;
	box-shadow: 0 0 0 .18rem rgba(25,135,84,.12);
}
.emei-field-error {
	color: #d63333;
	font-size: .85rem;
	margin: .35rem 0 0;
	display: flex;
	align-items: center;
	gap: .3rem;
}
.emei-field-valid {
	color: #198754;
	font-size: .85rem;
	margin: .35rem 0 0;
	display: flex;
	align-items: center;
	gap: .3rem;
}
/* CEP + botão alinhados */
.emei-cep-wrap { display: flex; gap: .6rem; align-items: stretch; }
.emei-cep-wrap .form-control { flex: 1 1 auto; min-width: 0; height: 42px; min-height: 42px; }
.emei-cep-wrap .emei-btn-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	height: 42px;
	min-height: 42px;
	margin: 0;
	padding: 0 1rem;
	line-height: 1;
	white-space: nowrap;
}
#cepHelp { white-space: nowrap; font-size: .75rem; }
@media (max-width: 400px) {
	.emei-cep-wrap { flex-wrap: wrap; }
	.emei-cep-wrap .form-control { max-width: none; }
	.emei-cep-wrap .emei-btn-secondary { width: 100%; }
}
@media (max-width: 767px) {
	.emei-card .emei-address-row { grid-template-columns: 1fr; }
}

/* Honeypot */
.emei-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px; height: 1px;
	overflow: hidden;
}

/* ---------- Botões ---------- */
.emei-btn-primary {
	background: var(--emei-primary);
	border: 1px solid var(--emei-primary);
	color: #fff !important;
	font-weight: 600;
	border-radius: .5rem;
	padding: .6rem 1.4rem;
	min-height: 44px;
}
.emei-btn-primary:hover:not(:disabled) { background: var(--emei-primary-dark); }
.emei-btn-primary:disabled { opacity: .6; cursor: not-allowed; }
.emei-btn-secondary {
	background: var(--emei-accent);
	border: 1px solid var(--emei-accent);
	color: #4a3200 !important;
	font-weight: 600;
	border-radius: .5rem;
	min-height: 44px;
	white-space: nowrap;
}
.emei-btn-light {
	background: #f1f1f4;
	border: 1px solid var(--emei-border);
	color: #444 !important;
	border-radius: .5rem;
	min-height: 44px;
	font-weight: 600;
	padding: .6rem 1.2rem;
}
.emei-nav {
	display: flex;
	justify-content: space-between;
	gap: .75rem;
	margin-top: 1.2rem;
	flex-wrap: wrap;
}
.emei-nav .emei-btn-primary { margin-left: auto; }
.emei-btn-enviar { min-width: 240px; }

/* ---------- Card da escola ---------- */
.emei-school-card {
	border: 2px solid var(--emei-primary);
	border-radius: .75rem;
	padding: 1.1rem 1.2rem;
	background: var(--emei-primary-light);
}
.emei-school-card h3 {
	color: var(--emei-primary);
	font-weight: 700;
	font-size: 1.15rem;
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-bottom: .6rem;
}
.emei-school-card .emei-school-line {
	display: flex;
	align-items: flex-start;
	gap: .55rem;
	margin-bottom: .4rem;
	font-size: .96rem;
}
.emei-school-card .emei-school-line i {
	color: var(--emei-primary);
	margin-top: 3px;
	flex: 0 0 18px;
}
.emei-school-card .emei-distance {
	display: inline-block;
	background: var(--emei-primary);
	color: #fff;
	border-radius: 2rem;
	padding: .2rem .8rem;
	font-weight: 700;
	font-size: .9rem;
	margin-top: .4rem;
}
/* Toggle "Ver outras EMEIs próximas" */
.emei-toggle-others {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	margin-top: .9rem;
	padding: .5rem .95rem;
	background: #fff;
	border: 1px solid rgba(133, 55, 105, .35);
	border-radius: 2rem;
	color: var(--emei-primary);
	font-weight: 600;
	font-size: .92rem;
	text-transform: none;
	cursor: pointer;
	box-shadow: none;
	transition: background .15s, border-color .15s, box-shadow .15s;
}
.emei-toggle-others:hover,
.emei-toggle-others:focus {
	background: var(--emei-primary-light);
	border-color: var(--emei-primary);
	outline: none;
	box-shadow: 0 0 0 .18rem var(--emei-primary-light);
}
.emei-toggle-others__caret { font-size: .78rem; }

.emei-others { margin-top: .9rem; }
.emei-others .emei-other-item {
	border: 1px solid var(--emei-border);
	border-radius: .6rem;
	padding: .7rem .9rem;
	margin-bottom: .6rem;
	font-size: .92rem;
}
.emei-others .emei-other-item strong { color: var(--emei-primary); }

.emei-inline-loading { color: var(--emei-primary); font-weight: 600; padding: .6rem 0; }

/* ---------- Lista selecionável de EMEIs próximas ---------- */
.emei-choice-hint { color: var(--emei-text-muted); font-size: .95rem; margin-bottom: .75rem; }
.emei-choices { display: flex; flex-direction: column; gap: .6rem; }
.emei-choice {
	display: flex;
	align-items: flex-start;
	gap: .7rem;
	border: 1.5px solid var(--emei-border);
	border-radius: .7rem;
	padding: .8rem 1rem;
	margin: 0;
	cursor: pointer;
	transition: border-color .15s, background .15s, box-shadow .15s;
	background: #fff;
}
.emei-choice:hover { border-color: var(--emei-primary); background: #fdfbfc; }
.emei-choice.is-selected {
	border-color: var(--emei-primary);
	background: var(--emei-primary-light);
	box-shadow: 0 0 0 2px var(--emei-primary-light);
}
.emei-choice--single { cursor: default; }
.emei-choice input[type="radio"] {
	margin-top: .3rem;
	width: 18px; height: 18px;
	accent-color: var(--emei-primary);
	flex: 0 0 auto;
}
.emei-choice__body { display: flex; flex-direction: column; gap: .25rem; flex: 1; }
.emei-choice__name {
	font-weight: 700;
	color: var(--emei-primary);
	font-size: 1.02rem;
	display: flex;
	align-items: center;
	gap: .4rem;
	flex-wrap: wrap;
}
.emei-choice__name i { color: var(--emei-primary); }
.emei-choice__badge {
	background: var(--emei-accent);
	color: #4a3200;
	font-size: .7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .02em;
	border-radius: 2rem;
	padding: .1rem .55rem;
}
.emei-choice__badge--distance {
	color: #315d86;
	background: #e8f2fb;
}
.emei-choice__addr {
	color: #444;
	font-size: .92rem;
	display: flex;
	align-items: flex-start;
	gap: .45rem;
}
.emei-choice__addr i { color: var(--emei-primary); margin-top: 3px; flex: 0 0 14px; }
.emei-choice .emei-distance { align-self: flex-start; margin-top: .2rem; }

/* ---------- Revisão ---------- */
.emei-review {
	border: 1px solid var(--emei-border);
	border-radius: .6rem;
	overflow: hidden;
}
.emei-review .emei-review-row {
	display: flex;
	border-bottom: 1px solid #eee;
	padding: .55rem .9rem;
	font-size: .95rem;
}
.emei-review .emei-review-row:last-child { border-bottom: none; }
.emei-review .emei-review-row:nth-child(odd) { background: #faf7f9; }
.emei-review .emei-review-label {
	flex: 0 0 42%;
	color: var(--emei-text-muted);
	font-weight: 600;
}
.emei-review .emei-review-value { flex: 1; color: #222; word-break: break-word; }
.emei-review .emei-review-group {
	background: var(--emei-primary);
	color: #fff;
	font-weight: 700;
	padding: .5rem .9rem;
	font-size: .9rem;
	text-transform: uppercase;
	letter-spacing: .02em;
}

.emei-declaracao {
	background: var(--emei-primary-light);
	border-radius: .6rem;
	padding: .9rem 1rem .9rem 2.4rem;
}
.emei-declaracao .form-check-input { width: 18px; height: 18px; margin-top: .2rem; }
.emei-declaracao label { font-weight: 500; }

/* ---------- Responsividade ---------- */
@media (max-width: 575px) {
	.emei-title { font-size: 1.5rem; }
	.emei-step__label { font-size: .68rem; }
	.emei-review .emei-review-row { flex-direction: column; }
	.emei-review .emei-review-label { flex: none; margin-bottom: .1rem; }
	.emei-nav { flex-direction: column-reverse; }
	.emei-nav .btn { width: 100%; }
	.emei-nav .emei-btn-primary { margin-left: 0; }
	.emei-btn-enviar { min-width: 0; }
}
