/*
 * Neutral structural styles for the Mutual Aid directory site views.
 * No fonts, no colours, no reset, no max-width wrapper. Every visual value is a
 * CSS custom property with an inherit/transparent fallback, so the extension is
 * readable on a bare template and fully restyleable by a template override. The
 * GS Detroit look lives in the gsdetroit template, never here.
 */

.mat-card-grid,
.mat-category-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(var(--mat-card-min, 16rem), 1fr));
	gap: var(--mat-gap, 1rem);
}

.mat-card,
.mat-category-tile {
	display: block;
	padding: var(--mat-card-pad, 1rem);
	border: var(--mat-border, 1px solid);
	border-color: var(--mat-border-color, currentColor);
	border-radius: var(--mat-radius, 0);
	background: var(--mat-card-bg, transparent);
	color: var(--mat-fg, inherit);
}

.mat-card-title {
	margin: var(--mat-title-margin, 0.25rem 0);
	font-size: var(--mat-title-size, 1.25rem);
}

.mat-card-eyebrow {
	margin: 0 0 0.25rem;
}

.mat-card-blurb {
	margin: 0.5rem 0;
}

.mat-card-meta,
.mat-card-more {
	margin: 0.25rem 0 0;
}

.mat-tag {
	display: inline-block;
	padding: var(--mat-tag-pad, 0.1rem 0.5rem);
	border: var(--mat-tag-border, 1px solid);
	border-color: var(--mat-border-color, currentColor);
	border-radius: var(--mat-tag-radius, 0);
	font-size: var(--mat-tag-size, 0.85rem);
	text-decoration: none;
}

.mat-meta-label {
	font-weight: var(--mat-label-weight, 600);
	margin-right: 0.35rem;
}

.mat-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.mat-facets {
	display: flex;
	flex-wrap: wrap;
	gap: var(--mat-gap, 1rem);
	align-items: flex-end;
	margin: var(--mat-block-margin, 1rem) 0;
}

.mat-facet {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.mat-input,
.mat-select {
	padding: var(--mat-field-pad, 0.35rem 0.5rem);
	border: var(--mat-border, 1px solid);
	border-color: var(--mat-border-color, currentColor);
	border-radius: var(--mat-radius, 0);
	background: var(--mat-field-bg, transparent);
	color: var(--mat-fg, inherit);
	font: inherit;
}

.mat-button,
.mat-share-btn {
	display: inline-block;
	padding: var(--mat-button-pad, 0.4rem 0.9rem);
	border: var(--mat-border, 1px solid);
	border-color: var(--mat-border-color, currentColor);
	border-radius: var(--mat-radius, 0);
	background: var(--mat-button-bg, transparent);
	color: var(--mat-button-fg, inherit);
	font: inherit;
	cursor: pointer;
	text-decoration: none;
}

.mat-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0.5rem 0;
	padding: 0;
	list-style: none;
}

.mat-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: var(--mat-tag-pad, 0.1rem 0.5rem);
	border: var(--mat-border, 1px solid);
	border-color: var(--mat-border-color, currentColor);
	border-radius: var(--mat-tag-radius, 0);
}

.mat-chip-remove {
	text-decoration: none;
	font-weight: 700;
	line-height: 1;
}

.mat-share {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin: var(--mat-block-margin, 1rem) 0;
}

.mat-share-url {
	font-size: var(--mat-tag-size, 0.85rem);
	word-break: break-all;
}

.mat-tag-cloud {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding: 0;
	list-style: none;
}

.mat-contact-list,
.mat-field-list {
	margin: 0.5rem 0;
}

.mat-is-loading {
	opacity: var(--mat-loading-opacity, 0.5);
}

@media print {
	.mat-facets,
	.mat-chips,
	.mat-share,
	.mat-pagination {
		display: none;
	}
}

/*
 * Public submit and suggest forms. Neutral structure only; the honeypot is
 * visually hidden without display:none so bots that skip hidden fields still
 * see it, while assistive tech ignores it (aria-hidden on the wrapper).
 */

.mat-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.mat-form-section {
	margin: 0 0 var(--mat-gap, 1rem) 0;
	padding: var(--mat-card-pad, 1rem);
	border: var(--mat-border, 1px solid);
	border-color: var(--mat-border-color, currentColor);
	border-radius: var(--mat-radius, 0);
}

.mat-field {
	display: block;
	margin: 0 0 var(--mat-field-gap, 0.75rem) 0;
}

.mat-field label {
	display: block;
	margin-bottom: 0.25rem;
}

.mat-field input,
.mat-field textarea {
	width: 100%;
	box-sizing: border-box;
}

.mat-field-hint,
.mat-field-optional {
	display: block;
	font-size: var(--mat-hint-size, 0.875rem);
	opacity: 0.8;
}

.mat-term-group {
	margin: 0 0 var(--mat-field-gap, 0.75rem) 0;
}

.mat-term-legend {
	display: block;
	font-weight: var(--mat-legend-weight, bold);
	margin-bottom: 0.25rem;
}

.mat-term {
	display: inline-block;
	margin: 0 var(--mat-gap, 1rem) 0.25rem 0;
}

.mat-links-row {
	display: flex;
	gap: var(--mat-gap, 1rem);
	margin-bottom: 0.5rem;
}

.mat-required {
	color: var(--mat-required-color, inherit);
}
