/* ===== My Page Builder — Front End ===== */

.mpb-layout {
	width: 100%;
	font-family: var(--mpb-body-font, inherit);
}
.mpb-layout, .mpb-layout * { box-sizing: border-box; }

.mpb-row-inner {
	max-width: 1160px;
	margin: 0 auto;
	padding: 0 20px;
	display: flex;
	flex-wrap: wrap;
}
.mpb-row.mpb-row-full {
	width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
}
.mpb-row.mpb-row-full .mpb-row-inner {
	max-width: none;
}

.mpb-column {
	padding: 10px;
	min-width: 0;
}

/* Typography */
.mpb-heading {
	margin: 0 0 .5em;
	line-height: 1.2;
	letter-spacing: -0.01em;
	font-family: var(--mpb-heading-font, inherit);
	font-weight: 700;
}
h3.mpb-heading,
h4.mpb-heading {
	font-family: var(--mpb-heading2-font, var(--mpb-heading-font, inherit));
}
.mpb-text {
	line-height: 1.75;
	font-size: 1.05em;
}
.mpb-text p:last-child { margin-bottom: 0; }

/* Image */
.mpb-image { margin: 0; }
.mpb-image-frame {
	display: inline-block;
	overflow: hidden;
	max-width: 100%;
	vertical-align: top;
}
.mpb-image-frame img { width: 100%; height: auto; display: block; }
.mpb-img-hover-zoom img { transition: transform .35s ease; }
.mpb-img-hover-zoom:hover img { transform: scale(1.08); }
.mpb-img-hover-grayscale img { filter: grayscale(100%); transition: filter .35s ease; }
.mpb-img-hover-grayscale:hover img { filter: grayscale(0%); }
.mpb-image-caption { font-size: 13px; color: #767676; margin-top: 8px; }

/* Button */
.mpb-button-wrap { margin: 8px 0; }
.mpb-button {
	display: inline-block;
	padding: 13px 28px;
	border-radius: 8px;
	text-decoration: none;
	font-weight: 600;
	font-size: 15px;
	letter-spacing: 0.01em;
	transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
	box-shadow: 0 2px 6px rgba(0,0,0,.08);
}
.mpb-button:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0,0,0,.14); }
.mpb-button-primary { background: var(--mpb-accent, #2271b1); color: #fff; }
.mpb-button-secondary { background: #1e1e23; color: #fff; }
.mpb-button-outline {
	background: transparent;
	border: 2px solid var(--mpb-accent, #2271b1);
	color: var(--mpb-accent, #2271b1);
	padding: 11px 26px;
	box-shadow: none;
}
.mpb-button-outline:hover { background: var(--mpb-accent, #2271b1); color: #fff; }

/* Link */
.mpb-link-wrap { margin: 6px 0; }
.mpb-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	transition: opacity .15s ease, transform .15s ease, box-shadow .15s ease;
}
.mpb-link .mpb-icon-svg { flex: 0 0 auto; }

.mpb-link-size-small { font-size: 13px; }
.mpb-link-size-medium { font-size: 15px; }
.mpb-link-size-large { font-size: 17px; }

.mpb-link-style-text { color: var(--mpb-accent, #2271b1); font-weight: 600; }
.mpb-link-style-text .mpb-link-text { text-decoration: underline; text-underline-offset: 2px; }
.mpb-link-style-text:hover { opacity: .75; }

.mpb-link-style-button {
	background: var(--mpb-accent, #2271b1);
	color: #fff;
	padding: 10px 20px;
	border-radius: 8px;
	box-shadow: 0 2px 6px rgba(0,0,0,.08);
}
.mpb-link-style-button:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0,0,0,.14); }

.mpb-link-style-pill {
	background: color-mix(in srgb, var(--mpb-accent, #2271b1) 12%, transparent);
	color: var(--mpb-accent, #2271b1);
	padding: 8px 16px;
	border-radius: 999px;
}
.mpb-link-style-pill:hover { background: color-mix(in srgb, var(--mpb-accent, #2271b1) 20%, transparent); }

/* Icon block */
.mpb-icon-block { margin: 8px 0; }
.mpb-icon-block a { display: inline-flex; color: inherit; }
.mpb-icon-svg { display: inline-block; vertical-align: middle; color: var(--mpb-accent, #2271b1); }

/* Spacer / divider */
.mpb-divider { border: 0; border-top: 1px solid #e5e7eb; margin: 24px 0; }

/* Video */
.mpb-video-ratio { position: relative; padding-top: 56.25%; border-radius: 10px; overflow: hidden; }
.mpb-video-ratio iframe {
	position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
}

/* Document link */
.mpb-doc-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 12px 16px;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	background: #fff;
	text-decoration: none;
	color: inherit;
	transition: box-shadow .15s ease, transform .15s ease;
	max-width: 100%;
}
.mpb-doc-link:hover { box-shadow: 0 8px 20px rgba(16,24,40,.1); transform: translateY(-2px); }
.mpb-doc-link-icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 8px;
	background: color-mix(in srgb, var(--mpb-accent, #2271b1) 12%, #fff);
	color: var(--mpb-accent, #2271b1);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .02em;
}
.mpb-doc-link-info { display: flex; flex-direction: column; min-width: 0; }
.mpb-doc-link-label {
	font-weight: 600;
	font-size: 14.5px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.mpb-doc-link-size { font-size: 12px; color: #8a8f98; margin-top: 2px; }

/* Document link — style variants */
.mpb-doc-link-button {
	padding: 12px 22px;
	background: var(--mpb-accent, #2271b1);
	color: #fff;
	border: none;
}
.mpb-doc-link-button .mpb-doc-link-icon { background: rgba(255,255,255,.22); color: #fff; }
.mpb-doc-link-button .mpb-doc-link-label { font-weight: 600; }

.mpb-doc-link-minimal {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--mpb-accent, #2271b1);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
	box-shadow: none !important;
}
.mpb-doc-link-minimal:hover { transform: none; opacity: .75; }
.mpb-doc-link-minimal .mpb-doc-link-size { text-decoration: none; }

/* Document link — corners */
.mpb-doc-corners-square,
.mpb-doc-corners-square .mpb-doc-link-icon { border-radius: 0; }

/* Document embed */
.mpb-doc-embed { border-radius: 10px; overflow: hidden; border: 1px solid #e5e7eb; }
.mpb-doc-embed iframe { width: 100%; display: block; border: 0; }
.mpb-doc-embed-corners-square { border-radius: 0; }
.mpb-doc-embed-noborder { border: none; }
.mpb-doc-embed-shadow { box-shadow: 0 10px 30px rgba(16,24,40,.14); }

/* Table */
.mpb-table-wrap { overflow-x: auto; }
.mpb-table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.mpb-table th,
.mpb-table td { padding: 10px 14px; text-align: left; vertical-align: top; }
.mpb-table th { font-weight: 700; background: #f7f8fa; }
.mpb-table-striped tbody tr:nth-child(even) { background: #f9fafb; }
.mpb-table-bordered th,
.mpb-table-bordered td { border: 1px solid #e5e7eb; }
.mpb-table-bordered { border: 1px solid #e5e7eb; border-radius: 8px; overflow: hidden; }

/* Slider */
.mpb-slider {
	position: relative;
	overflow: hidden;
	border-radius: 12px;
	box-shadow: 0 6px 24px rgba(0,0,0,.1);
}
.mpb-slider-track {
	display: flex;
	transition: transform .45s cubic-bezier(.22,.61,.36,1);
}
.mpb-slide { flex: 0 0 100%; position: relative; }
.mpb-slide img { width: 100%; display: block; }
.mpb-slide-caption {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	background: linear-gradient(transparent, rgba(0,0,0,.65));
	color: #fff;
	padding: 30px 20px 16px;
	font-size: 15px;
	font-weight: 500;
}
.mpb-slider-prev,
.mpb-slider-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(255,255,255,.9);
	color: #1e1e23;
	border: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	font-size: 20px;
	cursor: pointer;
	line-height: 1;
	box-shadow: 0 2px 8px rgba(0,0,0,.2);
	transition: background .15s ease;
}
.mpb-slider-prev:hover, .mpb-slider-next:hover { background: #fff; }
.mpb-slider-prev { left: 14px; }
.mpb-slider-next { right: 14px; }
.mpb-slider-dots {
	position: absolute;
	bottom: 14px;
	left: 0; right: 0;
	display: flex;
	justify-content: center;
	gap: 7px;
}
.mpb-slider-dots button {
	width: 8px; height: 8px;
	border-radius: 50%;
	background: rgba(255,255,255,.55);
	border: 0;
	padding: 0;
	cursor: pointer;
	transition: background .15s ease, transform .15s ease;
}
.mpb-slider-dots button.is-active { background: #fff; transform: scale(1.25); }

/* Form */
.mpb-form { max-width: 480px; }
.mpb-form-field { margin-bottom: 16px; }
.mpb-form-field label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.mpb-form-field input,
.mpb-form-field textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1.5px solid #dde1e6;
	border-radius: 8px;
	font-size: 14px;
	font-family: inherit;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.mpb-form-field input:focus,
.mpb-form-field textarea:focus {
	outline: none;
	border-color: var(--mpb-accent, #2271b1);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--mpb-accent, #2271b1) 18%, transparent);
}
.mpb-form-submit {
	display: inline-block;
	background: var(--mpb-accent, #2271b1);
	color: #fff;
	border: 0;
	padding: 13px 28px;
	border-radius: 8px;
	font-weight: 600;
	cursor: pointer;
	font-size: 15px;
	box-shadow: 0 2px 6px rgba(0,0,0,.08);
	transition: transform .15s ease, box-shadow .15s ease;
}
.mpb-form-submit:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0,0,0,.14); }
.mpb-form-submit[disabled] { opacity: .6; cursor: default; transform: none; box-shadow: none; }
.mpb-form-message {
	margin-top: 12px;
	padding: 11px 14px;
	border-radius: 8px;
	font-size: 14px;
}
.mpb-form-message.is-success { background: #e5f8ea; color: #1e7a1e; }
.mpb-form-message.is-error { background: #fdeaea; color: #a02222; }

/* Header */
.mpb-site-header .mpb-row-inner { align-items: center; }
.mpb-nav-menu ul { list-style: none; display: flex; gap: 26px; margin: 0; padding: 0; flex-wrap: wrap; }
.mpb-nav-menu a {
	text-decoration: none;
	color: inherit;
	font-weight: 500;
	position: relative;
	padding-bottom: 3px;
}
.mpb-nav-menu a::after {
	content: '';
	position: absolute;
	left: 0; bottom: 0;
	width: 0; height: 2px;
	background: var(--mpb-accent, #2271b1);
	transition: width .2s ease;
}
.mpb-nav-menu a:hover::after { width: 100%; }
.mpb-site-logo img { max-height: 48px; width: auto; border-radius: 0; }
.mpb-site-title a { text-decoration: none; font-weight: 700; font-size: 20px; color: inherit; font-family: var(--mpb-heading-font, inherit); }

/* Mega menu */
.mpb-nav-menu { position: relative; }
.mpb-mega-item { position: relative; }
.mpb-mega-caret {
	font-size: 10px;
	margin-left: 4px;
	display: inline-block;
	transition: transform .2s ease;
}
.mpb-mega-item:hover .mpb-mega-caret,
.mpb-mega-item:focus-within .mpb-mega-caret,
.mpb-mega-item.mpb-mega-open .mpb-mega-caret { transform: rotate(180deg); }

.mpb-mega-panel {
	display: none;
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	background: #fff;
	box-shadow: 0 20px 40px rgba(16,24,40,.14);
	border-top: 1px solid #eceef1;
	z-index: 40;
	padding: 36px 0;
}
.mpb-mega-item:hover .mpb-mega-panel,
.mpb-mega-item:focus-within .mpb-mega-panel,
.mpb-mega-item.mpb-mega-open .mpb-mega-panel {
	display: block;
}

.mpb-mega-columns {
	max-width: 1160px;
	margin: 0 auto;
	padding: 0 20px;
	display: flex;
	gap: 48px;
	flex-wrap: wrap;
	text-align: left;
}
.mpb-mega-col { flex: 1 1 180px; min-width: 160px; }
.mpb-mega-col-title {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: #8a8f98;
	margin-bottom: 14px;
}
.mpb-mega-col-links { list-style: none; margin: 0; padding: 0; }
.mpb-mega-col-links li { margin-bottom: 16px; }
.mpb-mega-col-links li:last-child { margin-bottom: 0; }
.mpb-mega-col-links a { display: block; text-decoration: none; color: inherit; }
.mpb-mega-col-links a:hover .mpb-mega-link-title { color: var(--mpb-accent, #2271b1); }
.mpb-mega-link-title {
	display: block;
	font-weight: 600;
	font-size: 14.5px;
	transition: color .15s ease;
}
.mpb-mega-link-desc {
	display: block;
	font-size: 12.5px;
	color: #8a8f98;
	margin-top: 3px;
	font-weight: 400;
}

.mpb-mega-highlight {
	flex: 1 1 220px;
	background: color-mix(in srgb, var(--mpb-accent, #2271b1) 10%, #fff);
	border-radius: 10px;
	padding: 20px;
}
.mpb-mega-highlight-title { font-weight: 700; font-size: 15px; margin-bottom: 8px; }
.mpb-mega-highlight-desc { font-size: 13px; color: #55565a; line-height: 1.6; margin-bottom: 12px; }
.mpb-mega-highlight-link { font-weight: 600; font-size: 13px; color: var(--mpb-accent, #2271b1); text-decoration: none; }
.mpb-mega-highlight-link:hover { text-decoration: underline; }

/* Footer */
.mpb-site-footer { border-top: 1px solid #e5e7eb; }
.mpb-copyright { font-size: 13px; opacity: .75; }
.mpb-social-icons { display: flex; gap: 16px; flex-wrap: wrap; }
.mpb-social-link { text-decoration: none; color: inherit; font-size: 13px; font-weight: 600; opacity: .85; transition: opacity .15s ease; }
.mpb-social-link:hover { opacity: 1; }
.mpb-footer-widgets { display: flex; gap: 28px; flex-wrap: wrap; }
.mpb-footer-widget { flex: 1 1 200px; }
.mpb-widget-title { font-size: 14px; margin: 0 0 12px; font-family: var(--mpb-heading2-font, var(--mpb-heading-font, inherit)); }

/* Recent posts / events grids */
.mpb-posts-list,
.mpb-events-list {
	display: grid;
	gap: 32px;
	grid-template-columns: repeat(3, 1fr);
}
.mpb-grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
.mpb-grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
.mpb-grid-cols-4 { grid-template-columns: repeat(4, 1fr); }

.mpb-post-card,
.mpb-event-card {
	position: relative;
	background: #fff;
}

/* Card style: flat / soft shadow / 3D tilt-on-hover */
.mpb-card-style-shadow .mpb-post-card,
.mpb-card-style-shadow .mpb-event-card {
	box-shadow: 0 1px 3px rgba(16,24,40,.08), 0 1px 2px rgba(16,24,40,.06);
	transition: transform .2s ease, box-shadow .2s ease;
}
.mpb-card-style-shadow .mpb-post-card:hover,
.mpb-card-style-shadow .mpb-event-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 28px rgba(16,24,40,.14);
}

.mpb-card-style-tilt .mpb-post-card,
.mpb-card-style-tilt .mpb-event-card {
	box-shadow: 0 1px 3px rgba(16,24,40,.08);
	transition: transform .3s ease, box-shadow .3s ease;
	transform-style: preserve-3d;
}
.mpb-card-style-tilt .mpb-post-card:hover,
.mpb-card-style-tilt .mpb-event-card:hover {
	transform: perspective(900px) rotateX(3deg) rotateY(-4deg) translateY(-6px);
	box-shadow: 12px 20px 32px rgba(16,24,40,.22);
}

.mpb-card-style-flat .mpb-post-card,
.mpb-card-style-flat .mpb-event-card {
	border-bottom: 1px solid #e5e7eb;
}

/* Corners: square (editorial default) or rounded */
.mpb-corners-rounded .mpb-post-card,
.mpb-corners-rounded .mpb-event-card,
.mpb-corners-rounded .mpb-post-card-image img,
.mpb-corners-rounded .mpb-event-card-image img,
.mpb-corners-rounded .mpb-post-card-image,
.mpb-corners-rounded .mpb-event-card-image {
	border-radius: 12px;
	overflow: hidden;
}
.mpb-corners-rounded .mpb-post-card-body,
.mpb-corners-rounded .mpb-event-card-body {
	padding-left: 14px;
	padding-right: 14px;
}
.mpb-corners-square .mpb-post-card,
.mpb-corners-square .mpb-event-card,
.mpb-corners-square .mpb-post-card-image img,
.mpb-corners-square .mpb-event-card-image img {
	border-radius: 0;
}

.mpb-post-card-image,
.mpb-event-card-image {
	display: block;
	overflow: hidden;
}
.mpb-post-card-image img,
.mpb-event-card-image img {
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	aspect-ratio: 16/10 !important;
	object-fit: cover !important;
	display: block !important;
	transition: transform .4s ease;
}
.mpb-post-card:hover .mpb-post-card-image img,
.mpb-event-card:hover .mpb-event-card-image img { transform: scale(1.05); }

.mpb-post-card-body,
.mpb-event-card-body { padding: 16px 2px 0; }

/* Kicker label (e.g. "NEWS | AWARDS, HONORS & APPOINTMENTS") */
.mpb-post-card-kicker,
.mpb-event-card-kicker {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--mpb-accent, #8c1515);
	margin-bottom: 8px;
	padding-bottom: 8px;
	border-bottom: 2px solid #dcdcde;
	display: inline-block;
}

/* Editorial serif titles */
.mpb-post-card-title,
.mpb-event-card-title {
	margin: 0 0 8px;
	font-size: 19px;
	line-height: 1.35;
	font-weight: 600;
	font-family: var(--mpb-heading2-font, var(--mpb-heading-font, Georgia, 'Times New Roman', serif));
}
.mpb-post-card-title a,
.mpb-event-card-title a {
	color: var(--mpb-accent, #8c1515);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.mpb-post-card-title a:hover,
.mpb-event-card-title a:hover { opacity: .75; }

.mpb-post-card-excerpt {
	margin: 0 0 12px;
	font-size: 14.5px;
	line-height: 1.65;
	color: #55565a;
}
.mpb-post-card-meta {
	font-size: 12.5px;
	color: #767676;
}
.mpb-event-card-date {
	margin: 0 0 6px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--mpb-accent, #2271b1);
}
.mpb-event-card-location {
	margin-top: 6px;
	font-size: 13.5px;
	color: #55565a;
}
.mpb-events-list-empty,
.mpb-event-details-empty { color: #9095a0; font-style: italic; }

/* Event date badge — stacked month/day over the image corner */
.mpb-event-card-media { position: relative; }
.mpb-event-date-badge {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 58px;
	background: #fff;
	border-radius: 3px;
	overflow: hidden;
	box-shadow: 0 3px 12px rgba(0,0,0,.28);
	text-align: center;
	font-family: var(--mpb-heading2-font, var(--mpb-heading-font, Georgia, serif));
}
.mpb-badge-month {
	display: block;
	background: var(--mpb-accent, #a6192e);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: 4px 0;
}
.mpb-badge-day {
	display: block;
	font-size: 24px;
	font-weight: 700;
	color: #1e1e23;
	padding: 3px 0 6px;
	line-height: 1;
}

/* Event details block */
.mpb-event-details {
	border: 1px solid #edeff2;
	border-radius: 14px;
	padding: 22px 24px;
	box-shadow: 0 1px 3px rgba(16,24,40,.06);
}
.mpb-event-detail-row {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
	font-size: 15.5px;
}
.mpb-event-detail-row:last-of-type { margin-bottom: 0; }
.mpb-event-detail-icon {
	font-size: 15px;
	width: 30px; height: 30px;
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: color-mix(in srgb, var(--mpb-accent, #2271b1) 12%, #fff);
	border-radius: 8px;
}
.mpb-event-detail-button { margin-top: 16px; }

/* Responsive */
@media (max-width: 782px) {
	.mpb-row-inner { flex-direction: column; }
	.mpb-column { flex-basis: 100% !important; max-width: 100% !important; }
	.mpb-posts-list,
	.mpb-events-list,
	.mpb-grid-cols-2,
	.mpb-grid-cols-3,
	.mpb-grid-cols-4 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 500px) {
	.mpb-nav-menu ul { gap: 14px; }
	.mpb-posts-list,
	.mpb-events-list,
	.mpb-grid-cols-2,
	.mpb-grid-cols-3,
	.mpb-grid-cols-4 { grid-template-columns: 1fr; }
}
