/**
 * INGE Elementor bridge — full-bleed shells + Elementor compatibility.
 *
 * Rules of engagement:
 * 1. Full-bleed / padding resets apply ONLY to header/footer theme parts
 *    and known INGE full-bleed sections — never to every Elementor widget.
 * 2. Do NOT force font-family/color with !important on .elementor-widget*
 *    so Site Settings (Global Colors / Fonts) and per-widget controls work.
 * 3. Theme design tokens still style INGE card shells; Elementor controls
 *    win via higher specificity on {{WRAPPER}} selectors.
 */

/* ------------------------------------------------------------------
   CRITICAL: Elementor e-con uses --content-width (kit ~1140px)
   which boxes Theme Builder header/footer. Force true full-bleed
   ONLY for header/footer documents — never by hardcoded post IDs
   (IDs 7/8 previously also hit any page that reused those IDs).
------------------------------------------------------------------ */
body.inge-theme > .elementor-location-header,
body.inge-theme > .elementor-location-footer,
.elementor-location-header > .e-con.e-parent,
.elementor-location-footer > .e-con.e-parent,
.elementor-location-header > .e-con.e-parent > .e-con-inner,
.elementor-location-footer > .e-con.e-parent > .e-con-inner,
.elementor[data-elementor-type="header"],
.elementor[data-elementor-type="footer"],
.elementor[data-elementor-type="header"] > .e-con,
.elementor[data-elementor-type="footer"] > .e-con,
.elementor[data-elementor-type="header"] .e-con.e-parent,
.elementor[data-elementor-type="footer"] .e-con.e-parent {
	width: 100% !important;
	max-width: none !important;
	--width: 100% !important;
	--content-width: 100% !important;
	--container-max-width: 100% !important;
	margin-inline: 0 !important;
	padding-inline: 0 !important;
}

/* Zero padding ONLY on INGE header/footer widgets — never all widgets in a doc ID */
.elementor-location-header .elementor-widget-igne-header > .elementor-widget-container,
.elementor-location-footer .elementor-widget-igne-footer > .elementor-widget-container,
.elementor-widget-igne-header > .elementor-widget-container,
.elementor-widget-igne-footer > .elementor-widget-container {
	width: 100% !important;
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Full-bleed ONLY for known INGE band widgets — not all page containers */
body.elementor-page .elementor-widget-igne-hero,
body.elementor-page .elementor-widget-igne-internal-hero,
body.elementor-page .elementor-widget-igne-newsletter-cta,
body.elementor-page .elementor-widget-igne-mission,
body.elementor-page .elementor-widget-igne-header,
body.elementor-page .elementor-widget-igne-footer {
	width: 100%;
	max-width: none;
}

.site-header,
.site-footer,
.newsletter-section,
.internal-hero,
.hero-section {
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box;
}

/* Kill Hello Elementor conflicting .site-header flex/padding only */
body.inge-theme .site-header {
	display: block;
	padding-block: 0;
	flex-wrap: unset;
	justify-content: unset;
}

body.inge-theme .site-footer {
	padding-block: 64px 26px !important;
	margin-block-start: clamp(48px, 6vw, 88px);
}

body.inge-theme .elementor:has(.newsletter-section) + .elementor .site-footer,
body.inge-theme .elementor:has(.newsletter-section) + .elementor[data-elementor-type="footer"] .site-footer,
body.inge-theme .elementor-location-footer .site-footer,
body.inge-theme .elementor[data-elementor-type="footer"] .site-footer {
	margin-block-start: 0;
}

/*
 * Hello Elementor boxes non-Elementor pages:
 *   body:not([class*=elementor-page-]) .site-main { max-width: 1140px }
 */
body.inge-theme:not([class*="elementor-page-"]) .site-main,
body.inge-theme.single .site-main,
body.inge-theme.archive .site-main,
body.inge-theme.category .site-main,
body.inge-theme.tag .site-main,
body.inge-theme.search .site-main,
body.inge-theme.error404 .site-main {
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
	padding-inline: 0 !important;
}

body.inge-theme .site-main {
	padding-block-end: clamp(24px, 3vw, 40px);
}

body.inge-theme .site-main > .section:last-child,
body.inge-theme .site-main > article.section:last-child,
body.inge-theme .elementor-widget-igne-cpt-grid .section,
body.inge-theme .elementor-widget-igne-posts-grid .section,
body.inge-theme .elementor-widget-igne-contact-form .section {
	padding-block-end: var(--inge-space-bottom, clamp(72px, 9vw, 120px));
}

/* Inner content width matches reference --container */
.site-header__inner,
.site-footer .container,
.site-footer__grid,
.site-footer__bottom,
.newsletter-section > .container,
.internal-hero > .container,
.section > .container,
.hero-section .container {
	width: min(var(--container), calc(100% - (var(--page-gutter) * 2)));
	max-width: min(var(--container), calc(100% - (var(--page-gutter) * 2)));
	margin-inline: auto;
	box-sizing: border-box;
}

.site-footer {
	padding-inline: 0;
}

/* Menus / forms */
.footer-menu a,
.mobile-nav-inner a {
	display: block;
	color: var(--color-muted-light);
	margin: 0 0 9px;
}

.mobile-nav .mobile-nav-inner {
	display: contents;
}

.inge-newsletter-form-slot,
.inge-form-hint {
	min-width: 0;
}

.inge-newsletter-form-slot .elementor-form,
.inge-newsletter-form-slot form {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 12px;
	align-items: start;
}

.contact-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	align-items: stretch;
}

/* ------------------------------------------------------------------
   News / Blog — editorial magazine layouts (IGNE brand)
   List | Grid | Card | Masonry | Slider | Featured | Compact
------------------------------------------------------------------ */

