/**
 * Naoero Judiciary CMS — consolidated responsive fixes for shortcodes & court profiles.
 * Loaded after frontend.css; complements per-module breakpoints in component stylesheets.
 */

/* --- Scoped overflow guard (listing / section roots only) --- */
.njcms-design-section,
.njcms-page-chrome,
.njcms-forms,
.njcms-fees,
.njcms-fee-tables,
.njcms-announcements,
.njcms-decisions,
.njcms-courts,
.njcms-guides,
.njcms-reports,
.njcms-registry-bundle,
.njcms-staff,
.njcms-vacancies,
.njcms-about-section,
.njcms-registrar,
.njcms-contact-page,
body.njcms-court-single .njcms-court-single-wrap,
body.njcms-court-guide-single .njcms-court-guide-single-wrap {
	max-width: 100%;
	box-sizing: border-box;
}

/* --- C. Card grids --- */
.njcms-courts__grid,
.njcms-guides__grid,
.njcms-reports__grid,
.njcms-about-values__grid {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}

@media (max-width: 480px) {
	.njcms-reports__grid {
		grid-template-columns: 1fr;
	}
}

/* Judgments listing: lock to 1 / 2 columns (override any auto-fit / 3-col rules). */
.njcms-decisions__grid,
.nj-directory-page--judgments .njcms-decisions__grid,
.njcms-decisions.njcms-decisions--page .njcms-decisions__grid {
	grid-template-columns: 1fr;
}

@media (min-width: 768px) {
	.njcms-decisions__grid,
	.nj-directory-page--judgments .njcms-decisions__grid,
	.njcms-decisions.njcms-decisions--page .njcms-decisions__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* --- D. Court profile — content spacing below theme hero --- */
body.njcms-court-single .njcms-court-single-wrap {
	padding-top: clamp(0.75rem, 2vw, 1.25rem);
	padding-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

body.njcms-registry-service-single .njcms-registry-single-wrap {
	padding-top: clamp(0.75rem, 2vw, 1.25rem);
	padding-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

/* --- D. Court profile mobile --- */
@media (max-width: 639px) {
	body.njcms-court-single .njcms-court-intro {
		padding: 1.15rem;
	}

	body.njcms-court-single .njcms-court-intro__summary {
		max-width: none;
	}

	body.njcms-court-single .njcms-court-chip-grid {
		grid-template-columns: 1fr;
	}

	body.njcms-court-single .njcms-court-list__card {
		grid-template-columns: auto minmax(0, 1fr);
		gap: 0.75rem;
		padding: 0.85rem 0.9rem;
	}

	body.njcms-court-single .njcms-court-panel__row {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.65rem;
	}

	body.njcms-court-single .njcms-court-keyinfo-item {
		padding: 0.85rem 1rem;
	}

	body.njcms-court-single .njcms-court-cta__btn,
	body.njcms-court-single .njcms-court-single__btn--back {
		display: flex;
		width: 100%;
		max-width: 22rem;
		margin-inline: auto;
		min-height: 2.75rem;
	}
}

/* --- E. Tables (scroll inside wrapper only) --- */
.njcms-fees__table-wrap,
.njcms-fee-tables__table-wrap {
	max-width: 100%;
	overflow-x: visible;
}

.njcms-fees__table-wrap table,
.njcms-fee-tables__table-wrap table {
	margin-bottom: 0;
}

/* --- F. Filters & forms --- */
@media (max-width: 767px) {
	.njcms-forms__filters,
	.njcms-fees__filters {
		flex-direction: column;
		align-items: stretch;
	}

	.njcms-forms__filter,
	.njcms-fees__filter,
	.njcms-reports__filter,
	.njcms-decisions__filter,
	.njcms-filter-chip {
		width: 100%;
		justify-content: center;
		min-height: 2.75rem;
	}

	.njcms-reports__filter-row,
	.njcms-decisions__filter-row {
		flex-direction: column;
		align-items: stretch;
	}

	.njcms-reports__filter-label,
	.njcms-decisions__filter-label {
		width: 100%;
		margin-bottom: 0.25rem;
	}

	.njcms-forms__actions,
	.njcms-reports__actions,
	.njcms-decisions__row-actions,
	.njcms-announcements__list-actions,
	.njcms-courts__actions,
	.njcms-guides__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.njcms-forms__btn,
	.njcms-reports__btn,
	.njcms-decisions__btn,
	.njcms-announcements__btn,
	.njcms-courts:not(.nj-court-directory) .njcms-courts__btn,
	.njcms-guides__btn {
		width: 100%;
		justify-content: center;
		min-height: 2.75rem;
		text-align: center;
	}

	/* List rows: stack summary above the action (card buttons stay full-width above).
	   Court Profiles directory (.nj-court-directory) keeps its own grid. */
	.njcms-courts:not(.nj-court-directory) .njcms-courts__list-item,
	.njcms-guides__list-item {
		grid-template-columns: minmax(0, 1fr);
		align-items: stretch;
		gap: 0.75rem;
	}

	.njcms-courts__list-main,
	.njcms-guides__list-main {
		min-width: 0;
		width: 100%;
	}

	.njcms-courts__list-summary,
	.njcms-guides__list-summary {
		max-width: none;
		width: 100%;
		overflow-wrap: break-word;
		word-break: normal;
	}

	.njcms-courts__list-actions,
	.njcms-guides__list-actions {
		width: 100%;
		display: flex;
		justify-content: flex-start;
		align-items: center;
		position: static;
	}

	.njcms-courts__list-actions .njcms-courts__btn,
	.njcms-guides__list-actions .njcms-guides__btn {
		width: auto;
		max-width: 100%;
		min-height: 2.75rem;
	}
}

@media (max-width: 640px) {
	.njcms-announcements__list-main,
	.njcms-staff__list-main {
		min-width: 0;
		width: 100%;
	}

	.njcms-forms__card {
		padding: 1rem;
	}
}

/* --- Contact page --- */
@media (max-width: 600px) {
	.njcms-contact-page__submit {
		align-self: stretch;
		width: 100%;
		min-height: 2.75rem;
		text-align: center;
	}

	.njcms-contact-page__cards {
		grid-template-columns: 1fr;
	}

	.njcms-contact-page__intro,
	.njcms-contact-page__split {
		padding-inline: 0;
	}
}

/* --- Homepage shortcodes --- */
@media (max-width: 640px) {
	.njcms-home-major-pages__card-title {
		font-size: clamp(1.35rem, 5vw, 1.75rem);
	}
}

/* --- Pagination --- */
@media (max-width: 480px) {
	.njcms-pagination,
	.njcms-reports__pagination,
	.njcms-decisions__pagination {
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.35rem;
	}
}

/* Tables and long content on small screens */
.njcms-table-wrap,
.njcms-fees table,
.njcms-fee-tables table,
.njcms-cause-list table,
.njcms-decisions table,
#main .wp-block-table,
#main table {
	max-width: 100%;
}

.njcms-table-wrap,
#main .wp-block-table,
.njcms-cause-list__table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

#main img,
#main video,
#main iframe {
	max-width: 100%;
	height: auto;
}

/* Framed personnel thumbnails: beat #main img height:auto so object-fit can fill. */
#main .nj-staff-card__media img,
#main .nj-profile-card__media img,
#main .nj-profile-featured-card__media img,
#main .nj-avatar--sm img,
#main .nj-avatar--landscape img,
#main .njcms-ia-staff-card__media img {
	width: 100%;
	height: 100%;
	max-width: none;
	aspect-ratio: unset;
}
