#galleryPhotos .mediaColumns {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 16px;
}

#galleryPhotos .mediaItem {
	display: flex;
	flex-direction: column;
	background: #FEFEFE;
	border: 2px solid #FAFAFA;
	box-shadow: 0 1px 2px rgba(34, 25, 25, 0.4);
	padding: 5px;
}

#galleryPhotos .mediaItem img {
	display: block;
	width: 100%;
	height: 260px;
	object-fit: contain;   /* shows whole image */
	background: #f3f3f3;   /* fills empty space around portrait images */
	border-radius: 4px;
}

#galleryPhotos .mediaItem p {
	margin: 8px 0 0 0;
	font: 12px/18px Arial, sans-serif;
	color: #333;
}

.mediaColumns {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 16px;
}

.mediaItem {
	display: inline-block;
	background: #FEFEFE;
	border: 2px solid #FAFAFA;
	box-shadow: 0 1px 2px rgba(34, 25, 25, 0.4);
	margin: 0 2px 15px;
	-webkit-column-break-inside: avoid;
	-moz-column-break-inside: avoid;
	column-break-inside: avoid;
	padding: 15px;
	padding-bottom: 5px;
	background: -webkit-linear-gradient(45deg, #FFF, #F9F9F9);
	opacity: 1;
	
	-webkit-transition: all .2s ease;
	-moz-transition: all .2s ease;
	-o-transition: all .2s ease;
	transition: all .2s ease;
}

.mediaItem img {
	width: 100%;
	border-bottom: 1px solid #ccc;
	padding-bottom: 15px;
	margin-bottom: 5px;
}

.mediaItem p {
	font: 12px/18px Arial, sans-serif;
	color: #333;
	margin: 0;
}
.media-body{
	margin-left:5px !important;
}

/* ============================================================
   Home page (view_home.php + widget_article.php hero/header/
   list/headlines draw types). Namespaced with an "hp-" prefix
   and kept out of the shared .media/.topnews/.mediaColumns
   rules above, which are also used by the article-media modal,
   the gallery widget, and the search results page.

   Colors/fonts below are a best-effort approximation of the
   Mesa AZ navy/gold brand pulled from the header mockups in the
   "MesaNow notes" doc, NOT sampled from mesaaz.gov's live CSS
   (that fetch was blocked by the site's bot protection this
   session). Treat --hp-navy/--hp-gold/--hp-font as provisional
   until confirmed against the real style guide.
   ============================================================ */
:root {
	--hp-navy: #13294b;
	--hp-gold: #f2a900;
	--hp-ink: #1a1a1a;
	--hp-muted: #5a5a5a;
	--hp-border: #e3e3e3;
	--hp-font: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.hp-page.container-fluid {
	max-width: 1600px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.hp-search {
	margin-bottom: 16px;
}

.hp-layout {
	display: flex;
	flex-direction: column;
	gap: 32px;
	font-family: var(--hp-font);
}

.hp-main {
	min-width: 0;
}

.hp-sidebar {
	min-width: 0;
}

@media (min-width: 992px) {
	.hp-layout {
		flex-direction: row;
		align-items: flex-start;
	}
	.hp-main {
		flex: 1 1 auto;
		width: 68%;
	}
	.hp-sidebar {
		flex: 0 0 auto;
		width: 32%;
		max-width: 360px;
		border-left: 1px solid var(--hp-border);
		padding-left: 24px;
	}
}

.hp-section-heading {
	font-family: var(--hp-font);
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 0.06em;
	color: var(--hp-navy);
	text-transform: uppercase;
	border-bottom: 3px solid var(--hp-gold);
	padding-bottom: 6px;
	margin: 28px 0 16px;
}

/* Hero / top story */
.hp-hero {
	margin-bottom: 24px;
}

.hp-hero-kicker {
	display: inline-block;
	font-family: var(--hp-font);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.08em;
	color: #fff;
	background: var(--hp-navy);
	padding: 4px 10px;
	margin-bottom: 10px;
}

.hp-hero-photo {
	display: block;
	width: 100%;
	aspect-ratio: 2 / 1;
	object-fit: cover;
	border-radius: 2px;
}

.hp-hero-body {
	margin-top: 14px;
}

.hp-hero-title {
	font-family: var(--hp-font);
	font-size: 34px;
	line-height: 1.15;
	font-weight: 800;
	color: var(--hp-ink);
	margin: 0 0 8px;
}

.hp-hero-title:hover {
	color: var(--hp-navy);
}

.hp-hero-date {
	font-size: 13px;
	color: var(--hp-muted);
	margin-bottom: 8px;
}

.hp-hero-desc {
	font-size: 16px;
	color: var(--hp-ink);
}

/* 3-across feature row */
.hp-features {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
	margin-bottom: 28px;
}

@media (min-width: 992px) {
	.hp-features {
		grid-template-columns: repeat(3, 1fr);
	}
}

.hp-feature-photo {
	display: block;
	width: 100%;
	height: 160px;
	object-fit: cover;
	border-radius: 2px;
}

.hp-feature-title {
	font-family: var(--hp-font);
	font-size: 18px;
	line-height: 1.25;
	font-weight: 700;
	color: var(--hp-ink);
	margin: 8px 0 0;
}

.hp-feature-title:hover {
	color: var(--hp-navy);
}

/* Card grid ("Other News") */
.hp-card-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

@media (min-width: 700px) {
	.hp-card-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1300px) {
	.hp-card-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.hp-card {
	border: 1px solid var(--hp-border);
	border-radius: 2px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.hp-card-photo {
	display: block;
	width: 100%;
	height: 180px;
	object-fit: cover;
}

.hp-card-body {
	padding: 12px 14px 16px;
}

.hp-card-title {
	font-family: var(--hp-font);
	font-size: 17px;
	line-height: 1.25;
	font-weight: 700;
	color: var(--hp-ink);
	margin: 0 0 6px;
}

.hp-card-title:hover {
	color: var(--hp-navy);
}

.hp-card-date {
	font-size: 12px;
	color: var(--hp-muted);
	margin-bottom: 6px;
}

.hp-card-desc {
	font-size: 14px;
	color: var(--hp-ink);
}

/* Sidebar: headline links + newsletter */
.hp-headlines-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hp-headlines-list li {
	border-bottom: 1px solid var(--hp-border);
	padding: 10px 0;
}

.hp-headlines-list li:first-child {
	padding-top: 0;
}

.hp-headlines-list a {
	font-family: var(--hp-font);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--hp-ink);
	text-decoration: none;
}

.hp-headlines-list a:hover {
	color: var(--hp-navy);
	text-decoration: underline;
}

.hp-social {
	margin-top: 8px;
}

.hp-social-icons {
	display: flex;
	gap: 14px;
}

.hp-social-icons a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--hp-navy);
	color: #fff;
	font-size: 16px;
	text-decoration: none;
}

.hp-social-icons a:hover {
	background: var(--hp-gold);
}

.hp-newsletter {
	margin-top: 24px;
}

@media (min-width: 600px) {
	.mediaColumns {
		-webkit-column-count: 2;
		-moz-column-count: 2;
		column-count: 2;
	}
}
@media (min-width: 960px) {
	.mediaColumns {
		-webkit-column-count: 3;
		-moz-column-count: 3;
		column-count: 3;
	}
}

@media (min-width: 1100px) {
	.mediaColumns {
		-webkit-column-count: 4;
		-moz-column-count: 4;
		column-count: 4;
	}
}