/* HENNER v3.1 — Applications & Projects visual polish.
 * This layer intentionally preserves the wider 1600px wrapper approved after v3.0. */

/* Inner-page type and rhythm */
.v30-hero {
	min-height: 580px;
	padding: 145px 0 72px;
}

.v30-hero h1,
.v30-hero--detail h1 {
	max-width: 860px;
	font-size: var(--henner-inner-hero);
	line-height: .98;
	letter-spacing: -.045em;
}

.v30-hero--long h1 {
	max-width: 940px;
	font-size: clamp(3rem, 4.3vw, 4rem);
}

.v30-hero .v30-hero__content > p:last-child {
	max-width: 620px;
	margin-top: 24px;
	font-size: clamp(1.0625rem, 1.25vw, 1.125rem);
	line-height: 1.55;
}

.post-type-archive-henner_application .v30-hero h1 {
	max-width: 1100px;
	font-size: clamp(3.5rem, 4.7vw, 4.25rem);
}

.post-type-archive-henner_project .v30-hero h1 {
	max-width: 1100px;
	font-size: clamp(3.5rem, 4.7vw, 4.25rem);
}

.v30-intro {
	padding: 90px 0 80px;
}

.v30-editorial {
	align-items: center;
	gap: clamp(48px, 6vw, 88px);
}

.v30-editorial h2,
.v30-editorial--compact h2,
.v30-material h2,
.v30-project-proof .henner-section-head h2,
.v30-featured .henner-section-head h2,
.single-henner_application .henner-section-head h2,
.single-henner_project .henner-section-head h2,
.v30-solution h2 {
	font-size: var(--henner-inner-h2);
	line-height: 1.04;
	letter-spacing: -.035em;
}

.v30-editorial > p,
.v30-editorial > div:last-child {
	max-width: 720px;
	padding-top: 0;
	font-size: 17px;
	line-height: 1.68;
}

.single-henner_project .v30-editorial > div:last-child {
	max-width: 740px;
}

/* Application archive mosaic */
.v30-application-mosaic {
	grid-auto-rows: 380px;
	padding-bottom: 112px;
}

.v30-application-tile {
	padding: clamp(26px, 2.5vw, 36px);
}

.v30-application-tile::after {
	background: linear-gradient(0deg, rgba(8, 10, 13, .9) 0%, rgba(8, 10, 13, .64) 36%, rgba(8, 10, 13, .12) 76%);
}

.v30-application-tile h2 {
	max-width: 440px;
	font-size: clamp(1.625rem, 2.5vw, 2.125rem);
	line-height: 1.05;
	letter-spacing: -.025em;
}

.v30-application-tile p {
	max-width: 470px;
	margin-top: 12px;
	font-size: 15px;
	line-height: 1.5;
}

.v30-application-tile b {
	margin-top: 20px;
	font-size: 12px;
	letter-spacing: .08em;
}

.v30-application-tile:hover::before,
.v30-application-tile:focus-visible::before {
	transform: scale(1.025);
}

.v30-application-tile:focus-visible {
	outline: 3px solid var(--henner-red);
	outline-offset: 4px;
}

/* Requirements and material narrative */
.v30-requirements {
	padding: 96px 0;
}

.v30-requirement-grid {
	margin-top: 50px;
}

.v30-requirement-grid article {
	min-height: 180px;
	padding: 28px;
}

.v30-requirement-grid h3 {
	font-size: clamp(1.125rem, 1.5vw, 1.375rem);
	line-height: 1.25;
}

.v30-material {
	min-height: 580px;
}

.v30-material > div:last-child {
	padding: 72px clamp(40px, 5vw, 80px);
}

.v30-material ul {
	margin-top: 36px;
}

.v30-material li {
	padding: 14px 0;
}

.v30-project-proof,
.v30-featured,
.v30-reference-section,
.v30-solution,
.v30-resources,
.v30-gallery {
	padding-top: 104px;
	padding-bottom: 104px;
}

.v30-proof-grid {
	margin-top: 42px;
}

