/*
 * McRae Blocks — front-end and editor styles.
 *
 * Desktop values are copied from the design handoff's inline styles; the
 * media queries at the end add the small-screen reflow the handoff lacks.
 * Hover styles are mirrored on :focus-visible so keyboard users get the same
 * feedback.
 */

.mc-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Lists rendered by blocks carry no bullets or indents. */
.mc-tiles, .mc-services, .mc-header ul, .mc-online__list, .mc-link-list ul, .mc-members, .mc-legend {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ================================================================ header */
.mc-header { font-family: 'Public Sans', sans-serif; }

.mc-header__row { max-width: 1344px; margin: 0 auto; display: flex; align-items: center; }

.mc-header__top {
	background: #1c2119;
	color: #faf7f1;
	font-size: 16px;
	line-height: 28px;
	padding: 12px 48px;
}
.mc-header__top .mc-header__row { justify-content: space-between; gap: 24px; }
.mc-header__group { display: flex; gap: 32px; align-items: center; }
.mc-header__mail { color: #8fe0b4; display: flex; align-items: center; gap: 9px; }
.mc-header__mail:hover, .mc-header__mail:focus-visible { color: #fff; }
.mc-header__pill { border: 1px solid rgba(255, 255, 255, 0.25); border-radius: 20px; padding: 2px 16px; }
.mc-header__pill i { margin-right: 8px; color: #8fe0b4; }
.mc-header__tel { color: #faf7f1; display: flex; align-items: center; gap: 9px; }
.mc-header__tel i { color: #8fe0b4; }
a.mc-header__tel:hover, a.mc-header__tel:focus-visible { color: #8fe0b4; }

.mc-header__main { background: #faf7f1; border-bottom: 1px solid #e4ddd0; padding: 20px 48px; }
.mc-header__main .mc-header__row { justify-content: space-between; gap: 40px; }
.mc-header__logo { display: block; width: 250px; height: auto; }
.mc-header__brand { display: inline; }
.mc-header__nav ul { display: flex; gap: 34px; font-size: 18px; font-weight: 700; }
.mc-header__nav a { color: #1c2119; padding-bottom: 6px; border-bottom: 3px solid transparent; }
.mc-header__nav a:hover, .mc-header__nav a:focus-visible { color: #00693c; border-bottom: 3px solid #00aa55; }
.mc-header__nav a.is-active { color: #00693c; border-bottom: 3px solid #00aa55; }
.mc-header__end { display: flex; align-items: center; gap: 16px; }
.mc-header__lang { font-size: 17px; font-weight: 600; color: #1c2119; }
.mc-header__social {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #00693c;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 17px;
}
.mc-header__social:hover, .mc-header__social:focus-visible { background: #004526; color: #fff; }

.mc-header__quick { background: #eef6f0; border-bottom: 1px solid #cfe3d6; padding: 12px 48px; }
.mc-header__quick .mc-header__row { gap: 30px; flex-wrap: wrap; }
.mc-header__quick-label { font-size: 15px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: #4b5449; }
.mc-header__quick ul { display: flex; flex-wrap: wrap; gap: 28px; font-size: 17px; font-weight: 600; }
.mc-header__quick a { color: #1c2119; display: flex; align-items: center; gap: 8px; }
.mc-header__quick a i { color: #00693c; }
.mc-header__quick a:hover, .mc-header__quick a:focus-visible { color: #00693c; }

/* ================================================================== home */

/* Eyebrow with a short green rule (hero, page banners). */
.mc-eyebrow-line {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #8fe0b4;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0 0 22px;
}
.mc-eyebrow-line > span { width: 34px; height: 3px; background: #00aa55; }

.mc-btn { display: block; border-radius: 4px; font-size: 18px; }
.mc-btn--primary { background: #00aa55; color: #08210f; font-weight: 800; padding: 18px 32px; }
.mc-btn--primary:hover, .mc-btn--primary:focus-visible { background: #8fe0b4; color: #08210f; }
.mc-btn--ghost { border: 2px solid #faf7f1; color: #faf7f1; font-weight: 700; padding: 16px 30px; }
.mc-btn--ghost:hover, .mc-btn--ghost:focus-visible { background: #faf7f1; color: #1c2119; }
.mc-btn--solid {
	background: #00693c;
	color: #fff;
	font-weight: 800;
	padding: 16px 26px;
	display: flex;
	align-items: center;
	gap: 10px;
}
.mc-btn--solid i { font-size: 15px; }
.mc-btn--solid:hover, .mc-btn--solid:focus-visible { background: #004526; color: #fff; }

/* ---------------------------------------------------------------- hero */
.mc-hero {
	height: 620px;
	/* Middle stop is 0.65 (handoff: 0.55) so the 22px intro keeps 4.5:1 over
	   the brightest part of the photo behind it (WCAG 1.4.3). */
	background-image: linear-gradient(90deg, rgba(15, 26, 18, 0.88) 0%, rgba(15, 26, 18, 0.65) 52%, rgba(15, 26, 18, 0.15) 100%), var(--mc-bg, none);
	background-color: #1c2119;
	background-size: cover, cover;
	background-position: center;
	display: flex;
	align-items: center;
}
.mc-hero__in { max-width: 1440px; width: 100%; margin: 0 auto; padding: 0 48px; }
.mc-hero__content { max-width: 720px; }
.mc-hero .mc-eyebrow-line { font-family: 'Public Sans', sans-serif; }
.mc-hero__title {
	font-family: 'Zilla Slab', serif;
	font-size: 88px;
	line-height: 1.02em;
	font-weight: 600;
	color: #faf7f1;
	margin-bottom: 24px;
}
.mc-hero__text { font-size: 22px; line-height: 1.6em; color: #e6e2d6; max-width: 600px; margin: 0 0 34px; }
.mc-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; }

/* --------------------------------------------------------- quick tiles */
.mc-tiles-wrap.mc-tiles-wrap { max-width: 1440px; margin: -72px auto 0; padding: 0 48px; position: relative; }
.mc-tiles {
	background: #fff;
	border: 1px solid #e4ddd0;
	border-radius: 6px;
	box-shadow: 0 18px 40px rgba(28, 33, 25, 0.12);
	display: grid;
	grid-template-columns: repeat(7, 1fr);
}
.mc-tiles li { display: grid; }
.mc-tiles a { padding: 30px 20px; text-align: center; border-right: 1px solid #eee6d8; color: #1c2119; display: block; }
.mc-tiles a:hover, .mc-tiles a:focus-visible { background: #f3f8f4; color: #1c2119; }
.mc-tiles__icon { display: block; color: #00693c; font-size: 30px; margin-bottom: 14px; }
.mc-tiles__label { display: block; font-size: 18px; font-weight: 700; line-height: 1.3em; }

/* ------------------------------------------------------- service cards */
.mc-services { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
.mc-services li { display: grid; }
.mc-service {
	background: #fff;
	border: 1px solid #e4ddd0;
	border-top: 4px solid #00aa55;
	border-radius: 5px;
	padding: 30px 26px;
	display: block;
	color: #1c2119;
}
.mc-service:hover, .mc-service:focus-visible { border-color: #00693c; color: #1c2119; }
.mc-service__icon { display: block; color: #00693c; font-size: 32px; margin-bottom: 20px; }
.mc-service__sub {
	display: block;
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: #00693c;
	margin-bottom: 10px;
}
.mc-service__title { display: block; font-family: 'Zilla Slab', serif; font-size: 23px; line-height: 1.3em; font-weight: 600; }

/* ------------------------------------------------------- feature panel */
.mc-feature {
	background: #1c2119;
	border-radius: 6px;
	padding: 60px;
	display: grid;
	grid-template-columns: 360px 1fr;
	gap: 56px;
	align-items: start;
}
.mc-feature__figure { position: relative; }
.mc-feature__img { display: block; width: 100%; height: auto; border-radius: 5px; }
.mc-play {
	border-radius: 50%;
	background: #00aa55;
	color: #08210f;
	display: flex;
	align-items: center;
	justify-content: center;
}
.mc-play:hover, .mc-play:focus-visible { background: #8fe0b4; color: #08210f; }
.mc-play--78 { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 78px; height: 78px; font-size: 24px; }
.mc-play--84 { width: 84px; height: 84px; font-size: 26px; }
.mc-feature__caption { margin-top: 22px; }
.mc-feature__name { margin: 0; font-family: 'Zilla Slab', serif; font-size: 26px; font-weight: 600; color: #faf7f1; }
.mc-feature__role { margin: 0; font-size: 17px; color: #8fe0b4; font-weight: 600; }

/* Native blocks inside the panel's content column. */
.mc-feature__body h2 {
	font-family: 'Zilla Slab', serif;
	font-size: 46px;
	line-height: 1.1em;
	font-weight: 600;
	color: #faf7f1;
	margin: 0 0 28px;
}
.mc-feature__body p { font-size: 20px; line-height: 1.75em; color: #e6e2d6; margin: 0 0 26px; }
.mc-feature__body .wp-block-quote {
	margin: 0 0 30px;
	border: 0;
	border-left: 4px solid #00aa55;
	padding: 0 0 0 24px;
	font-family: 'Zilla Slab', serif;
	font-size: 26px;
	line-height: 1.5em;
	color: #faf7f1;
	font-style: normal;
	box-sizing: content-box;
}
.mc-feature__body .wp-block-quote p { margin: 0; font: inherit; color: inherit; line-height: inherit; }
.mc-feature__body .mc-awards { border-top: 1px solid rgba(255, 255, 255, 0.18); padding-top: 24px; }
.mc-feature__body .mc-awards > p:first-child {
	font-size: 16px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #8fe0b4;
	line-height: normal;
	margin: 0 0 12px;
}
.mc-feature__body ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
	font-size: 18px;
	line-height: 1.6em;
	color: #cfd3c8;
}
.mc-feature__body .wp-block-buttons { display: block; }
.mc-feature__body .wp-block-button { display: inline; }
.mc-feature__body .wp-block-button__link {
	display: inline-block;
	margin-top: 26px;
	background: #00aa55;
	color: #08210f;
	font-family: 'Public Sans', sans-serif;
	font-size: 18px;
	font-weight: 800;
	line-height: normal;
	padding: 16px 30px;
	border-radius: 4px;
}
.mc-feature__body .wp-block-button__link:hover,
.mc-feature__body .wp-block-button__link:focus-visible { background: #8fe0b4; color: #08210f; }

/* ------------------------------------------------------ section header */
.mc-section-header.mc-section-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: 40px;
}
.mc-section-header > a { font-size: 18px; font-weight: 700; }

/* ---------------------------------------------------------- info cards */
.mc-infos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.mc-info {
	background: #fff;
	border: 1px solid #e4ddd0;
	border-radius: 5px;
	padding: 32px 30px;
	display: flex;
	gap: 22px;
	align-items: flex-start;
}
.mc-info__icon {
	flex: 0 0 auto;
	width: 58px;
	height: 58px;
	border-radius: 5px;
	background: #eef6f0;
	color: #00693c;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 26px;
}
.mc-info h3 {
	font-family: 'Zilla Slab', serif;
	font-size: 25px;
	line-height: 1.25em;
	font-weight: 600;
	color: #1c2119;
	margin-bottom: 10px;
}
.mc-info p { font-size: 18px; line-height: 1.6em; color: #4b5449; margin: 0 0 14px; }
.mc-info a { font-size: 17px; font-weight: 700; }

.mc-infos--md { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mc-infos--md .mc-info { padding: 30px 30px; gap: 20px; }
.mc-infos--md .mc-info__icon { width: 52px; height: 52px; font-size: 23px; }
.mc-infos--md .mc-info h3 { font-size: 24px; margin-bottom: 8px; }
.mc-infos--md .mc-info p { margin-bottom: 12px; }

/* -------------------------------------------------------------- events */
.mc-events { display: grid; gap: 18px; }
.mc-event {
	background: #fff;
	border: 1px solid #e4ddd0;
	border-radius: 5px;
	padding: 28px;
	display: flex;
	gap: 28px;
	align-items: center;
}
.mc-event__date {
	flex: 0 0 auto;
	width: 104px;
	border: 2px solid #00693c;
	border-radius: 5px;
	text-align: center;
	padding: 14px 0;
	color: #00693c;
}
.mc-event__day { font-family: 'Zilla Slab', serif; font-size: 38px; font-weight: 700; line-height: 1; }
.mc-event__month { font-size: 17px; font-weight: 700; }
.mc-event h3 {
	font-family: 'Zilla Slab', serif;
	font-size: 27px;
	line-height: 1.25em;
	font-weight: 600;
	color: #1c2119;
	margin-bottom: 12px;
}
.mc-meta { display: flex; gap: 26px; font-size: 17px; color: #4b5449; }
.mc-meta i { color: #00693c; margin-right: 8px; }
.mc-event .mc-meta { margin-bottom: 12px; }
.mc-event a { font-size: 17px; font-weight: 700; }
.mc-event--empty p { font-family: 'Zilla Slab', serif; font-size: 23px; font-weight: 600; color: #4b5449; margin: 0; }

/* ---------------------------------------------------------- newsletter */
.mc-newsletter {
	background: #eef6f0;
	border: 1px solid #cfe3d6;
	border-radius: 5px;
	padding: 36px;
	text-align: center;
}
.mc-newsletter__icon { width: 74px; height: auto; display: block; margin: 0 auto 18px; }
.mc-newsletter h3 { font-family: 'Zilla Slab', serif; font-size: 28px; font-weight: 600; color: #1c2119; margin-bottom: 10px; }
.mc-newsletter > p { font-size: 18px; color: #4b5449; margin: 0 0 22px; }
.mc-newsletter input {
	width: 100%;
	box-sizing: border-box;
	/* Darker than the handoff's #b9cfc1 so the field edge meets 3:1 (WCAG 1.4.11). */
	border: 1px solid #779583;
	border-radius: 4px;
	padding: 15px 16px;
	font-family: 'Public Sans', sans-serif;
	font-size: 17px;
	margin-bottom: 14px;
	background: #fff;
	color: #1c2119;
}
.mc-newsletter input::placeholder, .mc-docs input::placeholder { color: #6b7068; opacity: 1; }
.mc-newsletter input:focus-visible { outline: 3px solid #00693c; outline-offset: 1px; border-color: #00693c; }
.mc-newsletter button {
	width: 100%;
	border: 0;
	border-radius: 4px;
	background: #00693c;
	color: #fff;
	font-family: 'Public Sans', sans-serif;
	font-size: 18px;
	font-weight: 800;
	padding: 16px;
	cursor: pointer;
}
.mc-newsletter button:hover, .mc-newsletter button:focus-visible { background: #004526; }
.mc-newsletter__note { font-size: 16px; color: #4b5449; padding-top: 14px; }
.mc-newsletter > .mc-newsletter__status { margin: 0; font-size: 17px; font-weight: 700; color: #00693c; }
.mc-newsletter > .mc-newsletter__status:not(:empty) { padding-top: 14px; }
.mc-newsletter__more { padding-top: 20px; }
.mc-newsletter__more a { font-size: 17px; font-weight: 700; }

/* ----------------------------------------------------- online services */
.mc-online { background: #1c2119; border-radius: 6px; padding: 56px 60px; }
.mc-online > h2 { font-family: 'Zilla Slab', serif; font-size: 46px; font-weight: 600; color: #faf7f1; margin-bottom: 36px; }
.mc-online__grid { display: grid; grid-template-columns: 1fr 1.15fr 1fr; gap: 40px; align-items: center; }
.mc-online__list li { border-bottom: 1px solid rgba(255, 255, 255, 0.2); }
.mc-online__list a { display: block; padding: 18px 0; color: #e6e2d6; font-size: 20px; }
.mc-online__list a:hover, .mc-online__list a:focus-visible { color: #8fe0b4; }
.mc-online__video {
	position: relative;
	border-radius: 5px;
	overflow: hidden;
	background-color: #33392f;
	background-image: linear-gradient(rgba(15, 26, 18, 0.5), rgba(15, 26, 18, 0.5)), var(--mc-bg, none);
	background-size: cover;
	background-position: center;
	aspect-ratio: 4 / 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 16px;
}
.mc-online__video h3 { font-family: 'Zilla Slab', serif; font-size: 25px; font-weight: 600; color: #faf7f1; text-align: center; }

/* ------------------------------------------------------- contact cards */
.mc-contact-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.mc-contact-card { background: #fff; border: 1px solid #cfe3d6; border-radius: 5px; padding: 28px; }
.mc-contact-card__icon { color: #00693c; font-size: 28px; margin-bottom: 14px; }
.mc-contact-card__label {
	font-size: 16px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #4b5449;
	margin-bottom: 6px;
}
.mc-contact-card__value { font-family: 'Zilla Slab', serif; font-size: 24px; font-weight: 600; color: #1c2119; }
.mc-contact-card__value a { color: inherit; }
.mc-contact-card__value a:hover, .mc-contact-card__value a:focus-visible { color: #00693c; text-decoration: underline; }

/* --------------------------------------------------------------- modal */
.mc-modal {
	border: 0;
	border-radius: 8px;
	padding: 0;
	width: min(640px, calc(100vw - 32px));
	max-height: calc(100vh - 32px);
	box-shadow: 0 24px 60px rgba(28, 33, 25, 0.3);
	color: #1c2119;
	background: #fff;
}
.mc-modal::backdrop { background: rgba(28, 33, 25, 0.6); }
.mc-modal:target:not([open]) { display: block; position: static; margin: 32px auto 0; border: 1px solid #cfe3d6; box-shadow: none; }
.mc-modal__inner { padding: 28px 32px 32px; }
.mc-modal__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 16px; }
.mc-modal__title { font-family: 'Zilla Slab', serif; font-size: 30px; line-height: 1.2em; font-weight: 600; margin: 0; }
.mc-modal__close { background: none; border: 0; padding: 0 4px; font-size: 34px; line-height: 1; color: #4b5449; cursor: pointer; }
.mc-modal__close:hover, .mc-modal__close:focus-visible { color: #00693c; }
@media (max-width: 600px) {
	.mc-modal__inner { padding: 20px 18px 24px; }
	.mc-modal__title { font-size: 24px; }
}

/* ========================================================== page banner */
.mc-page-hero { background: #1c2119; padding: 56px 48px 72px; }
.mc-page-hero.has-aside { padding-bottom: 64px; }
.mc-page-hero__in { max-width: 1344px; margin: 0 auto; }
.mc-page-hero.has-aside .mc-page-hero__in {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 420px;
	gap: 56px;
	align-items: end;
}
.mc-crumbs { display: flex; gap: 10px; font-size: 17px; color: #cfd3c8; margin-bottom: 36px; flex-wrap: wrap; }
.mc-crumbs a { color: #8fe0b4; }
.mc-crumbs a:hover, .mc-crumbs a:focus-visible { color: #fff; text-decoration: underline; }
.mc-page-hero .mc-eyebrow-line { margin-bottom: 20px; }
.mc-eyebrow-icon {
	display: flex;
	align-items: center;
	gap: 14px;
	color: #8fe0b4;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0 0 20px;
}
.mc-eyebrow-icon > span {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: #00aa55;
	color: #08210f;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
}
.mc-page-hero__title { font-family: 'Zilla Slab', serif; font-size: 72px; line-height: 1.04em; font-weight: 600; color: #faf7f1; }
.mc-page-hero__lead { font-size: 23px; line-height: 1.6em; color: #e6e2d6; margin: 0; text-wrap: pretty; }
.mc-page-hero__lead a { color: #8fe0b4; text-decoration: underline; }
.mc-page-hero__lead a:hover, .mc-page-hero__lead a:focus-visible { color: #fff; }

.mc-meeting-card { background: #faf7f1; border-radius: 5px; padding: 28px 30px; }
.mc-meeting-card p { margin: 0; }
.mc-meeting-card__label {
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #00693c;
	margin-bottom: 10px !important;
}
.mc-meeting-card__date {
	font-family: 'Zilla Slab', serif;
	font-size: 30px;
	line-height: 1.2em;
	font-weight: 600;
	color: #1c2119;
	margin-bottom: 6px !important;
}
.mc-meeting-card__detail { font-size: 18px; color: #4b5449; }

/* ===================================================== department cards */
.mc-depts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.mc-dept {
	background: #fff;
	border: 1px solid #e4ddd0;
	border-top: 4px solid #00aa55;
	border-radius: 5px;
	padding: 38px 36px;
	display: flex;
	flex-direction: column;
	color: #1c2119;
}
.mc-dept:hover, .mc-dept:focus-visible { border-color: #00693c; box-shadow: 0 14px 34px rgba(28, 33, 25, 0.10); color: #1c2119; }
.mc-dept__icon {
	width: 60px;
	height: 60px;
	border-radius: 5px;
	background: #eef6f0;
	color: #00693c;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 27px;
	margin-bottom: 24px;
}
.mc-dept h2 { font-family: 'Zilla Slab', serif; font-size: 32px; line-height: 1.15em; font-weight: 600; margin-bottom: 10px; }
.mc-dept__leader { display: block; font-size: 17px; font-weight: 700; color: #00693c; margin-bottom: 18px; }
.mc-dept p { font-size: 18px; line-height: 1.65em; color: #3d4640; margin: 0 0 24px; flex: 1; }
.mc-dept__foot {
	border-top: 1px solid #eee6d8;
	padding-top: 18px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
}
.mc-dept__phone { font-size: 18px; font-weight: 700; color: #1c2119; }
.mc-dept__phone i { color: #00693c; margin-right: 8px; }
.mc-dept__visit { font-size: 18px; font-weight: 800; color: #00693c; }

/* ======================================================= sidebar cards */
.mc-label,
.mc-contact .mc-label {
	margin: 0 0 6px;
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #8fe0b4;
}

.mc-contact { background: #1c2119; border-radius: 5px; padding: 34px 34px 36px; }
.mc-contact p { margin: 0; }
.mc-contact h2 { font-family: 'Zilla Slab', serif; font-size: 28px; font-weight: 600; color: #faf7f1; }
.mc-contact__intro { font-size: 18px; line-height: 1.55em; color: #cfd3c8; margin-bottom: 18px !important; }
.mc-contact__phone { font-family: 'Zilla Slab', serif; font-size: 34px; font-weight: 600; color: #faf7f1; }
.mc-contact__phone:hover, .mc-contact__phone:focus-visible { color: #8fe0b4; }
.mc-contact__note { font-size: 17px; color: #cfd3c8; margin-top: 4px !important; }
.mc-contact__note.is-large { font-size: 18px; }
.mc-contact__location { border-top: 1px solid rgba(255, 255, 255, 0.18); margin-top: 22px; padding-top: 20px; }
.mc-contact__location p:last-child { font-size: 19px; line-height: 1.6em; color: #e6e2d6; }
.mc-contact__details {
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	margin-top: 20px !important;
	padding-top: 18px;
	font-size: 18px;
	line-height: 1.6em;
	color: #e6e2d6;
}
.mc-contact__details a { color: #8fe0b4; font-weight: 700; }
.mc-contact__details a:hover, .mc-contact__details a:focus-visible { color: #fff; text-decoration: underline; }
.mc-contact__alert {
	margin-top: 24px !important;
	background: #00aa55;
	color: #08210f;
	border-radius: 5px;
	padding: 16px 18px;
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 18px;
	font-weight: 800;
}
.mc-contact.is-compact { padding: 32px 32px 34px; }
.mc-contact.is-compact h2 { font-size: 26px; }
.mc-contact.is-compact .mc-contact__phone { font-size: 32px; }

.mc-link-card {
	background: #eef6f0;
	border: 1px solid #cfe3d6;
	border-radius: 5px;
	padding: 26px 28px;
	display: flex;
	align-items: center;
	gap: 18px;
	color: #1c2119;
}
.mc-link-card:hover, .mc-link-card:focus-visible { border-color: #00693c; color: #1c2119; }
.mc-link-card__icon {
	flex: 0 0 auto;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: #00693c;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 21px;
}
.mc-link-card__text { flex: 1; }
.mc-link-card__text .mc-link-card__title { display: block; font-family: 'Zilla Slab', serif; font-size: 24px; font-weight: 600; }
.mc-link-card__sub { display: block; font-size: 17px; color: #3d4640; margin-top: 2px; }
.mc-link-card__arrow { font-size: 20px; font-weight: 800; color: #00693c; }

.mc-link-card.is-plain {
	background: #fff;
	border-color: #e4ddd0;
	padding: 24px 28px;
	gap: 16px;
	font-size: 18px;
	font-weight: 700;
}
.mc-link-card.is-plain:hover, .mc-link-card.is-plain:focus-visible { border-color: #00693c; color: #00693c; }
.mc-link-card.is-plain > i { color: #00693c; font-size: 22px; }
.mc-link-card.is-plain .mc-link-card__title { flex: 1; }

.mc-link-list { background: #fff; border: 1px solid #e4ddd0; border-radius: 5px; padding: 30px 30px 14px; }
.mc-link-list h2 { font-family: 'Zilla Slab', serif; font-size: 24px; font-weight: 600; color: #1c2119; margin-bottom: 12px; }
.mc-link-list li { border-top: 1px solid #eee6d8; }
.mc-link-list a { display: flex; align-items: center; gap: 14px; padding: 16px 0; color: #1c2119; font-size: 18px; font-weight: 700; }
.mc-link-list a:hover, .mc-link-list a:focus-visible { color: #00693c; }
.mc-link-list a i { color: #00693c; width: 22px; text-align: center; }
.mc-link-list.is-compact { padding: 28px 30px 12px; }
.mc-link-list.is-compact h2 { margin-bottom: 10px; }
.mc-link-list.is-compact a { padding: 15px 0; }

/* ============================================================== tables */
.mc-table { background: #fff; border: 1px solid #e4ddd0; border-radius: 5px; overflow: hidden; }
.mc-table__head, .mc-table__row { display: grid; gap: 20px; }
.mc-table__head {
	padding: 16px 28px;
	background: #f3efe6;
	border-bottom: 1px solid #e4ddd0;
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: #4b5449;
}
.mc-table__row { padding: 20px 28px; border-bottom: 1px solid #eee6d8; align-items: center; }

.mc-table-header { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.mc-table-header.is-end { align-items: flex-end; }
.mc-table-header h2 { font-family: 'Zilla Slab', serif; font-size: 40px; font-weight: 600; color: #1c2119; }
.mc-table-header__count { font-size: 17px; color: #4b5449; }

/* Documents */
.mc-doc-search { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.mc-doc-search__field { flex: 1; max-width: 560px; }
.mc-doc-search label { display: block; font-size: 17px; font-weight: 700; color: #1c2119; margin-bottom: 8px; }
.mc-doc-search__box { position: relative; }
.mc-doc-search__box i { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); color: #4b5449; font-size: 17px; }
.mc-doc-search input {
	width: 100%;
	box-sizing: border-box;
	/* Darker than the handoff's #b9b0a0 so the field edge meets 3:1 (WCAG 1.4.11). */
	border: 2px solid #948a7a;
	border-radius: 5px;
	background: #fff;
	padding: 15px 16px 15px 48px;
	font-family: 'Public Sans', sans-serif;
	font-size: 18px;
	color: #1c2119;
}
.mc-doc-search input:focus { border-color: #00693c; outline: 3px solid #cfe3d6; }
.mc-doc-search__count { font-size: 17px; color: #4b5449; padding-bottom: 16px; }
.mc-docs .mc-table__head, .mc-docs .mc-table__row { grid-template-columns: minmax(0, 1fr) 300px; }
.mc-docs .mc-table__row:hover { background: #fbf9f4; }
.mc-doc__title { display: flex; align-items: center; gap: 18px; }
.mc-doc__badge {
	flex: 0 0 auto;
	width: 48px;
	height: 56px;
	border: 2px solid #00693c;
	border-radius: 4px;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding-bottom: 7px;
	box-sizing: border-box;
	font-size: 12px;
	font-weight: 800;
	color: #00693c;
	letter-spacing: 0.04em;
}
.mc-doc__name { font-family: 'Zilla Slab', serif; font-size: 23px; line-height: 1.3em; font-weight: 600; color: #1c2119; }
.mc-doc__actions { display: flex; gap: 12px; justify-content: flex-end; }
.mc-doc__view { border: 2px solid #00693c; color: #00693c; font-size: 17px; font-weight: 700; padding: 10px 18px; border-radius: 4px; }
.mc-doc__view:hover, .mc-doc__view:focus-visible { background: #eef6f0; color: #00693c; }
.mc-doc__dl {
	background: #00693c;
	color: #fff;
	font-size: 17px;
	font-weight: 800;
	padding: 12px 20px;
	border-radius: 4px;
	display: flex;
	align-items: center;
	gap: 9px;
}
.mc-doc__dl:hover, .mc-doc__dl:focus-visible { background: #004526; color: #fff; }
.mc-table__empty { padding: 36px 28px; font-size: 18px; color: #4b5449; }
.mc-table__empty[hidden] { display: none; }
.mc-table__empty a { font-weight: 700; text-decoration: underline; }

/* Paving list */
.mc-paving .mc-table__head, .mc-paving .mc-table__row { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr) 180px 170px; }
.mc-paving .mc-table__row { font-size: 18px; }
.mc-paving__road { font-family: 'Zilla Slab', serif; font-size: 23px; font-weight: 600; color: #1c2119; }
.mc-paving__segment { color: #3d4640; }
.mc-paving__target { color: #1c2119; font-weight: 600; }
.mc-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 16px;
	font-weight: 800;
	padding: 6px 12px;
	border-radius: 20px;
	border: 2px solid;
}
.mc-pill.is-small { gap: 7px; font-size: 15px; padding: 4px 11px; }
.mc-pill--planned { color: #3d4640; background: #f3efe6; border-color: #b9b0a0; }
.mc-pill--scheduled { color: #00693c; background: #fff; border-color: #00693c; }
.mc-pill--inprogress { color: #08210f; background: #00aa55; border-color: #00aa55; }
.mc-legend { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 22px; font-size: 17px; color: #4b5449; }
.mc-legend li { display: flex; align-items: center; gap: 10px; }

.mc-empty-row { padding: 44px 32px; display: flex; align-items: center; gap: 22px; }
.mc-empty-row p, .mc-empty-box p { margin: 0; }
.mc-circle-icon {
	flex: 0 0 auto;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #eef6f0;
	color: #00693c;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
}
.mc-empty-row__title { font-family: 'Zilla Slab', serif; font-size: 25px; font-weight: 600; color: #1c2119; margin-bottom: 4px !important; }
.mc-empty-row__text { font-size: 18px; color: #4b5449; }

/* ============================================================== council */
.mc-jump { background: #fff; border-bottom: 1px solid #e4ddd0; padding: 0 48px; }
.mc-jump nav { max-width: 1344px; margin: 0 auto; display: flex; gap: 36px; font-size: 18px; font-weight: 700; }
.mc-jump a { color: #1c2119; padding: 20px 0; }
.mc-jump a:hover, .mc-jump a:focus-visible { color: #00693c; }

.mc-council-section { scroll-margin-top: 16px; }
.mc-council-section--members { padding-top: 72px; }
.mc-council-section--members > h2 { margin-bottom: 32px; }
.mc-council-section--notices { padding-top: 80px; }
.mc-council-section--agendas { padding: 80px 0 96px; }
.mc-council-section .mc-table-header { margin-bottom: 28px; }
.mc-council-section .mc-table-header h2 { font-size: 46px; }

.mc-members { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.mc-member {
	background: #fff;
	border: 1px solid #e4ddd0;
	border-radius: 5px;
	padding: 28px 28px 26px;
	display: flex;
	flex-direction: column;
}
.mc-member__role {
	margin: 0 0 8px;
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: #00693c;
}
.mc-member h3 { font-family: 'Zilla Slab', serif; font-size: 27px; line-height: 1.2em; font-weight: 600; color: #1c2119; margin-bottom: 18px; }
.mc-member__contact { border-top: 1px solid #eee6d8; padding-top: 16px; display: grid; gap: 8px; font-size: 17px; margin-top: auto; }
.mc-member__contact a { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.mc-member__contact a.is-email { word-break: break-all; }
.mc-member__none { color: #6d6455; font-style: italic; }
.mc-member h3:last-child { margin-bottom: 0; }

.mc-notices { display: grid; gap: 16px; }
.mc-notice {
	background: #fff;
	border: 1px solid #e4ddd0;
	border-radius: 5px;
	padding: 26px 30px;
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr) auto;
	gap: 28px;
	align-items: center;
}
.mc-notice__date { border: 2px solid #00693c; border-radius: 5px; text-align: center; padding: 12px 0; color: #00693c; }
.mc-notice__day { display: block; font-family: 'Zilla Slab', serif; font-size: 36px; font-weight: 700; line-height: 1; }
.mc-notice__month { display: block; font-size: 16px; font-weight: 700; }
.mc-notice__type {
	margin: 0 0 6px;
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: #00693c;
}
.mc-notice h3 { font-family: 'Zilla Slab', serif; font-size: 26px; font-weight: 600; color: #1c2119; margin-bottom: 8px; }
.mc-notice .mc-meta { flex-wrap: wrap; }
.mc-notice > a { font-size: 17px; font-weight: 700; white-space: nowrap; }

.mc-empty-box {
	background: #fff;
	border: 1px dashed #cfc6b4;
	border-radius: 5px;
	padding: 44px 40px;
	display: flex;
	align-items: center;
	gap: 24px;
}

.mc-council-section--agendas .mc-table__head,
.mc-council-section--agendas .mc-table__row { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) 160px 160px; padding-left: 30px; padding-right: 30px; }
.mc-council-section--agendas .mc-table__row { font-size: 18px; }
.mc-agenda__meeting { font-weight: 700; color: #1c2119; }
.mc-agenda__date { color: #4b5449; }
.mc-council-section--agendas .mc-table__row a { font-weight: 700; }
.mc-council-section--agendas .mc-table__row a i { margin-right: 8px; }
.mc-agenda__pending { color: #6d6455; }
.mc-agenda__empty { margin: 0; padding: 36px 30px; font-size: 18px; color: #4b5449; }
.mc-agenda__empty a { font-weight: 700; text-decoration: underline; }

/* =====================================================================
 * Reflow (WCAG 1.4.10). Nothing below applies at desktop widths.
 * ===================================================================== */
@media (max-width: 1200px) {
	.mc-header__top, .mc-header__main, .mc-header__quick, .mc-page-hero, .mc-jump { padding-left: 32px; padding-right: 32px; }
	.mc-header__top .mc-header__row { flex-wrap: wrap; justify-content: center; row-gap: 4px; }
	.mc-header__group { flex-wrap: wrap; gap: 6px 24px; justify-content: center; }
	.mc-header__main .mc-header__row { flex-wrap: wrap; row-gap: 16px; }
	.mc-header__nav { order: 3; flex-basis: 100%; }
	.mc-header__nav ul { flex-wrap: wrap; gap: 12px 28px; }
	.mc-hero__in, .mc-tiles-wrap.mc-tiles-wrap { padding-left: 32px; padding-right: 32px; box-sizing: border-box; }
	.mc-hero__title { font-size: 72px; }
	.mc-tiles { grid-template-columns: repeat(4, 1fr); }
	.mc-services { grid-template-columns: repeat(3, 1fr); }
	.mc-feature { grid-template-columns: 280px 1fr; gap: 40px; padding: 44px; }
	.mc-infos, .mc-infos--md, .mc-depts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mc-online__grid { grid-template-columns: 1fr 1fr; }
	.mc-online__video { grid-column: 1 / -1; order: -1; }
	.mc-contact-cards { grid-template-columns: repeat(2, 1fr); }
	.mc-page-hero__title { font-size: 60px; }
	.mc-page-hero.has-aside .mc-page-hero__in { grid-template-columns: minmax(0, 1fr) 340px; gap: 36px; }
	.mc-members { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	/* Text spans the full width here, so the overlay does too. */
	.mc-hero { height: auto; padding: 72px 0 120px; background-image: linear-gradient(rgba(15, 26, 18, 0.8), rgba(15, 26, 18, 0.8)), var(--mc-bg, none); }
	.mc-hero__title { font-size: 56px; }
	.mc-hero__text { font-size: 19px; }
	.mc-tiles { grid-template-columns: repeat(2, 1fr); }
	.mc-services { grid-template-columns: repeat(2, 1fr); }
	.mc-feature { grid-template-columns: minmax(0, 1fr); padding: 32px; }
	.mc-feature__media { max-width: 360px; }
	.mc-feature__body h2, .mc-online > h2 { font-size: 36px; }
	.mc-infos, .mc-infos--md, .mc-depts { grid-template-columns: minmax(0, 1fr); }
	.mc-online { padding: 40px 28px; }
	.mc-online__grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.mc-online__video { margin-bottom: 16px; }
	.mc-section-header { flex-wrap: wrap; align-items: baseline; margin-bottom: 28px; }
	.mc-page-hero { padding-top: 40px; padding-bottom: 56px; }
	.mc-page-hero__title { font-size: 46px; }
	.mc-page-hero__lead { font-size: 19px !important; }
	.mc-page-hero.has-aside .mc-page-hero__in { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.mc-members { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mc-table-header, .mc-doc-search { flex-wrap: wrap; }
	.mc-doc-search__field { flex-basis: 100%; }
	.mc-doc-search__count { padding-bottom: 0; }
	/* Tables become stacked cards; the header row stays for screen readers. */
	.mc-table__head { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; padding: 0; border: 0; }
	.mc-docs .mc-table__row, .mc-paving .mc-table__row, .mc-council-section--agendas .mc-table__row { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.mc-doc__actions { justify-content: flex-start; flex-wrap: wrap; }
	.mc-notice { grid-template-columns: 90px minmax(0, 1fr); }
	.mc-notice > a { grid-column: 2; }
	.mc-council-section .mc-table-header h2 { font-size: 36px; }
}

@media (max-width: 600px) {
	.mc-header__top, .mc-header__main, .mc-header__quick, .mc-page-hero, .mc-jump { padding-left: 16px; padding-right: 16px; }
	.mc-header__top { font-size: 15px; }
	.mc-header__logo { width: 200px; }
	.mc-header__quick ul { gap: 10px 20px; }
	.mc-hero__in, .mc-tiles-wrap.mc-tiles-wrap { padding-left: 16px; padding-right: 16px; }
	.mc-hero__title { font-size: 42px; }
	.mc-tiles a { padding: 22px 12px; }
	.mc-services { grid-template-columns: minmax(0, 1fr); }
	.mc-feature { padding: 24px 18px; }
	.mc-feature__body h2, .mc-online > h2 { font-size: 30px; }
	.mc-feature__body p { font-size: 18px; }
	.mc-feature__body .wp-block-quote { font-size: 22px; }
	.mc-info, .mc-infos--md .mc-info { padding: 24px 20px; gap: 16px; }
	.mc-event { flex-direction: column; align-items: flex-start; padding: 22px; gap: 18px; }
	.mc-meta { flex-wrap: wrap; gap: 6px 20px; }
	.mc-newsletter { padding: 28px 20px; }
	.mc-online { padding: 32px 18px; }
	.mc-contact-cards { grid-template-columns: minmax(0, 1fr); }
	.mc-contact-card__value { overflow-wrap: anywhere; }
	.mc-page-hero__title { font-size: 38px; }
	.mc-dept { padding: 28px 22px; }
	.mc-members { grid-template-columns: minmax(0, 1fr); }
	.mc-jump nav { flex-wrap: wrap; gap: 0 24px; }
	.mc-jump a { padding: 14px 0; }
	.mc-table__row, .mc-council-section--agendas .mc-table__row { padding: 18px; }
	.mc-empty-row, .mc-empty-box { padding: 28px 18px; flex-direction: column; align-items: flex-start; }
	.mc-notice { grid-template-columns: minmax(0, 1fr); padding: 22px; gap: 16px; }
	.mc-notice__date { width: 90px; }
	.mc-notice > a { grid-column: auto; white-space: normal; }
	.mc-contact, .mc-contact.is-compact { padding: 28px 22px; }
	.mc-council-section .mc-table-header h2, .mc-table-header h2 { font-size: 30px; }
}