.inge-posts-widget {
	--inge-posts-gap: 24px;
	--inge-news-rule: rgb(var(--color-green-950-rgb) / 0.12);
	--inge-news-soft: rgb(var(--color-green-950-rgb) / 0.06);
	padding-block: var(--inge-space-top, clamp(28px, 4vw, 48px)) var(--inge-space-bottom, clamp(28px, 4vw, 48px));
}
:where(.inge-posts-widget) .news-card {
	padding: 0;
	border-radius: 0;
	box-shadow: none;
	transition: transform var(--motion-fast, 180ms) ease, box-shadow var(--motion-base, 280ms) ease, background-color var(--motion-fast, 180ms) ease;
}
:where(.inge-posts-widget) .news-card a {
	cursor: pointer;
	text-decoration: none;
}
:where(.inge-posts-widget .news-card) h3 a {
	color: inherit;
	transition: color var(--motion-fast, 180ms) ease;
}
:where(.inge-posts-widget .news-card) h3 a:hover {
	color: var(--color-green-800);
}
.inge-posts-heading {
	margin-block-end: 32px;
}
.inge-posts-heading h2 {
	margin: 0 0 8px;
	font-size: clamp(1.6rem, 2.4vw, 2.1rem);
	line-height: 1.3;
	letter-spacing: -0.02em;
}

/* Equal card sizes — always stretch in multi-column layouts */
.news-list--grid,
.news-list--card,
.news-list--featured,
.news-list--equal-height:where(.news-list--grid),
.news-list--equal-height:where(.news-list--card),
.news-list--equal-height:where(.news-list--featured) {
	align-items: stretch;
}
:where(.news-list--grid) .news-card,
:where(.news-list--card) .news-card,
:where(.news-list--featured) .news-card:where(:not(.news-card--featured-hero)),
:where(.news-list--equal-height) .news-card--grid,
:where(.news-list--equal-height) .news-card--card,
:where(.news-list--equal-height) .news-card--slider,
:where(.news-list--equal-height) .news-card--featured:where(:not(.news-card--featured-hero)) {
	height: 100%;
}

/* Titles always fill the card content width */
:where(.inge-posts-widget) .news-card h2,
:where(.inge-posts-widget) .news-card h3,
:where(.inge-posts-widget) .news-card h4,
:where(.inge-posts-widget) .news-card h5,
:where(.inge-posts-widget) .news-card__overlay h2,
:where(.inge-posts-widget) .news-card__overlay h3,
:where(.inge-posts-widget) .news-card__overlay h4,
:where(.inge-posts-widget) .news-card__overlay h5 {
	max-width: none;
	width: 100%;
}
:where(.inge-posts-widget .news-card) h3 a,
:where(.inge-posts-widget .news-card) h2 a,
:where(.inge-posts-widget .news-card) h4 a {
	display: inline;
	max-width: none;
}
:where(.news-list--media-end) .news-card--list-media {
	direction: rtl;
}
:where(.news-list--media-end .news-card--list-media) .news-card__media {
	order: 2;
}
:where(.news-list--media-end .news-card--list-media) .news-card__body {
	order: 1;
}
:where([dir="ltr"] .news-list--media-end) .news-card--list-media {
	direction: ltr;
}
.news-card__tags,
.news-card__comments {
	font-size: 0.86em;
	color: var(--color-muted-dark);
}
.news-card__excerpt {
	margin: 0;
	line-height: 1.85;
}
.section--posts-dark {
	background: var(--color-green-950);
	color: var(--color-text-light);
	padding-block: var(--inge-space-top, clamp(40px, 5vw, 64px)) var(--inge-space-bottom, clamp(40px, 5vw, 64px));
}
.news-list--list,
.news-list--grid,
.news-list--card,
.news-list--masonry,
.news-list--featured,
.news-list--compact,
.container:where(.news-list--list),
.container:where(.news-list--grid),
.container:where(.news-list--card),
.container:where(.news-list--masonry),
.container:where(.news-list--featured),
.container:where(.news-list--compact) {
	width: min(var(--container), calc(100% - (var(--page-gutter) * 2)));
	max-width: min(var(--container), calc(100% - (var(--page-gutter) * 2)));
	margin-inline: auto;
}

/* ---- Shared media; explicit ratio overrides follow native layouts below ---- */
.news-card__media { aspect-ratio: 16 / 10; }
:where(.news-list--ratio-square) .news-card__media { aspect-ratio: 1 / 1; }
:where(.news-list--ratio-portrait) .news-card__media { aspect-ratio: 3 / 4; }
:where(.news-list--ratio-wide) .news-card__media { aspect-ratio: 21 / 9; }
:where(.news-list--ratio-auto) .news-card__media img { aspect-ratio: auto; height: auto; object-fit: contain; }
:where(.news-list--ratio-landscape) .news-card__media img,
:where(.news-list--ratio-square) .news-card__media img,
:where(.news-list--ratio-portrait) .news-card__media img,
:where(.news-list--ratio-wide) .news-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.news-card__media {
	display: block;
	overflow: hidden;
	position: relative;
	background: var(--color-green-900);
}
.news-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--motion-base, 280ms) ease;
}

@media (hover: hover) and (pointer: fine) {
:where(.news-card:hover) .news-card__media img {
		transform: scale(1.035);
	}
}

/* Media slot without image — NEVER height:100% on the media link itself
   (that crushed grid/masonry bodies under equal-height cards). */
