/* Mahogany Cares Core — front-end styles.
   Uses Blocksy's global palette variables so the client can retune colours
   in the Customizer without touching CSS. Fallbacks are the brand palette. */

:root {
	--mc-brand:      var(--theme-palette-color-1, #755035);
	--mc-brand-dark: var(--theme-palette-color-2, #5C3E29);
	--mc-text:       var(--theme-palette-color-3, #3F3129);
	--mc-heading:    var(--theme-palette-color-4, #2C1F17);
	--mc-border:     var(--theme-palette-color-5, #D9D2C4);
	--mc-cream:      var(--theme-palette-color-6, #E9E6DD);
	--mc-cream-lt:   var(--theme-palette-color-7, #F6F3EC);
	--mc-white:      var(--theme-palette-color-8, #FFFFFF);
	--mc-radius:     14px;
	--mc-shadow:     0 1px 2px rgba(44, 31, 23, .06), 0 8px 24px -12px rgba(44, 31, 23, .18);
	--mc-focus:      3px solid var(--mc-brand);
}

/* ---- Accessibility primitives ---------------------------------------- */

.mc-page :focus-visible,
.mc-form :focus-visible,
.mc-card :focus-visible,
.mc-type-card:focus-visible,
.mc-button:focus-visible,
.mc-chip:focus-visible {
	outline: var(--mc-focus);
	outline-offset: 3px;
	border-radius: 4px;
}

.mc-ext { font-size: .85em; margin-left: .25em; }

@media (prefers-reduced-motion: reduce) {
	.mc-card, .mc-type-card, .mc-button { transition: none !important; }
}

/* ---- Buttons ---------------------------------------------------------- */

.mc-button {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	background: var(--mc-brand);
	color: var(--mc-white) !important;
	border: 2px solid var(--mc-brand);
	border-radius: 999px;
	padding: .8em 1.6em;
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.2;
	text-decoration: none !important;
	cursor: pointer;
	transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.mc-button:hover { background: var(--mc-brand-dark); border-color: var(--mc-brand-dark); color: var(--mc-white) !important; }
/* Theme <button> rules can outrank a single class, so the variants are explicit. */
button.mc-button, .mc-button { background: var(--mc-brand) !important; }
button.mc-button:hover, .mc-button:hover { background: var(--mc-brand-dark) !important; }
button.mc-button--secondary, .mc-button--secondary { background: transparent !important; color: var(--mc-brand) !important; border-color: var(--mc-brand) !important; }
button.mc-button--secondary:hover, .mc-button--secondary:hover { background: var(--mc-brand) !important; color: var(--mc-white) !important; }
.mc-button--small { padding: .55em 1.1em; font-size: .95rem; }
.mc-button--donate { font-size: 1.1rem; padding: .9em 2em; }

/* Donate item in the header menu */
.mc-menu-donate > a {
	background: var(--mc-brand);
	color: var(--mc-white) !important;
	border-radius: 999px;
	padding: .5em 1.2em !important;
	margin-left: .5em;
}
.mc-menu-donate > a:hover { background: var(--mc-brand-dark); }

/* ---- Archive hero ----------------------------------------------------- */

.mc-hero {
	background: var(--mc-cream);
	padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(2rem, 5vw, 3.5rem);
	margin-bottom: 2.5rem;
}
.mc-hero__eyebrow { margin: 0 0 .75rem; font-size: .95rem; }
.mc-hero__eyebrow a { color: var(--mc-brand); text-decoration: none; font-weight: 600; }
.mc-hero__eyebrow a:hover { text-decoration: underline; }
.mc-hero__title { margin: 0 0 .75rem; color: var(--mc-heading); font-size: clamp(2rem, 4vw, 3rem); }
.mc-hero__intro { max-width: 46rem; font-size: 1.15rem; line-height: 1.6; color: var(--mc-text); }
.mc-hero__intro p:last-child { margin-bottom: 0; }

/* ---- Layout helpers --------------------------------------------------- */

.mc-grid {
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
}
@media (min-width: 900px) {
	.mc-grid--3 { grid-template-columns: repeat(3, 1fr); }
	.mc-grid--2 { grid-template-columns: repeat(2, 1fr); }
	.mc-grid--4 { grid-template-columns: repeat(4, 1fr); }
}
.mc-grid__item { display: flex; }
.mc-grid__item > * { flex: 1; }

.mc-list { list-style: none; margin: 0 0 2rem; padding: 0; display: grid; gap: 1.25rem; }

.mc-section { margin-bottom: 3rem; }
.mc-section__title { font-size: 1.6rem; margin-bottom: 1.25rem; color: var(--mc-heading); }
.mc-section--past { opacity: .85; }

.mc-eyebrow, .mc-card__eyebrow {
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .78rem;
	font-weight: 700;
	color: var(--mc-brand);
	margin: 0 0 .5rem;
}
.mc-lead { font-size: 1.2rem; line-height: 1.6; }
.mc-rounded img { border-radius: var(--mc-radius); }

/* ---- Cards ------------------------------------------------------------ */

.mc-card {
	display: flex;
	flex-direction: column;
	background: var(--mc-white);
	border: 1px solid var(--mc-border);
	border-radius: var(--mc-radius);
	box-shadow: var(--mc-shadow);
	overflow: hidden;
	transition: transform .15s ease, box-shadow .15s ease;
}
.mc-card:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(44,31,23,.06), 0 16px 32px -14px rgba(44,31,23,.25); }
.mc-card__media img { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.mc-card__logo { padding: 1.25rem 1.25rem 0; }
.mc-card__logo img { max-height: 64px; width: auto; }
.mc-card__body { padding: 1.25rem 1.25rem .5rem; flex: 1; }
.mc-card__title { font-size: 1.2rem; line-height: 1.3; margin: 0 0 .4rem; color: var(--mc-heading); }
.mc-card__title a { color: inherit; text-decoration: none; }
.mc-card__title a:hover { text-decoration: underline; text-decoration-color: var(--mc-brand); }
.mc-card__byline { margin: 0 0 .6rem; font-size: .95rem; color: var(--mc-text); opacity: .85; }
.mc-card__text { margin: 0 0 .75rem; font-size: .98rem; line-height: 1.55; }
.mc-card__meta { margin: 0 0 .5rem; font-size: .95rem; color: var(--mc-text); }
.mc-card__sep { margin: 0 .2em; opacity: .6; }
.mc-card__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	padding: .9rem 1.25rem;
	border-top: 1px solid var(--mc-border);
	background: var(--mc-cream-lt);
}
.mc-card__link, .mc-card__more { font-weight: 600; text-decoration: none; color: var(--mc-brand); }
.mc-card__link:hover, .mc-card__more:hover { text-decoration: underline; }
.mc-card__more { font-size: .95rem; margin-left: auto; }

/* Event cards: date block on the left */
.mc-card--event { flex-direction: row; flex-wrap: wrap; }
.mc-card--event .mc-card__body { flex: 1 1 260px; }
.mc-card--event .mc-card__footer { flex-basis: 100%; }
.mc-card--event.is-past .mc-date { background: var(--mc-border); color: var(--mc-heading); }
.mc-date {
	flex: 0 0 88px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: var(--mc-brand);
	color: var(--mc-white);
	padding: 1rem .5rem;
	text-align: center;
	line-height: 1;
}
.mc-date__month { text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; font-weight: 700; }
.mc-date__day { font-size: 2.2rem; font-weight: 700; margin-top: .2rem; }

/* ---- Tags ------------------------------------------------------------- */

.mc-tags { list-style: none; margin: 0 0 .5rem; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.mc-tag {
	font-size: .8rem;
	font-weight: 600;
	padding: .25em .7em;
	border-radius: 999px;
	background: var(--mc-cream);
	color: var(--mc-heading);
	border: 1px solid var(--mc-border);
}
.mc-tag--free { background: #E6F0E4; border-color: #BFD8B9; color: #1F4D25; }

/* ---- Resource type chips & filters ------------------------------------ */

.mc-types { margin-bottom: 1.5rem; }
.mc-types__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.mc-chip {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	padding: .55em 1.1em;
	border-radius: 999px;
	border: 2px solid var(--mc-border);
	background: var(--mc-white);
	color: var(--mc-heading);
	font-weight: 600;
	font-size: .95rem;
	text-decoration: none;
	transition: border-color .15s, background .15s;
}
.mc-chip:hover { border-color: var(--mc-brand); }
.mc-chip.is-active { background: var(--mc-brand); border-color: var(--mc-brand); color: var(--mc-white); }
.mc-chip__count { font-size: .8em; opacity: .75; }

.mc-filters { margin-bottom: 1rem; }
.mc-filters fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.mc-filters__legend { font-weight: 700; margin-bottom: .5rem; color: var(--mc-heading); }
.mc-filters__row { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; }
.mc-filters__field { margin: 0; display: flex; flex-direction: column; gap: .3rem; min-width: 200px; }
.mc-filters__field label { font-weight: 600; font-size: .95rem; }
.mc-filters__field select { padding: .6em .9em; border: 2px solid var(--mc-border); border-radius: 8px; font-size: 1rem; background: var(--mc-white); }
.mc-filters__actions { margin: 0; display: flex; align-items: center; gap: 1rem; }
.mc-filters__clear { font-weight: 600; }
.mc-results-count { margin: 0 0 1.25rem; color: var(--mc-text); font-size: .95rem; }

/* ---- Resource type cards (homepage / hub) ----------------------------- */

.mc-type-card {
	display: flex;
	flex-direction: column;
	gap: .5rem;
	height: 100%;
	padding: 1.75rem 1.5rem;
	border-radius: var(--mc-radius);
	background: var(--mc-white);
	border: 1px solid var(--mc-border);
	box-shadow: var(--mc-shadow);
	color: var(--mc-heading);
	text-decoration: none !important;
	transition: transform .15s ease, border-color .15s ease;
}
.mc-type-card:hover { transform: translateY(-3px); border-color: var(--mc-brand); }
.mc-type-card__icon {
	width: 56px; height: 56px;
	display: grid; place-items: center;
	border-radius: 14px;
	background: var(--mc-cream);
	color: var(--mc-brand);
	margin-bottom: .5rem;
}
.mc-type-card__title { font-size: 1.2rem; font-weight: 700; line-height: 1.3; }
.mc-type-card__desc { font-size: .98rem; line-height: 1.5; color: var(--mc-text); flex: 1; }
.mc-type-card__count { font-size: .85rem; font-weight: 600; color: var(--mc-brand); }
.mc-type-card:hover .mc-type-card__title { text-decoration: underline; text-decoration-color: var(--mc-brand); }

/* ---- Single resource / event / partner: hide blog-style meta ----------- */

.single-mc_resource .hero-section .entry-meta,
.single-mc_event .hero-section .entry-meta,
.single-mc_partner .hero-section .entry-meta,
.single-mc_resource .hero-section .page-description,
.single-mc_event .hero-section .page-description,
.single-mc_partner .hero-section .page-description,
.single-mc_resource .ct-share-box,
.single-mc_event .ct-share-box,
.single-mc_partner .ct-share-box,
.single-mc_resource .author-box,
.single-mc_event .author-box,
.single-mc_partner .author-box,
.single-mc_resource .post-navigation,
.single-mc_event .post-navigation,
.single-mc_partner .post-navigation {
	display: none !important;
}

/* ---- Details panel on single views ------------------------------------ */

.mc-details {
	margin: 2.5rem 0 1rem;
	padding: 1.75rem;
	background: var(--mc-cream-lt);
	border: 1px solid var(--mc-border);
	border-radius: var(--mc-radius);
}
.mc-details__title { font-size: 1.3rem; margin: 0 0 1rem; color: var(--mc-heading); }
.mc-details__badge { display: inline-block; background: var(--mc-border); padding: .3em .9em; border-radius: 999px; font-weight: 600; font-size: .9rem; margin: 0 0 1rem; }
.mc-details__list { margin: 0 0 1.25rem; display: grid; gap: .6rem; }
.mc-details__row { display: grid; grid-template-columns: minmax(110px, 30%) 1fr; gap: 1rem; padding-bottom: .6rem; border-bottom: 1px solid var(--mc-border); }
.mc-details__row:last-child { border-bottom: 0; }
.mc-details__row dt { font-weight: 700; color: var(--mc-heading); margin: 0; }
.mc-details__row dd { margin: 0; }
.mc-details__map { margin-left: .5em; font-weight: 600; }
.mc-details__cta { margin: 0 0 1rem; }
.mc-details__note { font-size: .9rem; color: var(--mc-text); opacity: .85; margin: 0 0 .75rem; }
.mc-details__back { margin: 0; font-weight: 600; }
.mc-details__back a { text-decoration: none; }
.mc-details__back a:hover { text-decoration: underline; }

/* ---- Callouts & empty states ----------------------------------------- */

.mc-callout {
	margin: 3rem 0;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	background: var(--mc-brand);
	color: var(--mc-white);
	border-radius: var(--mc-radius);
	text-align: center;
}
.mc-callout h2 { color: var(--mc-white); margin: 0 0 .5rem; font-size: 1.6rem; }
.mc-callout p { max-width: 44rem; margin: 0 auto 1.25rem; font-size: 1.05rem; line-height: 1.6; }
.mc-callout .mc-button { background: var(--mc-white) !important; color: var(--mc-brand) !important; border-color: var(--mc-white) !important; }
.mc-callout .mc-button:hover { background: var(--mc-cream) !important; border-color: var(--mc-cream) !important; }

.mc-empty {
	padding: 2.5rem;
	text-align: center;
	background: var(--mc-cream-lt);
	border: 1px dashed var(--mc-border);
	border-radius: var(--mc-radius);
	margin-bottom: 2rem;
}
.mc-empty h2 { margin-top: 0; font-size: 1.4rem; }
.mc-empty p { margin-bottom: 1rem; }
.mc-empty-inline { padding: 1rem 1.25rem; background: var(--mc-cream-lt); border-radius: 10px; }
.mc-admin-note { padding: .75rem 1rem; background: #FFF6D6; border-left: 4px solid #D9A400; font-size: .95rem; }

/* ---- Contact info ----------------------------------------------------- */

.mc-contact-list { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: 1rem; }
.mc-contact-list__item { display: flex; flex-direction: column; gap: .2rem; }
.mc-contact-list__label { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: var(--mc-brand); }
.mc-contact-list__item a { font-size: 1.1rem; font-weight: 600; text-decoration: none; color: var(--mc-heading); }
.mc-contact-list__item a:hover { text-decoration: underline; }
.mc-contact-list__alt { font-size: .95rem !important; font-weight: 500 !important; color: var(--mc-brand) !important; }

/* ---- Forms ------------------------------------------------------------ */

.mc-form-wrap { max-width: 720px; }
.mc-form__title { font-size: 1.6rem; margin: 0 0 1rem; }
.mc-form__required-note { font-size: .9rem; color: var(--mc-text); margin: 0 0 1.25rem; }
.mc-form__field { margin-bottom: 1.35rem; }
.mc-form__label { display: block; font-weight: 700; margin-bottom: .35rem; color: var(--mc-heading); font-size: 1.02rem; }
.mc-form__req { color: #9B2C2C; }
.mc-form__hint { margin: -.15rem 0 .45rem; font-size: .92rem; color: var(--mc-text); opacity: .9; }
.mc-form input:not([type="checkbox"]):not([type="radio"]),
.mc-form select,
.mc-form textarea {
	width: 100%;
	font-size: 1.05rem;
	padding: .8em 1em;
	border: 2px solid var(--mc-border);
	border-radius: 10px;
	background: var(--mc-white);
	color: var(--mc-heading);
	min-height: 48px; /* comfortable touch target */
}
.mc-form input:focus, .mc-form select:focus, .mc-form textarea:focus { border-color: var(--mc-brand); outline: var(--mc-focus); outline-offset: 2px; }
.mc-form .has-error input, .mc-form .has-error select, .mc-form .has-error textarea { border-color: #9B2C2C; }
.mc-form__error { margin: .4rem 0 0; color: #9B2C2C; font-weight: 600; font-size: .95rem; }
.mc-form__error::before { content: "⚠ "; }
.mc-form__actions { margin: 1.5rem 0 .75rem; }
.mc-form__privacy { font-size: .9rem; color: var(--mc-text); opacity: .85; margin: 0; }
.mc-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.mc-notice { padding: 1.1rem 1.35rem; border-radius: 10px; margin: 0 0 1.5rem; border-left: 5px solid; }
.mc-notice p { margin: 0; }
.mc-notice ul { margin: .5rem 0 0 1.2rem; }
.mc-notice--success { background: #E6F0E4; border-color: #2F6B36; color: #1F4D25; font-size: 1.05rem; }
.mc-notice--error { background: #FBE9E7; border-color: #9B2C2C; color: #5C1A1A; }
.mc-notice--error a { color: #5C1A1A; font-weight: 600; }

/* ---- Pagination ------------------------------------------------------- */

.mc-archive .navigation.pagination { margin: 1rem 0 2rem; }
.mc-archive .page-numbers { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }

/* ---- Small screens ---------------------------------------------------- */

@media (max-width: 600px) {
	.mc-card--event { flex-direction: column; }
	.mc-date { flex-direction: row; gap: .5rem; padding: .6rem 1rem; justify-content: flex-start; }
	.mc-date__day { font-size: 1.4rem; margin-top: 0; }
	.mc-details__row { grid-template-columns: 1fr; gap: .2rem; }
	.mc-callout { text-align: left; }
}
