/*
 * NC State Block Translator: styles for translated blocks.
 * Colors follow brand.ncsu.edu: Wolfpack Red #CC0000, Wolfpack Black #000000,
 * Reynolds Red #990000, Pyroman Flame #D14905, Hunt Yellow #FAC800 and grays.
 */
/*
 * Specificity: ECE's theme styles body text with selectors such as
 * ".et_pb_post .entry-content .ece-post-body p" and forces font-size with
 * !important. Each selector below ends in :not(#ncst-bt), which adds ID-level
 * specificity so these rules win without depending on theme markup, and font
 * sizes on text elements are marked !important for the same reason.
 */


:root {
	--ncst-bt-red: #cc0000;
	--ncst-bt-dark-red: #990000;
	--ncst-bt-black: #000000;
	--ncst-bt-gray: #5f5f5f;
	--ncst-bt-light: #f2f2f2;
	--ncst-bt-rule: #d9d9d9;
}

/* Header caption and subtitle ------------------------------------------ */
.ncst-bt-header-caption:not(#ncst-bt) {
	margin-top: -0.5em;
	font-size: 0.875rem !important;
	line-height: 1.5;
	color: var(--ncst-bt-gray);
}
.ncst-bt-subtitle:not(#ncst-bt) {
	font-size: 1.25rem !important;
	line-height: 1.5;
	color: var(--ncst-bt-black);
}

/* Shared small label ("Related," "For Immediate Release") ------------- */
.ncst-bt-label:not(#ncst-bt) {
	margin: 0 0 0.75em;
	font-size: 0.8125rem !important;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ncst-bt-red);
}