.news-card__media--fallback {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	min-height: 0;
	background:
		radial-gradient(ellipse 80% 60% at 20% 30%, rgb(var(--color-gold-500-rgb) / 0.22), transparent 55%),
		linear-gradient(145deg, var(--color-green-850) 0%, var(--color-green-950) 55%, var(--color-primary-deep, #021f1c) 100%);
}
.news-card__fallback {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	aspect-ratio: auto;
	background: transparent;
}

/* Overlay covers may still fill their parent */
.news-card__media--cover.news-card__media--fallback,
:where(.news-card__media--cover) .news-card__fallback {
	height: 100%;
	min-height: 100%;
	aspect-ratio: auto;
}
.news-card__body {
	display: grid;
	gap: 10px;
	align-content: start;
}
.news-card__author {
	color: var(--color-muted-dark);
	font-size: 0.9em;
	font-weight: 600;
}
.news-card__more {
	justify-self: start;
	margin-block-start: 4px;
	color: var(--color-gold-600);
	font-weight: 800;
	font-size: 14px;
	border-block-end: 1px solid currentColor;
	padding-block-end: 1px;
	transition: color var(--motion-fast, 180ms) ease, border-color var(--motion-fast, 180ms) ease;
}
.news-card__more:hover {
	color: var(--color-green-800);
}
:where(.inge-posts-widget) .meta-row {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--color-gold-600);
}
:where(.inge-posts-widget) .meta-row::before {
	content: "";
	width: 18px;
	height: 2px;
	background: var(--color-gold-500);
	flex-shrink: 0;
}

/* ========== LIST — editorial rows ========== */
.news-list--list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	border-block-start: 1px solid var(--inge-news-rule);
}
.news-card--list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	padding: 28px 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	border-block-end: 1px solid var(--inge-news-rule);
}
.news-card--list-media {
	/* Fixed media track + flexible body. minmax(0,…) prevents overflow into text. */
	grid-template-columns: minmax(0, var(--inge-list-media-width, 240px)) minmax(0, 1fr);
	gap: 28px;
	align-items: start;
	min-height: 0;
}
:where(.news-card--list-media >) * {
	min-width: 0;
}
:where(.news-card--list) .news-card__media {
	margin: 0;
	border-radius: 2px;
	align-self: start;
	justify-self: stretch;
}
:where(.news-card--list) .news-card__media,
:where(.news-card--list) .news-card__media--fallback {
	width: 100%;
	max-width: 100%;
	height: auto;
	min-height: 0;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}
:where(.news-card--list) .news-card__media img,
:where(.news-card--list) .news-card__fallback {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	object-fit: cover;
}
:where(.news-card--list) .news-card__body {
	padding: 4px 0 0;
	gap: 12px;
	border: 0;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow-wrap: anywhere;
}
:where(.news-card--list) .news-card__date-badge {
	display: inline-block;
	width: fit-content;
	padding: 4px 10px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.02em;
	color: var(--color-green-950);
	background: var(--color-ivory-100);
	border: 1px solid var(--inge-news-rule);
	border-radius: 2px;
}
.news-card--list h3 {
	font-size: clamp(1.2rem, 1.8vw, 1.5rem);
	line-height: 1.45;
	margin: 0;
	font-weight: 800;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	min-height: calc(1.35rem * 1.45 * 2);
}
.news-card--list p,
:where(.news-card--list) .news-card__excerpt {
	margin: 0;
	max-width: none;
	width: 100%;
	font-size: 0.98rem;
	line-height: 1.7;
	color: var(--color-muted-dark);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	min-height: calc(0.98rem * 1.7 * 3);
}
.news-card--list:hover {
	background: rgb(251 248 241 / 0.65);
}

/* ========== GRID — equal institutional cards ========== */
.news-list--grid,
.news-list--card {
	display: grid;
	gap: var(--inge-posts-gap);
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
}
.news-list--cols-1 { grid-template-columns: 1fr; }
.news-list--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.news-list--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.news-list--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.news-card--grid {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--inge-news-rule);
	border-radius: 2px;
	background: #fff;
	box-shadow: 0 1px 0 var(--inge-news-soft);
}
.news-card--grid:hover {
	box-shadow: 0 16px 40px rgb(var(--color-green-950-rgb) / 0.08);
	transform: translateY(-2px);
}
:where(.news-card--grid) .news-card__media,
:where(.news-card--grid) .news-card__media--fallback {
	flex: 0 0 auto;
	margin: 0;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	min-height: 0;
}
:where(.news-card--grid) .news-card__media::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-start: 0;
	height: 3px;
	background: var(--color-gold-500);
	z-index: 1;
}
:where(.news-card--grid) .news-card__media img,
:where(.news-card--grid) .news-card__fallback {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
:where(.news-card--grid) .news-card__body {
	padding: 22px 22px 26px;
	flex: 1 1 auto;
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
	background: #fff;
	position: relative;
	z-index: 1;
}
.news-card--grid h3 {
	font-size: 1.12rem;
	margin: 0;
	line-height: 1.55;
	font-weight: 800;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	min-height: calc(1.12rem * 1.55 * 3);
	width: 100%;
}
:where(.news-card--grid) .news-card__excerpt {
	font-size: 0.94rem;
	line-height: 1.7;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: calc(0.94rem * 1.7 * 3);
}
:where(.news-card--grid) .news-card__date,
.news-card--grid small {
	color: var(--color-muted-dark);
	font-size: 12px;
	font-weight: 600;
	margin-block-start: auto;
}

/* ========== MASONRY — complete magazine cards in columns (distinct from grid) ========== */
.news-list--masonry {
	display: block;
	column-count: 3;
	column-gap: 22px;
	/* balance required when height is auto — auto fill collapses to 1 column in Chromium */
	column-fill: balance;
	grid-template-columns: none;
	align-items: unset;
}
.news-list--masonry:where(.news-list--cols-1) { column-count: 1; }
.news-list--masonry:where(.news-list--cols-2) { column-count: 2; }
.news-list--masonry:where(.news-list--cols-3) { column-count: 3; }
.news-list--masonry:where(.news-list--cols-4) { column-count: 4; }

/* Kill shared ratio / equal-height rules that fight masonry packing */
.news-list--masonry:where(.news-list--equal-height),
:where(.news-list--masonry) .news-card {
	height: auto;
	min-height: 0;
	align-self: auto;
}
:where(.news-list--masonry) .news-card {
	/* inline-block (NOT flex) — flex/inline-flex breaks CSS multicol packing in Chromium */
	break-inside: avoid;
	page-break-inside: avoid;
	-webkit-column-break-inside: avoid;
	display: inline-block;
	width: 100%;
	max-width: 100%;
	margin: 0 0 22px;
	vertical-align: top;
	float: none;
}
.news-card--masonry {
	padding: 0;
	overflow: hidden;
	border: 1px solid rgb(var(--color-green-950-rgb) / 0.1);
	border-radius: 3px;
	background: #fff;
	box-shadow: 0 10px 28px rgb(var(--color-green-950-rgb) / 0.06);
	transition: box-shadow var(--motion-base, 280ms) ease, transform var(--motion-fast, 180ms) ease;
}
.news-card--masonry:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 40px rgb(var(--color-green-950-rgb) / 0.12);
}

