/**
 * TechNova — self-hosted fonts + layout (no Tailwind / no build step).
 * Font files: Inter, Space Grotesk, JetBrains Mono (SIL Open Font License 1.1).
 */

/* --------------------------------------------------------------------------
   @font-face — files in assets/fonts/ (SIL Open Font License)
   -------------------------------------------------------------------------- */

@font-face {
	font-family: Inter;
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/inter-latin-400-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: Inter;
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("../fonts/inter-latin-500-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: Inter;
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("../fonts/inter-latin-600-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: Inter;
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/inter-latin-700-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Space Grotesk";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/space-grotesk-latin-400-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Space Grotesk";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("../fonts/space-grotesk-latin-500-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Space Grotesk";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("../fonts/space-grotesk-latin-600-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Space Grotesk";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/space-grotesk-latin-700-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "JetBrains Mono";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/jetbrains-mono-latin-400-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "JetBrains Mono";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("../fonts/jetbrains-mono-latin-500-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--tn-bg: #0d1117;
	--tn-surface: #161b22;
	--tn-orange: #ff7a00;
	--tn-orange-hover: #ffa64d;
	--tn-muted: #8b949e;
	--tn-text: #e6edf3;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	line-height: 1.5;
	-webkit-text-size-adjust: 100%;
	tab-size: 4;
}

body {
	margin: 0;
	font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	background-color: var(--tn-bg);
	color: var(--tn-text);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
	height: auto;
}

a {
	color: var(--tn-orange);
	text-underline-offset: 2px;
	transition: color 150ms ease;
}

a:hover {
	color: var(--tn-orange-hover);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: "Space Grotesk", Inter, system-ui, sans-serif;
}

/* Layout utilities (formerly Tailwind-inspired class names in block markup) */

.sticky {
	position: sticky;
}

.top-0 {
	top: 0;
}

.z-50 {
	z-index: 50;
}

.flex {
	display: flex;
}

.flex-col {
	flex-direction: column;
}

.h-full {
	height: 100%;
}

.overflow-hidden {
	overflow: hidden;
}

.mt-auto {
	margin-top: auto;
}

.mb-12 {
	margin-bottom: 3rem;
}

.mb-4 {
	margin-bottom: 1rem;
}

.p-8 {
	padding: 2rem;
}

@media (min-width: 768px) {
	.md\:p-12 {
		padding: 3rem;
	}
}

.min-h-\[50vh\] {
	min-height: 50vh;
}

.border {
	border-width: 1px;
	border-style: solid;
}

.border-b {
	border-bottom-width: 1px;
	border-bottom-style: solid;
}

.border-t {
	border-top-width: 1px;
	border-top-style: solid;
}

.border-white\/10 {
	border-color: rgb(255 255 255 / 0.1);
}

.rounded-2xl {
	border-radius: 1rem;
}

.rounded-xl {
	border-radius: 0.75rem;
}

/* Decorative / section */

.glass {
	background-color: rgb(13 17 23 / 0.85);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}

@supports (backdrop-filter: blur(12px)) {
	.glass {
		background-color: rgb(13 17 23 / 0.62);
	}
}

.hero-bg {
	position: relative;
	overflow: hidden;
	background-color: var(--tn-bg);
	background-image:
		radial-gradient(ellipse 80% 50% at 50% -20%, rgba(255, 122, 0, 0.18), transparent),
		radial-gradient(circle at 100% 0%, rgba(0, 210, 106, 0.08), transparent 40%);
}

.orange-glow-box {
	box-shadow:
		0 0 0 1px rgba(255, 122, 0, 0.15),
		0 20px 50px -20px rgba(255, 122, 0, 0.25);
}

.wp-block-navigation .wp-block-navigation-item__content,
.wp-block-navigation .wp-block-navigation-submenu__toggle {
	color: var(--tn-muted);
}

.wp-block-navigation .wp-block-navigation-item__content:hover,
.wp-block-navigation .wp-block-navigation-submenu__toggle:hover {
	color: #fff;
}

/* Mobile-first nav touch targets + spacing */
.wp-block-navigation .wp-block-navigation-item,
.wp-block-navigation .wp-block-pages-list__item {
	margin: 0;
}

.wp-block-navigation .wp-block-navigation-item__content,
.wp-block-navigation .wp-block-pages-list__item__link,
.wp-block-navigation .wp-block-navigation-submenu__toggle {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 10px 12px;
	border-radius: 0.45rem;
	line-height: 1.25;
}

.wp-block-navigation .wp-block-navigation-item__content:focus-visible,
.wp-block-navigation .wp-block-pages-list__item__link:focus-visible,
.wp-block-navigation .wp-block-navigation-submenu__toggle:focus-visible {
	outline: 2px solid var(--tn-orange);
	outline-offset: 2px;
}

/* Prevent collapsed/overlapping page-list items in nav containers */
@media (min-width: 783px) {
	.wp-block-navigation .wp-block-page-list,
	.wp-block-navigation .wp-block-page-list-list,
	.wp-block-navigation .wp-block-navigation__container {
		display: flex;
		flex-wrap: wrap;
		gap: 0.3rem;
		align-items: center;
	}
}

/* Search & forms in dark theme */

.wp-block-search__input,
input[type="search"] {
	background: var(--tn-surface);
	border: 1px solid rgb(255 255 255 / 0.12);
	border-radius: 0.5rem;
	color: var(--tn-text);
	padding: 0.6rem 1rem;
}

.wp-block-search .wp-block-search__button {
	background: var(--tn-orange);
	color: #111;
	border: none;
	border-radius: 0.5rem;
	padding: 0.6rem 1.1rem;
	cursor: pointer;
	font-weight: 600;
}

.wp-block-search .wp-block-search__button:hover {
	opacity: 0.92;
}

.wp-block-query-pagination a,
.wp-block-query-pagination span {
	color: var(--tn-muted);
}

.wp-block-query-pagination a:hover {
	color: var(--tn-text);
}

.wp-block-post-author__bio {
	color: var(--tn-muted);
	font-size: 0.9375rem;
	line-height: 1.55;
}

/*
 * Post grids: WP usually adds layout classes; reinforce grid so columns never collapse visually.
 */
.wp-block-query .wp-block-post-template:is(.is-layout-grid) {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr));
	column-gap: 1.25rem;
	row-gap: 1.75rem;
	align-items: stretch;
}

.wp-block-query .wp-block-post-template:is(.is-layout-grid) > li {
	margin: 0;
	list-style: none;
}

.site-footer nav.wp-block-navigation {
	flex-wrap: wrap;
	row-gap: 0.65rem;
}

.site-footer ul.wp-block-page-list,
.site-footer ul.wp-block-navigation__container,
.site-footer .wp-block-page-list-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 1.25rem;
	align-items: center;
	justify-content: flex-end;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer ul.wp-block-page-list a,
.site-footer .wp-block-navigation__submenu-container a,
.site-footer .wp-block-navigation-item__content {
	color: var(--tn-muted);
}

@media (max-width: 782px) {
	.wp-block-navigation__responsive-container-open,
	.wp-block-navigation__responsive-container-close {
		min-width: 44px;
		min-height: 44px;
	}

	.wp-block-navigation .wp-block-navigation__container {
		gap: 0.45rem;
	}

	/* Let Gutenberg handle visibility/state in mobile overlay mode. */
	.wp-block-navigation .wp-block-page-list,
	.wp-block-navigation .wp-block-page-list-list {
		display: block;
	}

	.wp-block-navigation__responsive-container {
		padding: 1rem;
	}

	.wp-block-navigation__responsive-container .wp-block-navigation-item__content,
	.wp-block-navigation__responsive-container .wp-block-pages-list__item__link {
		display: flex;
		width: 100%;
	}
}

/* Mobile overlay skin: style Gutenberg menu without overriding its open/close logic */
@media (max-width: 991px) {
	.wp-block-navigation__responsive-container-open {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		color: #e6edf3;
	}

	.wp-block-navigation__responsive-container.is-menu-open {
		position: fixed;
		inset: 0;
		z-index: 9999;
		background-color: rgb(13 17 23 / 0.98) !important;
		padding: 1rem;
		overflow-y: auto;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
		max-width: 640px;
		margin: 0 auto;
		min-height: calc(100vh - 2rem);
		padding: 3.25rem 0.25rem 0.5rem;
		position: relative;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		flex-direction: column;
		align-items: stretch;
		gap: 0.6rem;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-pages-list__item__link,
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
		color: #e6edf3;
		background: rgb(255 255 255 / 0.03);
		border: 1px solid rgb(255 255 255 / 0.08);
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-pages-list__item__link {
		width: 100%;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		position: absolute;
		top: 0.35rem;
		right: 0.35rem;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		color: #e6edf3;
		background: rgb(255 255 255 / 0.08);
		border-radius: 0.45rem;
	}
}

/* Wrapper li from technova_fix_direct_nested_ul_markup() for valid nested submenu lists */
li.technova-submenu-list-item {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}

/* Realtime header search */
.technova-live-search {
	position: relative;
	width: min(100%, 680px);
	margin: 0 auto;
}

.technova-live-search__input {
	width: 100%;
	height: 46px;
	padding: 0.72rem 0.95rem;
	background: rgb(22 27 34 / 0.92);
	color: var(--tn-text);
	border: 1px solid rgb(255 255 255 / 0.14);
	border-radius: 0.7rem;
	font-size: 0.96rem;
}

.technova-live-search__input::placeholder {
	color: var(--tn-muted);
}

.technova-live-search__input:focus-visible {
	outline: 2px solid var(--tn-orange);
	outline-offset: 2px;
}

.technova-live-search__results {
	position: absolute;
	inset: calc(100% + 0.45rem) 0 auto;
	z-index: 80;
	background: rgb(13 17 23 / 0.98);
	border: 1px solid rgb(255 255 255 / 0.12);
	border-radius: 0.7rem;
	padding: 0.35rem;
	box-shadow: 0 20px 45px -18px rgb(0 0 0 / 0.55);
	max-height: min(62vh, 30rem);
	overflow: auto;
}

.technova-live-search__item {
	display: block;
	padding: 0.65rem 0.75rem;
	border-radius: 0.55rem;
	text-decoration: none;
	color: var(--tn-text);
}

.technova-live-search__item:hover,
.technova-live-search__item:focus-visible {
	background: rgb(255 122 0 / 0.1);
	color: #fff;
}

.technova-live-search__title {
	display: block;
	font-family: "Space Grotesk", Inter, system-ui, sans-serif;
	font-weight: 600;
	line-height: 1.3;
}

.technova-live-search__meta {
	display: block;
	font-size: 0.82rem;
	color: var(--tn-muted);
	margin-top: 0.16rem;
}

.technova-live-search__state {
	padding: 0.72rem 0.75rem;
	color: var(--tn-muted);
	font-size: 0.9rem;
}
