.pj-wrap {
	max-width: 640px;
}
.pj-wrap.pj-lista-advogados {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}
.pj-form .pj-field label {
	display: block;
	margin-bottom: 0.25rem;
	font-weight: 600;
}
.pj-form .pj-field {
	margin-bottom: 1rem;
}
.pj-form input[type="text"],
.pj-form input[type="email"],
.pj-form select,
.pj-form textarea {
	width: 100%;
	max-width: 100%;
	padding: 0.5rem 0.6rem;
	box-sizing: border-box;
}
.pj-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.pj-btn {
	background: #1d4ed8;
	color: #fff;
	border: none;
	padding: 0.6rem 1.2rem;
	border-radius: 4px;
	cursor: pointer;
}
.pj-btn:hover {
	background: #1e40af;
}
.pj-alert {
	padding: 0.75rem 1rem;
	border-radius: 4px;
}
.pj-alert-success {
	background: #ecfdf5;
	color: #065f46;
}
.pj-alert-error {
	background: #fef2f2;
	color: #991b1b;
}
.required {
	color: #b91c1c;
}

/* —— Lista pública: cartões com imagem, hover e acordeão —— */
.pj-lista-advogados {
	font-family: inherit;
}
.pj-adv-mosaic {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 1.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.pj-adv-item {
	margin: 0;
	padding: 0;
}
.pj-adv-toggle {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	border: none;
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	cursor: pointer;
	text-align: left;
	position: relative;
	box-shadow: 0 2px 8px rgba( 15, 23, 42, 0.08 );
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.pj-adv-item.is-open .pj-adv-toggle {
	border-radius: 12px 12px 0 0;
	outline: 2px solid #0f766e;
}
.pj-adv-toggle:hover,
.pj-adv-toggle:focus-visible {
	transform: translateY( -2px );
	box-shadow: 0 8px 24px rgba( 15, 23, 42, 0.15 );
	outline: 2px solid #2563eb;
	outline-offset: 2px;
}
.pj-adv-img-wrap {
	display: block;
	position: relative;
	aspect-ratio: 3/4;
	background: #e5e7eb;
	overflow: hidden;
}
.pj-adv-img-wrap .pj-adv-foto,
.pj-adv-img-wrap img {
	width: 100%;
	height: 100%;
	max-width: 100%;
	max-height: 100%;
	object-fit: cover;
	display: block;
	/* A foto permanece em miniatura no cartão; sem zoom em hover. */
}
.pj-adv-foto--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 8rem;
	font-size: 2.5rem;
	font-weight: 700;
	color: #9ca3af;
}
.pj-adv-peek {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 0.5rem 0.75rem 0.6rem;
	background: linear-gradient( to top, rgba( 0, 0, 0, 0.7 ), rgba( 0, 0, 0, 0.15 ), transparent );
	color: #fff;
	font-size: 0.9rem;
	font-weight: 600;
	pointer-events: none;
}
.pj-adv-hint {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.7rem;
	font-weight: 400;
	opacity: 0.9;
}
.pj-adv-panel {
	/* Acordeão: recolhido = altura 0; aberto = só o painel de texto, foto não cresce. */
	margin: 0;
	background: #fff;
	border: 0 solid #e5e7eb;
	border-top: none;
	border-radius: 0 0 12px 12px;
	padding: 0 1.1rem;
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	pointer-events: none;
	box-shadow: 0 4px 12px rgba( 15, 23, 42, 0.04 );
	transition: max-height 0.45s cubic-bezier( 0.4, 0, 0.2, 1 ), opacity 0.3s ease, padding 0.32s ease, border 0.2s ease, box-shadow 0.2s ease;
}
.pj-adv-item.is-open .pj-adv-panel {
	margin-top: 0;
	border: 1px solid #e5e7eb;
	border-top: none;
	padding: 1rem 1.1rem 1.25rem;
	max-height: min( 2000px, 90vh );
	opacity: 1;
	pointer-events: auto;
	box-shadow: 0 4px 12px rgba( 15, 23, 42, 0.06 );
}
.pj-adv-detalhe-nome {
	margin: 0 0 0.35rem;
	font-size: 1.2rem;
}
.pj-adv-detalhe-oab {
	margin: 0 0 0.75rem;
	color: #374151;
	font-size: 0.95rem;
}
.pj-adv-detalhe-desc {
	margin: 0 0 1rem;
	color: #1f2937;
	line-height: 1.55;
	font-size: 0.95rem;
}
.pj-adv-detalhe-desc p:first-child {
	margin-top: 0;
}
.pj-adv-cta {
	margin: 0 0 0.5rem;
	font-size: 0.9rem;
	color: #4b5563;
}
.pj-wa {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: #25d366;
	color: #fff !important;
	text-decoration: none !important;
	font-weight: 600;
	padding: 0.65rem 1.1rem;
	border-radius: 8px;
	transition: background 0.2s, transform 0.15s;
	box-shadow: 0 2px 6px rgba( 37, 211, 102, 0.35 );
}
.pj-wa:hover,
.pj-wa:focus {
	background: #1eb855;
	color: #fff;
	transform: translateY( -1px );
}
.pj-wa .pj-wa-ico {
	flex-shrink: 0;
}
.pj-empty {
	text-align: center;
	padding: 2rem 1rem;
	color: #6b7280;
}