/* Media + body = one sealed card (no floating gap) */
:where(.news-list--masonry) .news-card__media,
:where(.news-list--masonry) .news-card__media--fallback,
:where(.news-card--masonry) .news-card__media,
:where(.news-card--masonry) .news-card__media--fallback {
	flex: 0 0 auto;
	margin: 0;
	width: 100%;
	height: auto;
	min-height: 0;
	max-height: 240px;
	aspect-ratio: 16 / 11;
	border-radius: 0;
	background:
		radial-gradient(ellipse 70% 55% at 18% 28%, rgb(var(--color-gold-500-rgb) / 0.28), transparent 58%),
		linear-gradient(155deg, var(--color-green-850, #0a3d38) 0%, var(--color-green-950) 58%, var(--color-primary-deeper, #021916) 100%);
}

/* Mild magazine variation — never tower empty green slabs */
:where(.news-list--masonry .news-card:nth-child(3n + 1)) .news-card__media,
:where(.news-list--masonry .news-card:nth-child(3n + 1)) .news-card__media--fallback {
	aspect-ratio: 5 / 4;
	max-height: 260px;
}
:where(.news-list--masonry .news-card:nth-child(3n + 2)) .news-card__media,
:where(.news-list--masonry .news-card:nth-child(3n + 2)) .news-card__media--fallback {
	aspect-ratio: 16 / 10;
	max-height: 210px;
}
:where(.news-list--masonry .news-card:nth-child(3n)) .news-card__media,
:where(.news-list--masonry .news-card:nth-child(3n)) .news-card__media--fallback {
	aspect-ratio: 1 / 1;
	max-height: 230px;
}
:where(.news-card--masonry) .news-card__media::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0;
	height: 3px;
	background: var(--color-gold-500);
	z-index: 1;
}
:where(.news-card--masonry) .news-card__media img,
:where(.news-card--masonry) .news-card__fallback {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
:where(.news-card--masonry) .news-card__body {
	padding: 18px 20px 20px;
	gap: 10px;
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	background: #fff;
	border: 0;
	min-height: 0;
}
:where(.news-card--masonry) .meta-row {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--color-gold-600, #b8923a);
	text-transform: none;
}
.news-card--masonry h3,
:where(.news-card--masonry) h3 a {
	font-size: 1.08rem;
	margin: 0;
	line-height: 1.5;
	font-weight: 800;
	width: 100%;
	max-width: none;
	color: var(--color-green-950);
}
:where(.news-card--masonry) h3 a {
	color: inherit;
}
.news-card--masonry h3 {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	min-height: calc(1.08rem * 1.5 * 3);
}
:where(.news-card--masonry) .news-card__excerpt {
	font-size: 0.9rem;
	line-height: 1.7;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: calc(0.9rem * 1.7 * 3);
	width: 100%;
	max-width: none;
	margin: 0;
	color: var(--color-muted-dark);
}
:where(.news-card--masonry) .news-card__date,
.news-card--masonry small {
	color: var(--color-muted-dark);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.02em;
	margin-block-start: auto;
	padding-block-start: 4px;
}
:where(.news-card--masonry:hover) .news-card__media img {
	transform: scale(1.04);
}

/* ========== CARD — cinematic overlay ========== */
.news-card--card.news-card--overlay {
	display: flex;
	flex-direction: column;
	padding: 0;
	border: 0;
	border-radius: 2px;
	overflow: hidden;
	background: var(--color-green-950);
	min-height: 360px;
	height: 100%;
	box-shadow: 0 20px 50px rgb(var(--color-green-950-rgb) / 0.14);
}
.news-card--card.news-card--overlay:hover {
	transform: translateY(-3px);
	box-shadow: 0 28px 60px rgb(var(--color-green-950-rgb) / 0.2);
}
.news-card__media--cover {
	display: block;
	position: relative;
	flex: 1 1 auto;
	min-height: 360px;
	height: 100%;
	width: 100%;
}
.news-card__media--cover img,
:where(.news-card__media--cover) .news-card__fallback {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: auto;
	min-height: 100%;
}
.news-card__shade {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgb(var(--color-green-950-rgb) / 0.08) 15%, rgb(var(--color-green-950-rgb) / 0.55) 55%, rgb(var(--color-green-950-rgb) / 0.92) 100%);
	z-index: 1;
}
.news-card__overlay {
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0;
	z-index: 2;
	display: grid;
	gap: 10px;
	padding: 32px 28px;
	color: var(--color-text-light);
}

/* Beat Hello Elementor reset / theme title tokens on dark covers */
:where(.inge-posts-widget) .news-card__overlay,
:where(.inge-posts-widget) .news-card__overlay h2,
:where(.inge-posts-widget) .news-card__overlay h3,
:where(.inge-posts-widget) .news-card__overlay h4,
:where(.inge-posts-widget) .news-card__overlay h5,
:where(.inge-posts-widget) .news-card__overlay a {
	color: var(--color-text-light);
}
:where(.news-card__overlay) .meta-row {
	color: var(--color-gold-400);
}
:where(.news-card__overlay) .meta-row::before {
	background: var(--color-gold-400);
}
.news-card__overlay h3 {
	margin: 0;
	font-size: clamp(1.2rem, 1.8vw, 1.45rem);
	line-height: 1.45;
	font-weight: 800;
	width: 100%;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	min-height: calc(1.35rem * 1.45 * 3);
}
.news-card__overlay small,
:where(.news-card__overlay) .news-card__date {
	color: rgb(248 244 235 / 0.78);
	font-size: 13px;
	font-weight: 600;
}

/* ========== SLIDER — cinematic horizontal rail (distinct) ========== */
.inge-posts-widget--slider {
	background: transparent;
	padding-block: 12px 28px;
}
.inge-posts-widget--slider:where(.inge-posts-slider--dark) {
	background: transparent;
}
.inge-news-rail {
	position: relative;
}
.inge-news-rail__controls {
	display: flex;
	gap: 10px;
	justify-content: flex-start;
	margin-block-end: 18px;
}
.inge-news-rail__controls button,
:where(.inge-posts-widget--slider) .rail-controls button {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border: 1px solid rgb(var(--color-green-950-rgb) / 0.18);
	border-radius: 50%;
	color: var(--color-green-950);
	background: #fff;
	cursor: pointer;
	font-size: 22px;
	line-height: 1;
	box-shadow: 0 4px 14px rgb(var(--color-green-950-rgb) / 0.06);
	transition: background var(--motion-fast, 180ms) ease, border-color var(--motion-fast, 180ms) ease, color var(--motion-fast, 180ms) ease;
}
.inge-news-rail__controls button:hover,
:where(.inge-posts-widget--slider) .rail-controls button:hover {
	background: var(--color-gold-500);
	border-color: var(--color-gold-500);
	color: var(--color-on-accent);
}
.inge-news-rail__track,
:where(.posts-slider) .news-list--slider {
	display: flex;
	grid-template-columns: none;
	grid-auto-flow: unset;
	grid-auto-columns: unset;
	width: auto;
	max-width: none;
	column-count: auto;
	gap: 20px;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scroll-snap-type: inline mandatory;
	scroll-padding-inline: 4px;
	padding-block-end: 6px;
	/* Hide ugly native scrollbar — controls scroll instead */
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.inge-news-rail__track::-webkit-scrollbar,
:where(.posts-slider) .news-list--slider::-webkit-scrollbar {
	display: none;
	height: 0;
}
:where(.posts-slider) .news-card--slider,
:where(.inge-news-rail) .news-card--slider {
	flex: 0 0 min(300px, 78vw);
	display: block;
	position: relative;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: 4px;
	background: var(--color-green-950);
	color: var(--color-text-light);
	scroll-snap-align: start;
	min-height: 420px;
	height: 420px;
	box-shadow: 0 18px 40px rgb(var(--color-green-950-rgb) / 0.14);
	transition: transform var(--motion-fast, 180ms) ease, box-shadow var(--motion-base, 280ms) ease;
}
:where(.posts-slider) .news-card--slider:hover,
:where(.inge-news-rail) .news-card--slider:hover {
	transform: translateY(-4px);
	box-shadow: 0 28px 56px rgb(var(--color-green-950-rgb) / 0.22);
}
.news-card--slider.news-card--overlay,
:where(.news-card--slider) .news-card__media--cover {
	min-height: 420px;
	height: 100%;
}
:where(.news-card--slider) .news-card__media--cover {
	display: block;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
:where(.news-card--slider) .news-card__media--cover img,
:where(.news-card--slider .news-card__media--cover) .news-card__fallback {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	min-height: 100%;
	aspect-ratio: auto;
}
:where(.news-card--slider) .news-card__shade {
	background:
		linear-gradient(180deg, rgb(var(--color-green-950-rgb) / 0.05) 20%, rgb(var(--color-green-950-rgb) / 0.55) 55%, rgb(var(--color-green-950-rgb) / 0.94) 100%);
}
:where(.news-card--slider) .news-card__overlay {
	padding: 24px 22px 26px;
	gap: 10px;
}
:where(.news-card--slider) .news-card__overlay h3 {
	font-size: 1.15rem;
	line-height: 1.45;
	-webkit-line-clamp: 3;
	min-height: 0;
	width: 100%;
	max-width: none;
}
:where(.news-card--slider .news-card__overlay) .meta-row {
	color: var(--color-gold-400);
}
:where(.news-card--slider) .news-card__media::after {
	content: none;
}

/* Fallback non-overlay body (if image off) */
.news-card--slider:not(.news-card--overlay) {
	display: flex;
	flex-direction: column;
	background: var(--color-green-950);
}
:where(.news-card--slider:where(:not(.news-card--overlay))) .news-card__body {
	padding: 22px;
	gap: 10px;
	color: var(--color-text-light);
	background: transparent;
}
.news-card--slider:where(:not(.news-card--overlay)) h3,
:where(.news-card--slider:where(:not(.news-card--overlay))) h3 a {
	color: var(--color-text-light);
	width: 100%;
}
:where(.news-card--slider:where(:not(.news-card--overlay))) .meta-row {
	color: var(--color-gold-400);
}
:where(.news-card--slider:where(:not(.news-card--overlay))) .news-card__excerpt,
.news-card--slider:where(:not(.news-card--overlay)) small {
	color: rgb(248 244 235 / 0.72);
}

/* ========== FEATURED — hero + supporting ========== */
.news-list--featured {
	display: grid;
	gap: var(--inge-posts-gap);
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.news-list--featured:where(.news-list--cols-2) {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.news-list--featured:where(.news-list--cols-4) {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
.news-card--featured-hero {
	grid-column: 1 / -1;
	min-height: 400px;
	border-radius: 2px;
	overflow: hidden;
	padding: 0;
	border: 0;
	background: var(--color-green-950);
	box-shadow: 0 24px 60px rgb(var(--color-green-950-rgb) / 0.16);
}
:where(.news-card--featured-hero) .news-card__media--cover {
	min-height: 400px;
}
:where(.news-card--featured-hero) .news-card__overlay h3 {
	font-size: clamp(1.5rem, 3vw, 2.2rem);
	-webkit-line-clamp: 3;
	width: 100%;
}

/* Featured side cards = same institute tile as Grid/Masonry */
.news-card--featured:not(.news-card--featured-hero) {
	display: flex;
	flex-direction: column;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--inge-news-rule);
	border-radius: 2px;
	background: #fff;
	height: 100%;
	box-shadow: 0 1px 0 var(--inge-news-soft);
}
.news-card--featured:not(.news-card--featured-hero):hover {
	box-shadow: 0 16px 40px rgb(var(--color-green-950-rgb) / 0.08);
	transform: translateY(-2px);
}
:where(.news-card--featured:where(:not(.news-card--featured-hero))) .news-card__media,
:where(.news-card--featured:where(:not(.news-card--featured-hero))) .news-card__media--fallback {
	margin: 0;
	flex: 0 0 auto;
	height: auto;
	aspect-ratio: 16 / 10;
	min-height: 0;
}
:where(.news-card--featured:where(:not(.news-card--featured-hero))) .news-card__media::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-start: 0;
	height: 3px;
	background: var(--color-gold-500);
	z-index: 1;
}
:where(.news-card--featured:where(:not(.news-card--featured-hero))) .news-card__media img,
:where(.news-card--featured:where(:not(.news-card--featured-hero))) .news-card__fallback {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: auto;
	min-height: 0;
}
:where(.news-card--featured:where(:not(.news-card--featured-hero))) .news-card__body {
	padding: 22px 22px 26px;
	gap: 12px;
	flex: 1 1 auto;
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	background: #fff;
	position: relative;
	z-index: 1;
}
.news-card--featured:where(:not(.news-card--featured-hero)) h3 {
	font-size: 1.12rem;
	margin: 0;
	line-height: 1.55;
	font-weight: 800;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	width: 100%;
	min-height: calc(1.12rem * 1.55 * 3);
}
:where(.news-card--featured:where(:not(.news-card--featured-hero))) .news-card__excerpt {
	font-size: 0.94rem;
	line-height: 1.7;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	min-height: calc(0.94rem * 1.7 * 3);
}
:where(.news-card--featured:where(:not(.news-card--featured-hero))) .news-card__date,
.news-card--featured:where(:not(.news-card--featured-hero)) small {
	color: var(--color-muted-dark);
	font-size: 12px;
	font-weight: 600;
	margin-block-start: auto;
}

/* ========== COMPACT — dense index ========== */
.news-list--compact {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	border-block-start: 2px solid var(--color-green-950);
}
.news-card--compact {
	display: block;
	padding: 0;
	border: 0;
	border-radius: 0;
	border-block-end: 1px solid var(--inge-news-rule);
	background: transparent;
}
:where(.news-card--compact) .news-card__body {
	display: grid;
	grid-template-columns: minmax(110px, 160px) minmax(0, 1fr) auto;
	gap: 20px;
	align-items: baseline;
	padding: 16px 12px;
	transition: background-color var(--motion-fast, 180ms) ease;
}
:where(.news-card--compact:hover) .news-card__body {
	background: var(--color-ivory-100);
}
:where(.news-card--compact) .meta-row {
	font-size: 12px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.news-card--compact h3 {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.5;
}
:where(.news-card--compact) .news-card__date,
.news-card--compact time {
	font-size: 12px;
	font-weight: 700;
	color: var(--color-muted-dark);
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

/* Explicit user ratios override every native media proportion, including covers.
   Elementor wrapper selectors retain precedence for custom dimensions. */
.news-list--ratio-landscape .news-card__media { aspect-ratio: 16 / 10; }
.news-list--ratio-square .news-card__media { aspect-ratio: 1 / 1; }
.news-list--ratio-portrait .news-card__media { aspect-ratio: 3 / 4; }
.news-list--ratio-wide .news-card__media { aspect-ratio: 21 / 9; }
.news-list--ratio-auto .news-card__media { aspect-ratio: auto; }
:where(.news-list[class*="news-list--ratio-"]) .news-card__media {
    height: auto;
    min-height: 0;
    max-height: none;
}
:where(.news-list[class*="news-list--ratio-"]) .news-card__media--cover {
    position: relative;
    inset: auto;
    flex: 0 0 auto;
}
:where(.news-list[class*="news-list--ratio-"]) .news-card--overlay {
    height: auto;
    min-height: 0;
}
.news-list--ratio-auto .news-card__media img {
    position: relative;
    height: auto;
    min-height: 0;
    object-fit: contain;
}
.news-list--ratio-auto .news-card__media--fallback { aspect-ratio: 16 / 10; }

@media (prefers-reduced-motion: reduce) {
:where(.inge-posts-widget) .news-card,
.news-card__media img,
.news-card__more {
		transition: none;
	}
.news-card--grid:hover,
.news-card--card.news-card--overlay:hover,
.news-card--featured:not(.news-card--featured-hero):hover,
:where(.posts-slider) .news-card--slider:hover {
		transform: none;
	}
:where(.news-card:hover) .news-card__media img {
		transform: none;
	}
}

.post-taxonomies {
	display: grid;
	gap: 8px;
	margin-block-end: 18px;
}

.post-taxonomies--hero {
	margin-block-start: 18px;
	margin-block-end: 0;
}

.post-taxonomies--hero .post-taxonomies__row,
.post-taxonomies--hero .post-taxonomies__row a {
	color: inherit;
}

.post-taxonomies__row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	margin: 0;
	align-items: center;
	font-size: 0.92em;
}

.post-taxonomies__row a {
	color: var(--color-green-800);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ------------------------------------------------------------------
   Single post meta (Customizer → متادیتای نوشته تکی)
------------------------------------------------------------------ */
.inge-post-meta {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 22px;
	font-size: 0.95rem;
	line-height: 1.7;
}

/* Undo the hero's `:where(.internal-hero) span` block styling. */
.inge-post-meta :where(span) {
	display: inline;
	max-width: none;
	font-size: inherit;
	color: inherit;
}

.inge-post-meta__item {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	min-width: 0;
}

.inge-post-meta__item[hidden] {
	display: none;
}

.inge-post-meta__icon {
	display: inline-flex;
	flex: 0 0 auto;
	color: var(--color-gold-500);
}

.inge-post-meta__label {
	font-weight: 700;
	opacity: 0.85;
}

.inge-post-meta--icons .inge-post-meta__label {
	opacity: 1;
}

.inge-post-meta__value a {
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.inge-post-meta__sep {
	opacity: 0.6;
}

/* Inside the dark hero */
.inge-post-meta--hero {
	margin-block-start: 22px;
	padding-block-start: 18px;
	border-block-start: 1px solid rgb(var(--color-gold-500-rgb) / 0.28);
	color: var(--color-muted-light);
}

.inge-post-meta--hero .inge-post-meta__value,
.inge-post-meta--hero .inge-post-meta__value a {
	color: var(--color-text-light);
}

.inge-post-meta--hero .inge-post-meta__value a:hover {
	color: var(--color-gold-400);
}

/* Bar above the content */
.inge-post-meta--bar {
	margin-block-end: 28px;
	padding: 14px 18px;
	border: 1px solid rgb(var(--color-green-950-rgb) / 0.1);
	border-inline-start: 3px solid var(--color-gold-500);
	border-radius: var(--radius-sm);
	background: var(--color-ivory-100);
	color: var(--color-muted-dark);
}

.inge-post-meta--bar .inge-post-meta__icon {
	color: var(--color-gold-600);
}

.inge-post-meta--bar .inge-post-meta__value,
.inge-post-meta--bar .inge-post-meta__value a {
	color: var(--color-text-dark);
}

/* Tags under the content */
.inge-post-meta--footer {
	margin-block-start: 36px;
	padding-block-start: 20px;
	border-block-start: 1px solid rgb(var(--color-green-950-rgb) / 0.1);
	color: var(--color-muted-dark);
}

.inge-post-meta--footer .inge-post-meta__value {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 8px;
}

.inge-post-meta--footer .inge-post-meta__sep {
	display: none;
}

.inge-post-meta--footer .inge-post-meta__value a {
	padding: 3px 12px;
	border-radius: 999px;
	background: rgb(var(--color-green-950-rgb) / 0.06);
	color: var(--color-green-800);
	text-decoration: none;
	font-weight: 600;
}

.inge-post-meta--footer .inge-post-meta__value a:hover {
	background: var(--color-gold-500);
	color: var(--color-on-accent);
}

@media (max-width: 767px) {
	.inge-post-meta {
		gap: 8px 16px;
		font-size: 0.9rem;
	}
}

.archive-pagination,
.inge-pagination {
	margin-block: 36px 12px;
	display: flex;
	justify-content: center;
}

.archive-pagination .nav-links,
.inge-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	justify-content: center;
}

.archive-pagination .page-numbers,
.inge-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid rgb(var(--color-green-950-rgb) / 0.14);
	border-radius: var(--radius-sm);
	background: var(--color-ivory-50);
	color: var(--color-green-950);
	font-weight: 700;
	text-decoration: none;
}

.archive-pagination .page-numbers.current,
.inge-pagination .page-numbers.current {
	background: var(--color-green-950);
	border-color: var(--color-green-950);
	color: var(--color-text-light);
}

.archive-pagination .page-numbers:hover,
.inge-pagination .page-numbers:hover {
	border-color: var(--color-green-800);
	color: var(--color-green-800);
}

.inge-posts-widget > .archive-pagination,
.section > .container > .archive-pagination {
	margin-block-start: 28px;
}

/* Elementor-built CPT singles: allow full-bleed sections without theme chrome. */
.inge-elementor-singular,
.inge-cpt-elementor .inge-elementor-singular,
body.inge-cpt-elementor #content.site-main {
	width: 100%;
	max-width: none;
}

.inge-elementor-singular > .elementor {
	min-height: 1px;
	width: 100%;
}

/* When CPT is Elementor-built, don't force theme content-stack constraints on the document. */
body.inge-cpt-elementor .inge-elementor-singular .elementor-section,
body.inge-cpt-elementor .inge-elementor-singular .e-con.e-parent {
	width: 100%;
}

body.inge-cpt-singular.elementor-editor-active #content.site-main {
	min-height: 40vh;
}

.archive-pagination .page-numbers.dots,
.inge-pagination .page-numbers.dots {
	border-color: transparent;
	background: transparent;
	min-width: 24px;
	pointer-events: none;
}

/* ------------------------------------------------------------------
   Typography / colors — consume globals WITHOUT locking Elementor
------------------------------------------------------------------ */
/*
 * Body shell uses kit tokens as fallback. Elementor widget typography
 * and Global Fonts must remain able to override (no !important here).
 */
body.inge-theme {
	font-family: var(--e-global-typography-text-font-family, "Vazirmatn"), Tahoma, Arial, sans-serif;
}

/* :where() — zero specificity boost; Global Fonts / widget Typography win */
:where(body.inge-theme) .site-header,
:where(body.inge-theme) .site-footer,
:where(body.inge-theme) .internal-hero,
:where(body.inge-theme) .hero-section,
:where(body.inge-theme) .section:not(.elementor-section) {
	font-family: var(--e-global-typography-text-font-family, "Vazirmatn"), Tahoma, Arial, sans-serif;
}

:where(body.inge-theme) .internal-hero h1,
:where(body.inge-theme) .hero-copy h1,
:where(body.inge-theme) .section-heading h2 {
	font-family: var(--e-global-typography-primary-font-family, var(--e-global-typography-text-font-family, "Vazirmatn")), Tahoma, Arial, sans-serif;
}

/*
 * INGE card titles — :where() keeps specificity low so Elementor
 * Global Colors / Style tab always win when set.
 */
:where(body.inge-theme) .section-heading h2,
:where(body.inge-theme) .research-card h3,
:where(body.inge-theme) .axis-card h2,
:where(body.inge-theme) .axis-card h3,
:where(body.inge-theme) .news-card:not(.news-card--overlay) h3,
:where(body.inge-theme) .publication-card h3,
:where(body.inge-theme) .home-stats h2,
:where(body.inge-theme) .collaboration-panel h2,
:where(body.inge-theme) .event-card h3,
:where(body.inge-theme) .home-bottom-section .event-card h3,
:where(body.inge-theme) .content-stack h2,
:where(body.inge-theme) .about-goals-layout h2,
:where(body.inge-theme) .about-principles-layout h2 {
	color: var(--color-green-950);
}

/* :where() keeps these below Elementor {{WRAPPER}} / Global Color specificity */
:where(body.inge-theme) .internal-hero,
:where(body.inge-theme) .hero-copy {
	color: var(--color-text-light);
}

:where(body.inge-theme) .internal-hero h1,
:where(body.inge-theme) .hero-copy h1 {
	color: var(--color-text-light);
}

:where(body.inge-theme) .internal-hero p {
	color: var(--color-gold-400);
}

:where(body.inge-theme) .mission-section h2,
:where(body.inge-theme) .publication-section .section-heading h2 {
	color: var(--color-text-light);
}

:where(body.inge-theme) .media-split__title {
	color: var(--color-green-950);
}

:where(body.inge-theme) .newsletter-frame h2 {
	color: var(--color-gold-400);
}

/* ------------------------------------------------------------------
   Elementor standard widgets — compatibility without fighting Swiper
   / motion / fade. Previous rules forced opacity:1 on .swiper-slide
   and display:flex on wrappers, which broke Image Carousel fade and
   made inactive slides (or whole sections) look “missing”.
   Do NOT set opacity/visibility/display on Swiper internals.
------------------------------------------------------------------ */

/*
 * Do NOT set font-family on standard Elementor widgets.
 * A previous `font-family: inherit` rule beat Global Fonts / Typography.
 */

/*
 * Page/post content widgets: never inherit header/footer padding:0.
 * Do not force opacity/visibility (breaks Elementor motion + hide).
 */
body.inge-theme .elementor[data-elementor-type="wp-page"] .elementor-widget:not([class*="elementor-widget-igne-"]) > .elementor-widget-container,
body.inge-theme .elementor[data-elementor-type="wp-post"] .elementor-widget:not([class*="elementor-widget-igne-"]) > .elementor-widget-container,
body.inge-theme .elementor[data-elementor-type="page"] .elementor-widget:not([class*="elementor-widget-igne-"]) > .elementor-widget-container {
	max-width: none;
}

/* Media widgets: leave Swiper/DOM entirely to Elementor */
body.inge-theme .elementor-widget-image-carousel,
body.inge-theme .elementor-widget-image-gallery,
body.inge-theme .elementor-widget-image,
body.inge-theme .elementor-widget-media-carousel,
body.inge-theme .elementor-widget-slides,
body.inge-theme .elementor-widget-video,
body.inge-theme .elementor-widget-nested-carousel,
body.inge-theme .elementor-widget-loop-carousel,
body.inge-theme .elementor-widget-testimonial-carousel {
	max-width: 100%;
}

@media (max-width: 900px) {
	.news-list--cols-3,
	.news-list--cols-4,
	.news-list--featured.news-list--cols-3,
	.news-list--featured.news-list--cols-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.news-list--masonry,
	.news-list--masonry.news-list--cols-3,
	.news-list--masonry.news-list--cols-4 {
		column-count: 2 !important;
	}

	.news-card--compact .news-card__body {
		grid-template-columns: 1fr;
		gap: 6px;
		padding-block: 14px;
	}

	.news-card--compact .news-card__date {
		justify-self: start;
	}
}

@media (max-width: 640px) {
	.news-list--cols-2,
	.news-list--cols-3,
	.news-list--cols-4,
	.news-list--featured,
	.news-list--featured.news-list--cols-2,
	.news-list--featured.news-list--cols-3,
	.news-list--featured.news-list--cols-4 {
		grid-template-columns: 1fr !important;
	}

	.news-list--masonry,
	.news-list--masonry.news-list--cols-2,
	.news-list--masonry.news-list--cols-3,
	.news-list--masonry.news-list--cols-4 {
		column-count: 1 !important;
	}

.news-card--list-media {
		grid-template-columns: 1fr;
		gap: 16px;
	}
.news-card--list {
		padding-block: 22px;
	}
.news-card--card:where(.news-card--overlay),
:where(.news-card--featured-hero) .news-card__media--cover,
.news-card--featured-hero {
		min-height: 280px;
	}
.news-card__overlay {
		padding: 24px 20px;
	}
}

.news-list .news-card {
	width: 100%;
}

.section--ivory .contact-grid,
.contact-section .contact-grid {
	width: min(var(--container), calc(100% - (var(--page-gutter) * 2)));
	max-width: min(var(--container), calc(100% - (var(--page-gutter) * 2)));
	margin-inline: auto;
}

.publication-rail__track {
	gap: 18px !important;
}

.publication-section .publication-card {
	margin: 0;
}

.research-card__icon svg {
	width: 52px;
	height: 52px;
	display: block;
}

@media (max-width: 768px) {
	.contact-grid,
	.inge-newsletter-form-slot .elementor-form,
	.inge-newsletter-form-slot form {
		grid-template-columns: 1fr;
	}
}
