/*
Theme Name: Helvetix
Author: Helvetix Design Co
Description: A Swiss-minimal, Bauhaus-inspired, typography-driven WordPress theme. Pure black on white, one sparing yellow accent, zero radius, zero shadow, zero noise.
Version: 1.0.0
Text Domain: helvetix
*/

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;700&display=swap');

/* =========================================================
 * 0. Design tokens
 * ========================================================= */
:root {
	--hvx-black: #000000;
	--hvx-white: #ffffff;
	--hvx-gray: #666666;
	--hvx-gray-lt: #999999;
	--hvx-yellow: #FFD600;
	--hvx-line: #000000;
	--hvx-line-soft: #e2e2e2;

	--hvx-max: 1400px;
	--hvx-pad: 40px;
	--hvx-gap-col: 32px;
	--hvx-section: 120px;
	--hvx-section-lg: 160px;

	--hvx-fs-micro: 11px;
	--hvx-fs-small: 13px;
	--hvx-fs-body: 16px;
	--hvx-fs-lead: 19px;
	--hvx-ls-wide: 0.14em;
	--hvx-ls-mega: -0.03em;

	--hvx-font: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* =========================================================
 * 1. Base / reset — ZERO radius, ZERO shadow everywhere
 * ========================================================= */
*,
*::before,
*::after {
	border-radius: 0 !important;
	box-shadow: none !important;
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--hvx-white);
	color: var(--hvx-black);
	font-family: var(--hvx-font);
	font-size: var(--hvx-fs-body);
	font-weight: 400;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

body.hvx-body {
	background: var(--hvx-white);
}

img {
	max-width: 100%;
	height: auto;
	display: block;
	border: 0;
}

a {
	color: var(--hvx-black);
	text-decoration: none;
}

hr {
	border: 0;
	border-top: 1px solid var(--hvx-black);
	margin: var(--hvx-section) 0;
}

::selection {
	background: var(--hvx-yellow);
	color: var(--hvx-black);
}

:focus-visible {
	outline: 2px solid var(--hvx-black);
	outline-offset: 3px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* =========================================================
 * 2. Typography — massive Swiss scale
 * ========================================================= */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--hvx-font);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: var(--hvx-ls-mega);
	margin: 0 0 0.5em;
	color: var(--hvx-black);
}

h1 { font-size: clamp(2.6rem, 6vw, 5rem); }
h2 { font-size: clamp(2rem, 4.4vw, 3.6rem); }
h3 { font-size: clamp(1.4rem, 2.4vw, 2rem); letter-spacing: -0.02em; }
h4 { font-size: clamp(1.15rem, 1.6vw, 1.4rem); letter-spacing: -0.01em; }
h5 { font-size: 1rem; }
h6 { font-size: var(--hvx-fs-small); }

p {
	margin: 0 0 1.2em;
	line-height: 1.7;
}

.hvx-display {
	font-size: clamp(3rem, 8vw, 7rem);
	font-weight: 700;
	line-height: 0.94;
	letter-spacing: -0.045em;
	margin: 0;
}

.hvx-mega {
	font-size: clamp(4rem, 15vw, 10rem);
	font-weight: 700;
	line-height: 0.82;
	letter-spacing: -0.05em;
}

.hvx-lead {
	font-size: var(--hvx-fs-lead);
	font-weight: 300;
	line-height: 1.6;
	color: var(--hvx-gray);
	max-width: 60ch;
}

.hvx-kicker,
.hvx-eyebrow {
	display: block;
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-black);
	margin-bottom: 22px;
}

.hvx-eyebrow::before {
	content: "";
	display: inline-block;
	width: 28px;
	height: 1px;
	background: var(--hvx-black);
	vertical-align: middle;
	margin-right: 14px;
}

.hvx-mono-label {
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
}

.hvx-muted { color: var(--hvx-gray); }

/* =========================================================
 * 3. Layout — strict 12-column grid, extreme spacing
 * ========================================================= */
.hvx-wrap {
	width: 100%;
	max-width: var(--hvx-max);
	margin: 0 auto;
	padding: 0 var(--hvx-pad);
}

.hvx-grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 0 var(--hvx-gap-col);
}

.hvx-section {
	padding: var(--hvx-section) 0;
}

.hvx-section--lg {
	padding: var(--hvx-section-lg) 0;
}

.hvx-section--tight {
	padding: 80px 0;
}

.hvx-rule {
	border: 0;
	border-top: 1px solid var(--hvx-black);
	margin: 0;
}

.hvx-rule--thick {
	border-top: 2px solid var(--hvx-black);
}

.hvx-main {
	display: block;
}

/* =========================================================
 * 4. Buttons — rectangular, uppercase, one yellow
 * ========================================================= */
