/*
 * MRU Core front-end blocks: structure only.
 * Typography is inherited from the theme. Brand values come from custom
 * properties; set them in the design system (Elementor global styles or theme CSS):
 *
 *   --mru-accent, --mru-text, --mru-muted, --mru-border, --mru-surface, --mru-radius, --mru-gap
 */

.mru-impact,
.mru-summary,
.mru-sources,
.mru-related,
.mru-correction {
	--_accent: var(--mru-accent, currentColor);
	--_muted: var(--mru-muted, #5c6068);
	--_border: var(--mru-border, #d8dbe0);
	--_surface: var(--mru-surface, #f6f7f8);
	--_gap: var(--mru-gap, 1rem);
	--_radius: var(--mru-radius, 2px);
	margin-block: calc(var(--_gap) * 1.5);
}

.mru-impact__title,
.mru-summary__title,
.mru-sources__title,
.mru-related__title {
	margin: 0 0 var(--_gap);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--_muted);
}

/* Impact Layer */
.mru-impact {
	padding: var(--_gap) calc(var(--_gap) * 1.25);
	background: var(--_surface);
	border-inline-start: 3px solid var(--_accent);
	border-radius: var(--_radius);
}
.mru-impact__list { margin: 0; display: grid; gap: var(--_gap); }
@media (min-width: 720px) {
	.mru-impact__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mru-impact__item--what-changed,
	.mru-impact__item--why-it-matters,
	.mru-impact__item--what-to-watch { grid-column: 1 / -1; }
}
.mru-impact__label { margin: 0 0 0.25rem; font-weight: 700; font-size: 0.875rem; }
.mru-impact__value { margin: 0; }
.mru-impact__value ul { margin: 0; padding-inline-start: 1.1em; }
.mru-impact__links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 0.75rem; }
.mru-impact__level { text-transform: capitalize; }

/* In 60 seconds */
.mru-summary { padding: var(--_gap); border: 1px solid var(--_border); border-radius: var(--_radius); }
.mru-summary ul { margin: 0; padding-inline-start: 1.1em; }
.mru-summary li + li { margin-top: 0.4rem; }

/* Sources */
.mru-sources__list { margin: 0; padding-inline-start: 1.25em; }
.mru-sources__item + .mru-sources__item { margin-top: 0.5rem; }
.mru-sources__meta { color: var(--_muted); font-size: 0.875em; }
.mru-sources__notes { margin: 0.2rem 0 0; color: var(--_muted); font-size: 0.875em; }

/* Related intelligence */
.mru-related__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.mru-related__item { display: flex; flex-direction: column; gap: 0.15rem; padding: 0.65rem 0; border-top: 1px solid var(--_border); }
.mru-related__item:last-child { border-bottom: 1px solid var(--_border); }
.mru-related__link { font-weight: 600; text-decoration: none; }
.mru-related__link:hover, .mru-related__link:focus-visible { text-decoration: underline; }
.mru-related__meta { color: var(--_muted); font-size: 0.8125rem; }

/* Status label (text always present; colour only reinforces) */
.mru-label {
	display: inline-block;
	padding: 0.15em 0.55em;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--mru-text, inherit);
	border: 1px solid currentColor;
	border-radius: var(--mru-radius, 2px);
}
.mru-label--sponsored { border-style: dashed; }