.v30-proof-grid article {
	min-height: 190px;
	padding: 28px;
}

.v30-proof-grid h3 {
	font-size: clamp(1.375rem, 1.8vw, 1.6875rem);
	line-height: 1.18;
}

/* Projects archive */
.v30-featured-grid {
	gap: 24px;
}

.v30-featured-grid > a {
	min-height: 460px;
	aspect-ratio: 4 / 3;
}

.v30-featured-grid h3 {
	max-width: 520px;
	font-size: clamp(1.25rem, 1.8vw, 1.5rem);
	line-height: 1.14;
}

.v30-editorial--compact {
	padding-bottom: 52px;
}

.v30-filters {
	gap: 18px;
	padding: 20px;
	border-color: #deded9;
}

.v30-filters label > span {
	font-size: 12px;
	letter-spacing: .075em;
}

.v30-filters input,
.v30-filters select,
.v30-filters .henner-button {
	min-height: 48px;
	font-size: 15px;
}

.v30-filters input:focus-visible,
.v30-filters select:focus-visible,
.v30-filters .henner-button:focus-visible,
.v30-clear:focus-visible,
.v30-pagination a:focus-visible {
	outline: 3px solid var(--henner-red);
	outline-offset: 2px;
}

.v31-active-filters {
	display: flex;
	align-items: baseline;
	gap: 14px;
	padding: 14px 2px 4px;
	color: var(--henner-slate);
	font-size: 14px;
	line-height: 1.4;
}