.hvx-btn {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 16px 30px;
	font-family: var(--hvx-font);
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	line-height: 1;
	border: 1px solid var(--hvx-black);
	background: var(--hvx-white);
	color: var(--hvx-black);
	cursor: pointer;
	text-align: center;
}

.hvx-btn:hover {
	background: var(--hvx-black);
	color: var(--hvx-white);
}

.hvx-btn--yellow {
	background: var(--hvx-yellow);
	border-color: var(--hvx-black);
	color: var(--hvx-black);
	font-weight: 700;
}

.hvx-btn--yellow:hover {
	background: var(--hvx-black);
	color: var(--hvx-yellow);
}

.hvx-btn--solid {
	background: var(--hvx-black);
	border-color: var(--hvx-black);
	color: var(--hvx-white);
}

.hvx-btn--solid:hover {
	background: var(--hvx-yellow);
	color: var(--hvx-black);
	border-color: var(--hvx-black);
}

.hvx-btn--ghost {
	background: transparent;
	border-color: var(--hvx-black);
	color: var(--hvx-black);
}

.hvx-btn--lg {
	padding: 22px 44px;
	font-size: var(--hvx-fs-small);
}

.hvx-btn .hvx-icon {
	width: 16px;
	height: 16px;
}

/* Text link with yellow underline on hover */
.hvx-textlink {
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	border-bottom: 1px solid transparent;
	padding-bottom: 2px;
}

.hvx-textlink:hover {
	border-bottom-color: var(--hvx-yellow);
}

/* =========================================================
 * 5. Topbar — no background, no border, floating text
 * ========================================================= */
.hvx-topbar {
	background: transparent;
	border: 0;
	padding: 34px 0 30px;
	position: relative;
	z-index: 40;
}

.hvx-topbar__inner {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 40px;
	flex-wrap: wrap;
}

.hvx-brand {
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1;
	color: var(--hvx-black);
	text-transform: none;
}

.hvx-brand:hover { color: var(--hvx-black); }

.hvx-brand__mark {
	display: inline-block;
	width: 12px;
	height: 12px;
	background: var(--hvx-black);
	border: 1px solid var(--hvx-black);
	flex: 0 0 auto;
}

.hvx-brand__img {
	height: 26px;
	width: auto;
}

/* Nav: uppercase, 11px, letter-spaced, yellow underline on hover */
.hvx-nav {
	flex: 1 1 auto;
	display: flex;
	justify-content: flex-end;
}

.hvx-nav__list {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 34px;
	margin: 0;
	padding: 0;
}

.hvx-nav__list li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.hvx-nav__list a {
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-black);
	border-bottom: 2px solid transparent;
	padding-bottom: 4px;
	display: inline-block;
}

.hvx-nav__list a:hover,
.hvx-nav__list .current-menu-item > a,
.hvx-nav__list .current_page_item > a {
	border-bottom-color: var(--hvx-yellow);
}

.hvx-header-actions {
	display: flex;
	align-items: center;
	gap: 26px;
	flex: 0 0 auto;
}

/* Language switcher — inline, plain */
.hvx-langswitch {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
}

.hvx-langswitch a {
	color: var(--hvx-gray-lt);
	border-bottom: 2px solid transparent;
	padding-bottom: 2px;
}

.hvx-langswitch a:hover { color: var(--hvx-black); }

.hvx-langswitch a.active {
	color: var(--hvx-black);
	border-bottom-color: var(--hvx-yellow);
}

.hvx-langsep { color: var(--hvx-line-soft); }

.hvx-topbar__rule {
	border: 0;
	border-top: 1px solid var(--hvx-black);
	margin: 26px 0 0;
}

/* =========================================================
 * 6. Hero — PURE TYPOGRAPHY, left-aligned, right 40% empty
 * ========================================================= */
.hvx-hero {
	padding: 90px 0 0;
	background-image:
		linear-gradient(rgba(255,255,255,0.70), rgba(255,255,255,0.85)),
		url("assets/images/banner-hero.png");
	background-size: cover, cover;
	background-position: center center, center center;
	background-repeat: no-repeat, no-repeat;
}

.hvx-hero__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 0 var(--hvx-gap-col);
}

.hvx-hero__text {
	grid-column: 1 / span 8;
}

.hvx-hero__spacer {
	grid-column: 9 / span 4;
}

.hvx-hero__title {
	font-size: clamp(3rem, 8vw, 7rem);
	font-weight: 700;
	line-height: 0.92;
	letter-spacing: -0.045em;
	margin: 0 0 40px;
}

.hvx-hero__title .hvx-hero__line-a,
.hvx-hero__title .hvx-hero__line-b {
	display: block;
}

.hvx-hero__title .hvx-hero__line-b {
	color: var(--hvx-gray);
}

.hvx-hero__sub {
	font-size: var(--hvx-fs-lead);
	font-weight: 300;
	line-height: 1.6;
	color: var(--hvx-gray);
	max-width: 46ch;
	margin: 0 0 46px;
}