/* Byline */
.mru-byline { margin: 0; color: var(--mru-muted, #5c6068); font-size: 0.875rem; }
.mru-byline a { color: inherit; font-weight: 600; }

/* Correction note */
.mru-correction { padding: 0.75rem var(--_gap); border: 1px solid var(--_border); border-inline-start: 3px solid var(--_accent); border-radius: var(--_radius); font-size: 0.9375rem; }

/* Breadcrumb */
.mru-breadcrumb__list { display: flex; flex-wrap: wrap; gap: 0.25rem; margin: 0; padding: 0; list-style: none; font-size: 0.8125rem; color: var(--mru-muted, #5c6068); }
.mru-breadcrumb__item + .mru-breadcrumb__item::before { content: "/"; margin-inline-end: 0.25rem; opacity: 0.6; }
.mru-breadcrumb a { color: inherit; }

:where(.mru-impact, .mru-summary, .mru-sources, .mru-related, .mru-breadcrumb) a:focus-visible {
	outline: 2px solid var(--mru-accent, currentColor);
	outline-offset: 2px;
}

@media print {
	.mru-impact, .mru-summary { break-inside: avoid; }
}

/* ------------------------------------------------------------------ Buttons */
.mru-button {
	display: inline-block;
	padding: 0.6em 1.1em;
	font: inherit;
	font-weight: 600;
	color: var(--mru-button-text, #fff);
	background: var(--mru-button-bg, var(--mru-accent, #111));
	border: 1px solid var(--mru-button-bg, var(--mru-accent, #111));
	border-radius: var(--mru-radius, 2px);
	text-decoration: none;
	cursor: pointer;
}
.mru-button:hover, .mru-button:focus-visible { filter: brightness(1.12); }
.mru-button:focus-visible { outline: 2px solid var(--mru-accent, currentColor); outline-offset: 2px; }
.mru-button--quiet { color: inherit; background: transparent; border-color: var(--mru-border, #d8dbe0); }
.mru-button[disabled] { opacity: .6; cursor: progress; }

/* ------------------------------------------------------------- Default layout */
.mru-layout > * + * { margin-block-start: var(--mru-gap, 1rem); }
.mru-layout__kicker { margin: 0; font-size: 0.8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--mru-muted, #5c6068); }
.mru-layout__deck { margin: 0; font-size: 1.25rem; line-height: 1.45; color: var(--mru-muted, #5c6068); }
.mru-layout__figure { margin: 1.25rem 0; }
.mru-layout__image { display: block; width: 100%; height: auto; max-height: 34rem; object-fit: cover; }
.mru-layout--mru_person .mru-layout__figure { max-width: 20rem; }
.mru-layout--mru_person .mru-layout__image { max-height: 26rem; object-position: top; }
.mru-layout__caption { margin-top: .4rem; font-size: .8125rem; color: var(--mru-muted, #5c6068); }
.mru-layout__logo img { max-width: 160px; max-height: 80px; height: auto; width: auto; }
.mru-layout__content { margin-block: 1.5rem; }

.mru-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .75rem 1.5rem; margin: 1rem 0; padding: 1rem 0; border-block: 1px solid var(--mru-border, #d8dbe0); }
.mru-facts dt { font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--mru-muted, #5c6068); }
.mru-facts dd { margin: .15rem 0 0; }

.mru-intro { display: grid; gap: 1.25rem; margin: 1.25rem 0; }
.mru-intro__label { margin: 0 0 .35rem; font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; color: var(--mru-muted, #5c6068); }
.mru-intro__item p { margin: 0; }
.mru-intro__detail { color: var(--mru-muted, #5c6068); font-size: .9375em; }

.mru-ai-note { padding: .75rem var(--mru-gap, 1rem); border: 1px dashed var(--mru-border, #d8dbe0); border-radius: var(--mru-radius, 2px); font-size: .9375rem; }
.mru-ai-note__label { text-transform: uppercase; letter-spacing: .06em; font-size: .75rem; }

/* ------------------------------------------------------------------- Lists */
.mru-list__title { margin: 0 0 var(--mru-gap, 1rem); font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--mru-muted, #5c6068); }
.mru-list__items { list-style: none; margin: 0; padding: 0; }
.mru-list--list .mru-list__item { padding: .65rem 0; border-top: 1px solid var(--mru-border, #d8dbe0); }
.mru-list--list .mru-list__item:last-child { border-bottom: 1px solid var(--mru-border, #d8dbe0); }
.mru-list__link { font-weight: 600; text-decoration: none; }
.mru-list__link:hover, .mru-list__link:focus-visible { text-decoration: underline; }
.mru-list__meta { display: block; margin-top: .15rem; font-size: .8125rem; color: var(--mru-muted, #5c6068); }
.mru-list__excerpt { margin: .35rem 0 0; font-size: .9375rem; }
.mru-list--cards .mru-list__items { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.5rem; }
.mru-list--cards .mru-list__item { display: flex; flex-direction: column; gap: .6rem; }
.mru-list__image img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }

/* -------------------------------------------------------------- Newsletter */
.mru-newsletter { display: grid; gap: .75rem; max-width: 40rem; padding: 1.25rem; border: 1px solid var(--mru-border, #d8dbe0); border-radius: var(--mru-radius, 2px); background: var(--mru-surface, #f6f7f8); }
.mru-newsletter__title { margin: 0; font-size: 1.25rem; }
.mru-newsletter__intro, .mru-newsletter__privacy { margin: 0; font-size: .9375rem; color: var(--mru-muted, #5c6068); }
.mru-newsletter__privacy { font-size: .8125rem; }
.mru-newsletter__products { margin: 0; padding: 0; border: 0; display: grid; gap: .5rem; }
.mru-newsletter__legend { padding: 0; font-weight: 700; margin-bottom: .25rem; }
.mru-newsletter__choice { display: flex; gap: .5rem; align-items: flex-start; }
.mru-newsletter__meta { display: block; font-size: .8125rem; color: var(--mru-muted, #5c6068); font-weight: 400; }
.mru-newsletter__label { font-weight: 600; }
.mru-newsletter__email { width: 100%; padding: .65em .8em; font: inherit; border: 1px solid var(--mru-border, #8c8f94); border-radius: var(--mru-radius, 2px); background: #fff; color: #111; }
.mru-newsletter__hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.mru-newsletter__status { margin: 0; min-height: 1.25em; font-size: .9375rem; }
.mru-newsletter__status--error { font-weight: 600; }
.mru-newsletter-page { max-width: 36rem; margin: 3rem auto; padding: 0 1rem; }

/* --------------------------------------------------------------------- Ads */
.mru-ad { margin: 1.5rem 0; padding: .9rem 1rem; border: 1px solid var(--mru-border, #d8dbe0); border-radius: var(--mru-radius, 2px); background: var(--mru-surface, #f6f7f8); font-size: .9375rem; }
.mru-ad__label { margin: 0 0 .5rem; font-size: .6875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--mru-muted, #5c6068); }
.mru-ad__headline { margin: 0 0 .35rem; font-weight: 700; font-size: 1.0625rem; }
.mru-ad__headline a { color: inherit; }
.mru-ad__text { margin: 0 0 .6rem; }
.mru-ad__cta { margin: 0; }
.mru-ad__image { display: block; width: 100%; height: auto; }

/* ------------------------------------------------------------------- Stack */
.mru-stack__group { margin: 0 0 1.25rem; padding: 0; border: 0; }
.mru-stack__group > legend { padding: 0; margin-bottom: .75rem; font-weight: 700; font-size: 1.0625rem; }
.mru-stack__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem 1.25rem; }
.mru-stack__field { display: grid; gap: .3rem; align-content: start; margin: 0; padding: 0; border: 0; }
.mru-stack__field > label, .mru-stack__field > legend { padding: 0; font-weight: 600; font-size: .9375rem; }
.mru-stack__field select { width: 100%; padding: .55em .6em; font: inherit; border: 1px solid var(--mru-border, #8c8f94); border-radius: var(--mru-radius, 2px); background: #fff; color: #111; }
.mru-stack__check { display: flex; gap: .45rem; align-items: center; font-weight: 400; font-size: .9375rem; }
.mru-stack__actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.mru-stack__privacy, .mru-stack__disclaimer { font-size: .8125rem; color: var(--mru-muted, #5c6068); }
.mru-stack__status { min-height: 1.25em; margin: .5rem 0 0; font-size: .9375rem; }
.mru-stack__results { margin-top: 1.5rem; }
.mru-stack__title { margin: 0 0 .5rem; }
.mru-stack__section { margin-top: 1.5rem; }
.mru-stack__section h3 { margin: 0 0 .5rem; font-size: 1rem; }
.mru-stack__arch { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; margin-top: 1rem; }
.mru-stack__tier { padding: .9rem 1rem; border: 1px solid var(--mru-border, #d8dbe0); border-radius: var(--mru-radius, 2px); }
.mru-stack__tier-title { margin: 0 0 .5rem; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--mru-muted, #5c6068); }
.mru-stack__tier-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.mru-stack__layer--gap { font-weight: 600; }
.mru-stack__layer-status { font-weight: 400; color: var(--mru-muted, #5c6068); }
.mru-stack__gaps { padding-inline-start: 1.1em; }
.mru-stack__gap--high { font-weight: 600; }
.mru-stack__feed { list-style: none; margin: 0; padding: 0; }
.mru-stack__feed-item { padding: .6rem 0; border-top: 1px solid var(--mru-border, #d8dbe0); }
.mru-stack__feed-item a { font-weight: 600; }
.mru-stack__reasons { display: block; font-size: .8125rem; color: var(--mru-muted, #5c6068); }

.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }

/* ------------------------------------------------------------------ Brand logo
   The theme sets no size on the custom logo, and the supplied file is 2172px wide, so it is capped here.
   Used until a Theme Builder header replaces the theme header. */
.site-header .custom-logo-link,
.site-footer .custom-logo-link { display: inline-block; line-height: 0; }
.site-header .custom-logo,
.site-footer .custom-logo { width: 280px; max-width: 100%; height: auto; }
@media (max-width: 600px) {
	.site-header .custom-logo,
	.site-footer .custom-logo { width: 200px; }
}
/* ------------------------------------------------------------------ Martech Landscape directory */
.mru-landscape { display: grid; gap: 1.75rem; }
.mru-landscape__sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.mru-landscape__cats ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.mru-landscape__cat { display: flex; flex-direction: column; gap: .25rem; height: 100%; padding: .85rem 1rem; text-decoration: none; color: inherit; border: 1px solid var(--mru-border, #d8dbe0); border-radius: var(--mru-radius, 2px); }
.mru-landscape__cat:hover, .mru-landscape__cat:focus-visible { border-color: var(--mru-accent, currentColor); }
.mru-landscape__cat.is-active { border-color: var(--mru-accent, currentColor); box-shadow: inset 0 0 0 1px var(--mru-accent, currentColor); }
.mru-landscape__cat-name { font-weight: 650; font-size: .9375rem; line-height: 1.3; }
.mru-landscape__cat-count { font-size: .8125rem; color: var(--mru-muted, #6b7280); font-variant-numeric: tabular-nums; }

.mru-landscape__form { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1rem; align-items: end; padding: 1.25rem; border: 1px solid var(--mru-border, #d8dbe0); border-radius: var(--mru-radius, 2px); }
.mru-landscape__field { display: grid; gap: .3rem; align-content: start; min-width: 0; }
.mru-landscape__field--search { grid-column: 1 / -1; }
.mru-landscape__field label { font-weight: 600; font-size: .9375rem; }
.mru-landscape__field :is(input, select) { width: 100%; min-height: 2.75rem; padding: .55em .7em; font: inherit; color: inherit; background: var(--mru-bg, #fff); border: 1px solid var(--mru-border, #8c8f94); border-radius: var(--mru-radius, 2px); }
.mru-landscape__field :is(input, select):focus-visible { outline: 2px solid var(--mru-accent, currentColor); outline-offset: 1px; }
.mru-landscape__actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.mru-landscape__reset { font-size: .9375rem; }

.mru-landscape__count { margin: 0; font-size: .9375rem; color: var(--mru-muted, #6b7280); font-variant-numeric: tabular-nums; }
.mru-landscape__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
@media (min-width: 640px) { .mru-landscape__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .mru-landscape__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.mru-lv { display: flex; flex-direction: column; min-width: 0; padding: 1.25rem; }
.mru-lv__top { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.mru-lv__logo { position: relative; display: grid; place-items: center; width: 3rem; height: 3rem; overflow: hidden; border-radius: var(--mru-radius, 2px); background: var(--mru-surface, #f1f3f5); }
.mru-lv__mono { font-weight: 800; font-size: .95rem; color: var(--mru-accent, currentColor); }
.mru-lv__logo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: .3rem; background: #fff; }
.mru-lv__logo img[hidden] { display: none; }
.mru-lv__rating { white-space: nowrap; }
.mru-lv__kind { margin-top: 1rem; }
.mru-lv__name { overflow-wrap: anywhere; }
.mru-lv__summary { overflow-wrap: anywhere; }
.mru-lv__facts { display: flex; flex-wrap: wrap; gap: .25rem .9rem; margin: .85rem 0 0; padding: 0; list-style: none; font-size: .8125rem; color: var(--mru-muted, #6b7280); }
.mru-lv__visit { margin-top: auto; padding-top: 1.1rem; text-decoration: none; }
.mru-lv__visit:hover, .mru-lv__visit:focus-visible { text-decoration: underline; }

.mru-landscape__pages ul { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: 0; padding: 0; list-style: none; }
.mru-landscape__page { display: inline-flex; align-items: center; min-height: 2.5rem; min-width: 2.5rem; padding: 0 .85rem; justify-content: center; font-size: .875rem; font-weight: 700; text-decoration: none; border: 1px solid var(--mru-border, #d8dbe0); border-radius: var(--mru-radius, 2px); }
a.mru-landscape__page:hover, a.mru-landscape__page:focus-visible { border-color: var(--mru-accent, currentColor); }
.mru-landscape__page.is-current { color: #fff; background: var(--mru-button-bg, #111); border-color: var(--mru-button-bg, #111); }
.mru-landscape__gap { padding: 0 .25rem; color: var(--mru-muted, #6b7280); }
/* Vendor profile pages */
.mru-lp { display: grid; gap: 1.5rem; max-width: 52rem; }
.mru-lp__head { display: flex; align-items: center; gap: 1rem; }
.mru-lp__logo { width: 4rem; height: 4rem; }
.mru-lp__lead { margin: 0; font-size: 1.125rem; line-height: 1.7; }
.mru-lp .mru-facts { margin: 0; }
.mru-lp__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; }
.mru-lp__back, .mru-lp__note { margin: 0; }
.mru-lp__note { color: var(--mru-muted, #6b7280); }
.mru-lv__links { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; margin-top: auto; padding-top: 1.1rem; }
.mru-lv__links .mru-lv__visit, .mru-lv__links .mru-lv__details { margin-top: 0; padding-top: 0; }
.mru-lv__details { font-weight: 700; text-decoration: none; }
.mru-lv__visit { font-size: .8125rem; }
