/* HERI Africa Research — front-end styles. Everything is scoped under .heri */

.heri {
	/* HERI Africa brand guidelines: Blue, Green, Olive, Charcoal, Off-white; DM Sans */
	--heri-navy: #274881;
	--heri-navy-dark: #1b335e;
	--heri-green: #47ad48;
	--heri-green-dark: #358a36;
	--heri-olive: #c0b931;
	--heri-charcoal: #212222;
	--heri-cream: #f3f7eb;
	--heri-mint: #ebf2ee;
	--heri-ink: #212222;
	--heri-muted: #5b6672;
	--heri-line: #e2e6dc;
	--heri-gradient: linear-gradient(90deg, #c0b931, #47ad48);
	--heri-radius: 14px;
	--heri-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 8px 24px rgba(16, 24, 40, .06);
	--heri-heading: "DM Sans", system-ui, sans-serif;
	--heri-body: "DM Sans", system-ui, sans-serif;
	font-family: var(--heri-body);
	color: var(--heri-ink);
	line-height: 1.65;
}
.heri *, .heri *::before, .heri *::after { box-sizing: border-box; }
.heri a { text-decoration: none; }
.heri img { max-width: 100%; height: auto; display: block; }
.heri h1, .heri h2, .heri h3 { font-family: var(--heri-heading); color: var(--heri-navy); margin: 0; line-height: 1.25; letter-spacing: -.01em; }
.heri p { margin: 0; }
.heri .heri-icon { flex: none; }
.heri-wrap { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 20px; }

.heri-section-title {
	font-size: clamp(22px, 2.4vw, 28px);
	font-weight: 700;
	margin-bottom: 28px !important;
	padding-bottom: 14px;
	position: relative;
}
.heri-section-title::after {
	content: ""; position: absolute; left: 0; bottom: 0;
	width: 56px; height: 4px; border-radius: 4px; background: var(--heri-green);
}

.heri-empty { padding: 40px; text-align: center; color: var(--heri-muted); background: var(--heri-cream); border-radius: var(--heri-radius); }

/* Tags, chips, buttons ---------------------------------------------------- */
.heri-tag {
	display: inline-flex; align-items: center;
	font: 600 11.5px/1 var(--heri-body); letter-spacing: .06em; text-transform: uppercase;
	color: var(--heri-navy); background: #e6edf8; padding: 6px 10px; border-radius: 999px;
}
.heri-tag--green { color: #fff; background: var(--heri-green); }

.heri-btn, .heri ._df_button.heri-btn {
	display: inline-flex; align-items: center; gap: 8px;
	font: 600 14px/1 var(--heri-body); padding: 11px 18px; border-radius: 999px;
	border: 1.5px solid transparent; cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .2s;
	text-transform: none; letter-spacing: 0; box-shadow: none; margin: 0; min-width: 0; height: auto;
}
.heri-btn--primary, .heri ._df_button.heri-btn { background: var(--heri-navy); color: #fff !important; }
.heri-btn--primary:hover, .heri ._df_button.heri-btn:hover { background: var(--heri-navy-dark); transform: translateY(-1px); }
.heri ._df_button.heri-btn::before {
	/* book icon for the dFlip "Read" button */
	content: ""; width: 18px; height: 18px; flex: none; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5.5C6.5 4 9.5 4 12 6c2.5-2 5.5-2 8-.5V19c-2.5-1.5-5.5-1.5-8 .5-2.5-2-5.5-2-8-.5z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M12 6v13.5' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5.5C6.5 4 9.5 4 12 6c2.5-2 5.5-2 8-.5V19c-2.5-1.5-5.5-1.5-8 .5-2.5-2-5.5-2-8-.5z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M12 6v13.5' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
}
.heri-btn--ghost { background: transparent; color: var(--heri-navy) !important; border-color: #c9d4e6; }
.heri-btn--ghost:hover { border-color: var(--heri-navy); background: #f2f6fc; }

.heri-more {
	display: inline-flex; align-items: center; gap: 6px;
	font: 600 14px/1.2 var(--heri-body); color: var(--heri-green-dark) !important;
}
.heri-more .heri-icon { transition: transform .2s; }
.heri-more:hover .heri-icon { transform: translateX(4px); }

.heri-back { display: inline-block; font-size: 14px; font-weight: 500; color: var(--heri-muted) !important; margin-bottom: 18px; }
.heri-back:hover { color: var(--heri-navy) !important; }

/* Toolbar: filter pills + search ----------------------------------------- */
.heri-toolbar {
	display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between;
	margin-bottom: 32px;
}
.heri-pills { display: flex; flex-wrap: wrap; gap: 8px; }
/* Extra specificity: the theme styles every <button> heavily. */
.heri .heri-pills .heri-pill {
	font: 500 14px/1 var(--heri-body); color: var(--heri-navy); text-transform: none; letter-spacing: 0;
	background: #fff; border: 1.5px solid var(--heri-line); padding: 10px 16px; border-radius: 999px;
	cursor: pointer; transition: all .2s; box-shadow: none; height: auto; min-height: 0; margin: 0;
}
.heri .heri-pills .heri-pill:hover { border-color: var(--heri-navy); background: #fff; color: var(--heri-navy); }
.heri .heri-pills .heri-pill.is-active { background: var(--heri-navy); border-color: var(--heri-navy); color: #fff; }
.heri-search {
	display: flex; align-items: center; gap: 8px; margin: 0;
	background: #fff; border: 1.5px solid var(--heri-line); border-radius: 999px; padding: 0 16px;
	min-width: min(100%, 300px); color: var(--heri-muted);
}
.heri-search:focus-within { border-color: var(--heri-navy); }
.heri-search input[type="search"] {
	border: 0 !important; outline: 0; box-shadow: none !important; background: transparent !important;
	font: 400 14px var(--heri-body); padding: 11px 0 !important; width: 100%; min-height: 0; color: var(--heri-ink);
}

/* Breathing room when a shortcode sits directly in a page */
.heri-people, .heri-library, .heri-blog { padding: 56px 0 72px; }

/* Researchers ------------------------------------------------------------- */
.heri-people__group + .heri-people__group { margin-top: 64px; }

.heri-photo {
	display: block; aspect-ratio: 1; overflow: hidden; border-radius: var(--heri-radius);
	background: linear-gradient(135deg, var(--heri-navy), #3b6cb5);
}
.heri-photo img, .heri-photo .heri-photo__img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; transition: transform .5s; }
.heri-photo__initials {
	display: grid; place-items: center; width: 100%; height: 100%;
	font: 600 clamp(28px, 4vw, 54px)/1 var(--heri-heading); color: rgba(255, 255, 255, .92); letter-spacing: .02em;
}
.heri-photo--sm { width: 40px; height: 40px; border-radius: 50%; }
.heri-photo--sm .heri-photo__initials { font-size: 14px; }

/* list (Mowana style) */
.heri-people--list .heri-people__items { display: grid; gap: 0; }
.heri-people--list .heri-person {
	display: grid; grid-template-columns: 220px 1fr; gap: 36px; align-items: start;
	padding: 36px 0; border-top: 1px solid var(--heri-line);
}
.heri-people--list .heri-person:first-child { border-top: 0; padding-top: 8px; }
.heri-person:hover .heri-photo img { transform: scale(1.04); }
.heri-person__name { font-size: 22px; font-weight: 600; }
.heri-person__name a { color: var(--heri-navy) !important; }
.heri-person__name a:hover { color: var(--heri-green-dark) !important; }
.heri-person__role {
	font: 600 12.5px/1.4 var(--heri-body) !important; letter-spacing: .1em; text-transform: uppercase;
	color: var(--heri-green-dark) !important; margin-top: 6px !important;
}
.heri-person__position { color: var(--heri-muted); font-size: 15px; margin-top: 4px !important; }
.heri-person__bio { margin: 14px 0 16px !important; font-size: 16px; color: #3a4550; max-width: 72ch; }

/* grid */
.heri-people--grid .heri-people__items { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 28px; }
.heri-people--grid .heri-person { background: #fff; border-radius: var(--heri-radius); box-shadow: var(--heri-shadow); overflow: hidden; }
.heri-people--grid .heri-photo { border-radius: 0; }
.heri-people--grid .heri-person__body { padding: 18px 20px 22px; }
.heri-people--grid .heri-person__name { font-size: 18px; }
.heri-people--grid .heri-more { margin-top: 12px; }

/* Profile page */
.heri-profile__hero { background: linear-gradient(180deg, var(--heri-cream), var(--heri-mint)); padding: 56px 0; margin-bottom: 56px; }
.heri-profile__hero-inner { display: grid; grid-template-columns: 260px 1fr; gap: 48px; align-items: center; }
.heri-photo--lg { box-shadow: 0 18px 40px rgba(39, 72, 129, .18); border: 6px solid #fff; border-radius: 20px; }
.heri-profile__name { font-size: clamp(30px, 4vw, 44px); font-weight: 700; margin: 6px 0 8px !important; }
.heri-profile__position { font-size: 17px; color: var(--heri-muted); }
.heri-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.heri-link {
	display: inline-flex; align-items: center; gap: 7px; font: 500 14px/1 var(--heri-body);
	color: var(--heri-navy) !important; background: #fff; border: 1px solid var(--heri-line);
	padding: 9px 14px; border-radius: 999px; transition: all .2s;
}
.heri-link:hover { border-color: var(--heri-navy); transform: translateY(-1px); }

.heri-profile__layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; align-items: start; margin-bottom: 64px; }
.heri-profile__layout > :only-child { grid-column: 1 / -1; max-width: 820px; }
.heri-prose { font-size: 17px; color: #2f3a45; }
.heri-prose p { margin: 0 0 1.1em; }
.heri-card { background: var(--heri-cream); border-radius: var(--heri-radius); padding: 24px; }
.heri-card + .heri-card { margin-top: 18px; }
.heri-card__title { font-size: 16px !important; margin-bottom: 14px !important; }
.heri-card p { font-size: 15px; color: var(--heri-muted); }
.heri-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.heri-chips li { font-size: 13.5px; background: #fff; color: var(--heri-navy); padding: 7px 12px; border-radius: 999px; border: 1px solid var(--heri-line); }
.heri-profile__pubs { margin-bottom: 72px; }
.heri-mini-people { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.heri-mini-people a { display: flex; align-items: center; gap: 12px; color: var(--heri-navy) !important; font-weight: 500; font-size: 15px; }
.heri-mini-people a:hover span:last-child { text-decoration: underline; }

/* Publications ------------------------------------------------------------ */
.heri-pubs { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 32px 28px; }
.heri-pub { display: flex; flex-direction: column; }
.heri-pub[hidden] { display: none; }
.heri-cover {
	display: block; aspect-ratio: 3 / 4; border-radius: 6px 12px 12px 6px; overflow: hidden; position: relative;
	box-shadow: 0 2px 4px rgba(16, 24, 40, .08), 0 14px 30px rgba(16, 24, 40, .14);
	transition: transform .35s, box-shadow .35s; background: #fff;
}
.heri-cover::before { /* book spine shading */
	content: ""; position: absolute; inset: 0 auto 0 0; width: 14px; z-index: 1;
	background: linear-gradient(90deg, rgba(0, 0, 0, .18), rgba(255, 255, 255, .08) 60%, transparent);
}
.heri-pub:hover .heri-cover { transform: translateY(-6px) rotate(-.5deg); box-shadow: 0 4px 8px rgba(16, 24, 40, .08), 0 24px 44px rgba(16, 24, 40, .2); }
.heri-cover__img { width: 100%; height: 100%; object-fit: cover; }
.heri-cover__generated {
	display: flex; flex-direction: column; height: 100%; padding: 28px 22px 22px 30px; color: #fff;
	background:
		radial-gradient(circle at 110% -10%, rgba(71, 173, 72, .55), transparent 55%),
		linear-gradient(160deg, var(--heri-navy), var(--heri-navy-dark));
}
.heri-cover__kicker { font: 600 11px/1 var(--heri-body); letter-spacing: .14em; text-transform: uppercase; color: #a9e3aa; }
.heri-cover__title { font: 600 20px/1.3 var(--heri-heading); margin-top: 16px; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.heri-cover__brand { margin-top: auto; font: 500 12px/1 var(--heri-body); opacity: .75; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, .25); }
.heri-pub__body { padding-top: 18px; display: flex; flex-direction: column; flex: 1; }
.heri-pub__meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.heri-pub__year { font-size: 13px; font-weight: 600; color: var(--heri-muted); }
.heri-pub__title { font-size: 18px !important; font-weight: 600; margin-top: 10px !important; }
.heri-pub__title a { color: var(--heri-navy) !important; }
.heri-pub__title a:hover { color: var(--heri-green-dark) !important; }
.heri-pub__authors { font-size: 14px; color: var(--heri-muted); margin-top: 6px !important; }
.heri-pub__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 16px; }

/* Single publication */
.heri-publication__head { padding-top: 48px; padding-bottom: 36px; max-width: 980px; }
.heri-publication__title { font-size: clamp(28px, 3.6vw, 42px); font-weight: 700; margin: 14px 0 12px !important; }
.heri-publication__authors { font-size: 18px; color: var(--heri-ink); }
.heri-publication__source { font-size: 15px; color: var(--heri-muted); font-style: italic; margin-top: 4px !important; }
.heri-publication .heri-pub__actions { padding-top: 22px; }
.heri-flipbook { background: linear-gradient(180deg, var(--heri-cream), var(--heri-mint)); padding: 40px 0 28px; margin-bottom: 56px; }
.heri-flipbook ._df_book { min-height: 640px; }
.heri-flipbook .df-container { background: transparent !important; }
.heri-flipbook__hint { text-align: center; font-size: 13.5px; color: var(--heri-muted); margin-top: 14px !important; }
.heri-pdf-frame { width: 100%; height: 80vh; border: 0; border-radius: var(--heri-radius); background: #fff; }

/* Blog -------------------------------------------------------------------- */
.heri-blog__status { margin: -12px 0 24px !important; color: var(--heri-muted); font-size: 15px; }
.heri-blog__status a { color: var(--heri-navy) !important; font-weight: 600; }
.heri-post {
	display: flex; flex-direction: column; background: #fff; border-radius: var(--heri-radius);
	overflow: hidden; box-shadow: var(--heri-shadow); transition: transform .3s, box-shadow .3s;
}
.heri-post:hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgba(16, 24, 40, .06), 0 18px 40px rgba(16, 24, 40, .12); }
.heri-post__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--heri-mint); }
.heri-post__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.heri-post:hover .heri-post__media img { transform: scale(1.05); }
.heri-post__placeholder { display: grid; place-items: center; height: 100%; font: 600 18px var(--heri-heading); color: var(--heri-navy); opacity: .5; }
.heri-post__body { padding: 22px 24px 24px; display: flex; flex-direction: column; flex: 1; }
.heri-post__meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 13.5px; color: var(--heri-muted); }
.heri-post__title { font-size: 19px !important; font-weight: 600; margin: 12px 0 10px !important; }
.heri-post__title a { color: var(--heri-navy) !important; }
.heri-post__title a:hover { color: var(--heri-green-dark) !important; }
.heri-post__excerpt { font-size: 15px; color: #4a5560; }
.heri-post__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 18px; }
.heri-post__time { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; color: var(--heri-muted); }

.heri-post--featured { display: grid; grid-template-columns: 1.25fr 1fr; margin-bottom: 40px; }
.heri-post--featured .heri-post__media { aspect-ratio: auto; min-height: 380px; }
.heri-post--featured .heri-post__body { padding: 40px; justify-content: center; }
.heri-post--featured .heri-post__title { font-size: clamp(24px, 2.6vw, 32px) !important; font-weight: 700; margin: 16px 0 14px !important; }
.heri-post--featured .heri-post__excerpt { font-size: 16.5px; }
.heri-post--featured .heri-post__foot { margin-top: 28px; }

.heri-posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 28px; }

.heri-pagination { margin-top: 48px; }
.heri-pagination ul { display: flex; justify-content: center; gap: 8px; list-style: none; margin: 0; padding: 0; }
.heri-pagination a, .heri-pagination span {
	display: grid; place-items: center; min-width: 42px; height: 42px; padding: 0 12px; border-radius: 999px;
	font-weight: 600; font-size: 15px; color: var(--heri-navy) !important; border: 1.5px solid var(--heri-line);
}
.heri-pagination .current { background: var(--heri-navy); border-color: var(--heri-navy); color: #fff !important; }
.heri-pagination a:hover { border-color: var(--heri-navy); }

/* Single blog post -------------------------------------------------------- */
.heri-article__narrow { max-width: 800px; }
.heri-article__head { background: linear-gradient(180deg, var(--heri-cream), #fff); padding-top: 56px; }
.heri-article__head .heri-post__meta a.heri-tag:hover { background: var(--heri-navy); color: #fff; }
.heri-article__title { font-size: clamp(28px, 4vw, 44px) !important; font-weight: 700; line-height: 1.2 !important; margin: 18px 0 16px !important; }
.heri-article__byline { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; color: var(--heri-muted); font-size: 15px; }
.heri-article__hero { margin: 40px auto 0; max-width: 1080px; }
.heri-article__hero img { width: 100%; max-height: 560px; object-fit: cover; border-radius: 18px; box-shadow: 0 20px 50px rgba(16, 24, 40, .14); }
.heri-article__hero figcaption { font-size: 14px; color: var(--heri-muted); text-align: center; margin-top: 10px; }

.heri-article__body { padding-top: 48px; padding-bottom: 8px; font-size: 18px; line-height: 1.8; }
/* Neutralise Elementor's container spacing inside the reading column */
.heri-article__body .e-con, .heri-article__body .e-con-inner { padding: 0 !important; margin: 0 !important; max-width: none !important; --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
.heri-article__body .elementor-widget-text-editor { font-size: inherit; line-height: inherit; color: inherit; }
.heri-article__body p { text-align: left !important; margin: 0 0 1.25em !important; font-size: 18px; line-height: 1.8; color: #2f3a45; }
.heri-article__body h2, .heri-article__body h3, .heri-article__body h4 { color: var(--heri-navy); text-align: left !important; margin: 1.6em 0 .6em !important; line-height: 1.3; }
.heri-article__body h3 { font-size: 24px; }
/* An italic heading right at the top (e.g. the event theme) reads as a pull-quote */
.heri-article__body .elementor-widget-container > h3:first-child,
.heri-article__body .elementor-widget-container > h2:first-child {
	margin-top: 0 !important; font-size: 22px; font-weight: 500; color: var(--heri-green-dark);
	border-left: 4px solid var(--heri-green); padding: 4px 0 4px 18px;
}
.heri-article__body hr { border: 0; height: 1px; background: var(--heri-line); margin: 28px 0; }
.heri-article__body .elementor-divider-separator { border-color: var(--heri-line) !important; border-top-width: 1px !important; }
.heri-article__body .elementor-widget-divider:first-child { display: none; } /* a divider directly under the (removed) title */
.heri-article__body a { color: var(--heri-navy); text-decoration: underline; text-underline-offset: 3px; }
.heri-article__body img { border-radius: 12px; box-shadow: 0 8px 24px rgba(16, 24, 40, .12); }
.heri-article__body img[style*="float: right"], .heri-article__body img[style*="float:right"] { margin: 6px 0 16px 24px !important; object-fit: cover; width: 240px !important; height: auto !important; aspect-ratio: 9 / 10; }
.heri-article__body img[style*="float: left"], .heri-article__body img[style*="float:left"] { margin: 6px 24px 16px 0 !important; object-fit: cover; width: 240px !important; height: auto !important; aspect-ratio: 9 / 10; }
.heri-article__body ul, .heri-article__body ol { margin: 0 0 1.25em 1.2em; }
.heri-article__body blockquote { margin: 1.5em 0; padding: 4px 0 4px 20px; border-left: 4px solid var(--heri-green); font-style: italic; color: var(--heri-navy); }

.heri-article__foot { padding-top: 24px; padding-bottom: 64px; }
.heri-article__foot .heri-chips { margin-bottom: 24px; }
.heri-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 22px 0; border-top: 1px solid var(--heri-line); border-bottom: 1px solid var(--heri-line); }
.heri-share__label { font-weight: 600; color: var(--heri-navy); margin-right: 6px; font-size: 15px; }
.heri .heri-share button.heri-link { font: 500 14px/1 var(--heri-body); cursor: pointer; padding: 9px 14px; height: auto; text-transform: none; letter-spacing: 0; background: #fff; color: var(--heri-navy); border: 1px solid var(--heri-line); border-radius: 999px; }
.heri-postnav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 32px; }
.heri-postnav__item { display: flex; flex-direction: column; gap: 6px; padding: 20px 22px; border-radius: var(--heri-radius); background: var(--heri-cream); transition: background .2s; }
.heri-postnav__item:hover { background: var(--heri-mint); }
.heri-postnav__item span { font-size: 13px; font-weight: 600; color: var(--heri-green-dark); text-transform: uppercase; letter-spacing: .06em; }
.heri-postnav__item strong { font: 600 16px/1.4 var(--heri-heading); color: var(--heri-navy); }
.heri-postnav__item--next { text-align: right; grid-column: 2; }
.heri-article__related { background: var(--heri-cream); padding: 64px 0 72px; }
.heri-related__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }

/* Homepage (template "HERI Modern Home"), modelled on the REACH Mowana Lab page */
.hh .heri-wrap { max-width: 1120px; padding: 0 24px; }
.hl-intro { padding: 72px 0 24px; }
.hl-intro__head { margin-bottom: 40px; }
.hl-intro__title {
	font-size: clamp(34px, 4.6vw, 56px) !important; font-weight: 800 !important; letter-spacing: -.03em !important;
	line-height: 1.08 !important; color: var(--heri-navy) !important;
}
.hl-intro__subtitle {
	margin-top: 14px !important; font: 600 13px/1.4 var(--heri-body); letter-spacing: .14em; text-transform: uppercase;
	color: var(--heri-green-dark); display: flex; align-items: center; gap: 12px;
}
.hl-intro__subtitle::before { content: ""; width: 32px; height: 3px; border-radius: 3px; background: var(--heri-gradient); }
.hl-intro__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px; align-items: start; }
.hl-intro__grid--text { grid-template-columns: minmax(0, 760px); }
.hl-intro__figure { margin: 0; }
.hl-intro__figure img { width: 100%; height: auto; border-radius: 4px; }
.hl-intro__figure figcaption { margin-top: 10px; font-size: 13px; line-height: 1.5; color: var(--heri-muted); font-style: italic; }
.hl-intro__text p { font-size: 18px; line-height: 1.75; color: #2f3a45; margin: 0 0 1.1em !important; }
.hl-intro__text p:first-child { font-size: 20px; color: var(--heri-ink); }

.hl-people { padding: 48px 0 96px; }
.hl-people .heri-people { padding: 0; }
.hl-people .heri-section-title { margin-bottom: 8px !important; }
.hl-people .heri-person__bio { max-width: none; }

@media (max-width: 900px) {
	.hl-intro__grid { grid-template-columns: 1fr; gap: 28px; }
	.hl-intro__figure { max-width: 560px; }
}
@media (max-width: 600px) {
	.hl-intro { padding-top: 40px; }
	.hl-intro__text p, .hl-intro__text p:first-child { font-size: 17px; }
}
/* Team page ([heri_team]) ------------------------------------------------- */
.heri-team { padding: 56px 0 80px; }
.ht-section + .ht-section { margin-top: 72px; }

/* Leadership: two feature cards */
.ht-leaders { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.ht-leaders:has(> :only-child) { grid-template-columns: minmax(0, 760px); }
.ht-leader {
	position: relative; display: grid; grid-template-columns: 200px 1fr; gap: 28px; align-items: start;
	padding: 28px; background: var(--heri-cream); border-radius: 24px; overflow: hidden;
}
.ht-leader::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: var(--heri-gradient); }
.ht-leader__photo { aspect-ratio: 4 / 5; border-radius: 16px; box-shadow: 0 14px 32px rgba(39, 72, 129, .18); }
.ht-leader__role {
	font: 700 12px/1.3 var(--heri-body) !important; letter-spacing: .14em; text-transform: uppercase;
	color: var(--heri-green-dark) !important; margin-bottom: 8px !important;
}
.ht-leader__name { font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800; letter-spacing: -.02em; }
.ht-leader__name a { color: var(--heri-navy) !important; }
.ht-leader__name a:hover { color: var(--heri-green-dark) !important; }
.ht-leader__position { color: var(--heri-muted); font-size: 15px; margin-top: 6px !important; }
.ht-leader__bio { font-size: 15.5px; color: #3e4a56; margin: 14px 0 18px !important; }
.ht-leader__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.ht-leader__foot .heri-links { margin-top: 0; }
.ht-leader__foot .heri-link span { display: none; } /* icon-only in the card */
.ht-leader__foot .heri-link { padding: 8px; }

/* Team: portrait cards, details on a navy fade, bio revealed on hover */
.ht-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 20px; }
.ht-card {
	position: relative; display: block; aspect-ratio: 3 / 4; border-radius: 20px; overflow: hidden;
	background: linear-gradient(160deg, var(--heri-navy), var(--heri-navy-dark)); color: #fff !important;
	box-shadow: 0 10px 28px rgba(16, 24, 40, .12); transition: transform .35s, box-shadow .35s;
}
.ht-card:hover, .ht-card:focus-visible { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(16, 24, 40, .2); }
.ht-card__photo { position: absolute; inset: 0; aspect-ratio: auto; border-radius: 0; background: transparent; }
.ht-card__photo .heri-photo__initials { padding-bottom: 30%; font-size: 64px; color: rgba(255, 255, 255, .5); }
.ht-card__info {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 64px 22px 22px;
	display: flex; flex-direction: column; gap: 4px;
	background: linear-gradient(to top, rgba(17, 32, 61, .96) 0%, rgba(17, 32, 61, .78) 45%, rgba(17, 32, 61, 0) 100%);
}
.ht-card__info::before { content: ""; width: 32px; height: 3px; border-radius: 3px; background: var(--heri-gradient); margin-bottom: 10px; }
.ht-card__name { font: 700 19px/1.25 var(--heri-heading); color: #fff; }
.ht-card__role { font-size: 12.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #a9e3aa; }
.ht-card__bio {
	font-size: 14px; line-height: 1.55; color: rgba(255, 255, 255, .85);
	max-height: 0; opacity: 0; overflow: hidden; transition: max-height .45s ease, opacity .35s ease, margin .35s;
}
.ht-card:hover .ht-card__bio, .ht-card:focus-visible .ht-card__bio { max-height: 140px; opacity: 1; margin-top: 8px; }

@media (max-width: 1024px) {
	.ht-leaders { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.ht-leader { grid-template-columns: 1fr; padding: 22px; }
	.ht-leader__photo { max-width: 220px; }
	.ht-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
	.ht-card__info { padding: 48px 14px 14px; }
	.ht-card__name { font-size: 16px; }
	.ht-card__role { font-size: 11px; }
}
@media (hover: none) { /* touch screens: no hover, so keep cards clean */
	.ht-card__bio { display: none; }
}

/* Heading font tuning: a serif reads best a little lighter and without tight tracking */
body.heri-hf-fraunces .heri h1, body.heri-hf-fraunces .heri h2, body.heri-hf-fraunces .heri h3,
body.heri-hf-fraunces.heri-skin .uicore-page-title h1,
body.heri-hf-fraunces.heri-skin .elementor-heading-title { font-weight: 600 !important; letter-spacing: -.01em !important; }
body.heri-hf-fraunces .hl-intro__title { font-weight: 600 !important; letter-spacing: -.02em !important; }
body.heri-hf-poppins .hl-intro__title { font-weight: 700 !important; letter-spacing: -.02em !important; }

/* Responsive -------------------------------------------------------------- */
@media (max-width: 900px) {
	.heri-profile__layout { grid-template-columns: 1fr; gap: 32px; }
	.heri-post--featured { grid-template-columns: 1fr; }
	.heri-post--featured .heri-post__media { min-height: 0; aspect-ratio: 16 / 9; }
	.heri-post--featured .heri-post__body { padding: 26px; }
}
@media (max-width: 680px) {
	.heri-people--list .heri-person { grid-template-columns: 1fr; gap: 18px; padding: 28px 0; }
	.heri-people--list .heri-photo { max-width: 240px; }
	.heri-profile__hero { padding: 36px 0; margin-bottom: 36px; }
	.heri-profile__hero-inner { grid-template-columns: 1fr; gap: 24px; }
	.heri-photo--lg { max-width: 220px; }
	.heri-toolbar { flex-direction: column; align-items: stretch; }
	.heri-pubs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
	.heri-cover__title { font-size: 15px; }
	.heri-cover__generated { padding: 18px 14px 14px 22px; }
	.heri-posts { grid-template-columns: 1fr; }
	.heri-flipbook ._df_book { min-height: 420px; }
	.heri-article__head { padding-top: 32px; }
	.heri-article__hero { margin-top: 28px; }
	.heri-article__body, .heri-article__body p { font-size: 17px; }
	.heri-article__body img[style*="float"] { float: none !important; display: block; width: 100% !important; margin: 8px 0 20px !important; aspect-ratio: 4 / 3; }
	.heri-postnav { grid-template-columns: 1fr; }
	.heri-postnav__item--next { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) {
	.heri * { transition: none !important; }
}