.hvx-hero__cta {
	display: flex;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
	margin-bottom: 70px;
}

.hvx-hero__note {
	font-size: var(--hvx-fs-micro);
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-gray);
}

/* Stats — plain, ruled columns */
.hvx-stats {
	grid-column: 1 / span 12;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid var(--hvx-black);
	margin-top: 20px;
}

.hvx-stat {
	padding: 34px 30px 34px 0;
	border-right: 1px solid var(--hvx-line-soft);
}

.hvx-stat:last-child { border-right: 0; }

.hvx-stat__val {
	display: block;
	font-size: clamp(2rem, 4vw, 3.2rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.03em;
	margin-bottom: 12px;
}

.hvx-stat__label {
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-gray);
}

/* Banner — image BELOW hero text, thin black border */
.hvx-banner {
	padding: 70px 0 0;
}

.hvx-banner__frame {
	border: 1px solid var(--hvx-black);
	padding: 12px;
	background: var(--hvx-white);
	overflow: hidden;
}

.hvx-banner__frame img {
	width: 100%;
	height: auto;
	display: block;
	filter: grayscale(100%) contrast(1.05);
}

.hvx-banner__caption {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	font-size: var(--hvx-fs-micro);
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-gray);
	margin-top: 14px;
}

/* =========================================================
 * 7. Ticker — plain scrolling text (ONLY animated element)
 * ========================================================= */
.hvx-ticker {
	border-top: 1px solid var(--hvx-black);
	border-bottom: 1px solid var(--hvx-black);
	overflow: hidden;
	background: var(--hvx-white);
	padding: 0;
	margin-top: var(--hvx-section);
}

.hvx-ticker__inner {
	display: flex;
	align-items: stretch;
}

.hvx-ticker__label {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--hvx-black);
	color: var(--hvx-white);
	font-size: var(--hvx-fs-micro);
	font-weight: 700;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	padding: 18px 24px;
}

.hvx-ticker__dot {
	width: 8px;
	height: 8px;
	background: var(--hvx-yellow);
	display: inline-block;
}

.hvx-ticker__viewport {
	flex: 1 1 auto;
	overflow: hidden;
	display: flex;
	align-items: center;
}

.hvx-ticker__track {
	display: flex;
	align-items: center;
	gap: 0;
	white-space: nowrap;
	will-change: transform;
	animation: hvx-marquee 38s linear infinite;
}

.hvx-ticker:hover .hvx-ticker__track {
	animation-play-state: paused;
}

.hvx-ticker__item {
	display: inline-flex;
	align-items: center;
	gap: 22px;
	padding: 18px 34px;
	font-size: var(--hvx-fs-small);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-black);
}

.hvx-ticker__item::after {
	content: "";
	width: 5px;
	height: 5px;
	background: var(--hvx-black);
	display: inline-block;
}