/* Call-to-action links -------------------------------------------------- */
.ncst-bt-cta:not(#ncst-bt) {
	font-weight: 700;
}
.ncst-bt-cta a:not(#ncst-bt) {
	color: var(--ncst-bt-red);
	text-decoration: none;
}
.ncst-bt-cta a:not(#ncst-bt)::after {
	content: " \2192";
}
.ncst-bt-cta a:hover:not(#ncst-bt),
.ncst-bt-cta a:focus:not(#ncst-bt) {
	color: var(--ncst-bt-dark-red);
	text-decoration: underline;
}

/* Pull quote ------------------------------------------------------------ */
.wp-block-pullquote.ncst-bt-pullquote:not(#ncst-bt) {
	margin: 2em 0;
	padding: 0 0 0 1.25em;
	border: 0;
	border-left: 6px solid var(--ncst-bt-red);
	text-align: left;
}
.wp-block-pullquote.ncst-bt-pullquote blockquote:not(#ncst-bt) {
	margin: 0;
	padding: 0;
	border: 0;
	text-align: left;
}
.wp-block-pullquote.ncst-bt-pullquote p:not(#ncst-bt) {
	margin: 0;
	font-size: 1.5rem !important;
	line-height: 1.35;
	font-weight: 700;
	font-style: normal;
	color: var(--ncst-bt-black);
}

/* Aside widget (floated fact or quote) --------------------------------- */
.ncst-bt-aside:not(#ncst-bt) {
	margin: 0.5em 0 1.5em;
	padding: 1.25em 1.5em;
	background: var(--ncst-bt-light);
	border-top: 4px solid var(--ncst-bt-red);
}
.ncst-bt-aside .wp-block-pullquote.ncst-bt-pullquote:not(#ncst-bt) {
	margin: 0;
	padding: 0;
	border-left: 0;
}
.ncst-bt-aside .wp-block-pullquote.ncst-bt-pullquote blockquote:not(#ncst-bt) {
	text-align: center;
}
.ncst-bt-aside .wp-block-pullquote.ncst-bt-pullquote p:not(#ncst-bt) {
	font-size: 1.25rem !important;
}
@media (min-width: 782px) {
	.ncst-bt-aside:not(#ncst-bt) {
		width: 38%;
		max-width: 340px;
	}
	.ncst-bt-aside--right:not(#ncst-bt) {
		float: right;
		margin-left: 2em;
	}
	.ncst-bt-aside--left:not(#ncst-bt) {
		float: left;
		margin-right: 2em;
	}
}
.ncst-bt-fact-heading:not(#ncst-bt) {
	margin: 0 0 0.5em;
	font-size: 1.25rem !important;
	line-height: 1.3;
	font-weight: 700;
	color: var(--ncst-bt-black);
}
.ncst-bt-fact-text:not(#ncst-bt) {
	margin: 0 0 0.75em;
	font-size: 1rem !important;
	line-height: 1.5;
}
.ncst-bt-fact > :last-child:not(#ncst-bt) {
	margin-bottom: 0;
}

/* Highlight (related story card) ---------------------------------------- */
.ncst-bt-highlight:not(#ncst-bt) {
	clear: both;
	margin: 2em 0;
	padding: 1.5em;
	border: 1px solid var(--ncst-bt-rule);
	border-top: 4px solid var(--ncst-bt-red);
}
.ncst-bt-highlight .ncst-bt-highlight-image:not(#ncst-bt) {
	margin: 0 0 1em;
}
.ncst-bt-highlight .ncst-bt-highlight-image img:not(#ncst-bt) {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
.ncst-bt-highlight-heading:not(#ncst-bt) {
	margin: 0 0 0.5em;
	font-size: 1.375rem !important;
	line-height: 1.3;
	font-weight: 700;
}
.ncst-bt-highlight-heading a:not(#ncst-bt) {
	color: var(--ncst-bt-black);
	text-decoration: none;
}
.ncst-bt-highlight-heading a:hover:not(#ncst-bt),
.ncst-bt-highlight-heading a:focus:not(#ncst-bt) {
	color: var(--ncst-bt-red);
	text-decoration: underline;
}
.ncst-bt-highlight > :last-child:not(#ncst-bt) {
	margin-bottom: 0;
}
@media (min-width: 782px) {
	.ncst-bt-highlight:not(#ncst-bt) {
		display: grid;
		grid-template-columns: 40% 1fr;
		column-gap: 1.5em;
		align-items: start;
	}
	.ncst-bt-highlight > *:not(#ncst-bt) {
		grid-column: 2;
	}
	.ncst-bt-highlight > .ncst-bt-highlight-image:not(#ncst-bt) {
		grid-column: 1;
		grid-row: 1 / span 4;
		margin: 0;
	}
}

/* Related stories -------------------------------------------------------- */
.ncst-bt-related:not(#ncst-bt) {
	clear: both;
	margin: 2em 0;
	padding: 1.25em 1.5em;
	border-top: 4px solid var(--ncst-bt-red);
	background: var(--ncst-bt-light);
}
.ncst-bt-related ul:not(#ncst-bt) {
	margin: 0;
	padding-left: 1.25em;
}
.ncst-bt-related li:not(#ncst-bt) {
	margin-bottom: 0.5em;
	font-weight: 700;
}
.ncst-bt-related li a:not(#ncst-bt) {
	color: var(--ncst-bt-black);
}

/* Media contacts --------------------------------------------------------- */
.ncst-bt-contacts:not(#ncst-bt) {
	clear: both;
	margin: 2.5em 0 1em;
	padding-top: 1em;
	border-top: 1px solid var(--ncst-bt-rule);
	font-size: 0.9375rem !important;
}
.ncst-bt-contacts ul:not(#ncst-bt) {
	margin: 0;
	padding: 0;
	list-style: none;
}
.ncst-bt-contacts li:not(#ncst-bt) {
	margin-bottom: 0.25em;
	font-size: 0.9375rem !important;
}

/* Image grid ------------------------------------------------------------- */
.wp-block-columns.ncst-bt-image-grid:not(#ncst-bt) {
	gap: 1em;
	margin: 1.5em 0;
}
.ncst-bt-image-grid .wp-block-image:not(#ncst-bt) {
	margin: 0 0 1em;
}
.ncst-bt-image-grid .wp-block-image:last-child:not(#ncst-bt) {
	margin-bottom: 0;
}
.ncst-bt-image-grid .wp-block-image img:not(#ncst-bt) {
	display: block;
	width: 100%;
	height: auto;
}

/* Sandwich narrative (secondary story) ----------------------------------- */
.ncst-bt-sandwich:not(#ncst-bt) {
	clear: both;
	margin: 2.5em 0;
	padding: 1.5em;
	background: var(--ncst-bt-light);
	border-left: 6px solid var(--ncst-bt-red);
}
.ncst-bt-sandwich .ncst-bt-sandwich-image:not(#ncst-bt) {
	margin: 0 0 1em;
}
.ncst-bt-sandwich .ncst-bt-sandwich-image img:not(#ncst-bt) {
	display: block;
	width: 100%;
	height: auto;
}
.ncst-bt-sandwich > :last-child:not(#ncst-bt) {
	margin-bottom: 0;
}
.ncst-bt-sandwich .wp-block-details summary:not(#ncst-bt) {
	cursor: pointer;
	font-weight: 700;
	color: var(--ncst-bt-red);
}
.ncst-bt-sandwich .wp-block-details[open] summary:not(#ncst-bt) {
	margin-bottom: 0.75em;
}

/* Timeline --------------------------------------------------------------- */
.wp-block-list.ncst-bt-timeline:not(#ncst-bt) {
	margin: 1.5em 0;
	padding: 0 0 0 1.5em;
	list-style: none;
	border-left: 3px solid var(--ncst-bt-red);
}
.ncst-bt-timeline li:not(#ncst-bt) {
	position: relative;
	margin: 0 0 1.25em;
}
.ncst-bt-timeline li:not(#ncst-bt)::before {
	content: "";
	position: absolute;
	left: calc(-1.5em - 8px);
	top: 0.4em;
	width: 13px;
	height: 13px;
	border-radius: 50%;
	background: var(--ncst-bt-red);
}
.ncst-bt-timeline-date:not(#ncst-bt) {
	display: block;
	color: var(--ncst-bt-red);
}

/* Featured people -------------------------------------------------------- */
.ncst-bt-people:not(#ncst-bt) {
	clear: both;
	margin: 2em 0;
}
.ncst-bt-people-grid:not(#ncst-bt) {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 1.5em;
}
.ncst-bt-person > *:not(#ncst-bt) {
	margin: 0 0 0.35em;
}
.ncst-bt-person .ncst-bt-headshot:not(#ncst-bt) {
	margin-bottom: 0.75em;
}
.ncst-bt-person .ncst-bt-headshot img:not(#ncst-bt) {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}
.ncst-bt-person-name:not(#ncst-bt) {
	font-weight: 700;
}
.ncst-bt-person-title:not(#ncst-bt) {
	font-size: 0.9375rem !important;
	line-height: 1.45;
	color: var(--ncst-bt-gray);
}
