/* Subscriber identification — component layout and controls. */
.vision-public {
	/* Fill the shared Catalog content column; its wrapper reserves the ad space. */
	width: 100%;
	max-width: none;
	margin: 0 0 1.5rem;
	line-height: 1.55;
}

.vision-public [hidden] {
	display: none !important;
}

.vision-public h1 {
	line-height: 1.25;
}

.vision-public label {
	display: block;
	height: auto;
	font-weight: bold;
	margin-bottom: .35rem;
}

.vision-public input, .vision-public select, .vision-public button {
	font: inherit;
	box-sizing: border-box;
	max-width: 100%;
}

.vision-public input[type=file] {
	width: 100%;
}

.vision-public input[type=search], .vision-public select {
	width: 100%;
	min-height: 42px;
	margin: 0;
	padding: .4rem;
}

/* Keep the submit control visible within the site’s shared form styles. */
.vision-public button[type=submit] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: auto;
	min-height: 44px;
	margin: .5rem 0;
	padding: .7rem 1.1rem;
	border: 1px solid #236e57;
	border-radius: 6px;
	background: #298166;
	color: #fff;
	font-weight: 600;
	line-height: 1.4;
	cursor: pointer;
}

.vision-public button[type=submit]:hover:not(:disabled) {
	background: #20664f;
}

.vision-public button:disabled {
	opacity: .6;
	cursor: wait;
}

.vision-public summary {
	cursor: pointer;
	font-weight: bold;
}

.vision-gallery, .vision-additional, .vision-about, .vision-context {
	border: 1px solid #8888;
	border-radius: 6px;
	padding: 1rem;
	margin: 1.2rem 0;
}

/* Optional metadata aligns at the top and collapses on narrow screens. */
.vision-fields {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 1rem;
	align-items: start;
}

/* Locality suggestions share the existing accessible combobox markup. */
.vision-locality-search {
	position: relative;
	grid-column: 1 / -1;
}

#vision-locality-options {
	position: absolute;
	z-index: 5;
	width: 100%;
	box-sizing: border-box;
	max-height: 240px;
	overflow-y: auto;
	background: Canvas;
	color: CanvasText;
	border: 1px solid #888;
	padding: 0;
	margin: 0;
	list-style: none;
}

#vision-locality-options li {
	padding: .6rem;
	cursor: pointer;
}

#vision-locality-options li[aria-selected=true], #vision-locality-options li:hover {
	outline: 2px solid #777;
	outline-offset: -2px;
}

#vision-query-preview img {
	max-height: 300px;
	max-width: 100%;
	object-fit: contain;
	margin-top: 1rem;
}

/* Candidate order and reference-image layout follow the rendered evidence. */
.vision-candidates {
	padding-left: 2rem;
}

.vision-candidates > li {
	list-style: decimal outside;
	padding: 0 0 1.2rem .5rem;
	margin: 1rem 0;
	border-bottom: 1px solid #8888;
}

.vision-candidates h3 {
	margin-bottom: 0;
}

.vision-references {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
}

.vision-references a {
	flex: 0 1 200px;
}

.vision-references img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: contain;
}

.vision-public dt {
	font-weight: bold;
}

.vision-public dd {
	margin: 0 0 .6rem;
}

.vision-public :focus-visible {
	outline: 2px solid #319b80;
	outline-offset: 3px;
}

/* Responsive layout for smaller viewports. */
@media (max-width: 600px) {
	.vision-fields {
		grid-template-columns: 1fr;
	}

	.vision-references a {
		flex-basis: 45%;
	}

	.vision-public {
		margin: 1rem 0;
	}

}