@keyframes hvx-marquee {
	from { transform: translate3d(0, 0, 0); }
	to   { transform: translate3d(-50%, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
	.hvx-ticker__track { animation: none; }
	html { scroll-behavior: auto; }
}


/* =========================================================
 * 8. Section head
 * ========================================================= */
.hvx-sechead {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 0 var(--hvx-gap-col);
	align-items: end;
	border-bottom: 1px solid var(--hvx-black);
	padding-bottom: 34px;
	margin-bottom: 0;
}

.hvx-sechead__title {
	grid-column: 1 / span 7;
}

.hvx-sechead__title h2 {
	margin: 0;
}

.hvx-sechead__lead {
	grid-column: 8 / span 5;
}

.hvx-sechead__lead p {
	margin: 0;
	font-size: var(--hvx-fs-lead);
	font-weight: 300;
	line-height: 1.6;
	color: var(--hvx-gray);
}

/* =========================================================
 * 9. Capabilities — NUMBERED full-width rows, 1px black rules
 * ========================================================= */
.hvx-caps {
	padding: var(--hvx-section) 0;
}

.hvx-caps__list {
	border-top: 1px solid var(--hvx-black);
}

.hvx-cap-row {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 0 var(--hvx-gap-col);
	align-items: baseline;
	border-bottom: 1px solid var(--hvx-black);
	padding: 46px 0;
}

.hvx-cap-row:hover {
	background: var(--hvx-white);
}

.hvx-cap-row:hover .hvx-cap-num {
	color: var(--hvx-black);
	background: var(--hvx-yellow);
}

.hvx-cap-num {
	grid-column: 1 / span 2;
	font-size: clamp(2.4rem, 5vw, 4.4rem);
	font-weight: 700;
	line-height: 0.9;
	letter-spacing: -0.04em;
	color: var(--hvx-black);
	padding: 6px 12px 6px 0;
	align-self: start;
}

.hvx-cap-title {
	grid-column: 3 / span 4;
	font-size: clamp(1.5rem, 2.6vw, 2.2rem);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.02em;
	margin: 0;
}

.hvx-cap-desc {
	grid-column: 7 / span 6;
	font-size: var(--hvx-fs-body);
	font-weight: 300;
	line-height: 1.7;
	color: var(--hvx-gray);
	margin: 0;
	max-width: 52ch;
}

/* =========================================================
 * 10. Manifesto — full-width image + overlapping text block
 * ========================================================= */
.hvx-manifesto {
	position: relative;
	padding: var(--hvx-section) 0;
}

.hvx-manifesto__media {
	border: 1px solid var(--hvx-black);
	overflow: hidden;
}

.hvx-manifesto__media img {
	width: 100%;
	height: auto;
	display: block;
	filter: grayscale(100%) contrast(1.08);
}

.hvx-manifesto__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 0 var(--hvx-gap-col);
	align-items: center;
}

.hvx-manifesto--a .hvx-manifesto__media { grid-column: 1 / span 7; }
.hvx-manifesto--a .hvx-manifesto__panel  { grid-column: 6 / span 7; }

.hvx-manifesto--b .hvx-manifesto__media { grid-column: 6 / span 7; grid-row: 1; }
.hvx-manifesto--b .hvx-manifesto__panel  { grid-column: 1 / span 7; grid-row: 1; }

/* Overlapping text block — negative margin, white plate, black border */
.hvx-manifesto__panel {
	position: relative;
	z-index: 2;
	background: var(--hvx-white);
	border: 1px solid var(--hvx-black);
	padding: 48px 46px;
	margin: 40px -60px;
}

.hvx-manifesto__panel h3 {
	font-size: clamp(1.7rem, 3vw, 2.6rem);
	line-height: 1.02;
	letter-spacing: -0.03em;
	margin: 0 0 18px;
}

.hvx-manifesto__text {
	font-size: var(--hvx-fs-body);
	font-weight: 300;
	color: var(--hvx-gray);
	margin: 0 0 26px;
}

.hvx-points {
	list-style: none;
	margin: 0 0 32px;
	padding: 0;
	border-top: 1px solid var(--hvx-line-soft);
}

.hvx-points li {
	position: relative;
	padding: 16px 0 16px 34px;
	border-bottom: 1px solid var(--hvx-line-soft);
	font-size: var(--hvx-fs-small);
	font-weight: 400;
	line-height: 1.5;
	color: var(--hvx-black);
}

.hvx-points li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 22px;
	width: 16px;
	height: 1px;
	background: var(--hvx-black);
}

/* =========================================================
 * 11. Insights — 3-col grid of thin-border frames
 * ========================================================= */
.hvx-insights {
	padding: var(--hvx-section) 0;
}

.hvx-insights__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	border-top: 1px solid var(--hvx-black);
	border-left: 1px solid var(--hvx-black);
}

.hvx-frame {
	border-right: 1px solid var(--hvx-black);
	border-bottom: 1px solid var(--hvx-black);
	background: var(--hvx-white);
	display: flex;
	flex-direction: column;
}

.hvx-frame__thumb {
	display: block;
	border-bottom: 1px solid var(--hvx-black);
	overflow: hidden;
	background: var(--hvx-white);
}

.hvx-frame__thumb img {
	width: 100%;
	height: 260px;
	object-fit: cover;
	display: block;
	filter: grayscale(100%) contrast(1.05);
}

.hvx-frame:hover .hvx-frame__thumb img {
	filter: grayscale(0%) contrast(1);
}

.hvx-frame__body {
	padding: 28px 28px 30px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	flex: 1 1 auto;
}

.hvx-frame__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-gray);
}

.hvx-frame__cat {
	color: var(--hvx-black);
	border-bottom: 2px solid var(--hvx-yellow);
	padding-bottom: 2px;
}

.hvx-frame__title {
	font-size: clamp(1.15rem, 1.7vw, 1.45rem);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.02em;
	margin: 0;
	flex: 1 1 auto;
}

.hvx-frame__title a { color: var(--hvx-black); }
.hvx-frame__title a:hover { color: var(--hvx-gray); }

.hvx-frame__link {
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-black);
	border-bottom: 2px solid transparent;
	align-self: flex-start;
	padding-bottom: 2px;
}

.hvx-frame:hover .hvx-frame__link {
	border-bottom-color: var(--hvx-yellow);
}

.hvx-insights__more {
	margin-top: 46px;
	display: flex;
	justify-content: flex-start;
}

/* =========================================================
 * 12. CTA band — large black rectangle, white text, one yellow
 * ========================================================= */
.hvx-ctaband {
	background: var(--hvx-black);
	color: var(--hvx-white);
	padding: 0;
}

.hvx-ctaband__inner {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 0 var(--hvx-gap-col);
	align-items: center;
	padding: 100px 0;
}