.v31-active-filters strong {
	color: var(--henner-ink);
	font-size: 12px;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.v30-reference-head {
	margin-top: 42px;
}

.v30-reference-row {
	min-height: 68px;
	padding: 17px 18px;
	border-color: #e2e2de;
}

.v30-reference-row h3 {
	font-size: 16px;
	line-height: 1.35;
}

.v30-reference-row > span {
	font-size: 14px;
	line-height: 1.4;
}

.v30-reference-row > span:nth-child(4) {
	font-weight: 600;
}

.v31-status--ongoing {
	display: inline-flex;
	align-items: center;
	width: max-content;
	padding: 4px 9px;
	border: 1px solid rgba(232, 29, 42, .28);
	border-radius: 999px;
	color: var(--henner-red-dark);
	font-size: 12px !important;
	font-weight: 700;
	letter-spacing: .035em;
}

.v30-reference-row:not(.v30-reference-row--head):hover {
	background: #f8f7f4;
}

.v30-pagination a,
.v30-pagination span {
	min-width: 44px;
	height: 44px;
}

/* Project detail */
.v30-project-hero {
	min-height: 600px;
	padding: 140px 0 72px;
}

.v30-project-hero h1 {
	max-width: 900px;
	font-size: clamp(3rem, 4.5vw, 4rem);
	line-height: .98;
	letter-spacing: -.045em;
}

.v30-facts > .henner-wrap {
	gap: 0;
}

.v30-facts > .henner-wrap > div {
	padding: 26px clamp(20px, 2.5vw, 36px);
}

.v30-facts span {
	font-size: 11px;
}

.v30-facts strong {
	font-size: 18px;
	line-height: 1.3;
}

.v30-gallery > .henner-wrap > div {
	display: grid;
	grid-template-columns: 2fr 1fr;
	grid-auto-rows: 250px;
	gap: 18px;
}

.v30-gallery img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.v30-gallery img:first-child {
	grid-row: span 2;
}

/* Compact, scoped inner-page CTAs. Homepage presentation is untouched. */
:is(.post-type-archive-henner_application, .single-henner_application, .post-type-archive-henner_project, .single-henner_project) .henner-cta {
	padding-top: 80px;
	padding-bottom: 80px;
}

:is(.post-type-archive-henner_application, .single-henner_application, .post-type-archive-henner_project, .single-henner_project) .henner-cta h2 {
	max-width: 900px;
	font-size: clamp(2.25rem, 3vw, 2.875rem);
	line-height: 1.04;
}

@media (max-width: 1100px) {
	.v30-hero {
		min-height: 550px;
		padding-top: 132px;
	}

	.v30-intro,
	.v30-project-proof,
	.v30-featured,
	.v30-reference-section,
	.v30-solution,
	.v30-resources,
	.v30-gallery {
		padding-top: 84px;
		padding-bottom: 84px;
	}

	.v30-application-mosaic {
		grid-auto-rows: 350px;
		padding-bottom: 88px;
	}

	.v30-facts > .henner-wrap {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 720px) {
	.v30-hero {
		min-height: 520px;
		padding: 118px 0 56px;
	}

	.v30-hero h1,
	.v30-hero--detail h1,
	.post-type-archive-henner_application .v30-hero h1,
	.post-type-archive-henner_project .v30-hero h1 {
		font-size: clamp(2.75rem, 12vw, 3.5rem);
		line-height: 1;
	}

	.v30-hero--long h1 {
		font-size: 2.1875rem;
		line-height: 1.02;
		letter-spacing: -.035em;
	}

	.v30-hero .v30-hero__content > p:last-child {
		font-size: 16px;
	}

	.v30-intro,
	.v30-project-proof,
	.v30-featured,
	.v30-reference-section,
	.v30-solution,
	.v30-resources,
	.v30-gallery {
		padding-top: 64px;
		padding-bottom: 64px;
	}

	.v30-editorial {
		gap: 28px;
	}

	.v30-editorial h2,
	.v30-editorial--compact h2,
	.v30-material h2,
	.v30-project-proof .henner-section-head h2,
	.v30-featured .henner-section-head h2,
	.single-henner_application .henner-section-head h2,
	.single-henner_project .henner-section-head h2 {
		font-size: clamp(2.25rem, 10vw, 2.75rem);
	}

	.v30-editorial > p,
	.v30-editorial > div:last-child {
		font-size: 16px;
	}

	.v30-application-mosaic {
		grid-auto-rows: minmax(310px, auto);
		padding-bottom: 64px;
	}

	.v30-application-tile h2 {
		font-size: 26px;
	}

	.v30-requirements {
		padding: 64px 0;
	}

	.v30-requirement-grid {
		margin-top: 32px;
	}

	.v30-requirement-grid article {
		min-height: 150px;
		padding: 24px;
	}

	.v30-material {
		min-height: 0;
	}

	.v30-material > div:last-child {
		padding: 56px 20px;
	}

	.v30-featured-grid > a {
		min-height: 360px;
		aspect-ratio: auto;
	}

	.v30-filters {
		gap: 14px;
		padding: 18px;
	}

	.v31-active-filters {
		align-items: flex-start;
		flex-direction: column;
		gap: 4px;
		padding-top: 16px;
	}

	.v30-reference-row {
		min-height: 0;
		padding: 22px 0;
	}

	.v30-reference-row h3 {
		font-size: 18px;
	}

	.v30-reference-row > span {
		font-size: 14px;
	}

	.v30-project-hero {
		min-height: 540px;
		padding: 120px 0 60px;
	}

	.v30-project-hero h1 {
		font-size: clamp(2.75rem, 12vw, 3.5rem);
	}

	.v30-facts > .henner-wrap > div {
		padding: 22px 16px;
	}

	.v30-facts strong {
		font-size: 17px;
	}

	.v30-gallery > .henner-wrap > div {
		grid-template-columns: 1fr;
		grid-auto-rows: 240px;
	}

	.v30-gallery img:first-child {
		grid-row: auto;
	}

	:is(.post-type-archive-henner_application, .single-henner_application, .post-type-archive-henner_project, .single-henner_project) .henner-cta {
		padding-top: 64px;
		padding-bottom: 64px;
	}

	:is(.post-type-archive-henner_application, .single-henner_application, .post-type-archive-henner_project, .single-henner_project) .henner-cta h2 {
		font-size: clamp(2.125rem, 9vw, 2.5rem);
	}
}
