/*
Theme Name:		Net Blog (child of Ollie)
Description:	NetOps Advance theme for NetBrain. Built by Gallant.studio — Matt Cram and TJ Noel.
Author: 		NetBrain
Author URI:		https://www.netbrain.com
Template: 		ollie
Version: 		1.4.98
Text Domain: 	net-blog
*/



/* =========================================================
	01 FOUNDATION / TOKENS
	Moved to assets/css/base.css (enqueued before this file).
	Full / wide / content → assets/css/layout.css (after this file).
	Shared tools → assets/css/tools.css (after layout).
	Front page specials → assets/css/front-page.css.
	Killed utilities → assets/css/graveyard.css (not loaded).
========================================================= */

/* ===================
	Styles - Base
=====================*/

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	box-sizing: border-box;
	padding-block: 1.15rem;
	background-color: var(--wp--preset--color--main, #000000);
	color: var(--wp--preset--color--base, #ffffff);
}

/*
=========================================================
	Section Groups / Covers: remove automatic WP block gap
	between adjacent full-width sections
=========================================================
*/

.entry-content > :is(.wp-block-group.alignfull, .wp-block-cover.alignfull),
.wp-block-post-content > :is(.wp-block-group.alignfull, .wp-block-cover.alignfull),
main > :is(.wp-block-group.alignfull, .wp-block-cover.alignfull) {
	margin-block-start: 0;
}

.entry-content > :is(.wp-block-group.alignfull, .wp-block-cover.alignfull)
	+ :is(.wp-block-group.alignfull, .wp-block-cover.alignfull),
.wp-block-post-content > :is(.wp-block-group.alignfull, .wp-block-cover.alignfull)
	+ :is(.wp-block-group.alignfull, .wp-block-cover.alignfull),
main > :is(.wp-block-group.alignfull, .wp-block-cover.alignfull)
	+ :is(.wp-block-group.alignfull, .wp-block-cover.alignfull) {
	margin-block-start: 0;
}

/*
=========================================================
	Captions
=========================================================
*/

figcaption,
.wp-element-caption,
.wp-block-image figcaption,
.wp-block-image .wp-element-caption,
.wp-block-video figcaption,
.wp-block-video .wp-element-caption {
	margin-top: 0.5rem;
	margin-bottom: 0;
	text-align: left;
	color: var(--wp--preset--color--primary, #500EEE);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.875rem;
	font-style: normal;
	font-weight: 400;
	line-height: 1.5;
	text-transform: none;
}

/* -----------------------------------------
	Core List Items Block (Overrides)
------------------------------------------ */

.entry-content ul li,
.entry-content ol li,
.wp-block-post-content ul li,
.wp-block-post-content ol li {
	margin-bottom: var(--list-item-spacing) !important;
}

/* -----------------------------------------
	Core Video Block
------------------------------------------ */

.wp-block-video figcaption,
.wp-block-video .wp-element-caption {
	text-align: left;
	text-transform: uppercase;
	font-size: 1.125rem;
	font-family: var(--wp--preset--font-family--mono);
}

/* =========================================================
	02 HEADER / NAVIGATION
========================================================= */

/* =========================================================
	Typography: headings use Geist bold (700). Nested strong/b inherit
	so a bold span inside a heading does not jump to a missing weight.
========================================================= */

:is(h1, h2, h3, h4, h5, h6, .wp-block-heading) :is(strong, b) {
	font-weight: inherit;
}

/* Header + Footer navigation uses mono (Share Tech Mono). */
header :is(.wp-block-navigation, nav) :is(.wp-block-navigation-item__content, a),
footer :is(.wp-block-navigation, nav) :is(.wp-block-navigation-item__content, a) {
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 400;
}

/* Site logo: ensure SVG/img fills its wrapper width. */
.wp-block-site-logo a,
.wp-block-site-logo img,
.wp-block-site-logo svg {
	max-width: 100%;
	width: 100%;
	height: auto;
}

/*
* Shared NetBrain wordmark sizing.
* Fluid middle: ~320px → 108px, ~900px → 156px (a step under the old 120–178).
*/
.nb-logo,
.netbrain-logo {
	display: block;
	flex: 0 0 auto;
	max-width: min(156px, 100%);
	color: inherit;
	line-height: 0;
	text-decoration: none;
}

.nb-logo svg,
.netbrain-logo svg,
.nb-logo .icon-container,
.netbrain-logo > .icon-container {
	display: block;
	width: clamp(108px, calc(80px + 8.5vw), 156px);
	max-width: 100%;
	height: auto;
}

/*
=========================================================
	Theme-owned header chrome shell (inc/site-chrome.php)
	header.site-header → .header-layout (wide) → logo + menu panel
	Menu panel / links → assets/css/menu.css
=========================================================
*/

.header-layout {
	box-sizing: border-box;
	display: flex;
	align-items: stretch;
	width: 100%;
	gap: clamp(1.5em, 0.5em + 3.5vw, 4em);
}

@media (max-width: 899px) {

	.header-layout {
		align-items: center;
		/* gap tuned in menu.css with the mobile chrome */
	}
}

/*
=========================================================
	Footer (theme-owned)
=========================================================
*/

.site-footer-inner {
	box-sizing: border-box;
	padding-block: var(--wp--preset--spacing--large, 2rem);
	background: var(--wp--preset--color--main, #000);
	color: var(--wp--preset--color--base, #fff);
}

.nb-footer-bar {
	box-sizing: border-box;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--small, 1rem);
}

.footer-social {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--large, 2rem);
	color: var(--wp--preset--color--main-accent, #9390df);
	font-size: var(--wp--preset--font-size--small);
	text-transform: uppercase;
}

.footer-social__link,
.footer-social__label {
	color: inherit;
	text-decoration: none;
}

.footer-social__link:hover,
.footer-social__link:focus-visible {
	text-decoration: underline;
}

/* Footer layout — wordmark + © / rule / menu (markup: inc/site-chrome.php) */
.site-footer {
	font-family: var(--wp--preset--font-family--mono);
}

.site-footer .site-footer-inner {
	padding-block-start: clamp(2rem, 1.25rem + 3vw, 4rem);
}

.site-footer .nb-footer-bar {
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
	gap: clamp(1.75rem, 1.25rem + 2vw, 2.75rem);
}

.site-footer .nb-logo--footer {
	box-sizing: border-box;
	color: var(--wp--preset--color--purple, #493597);
	flex: 0 0 auto;
	align-self: flex-start;
	margin-inline: 0;
	max-width: min(410px, 100%);
	width: 100%;
}

.site-footer .nb-logo--footer svg {
	display: block;
	width: 100%;
	max-width: none;
	height: auto;
}

.site-footer .nb-footer-meta {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	/* Tight air after © before the rule; social stays pushed right via margin-left: auto */
	gap: 0.5rem;
	width: 100%;
	color: var(--wp--preset--color--main-accent, #9390df);
	font-size: var(--wp--preset--font-size--small);
	text-transform: uppercase;
}

.site-footer .nb-footer-copyright {
	flex: 0 0 auto;
	margin: 0;
	color: inherit;
	font-family: inherit;
	font-size: inherit;
}

.site-footer .nb-footer-meta__rule {
	box-sizing: border-box;
	flex: 1 1 auto;
	align-self: center;
	min-width: 1.5rem;
	margin-inline-end: clamp(1rem, 2vw, 1.5rem);
	height: 0;
	border: 0;
	border-top: 1px solid currentColor;
	opacity: 0.55;
}

.site-footer .nb-footer-bar .footer-social {
	flex: 0 0 auto;
	justify-content: center;
	gap: clamp(1.25rem, 2.5vw, 2rem);
	width: auto;
	margin-left: auto;
}

@media (max-width: 899px) {
	.site-footer .nb-footer-bar {
		gap: 1.25rem;
	}

	.site-footer .nb-footer-meta {
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 0.5em;
	}

	.site-footer .nb-footer-copyright,
	.site-footer .nb-footer-bar .footer-social .footer-social__link {
		display: flex;
		flex: 0 0 auto;
		align-items: center;
		gap: 0.5rem;
		width: 100%;
	}

	/* Same hairline as desktop meta rule: label → opposite margin */
	.site-footer .nb-footer-copyright::after,
	.site-footer .nb-footer-bar .footer-social .footer-social__link::after {
		content: '';
		box-sizing: border-box;
		flex: 1 1 auto;
		align-self: center;
		min-width: 1.5rem;
		height: 0;
		border: 0;
		border-top: 1px solid currentColor;
		opacity: 0.55;
	}

	.site-footer .nb-footer-meta__rule {
		display: none;
	}

	.site-footer .nb-footer-bar .footer-social {
		display: flex;
		flex: 0 0 auto;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		justify-content: flex-start;
		gap: 0.5em;
		width: 100%;
		margin-left: 0;
		min-width: 0;
	}
}

header .wp-block-navigation {
	margin-top: 0;
}

/*
=========================================================
	Mobile menu / overlay
	Moved to assets/css/menu.css (enqueued after this file).
=========================================================
*/

/* Header / article column air: --nb-edge on Align wide (layout.css). */

/* Footer sits above transition art / plane layers. */
.site-footer,
.site-footer .site-footer-inner {
	position: relative;
	z-index: 999;
}

/* Logo: kill inherited motion so the wordmark never animates. */
.nb-logo,
.nb-logo *,
.logo * {
	transition: none !important;
	transform: none !important;
}


/* Remove the applied margin to the navigation block in the header */
header .wp-block-navigation {
	margin-top: 0 !important;
}


/* =========================================================
	06 ACCORDION COMPONENT
========================================================= */

/*
==========================================
	Accordion Updates
	+ / – Open close indicators
==========================================
*/


.wp-block-accordion-heading__toggle {
	display: grid;
	grid-template-columns: 2.5rem minmax(0, 1fr);
	align-items: center;
	column-gap: 0.5rem;
	width: 100%;
	font-family: var(--wp--preset--font-family--mono);
	text-align: left;
}

/* Hide the default + text and use our own indicator */
.wp-block-accordion-heading__toggle-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	width: 1.5rem;
	min-width: 1.5rem;
	height: 1.5rem;

	font-size: 0;
	line-height: 1;

	transform: none !important;
	transition: none !important;
}

/* Closed state: + */
.wp-block-accordion-heading__toggle-icon::before {
	content: "+";
	display: block;

	color: currentColor;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--global-font-size-24px);
	font-weight: var(--global-font-weight-regular);
	line-height: 1;

	transform: translate(2px, -1px);
}

/* Open state: – */
.wp-block-accordion-heading__toggle[aria-expanded="true"]
.wp-block-accordion-heading__toggle-icon::before,
.wp-block-accordion-heading__toggle[aria-pressed="true"]
.wp-block-accordion-heading__toggle-icon::before {
	content: "–";
	color: currentColor;

	/* Minus usually needs less vertical lift than plus */
	transform: translate(2px, 0px);
}

/* Title alignment */
.wp-block-accordion-heading__toggle-title {
	display: block;
	line-height: 1.2;
}

/*
==========================================
	Accordion hover state
	- Background tint
	- No underline
==========================================
*/

.wp-block-accordion {
	--accordion-hover-tint: rgba(0, 0, 0, 0.12);
}

/* Remove underline from the button/title */
.wp-block-accordion-heading__toggle,
.wp-block-accordion-heading__toggle:hover,
.wp-block-accordion-heading__toggle:focus,
.wp-block-accordion-heading__toggle:focus-visible,
.wp-block-accordion-heading__toggle-title,
.wp-block-accordion-heading__toggle-title:hover {
	text-decoration: none !important;
}

/* Create a positioning context for the tint */
.wp-block-accordion-heading {
	position: relative;
	overflow: hidden;
}

/* Keep the clickable button above the tint */
.wp-block-accordion-heading__toggle {
	position: relative;
	z-index: 1;
	background: transparent;
	transition: none !important;
}

/* Tint overlay */
.wp-block-accordion-heading::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: var(--accordion-hover-tint);
	opacity: 0;
	pointer-events: none;
	transition: none !important;
}

/* Hover/focus: show tint instantly */
.wp-block-accordion-item:hover .wp-block-accordion-heading::before,
.wp-block-accordion-heading:focus-within::before {
	opacity: 1;
}

/* Preserve existing text/icon color */
.wp-block-accordion-item:hover .wp-block-accordion-heading__toggle,
.wp-block-accordion-item:hover .wp-block-accordion-heading__toggle-title,
.wp-block-accordion-item:hover .wp-block-accordion-heading__toggle-icon::before {
	color: inherit !important;
}
/* -----------------------------------------
	Core Accordion – remove gaps + clean panel spacing
------------------------------------------ */

/* 1) Remove "block spacing / gap" between accordion items */
.wp-block-accordion.is-layout-flow,
.wp-block-accordion.is-layout-constrained,
.wp-block-accordion.is-layout-flex {
	gap: 0 !important;
	row-gap: 0 !important;
	column-gap: 0 !important;

	/* Some themes use this variable to drive flow spacing */
	--wp--style--block-gap: 0px;
}

/* Flow layout adds margin between direct children */
.wp-block-accordion.is-layout-flow > * + * {
	margin-block-start: 0 !important;
}

/* Ensure items themselves aren't contributing margin */
.wp-block-accordion-item {
	margin: 0 !important;
}

/* If each item has a 1px border, this prevents double borders by pulling the next item up by 1px. */
.wp-block-accordion-item + .wp-block-accordion-item {
	margin-top: -1px !important;
}

/* Also remove default heading margins that can create internal gaps */
.wp-block-accordion-heading {
	margin: 0 !important;
}

/*  Remove extra gap when expanded (panel spacing) */
.wp-block-accordion-panel {
	margin: 0 !important;
}

/* Normalize spacing inside the panel so the first/last elements don't create a gap */
.wp-block-accordion-panel > *:first-child {
	margin-top: 0 !important;
}

.wp-block-accordion-panel > *:last-child {
	margin-bottom: 0 !important;
}



/* =========================================================
	07 NEWS / POSTS / ARCHIVES
========================================================= */

/* External post links */
a.is-external-link::after,
.external-source-button.is-external-link::after {
	content: "↗ EXTERNAL";
	display: inline-block;
	margin-left: 0.25em;
	padding: 0.5em 1em;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base, #FFFFFF);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.75rem;
	line-height: 1;
	text-transform: uppercase;
	vertical-align: middle;
}

.external-source-notice {
	margin-bottom: var(--wp--preset--spacing--medium);
}
/* Archive: back link to News/posts page */
.view-all-news-link {
	margin: 0 0 var(--wp--preset--spacing--medium) 0;
}
.view-all-news-link a {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	padding: 0.35em 0.65em;
	/* border-radius: 99em; */
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base, #FFFFFF);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 1rem;
	line-height: 1;
	text-decoration: none;
	text-transform: capitalize;
}
.view-all-news-link a::before {
	content: "←";
	display: inline-block;
	line-height: 1;
}
.view-all-news-link a:hover {
	text-decoration: none;
	filter: brightness(0.95);
}
.wp-block-query-pagination {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 1.25rem;

	margin-top: var(--wp--preset--spacing--large);
	color: var(--wp--preset--color--secondary, #000000);

	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xx-small);
	font-style: normal;
	font-weight: 400;
	line-height: 1;
	text-transform: uppercase;
}

.wp-block-query-pagination-numbers {
	display: inline-flex;
	align-items: center;
	gap: 1.25rem;

	margin: 0;
	font-size: inherit !important;
	line-height: 1;
}

.wp-block-query-pagination .page-numbers,
.wp-block-query-pagination .wp-block-query-pagination-next,
.wp-block-query-pagination .wp-block-query-pagination-previous {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 1.75rem;
	min-height: 1.75rem;

	color: var(--wp--preset--color--secondary, #000000) !important;
	background: transparent;

	font-size: inherit !important;
	font-weight: 400;
	line-height: 1;
	text-decoration: none !important;

	border: 0;
	border-radius: 0;
	box-shadow: none;
	transition: none !important;
}

/* Current page box */
.wp-block-query-pagination .page-numbers.current {
	color: var(--wp--preset--color--base, #FFFFFF) !important;
	background: var(--wp--preset--color--secondary, #000000);

	padding: 0.55rem 0.7rem;
	min-width: 2rem;
	min-height: 2rem;
}

/* Dots */
.wp-block-query-pagination .page-numbers.dots {
	min-width: auto;
	padding-inline: 0.25rem;
	color: var(--wp--preset--color--secondary, #000000) !important;
}

/* Hover / focus for links only */
.wp-block-query-pagination a.page-numbers:hover,
.wp-block-query-pagination a.page-numbers:focus-visible,
.wp-block-query-pagination .wp-block-query-pagination-next:hover,
.wp-block-query-pagination .wp-block-query-pagination-next:focus-visible,
.wp-block-query-pagination .wp-block-query-pagination-previous:hover,
.wp-block-query-pagination .wp-block-query-pagination-previous:focus-visible {
	color: var(--wp--preset--color--primary, #500EEE) !important;
	text-decoration: none !important;
	background: transparent;
	outline: none;
}

/* Optional: make Next Page less visually dominant */
.wp-block-query-pagination .wp-block-query-pagination-next,
.wp-block-query-pagination .wp-block-query-pagination-previous {
	min-width: auto;
	padding-inline: 0;
}

/* Mobile */
@media (max-width: 600px) {
	.wp-block-query-pagination {
		flex-wrap: wrap;
		gap: 1rem;
	}

	.wp-block-query-pagination-numbers {
		gap: 1rem;
	}
}