.hvx-ctaband__text {
	grid-column: 1 / span 7;
}

.hvx-ctaband__text h2 {
	color: var(--hvx-white);
	font-size: clamp(2.2rem, 5vw, 4rem);
	line-height: 0.98;
	letter-spacing: -0.04em;
	margin: 0 0 24px;
}

.hvx-ctaband__text p {
	color: #bbbbbb;
	font-weight: 300;
	font-size: var(--hvx-fs-lead);
	line-height: 1.6;
	max-width: 48ch;
	margin: 0;
}

.hvx-ctaband__actions {
	grid-column: 8 / span 5;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 18px;
}

.hvx-ctaband .hvx-btn--yellow {
	background: var(--hvx-yellow);
	border-color: var(--hvx-yellow);
	color: var(--hvx-black);
}

.hvx-ctaband .hvx-btn--yellow:hover {
	background: var(--hvx-white);
	border-color: var(--hvx-white);
	color: var(--hvx-black);
}

.hvx-ctaband .hvx-btn--ghost {
	border-color: #555555;
	color: var(--hvx-white);
}

.hvx-ctaband .hvx-btn--ghost:hover {
	background: var(--hvx-white);
	color: var(--hvx-black);
	border-color: var(--hvx-white);
}

/* =========================================================
 * 13. Footer — WHITE, 2px black rule, plain text, 5 columns
 * ========================================================= */
.hvx-footer {
	background: var(--hvx-white);
	color: var(--hvx-black);
	border-top: 2px solid var(--hvx-black);
	padding: 90px 0 46px;
}

.hvx-footer__grid {
	display: grid;
	grid-template-columns: 2fr repeat(4, 1fr);
	gap: 48px 32px;
	padding-bottom: 70px;
}

.hvx-footer__brand .hvx-brand {
	margin-bottom: 24px;
}

.hvx-footer__brand p {
	font-size: var(--hvx-fs-small);
	font-weight: 300;
	line-height: 1.7;
	color: var(--hvx-gray);
	max-width: 34ch;
	margin: 0;
}

.hvx-footer__col-title {
	font-size: var(--hvx-fs-micro);
	font-weight: 700;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-black);
	margin: 0 0 22px;
}

.hvx-footer__col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hvx-footer__col li {
	margin-bottom: 13px;
}

.hvx-footer__col a {
	font-size: var(--hvx-fs-small);
	font-weight: 400;
	color: var(--hvx-gray);
	border-bottom: 1px solid transparent;
	padding-bottom: 1px;
}

.hvx-footer__col a:hover {
	color: var(--hvx-black);
	border-bottom-color: var(--hvx-yellow);
}

.hvx-legal {
	border-top: 1px solid var(--hvx-black);
	padding-top: 34px;
}

.hvx-legal__risk {
	font-size: var(--hvx-fs-small);
	font-weight: 300;
	line-height: 1.7;
	color: var(--hvx-gray);
	max-width: 90ch;
	margin: 0 0 26px;
}

.hvx-legal__links {
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	margin-bottom: 26px;
}

.hvx-legal__links a {
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-black);
	border-bottom: 1px solid transparent;
	padding-bottom: 2px;
}

.hvx-legal__links a:hover { border-bottom-color: var(--hvx-yellow); }

.hvx-legal__copy {
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-gray);
	margin: 0;
}

/* =========================================================
 * 14. Page head (archive/single/search headers)
 * ========================================================= */
.hvx-pagehead {
	padding: 70px 0 46px;
	border-bottom: 1px solid var(--hvx-black);
}

.hvx-pagehead h1 {
	font-size: clamp(2.4rem, 6vw, 5rem);
	line-height: 0.98;
	letter-spacing: -0.04em;
	margin: 0 0 20px;
	max-width: 18ch;
}

.hvx-pagehead p {
	font-size: var(--hvx-fs-lead);
	font-weight: 300;
	color: var(--hvx-gray);
	max-width: 60ch;
	margin: 0;
}

.hvx-pagehead__count {
	font-size: var(--hvx-fs-micro) !important;
	font-weight: 500 !important;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-gray) !important;
	margin-top: 22px !important;
}

/* =========================================================
 * 15. Breadcrumb — 11px uppercase
 * ========================================================= */
.hvx-crumb-bar {
	padding-top: 30px;
	padding-bottom: 0;
}

.hvx-crumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-gray);
}

.hvx-crumb a {
	color: var(--hvx-gray);
	border-bottom: 1px solid transparent;
	padding-bottom: 1px;
}

.hvx-crumb a:hover {
	color: var(--hvx-black);
	border-bottom-color: var(--hvx-yellow);
}

.hvx-crumb .hvx-sep { color: var(--hvx-line-soft); }

.hvx-crumb .hvx-current { color: var(--hvx-black); }

/* =========================================================
 * 16. Archive loop — strict grid, NO excerpts (title only)
 * ========================================================= */
.hvx-listwrap {
	padding: 60px 0 var(--hvx-section);
}

.hvx-loopgrid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	border-top: 1px solid var(--hvx-black);
	border-left: 1px solid var(--hvx-black);
}

.hvx-loopitem {
	border-right: 1px solid var(--hvx-black);
	border-bottom: 1px solid var(--hvx-black);
	padding: 34px 30px 40px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	background: var(--hvx-white);
}

.hvx-loopitem__index {
	font-size: var(--hvx-fs-micro);
	font-weight: 700;
	letter-spacing: var(--hvx-ls-wide);
	color: var(--hvx-gray);
}

.hvx-loopitem__title {
	font-size: clamp(1.3rem, 2vw, 1.7rem);
	font-weight: 700;
	line-height: 1.14;
	letter-spacing: -0.02em;
	margin: 0;
	flex: 1 1 auto;
}

.hvx-loopitem__title a { color: var(--hvx-black); }
.hvx-loopitem__title a:hover { color: var(--hvx-gray); }

.hvx-loopitem__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	border-top: 1px solid var(--hvx-line-soft);
	padding-top: 16px;
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-gray);
}

.hvx-loopitem__cat {
	color: var(--hvx-black);
	border-bottom: 2px solid var(--hvx-yellow);
	padding-bottom: 2px;
}

.hvx-empty {
	padding: 80px 0;
	border-top: 1px solid var(--hvx-black);
}

.hvx-empty p {
	font-size: var(--hvx-fs-lead);
	font-weight: 300;
	color: var(--hvx-gray);
}

/* =========================================================
 * 17. Pagination — plain "← 1 2 3 →" text links
 * ========================================================= */
.hvx-pagination {
	display: flex;
	justify-content: center;
	margin-top: 70px;
}

.hvx-pagination ul,
.hvx-pagination .nav-links {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 26px;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--hvx-black);
	border-bottom: 1px solid var(--hvx-black);
	padding: 22px 0;
	width: 100%;
}

.hvx-pagination li { margin: 0; list-style: none; }

.hvx-pagination a,
.hvx-pagination span {
	font-size: var(--hvx-fs-small);
	font-weight: 500;
	letter-spacing: 0.06em;
	color: var(--hvx-black);
	padding: 4px 6px;
	border-bottom: 2px solid transparent;
}

.hvx-pagination a:hover { border-bottom-color: var(--hvx-yellow); }

.hvx-pagination .current,
.hvx-pagination span.current {
	border-bottom-color: var(--hvx-black);
	font-weight: 700;
}

.hvx-pagination .dots { color: var(--hvx-gray-lt); border: 0; }

/* =========================================================
 * 18. Single post — Centered narrow column (680px)
 * ========================================================= */
.hvx-single {
	padding: 50px 0 var(--hvx-section);
}

.hvx-single__col {
	width: 100%;
	max-width: 680px;
	margin: 0 auto; /* Centered narrow column */
}

.hvx-backlink {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-gray);
	border-bottom: 1px solid transparent;
	padding-bottom: 2px;
	margin-bottom: 46px;
}

.hvx-backlink:hover {
	color: var(--hvx-black);
	border-bottom-color: var(--hvx-yellow);
}

.hvx-backlink .hvx-icon { width: 16px; height: 16px; }

.hvx-single__head {
	margin-bottom: 40px;
}

.hvx-single__head h1 {
	font-size: clamp(2.2rem, 4.6vw, 3.6rem);
	line-height: 1.02;
	letter-spacing: -0.035em;
	margin: 0 0 26px;
}

.hvx-single__byline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px;
	border-top: 1px solid var(--hvx-black);
	border-bottom: 1px solid var(--hvx-black);
	padding: 18px 0;
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-gray);
}

.hvx-single__author {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	background: var(--hvx-black);
	color: var(--hvx-white);
	font-size: var(--hvx-fs-micro);
	font-weight: 700;
	letter-spacing: 0;
}

.hvx-single__media {
	margin: 0 0 46px;
	border: 1px solid var(--hvx-black);
	padding: 10px;
}

.hvx-single__media img {
	width: 100%;
	height: auto;
	display: block;
	filter: grayscale(100%) contrast(1.05);
}

/* Entry content typography */
.hvx-entry {
	font-size: 17px;
	line-height: 1.78;
	color: var(--hvx-black);
}

.hvx-entry > * { max-width: 68ch; }

.hvx-entry h2 {
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	line-height: 1.08;
	letter-spacing: -0.03em;
	margin: 60px 0 22px;
}

.hvx-entry h3 {
	font-size: clamp(1.25rem, 2vw, 1.6rem);
	margin: 44px 0 16px;
}

.hvx-entry p { margin: 0 0 1.4em; }

.hvx-entry a {
	color: var(--hvx-black);
	border-bottom: 1px solid var(--hvx-yellow);
}

.hvx-entry a:hover { background: var(--hvx-yellow); }

.hvx-entry ul,
.hvx-entry ol {
	margin: 0 0 1.5em;
	padding-left: 22px;
}

.hvx-entry li { margin-bottom: 10px; }

.hvx-entry ul li::marker { color: var(--hvx-black); }

.hvx-entry blockquote {
	margin: 44px 0;
	padding: 6px 0 6px 30px;
	border-left: 3px solid var(--hvx-yellow);
	font-size: clamp(1.2rem, 2.2vw, 1.6rem);
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: -0.02em;
	color: var(--hvx-black);
}

.hvx-entry blockquote p { margin: 0; max-width: none; }

.hvx-entry img {
	border: 1px solid var(--hvx-black);
	padding: 8px;
	margin: 34px 0;
	filter: grayscale(100%);
}

.hvx-entry pre {
	background: var(--hvx-white);
	border: 1px solid var(--hvx-black);
	padding: 22px;
	overflow-x: auto;
	font-size: 14px;
	line-height: 1.6;
	margin: 0 0 1.6em;
	max-width: none;
}

.hvx-entry code {
	font-family: 'Space Grotesk', monospace;
	background: var(--hvx-yellow);
	padding: 1px 6px;
	font-size: 0.9em;
}

.hvx-entry pre code { background: transparent; padding: 0; }

.hvx-entry table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 1.6em;
	max-width: none;
	font-size: 15px;
}

.hvx-entry th,
.hvx-entry td {
	border: 1px solid var(--hvx-black);
	padding: 12px 14px;
	text-align: left;
}

.hvx-entry th {
	font-size: var(--hvx-fs-micro);
	font-weight: 700;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	background: var(--hvx-black);
	color: var(--hvx-white);
}

.hvx-single__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 50px 0;
}

.hvx-tagchip {
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	border: 1px solid var(--hvx-black);
	padding: 8px 16px;
	color: var(--hvx-black);
}

.hvx-tagchip:hover {
	background: var(--hvx-yellow);
	border-color: var(--hvx-black);
}

.hvx-single__footer-nav {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	border-top: 1px solid var(--hvx-black);
	border-bottom: 1px solid var(--hvx-black);
	padding: 22px 0;
	margin: 40px 0 var(--hvx-section);
}

.hvx-single__footer-nav a {
	font-size: var(--hvx-fs-micro);
	font-weight: 500;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-black);
	border-bottom: 2px solid transparent;
	padding-bottom: 2px;
}

.hvx-single__footer-nav a:hover { border-bottom-color: var(--hvx-yellow); }

.hvx-related {
	border-top: 1px solid var(--hvx-black);
	padding-top: 50px;
}

.hvx-related h2 {
	font-size: clamp(1.5rem, 2.6vw, 2rem);
	letter-spacing: -0.02em;
	margin: 0 0 34px;
}

/* =========================================================
 * 19. Search form
 * ========================================================= */
.hvx-searchform {
	display: flex;
	align-items: stretch;
	border: 1px solid var(--hvx-black);
	max-width: 620px;
	margin: 0 0 40px;
}

.hvx-searchinput {
	flex: 1 1 auto;
	border: 0;
	background: var(--hvx-white);
	padding: 18px 22px;
	font-family: var(--hvx-font);
	font-size: var(--hvx-fs-body);
	color: var(--hvx-black);
	outline: none;
	min-width: 0;
}

.hvx-searchinput::placeholder { color: var(--hvx-gray-lt); }

.hvx-searchbtn {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	border: 0;
	border-left: 1px solid var(--hvx-black);
	background: var(--hvx-black);
	color: var(--hvx-white);
	padding: 18px 28px;
	font-family: var(--hvx-font);
	font-size: var(--hvx-fs-micro);
	font-weight: 700;
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	cursor: pointer;
}

.hvx-searchbtn:hover { background: var(--hvx-yellow); color: var(--hvx-black); }
.hvx-searchbtn .hvx-icon { width: 16px; height: 16px; }

/* =========================================================
 * 20. 404
 * ========================================================= */
.hvx-404 {
	padding: 100px 0 var(--hvx-section-lg);
	max-width: 760px;
}

.hvx-404__code {
	font-size: clamp(5rem, 22vw, 14rem);
	font-weight: 700;
	line-height: 0.8;
	letter-spacing: -0.06em;
	color: var(--hvx-black);
	margin-bottom: 30px;
}

.hvx-404__title {
	font-size: clamp(1.8rem, 4vw, 3rem);
	line-height: 1.02;
	letter-spacing: -0.03em;
	margin: 0 0 22px;
}

.hvx-404__text {
	font-size: var(--hvx-fs-lead);
	font-weight: 300;
	color: var(--hvx-gray);
	max-width: 54ch;
	margin: 0 0 40px;
}

.hvx-404__actions {
	display: flex;
	align-items: center;
	gap: 22px;
	flex-wrap: wrap;
	margin-top: 34px;
}

/* =========================================================
 * 21. Reveal-on-scroll — instant (no transition, Swiss)
 * ========================================================= */
.hvx-reveal {
	opacity: 0;
}

.hvx-reveal.visible {
	opacity: 1;
}

/* No-JS fallback: everything visible */
.no-js .hvx-reveal { opacity: 1; }

/* =========================================================
 * 22. WordPress core helpers
 * ========================================================= */
.alignleft { float: left; margin: 6px 24px 12px 0; }
.alignright { float: right; margin: 6px 0 12px 24px; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignwide { max-width: 1200px; margin-left: auto; margin-right: auto; }
.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

.wp-caption { max-width: 100%; }
.wp-caption-text {
	font-size: var(--hvx-fs-micro);
	letter-spacing: var(--hvx-ls-wide);
	text-transform: uppercase;
	color: var(--hvx-gray);
	padding: 10px 0;
}

.sticky { display: block; }
.bypostauthor { display: block; }

.gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 12px;
}
.gallery img { border: 1px solid var(--hvx-black); }

/* =========================================================
 * 23. Responsive
 * ========================================================= */
@media (max-width: 1080px) {
	:root {
		--hvx-section: 96px;
		--hvx-section-lg: 120px;
		--hvx-pad: 32px;
	}

	.hvx-hero__text { grid-column: 1 / span 10; }
	.hvx-hero__spacer { display: none; }

	.hvx-sechead__title { grid-column: 1 / span 12; }
	.hvx-sechead__lead { grid-column: 1 / span 12; margin-top: 22px; }

	.hvx-cap-num { grid-column: 1 / span 2; }
	.hvx-cap-title { grid-column: 3 / span 9; }
	.hvx-cap-desc { grid-column: 3 / span 9; margin-top: 14px; }

	.hvx-manifesto--a .hvx-manifesto__media,
	.hvx-manifesto--b .hvx-manifesto__media { grid-column: 1 / span 12; grid-row: auto; }
	.hvx-manifesto--a .hvx-manifesto__panel,
	.hvx-manifesto--b .hvx-manifesto__panel { grid-column: 1 / span 12; grid-row: auto; margin: -40px 24px 0; }

	.hvx-insights__grid,
	.hvx-loopgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.hvx-ctaband__text { grid-column: 1 / span 12; }
	.hvx-ctaband__actions { grid-column: 1 / span 12; margin-top: 40px; flex-direction: row; flex-wrap: wrap; }

	.hvx-footer__grid { grid-template-columns: repeat(2, 1fr); gap: 44px 32px; }
}

@media (max-width: 720px) {
	:root {
		--hvx-section: 76px;
		--hvx-section-lg: 96px;
		--hvx-pad: 22px;
		--hvx-gap-col: 20px;
	}

	/* Nav wraps vertically — CSS only, no burger, no JS */
	.hvx-topbar { padding: 24px 0 20px; }
	.hvx-topbar__inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 22px;
	}
	.hvx-nav { justify-content: flex-start; width: 100%; }
	.hvx-nav__list {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
		width: 100%;
	}
	.hvx-header-actions { width: 100%; justify-content: space-between; }

	.hvx-hero { padding: 50px 0 0; }
	.hvx-hero__text { grid-column: 1 / span 12; }
	.hvx-hero__cta { gap: 16px; }

	.hvx-stats { grid-template-columns: 1fr; }
	.hvx-stat {
		border-right: 0;
		border-bottom: 1px solid var(--hvx-line-soft);
		padding: 24px 0;
	}
	.hvx-stat:last-child { border-bottom: 0; }

	.hvx-cap-row {
		grid-template-columns: repeat(6, minmax(0, 1fr));
		padding: 32px 0;
	}
	.hvx-cap-num { grid-column: 1 / span 6; margin-bottom: 14px; }
	.hvx-cap-title { grid-column: 1 / span 6; }
	.hvx-cap-desc { grid-column: 1 / span 6; margin-top: 12px; }

	.hvx-manifesto__panel { padding: 32px 26px; margin: -30px 12px 0; }

	.hvx-insights__grid,
	.hvx-loopgrid { grid-template-columns: 1fr; }

	.hvx-ctaband__inner { padding: 70px 0; }

	.hvx-footer { padding: 60px 0 36px; }
	.hvx-footer__grid { grid-template-columns: 1fr; gap: 38px; }

	.hvx-single__footer-nav { flex-direction: column; gap: 14px; }

	.hvx-searchform { flex-direction: column; }
	.hvx-searchbtn { border-left: 0; border-top: 1px solid var(--hvx-black); justify-content: center; }

	.hvx-pagination ul,
	.hvx-pagination .nav-links { gap: 16px; }
}
