/*
 * Arquitectura FN · v1.8
 * Fase 4: terminaciones, contención, ritmo, Contacto y QA responsive.
 */

/* Correct the cause of the shifted full-width pages: the theme's 1200px inner
 * wrapper is no longer the containing block for plugin-owned editorial pages. */
body:is(.afn-projects-page, .afn-secondary-page) #content > .inner-wrap,
body:is(.afn-projects-page, .afn-secondary-page) #primary,
body:is(.afn-projects-page, .afn-secondary-page) #main,
body:is(.afn-projects-page, .afn-secondary-page) article.page,
body:is(.afn-projects-page, .afn-secondary-page) .entry-content {
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
}

body:is(.afn-projects-page, .afn-secondary-page) .afn-page-hero {
	box-sizing: border-box;
	width: 100% !important;
	max-width: none !important;
	min-height: clamp(660px, 76svh, 720px) !important;
	margin: 0 0 clamp(58px, 6vw, 86px) !important;
	padding: clamp(164px, 18vh, 198px) 0 clamp(72px, 8vh, 92px) !important;
	overflow: clip;
}

.afn-page-hero h1 {
	max-width: 18ch !important;
	font-size: clamp(2.7rem, 4.65vw, 4.55rem) !important;
	line-height: 1.01 !important;
	overflow-wrap: break-word;
	word-break: normal;
	hyphens: none;
}

.afn-page-hero--municipal h1 {
	max-width: 20ch !important;
	font-size: clamp(2.65rem, 4.35vw, 4.25rem) !important;
}

.afn-page-hero__content,
.afn-page-hero__content > * {
	min-width: 0;
}

.afn-page-hero__media :where(img, video) {
	max-width: none !important;
}

/* Flex/grid items are allowed to shrink; long real-world strings wrap without
 * breaking every word or reducing the entire type system. */
body.afn-author-system :where(main, section, article, header, footer, div, nav, figure, figcaption, dl, dt, dd, ul, ol, li) {
	min-width: 0;
}

body.afn-author-system :where(h1, h2, h3, h4, h5, h6, p, strong, small, label, dt, dd, figcaption) {
	max-width: 100%;
	overflow-wrap: break-word;
	word-break: normal;
}

body.afn-author-system :where(a[href^="mailto:"], .afn-contact-data dd, .afn-footer a) {
	overflow-wrap: anywhere;
}

body.afn-author-system :where(button, .afn-button) {
	max-width: 100%;
	white-space: normal;
	text-wrap: balance;
}

body.afn-author-system :where(img, video, iframe, svg) {
	max-width: 100%;
}

/* One line-icon family acts as signage in dense, scannable groups. */
.afn-icon {
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	width: 30px;
	height: 30px;
	color: #075f5b;
}

.afn-icon svg {
	display: block;
	width: 100%;
	height: 100%;
}

.afn-home-positioning__proof p {
	grid-template-columns: 34px minmax(150px, .68fr) minmax(0, 1.32fr) !important;
	gap: 18px !important;
	align-items: start;
}

.afn-home-positioning__proof .afn-icon {
	width: 27px;
	height: 27px;
	margin-top: 1px;
}

.afn-service-cards article,
.afn-author-practice article,
.afn-municipal-needs__grid p {
	min-width: 0;
	height: 100%;
}

.afn-service-cards article > .afn-icon {
	width: 31px;
	height: 31px;
	margin: 13px 0 19px;
}

.afn-service-cards h2 {
	text-wrap: balance;
}

.afn-municipal-needs__grid p {
	min-height: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.afn-municipal-needs__grid .afn-icon {
	width: 27px;
	height: 27px;
	margin-bottom: 18px;
}

.afn-author-thought h2 {
	margin-bottom: clamp(20px, 2vw, 28px) !important;
}

.afn-author-method__rules p {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.afn-author-method__rules .afn-icon {
	width: 29px;
	height: 29px;
	margin-bottom: 20px;
	color: #86e3d7;
}

.afn-author-practice .afn-icon {
	width: 30px;
	height: 30px;
	margin-bottom: 19px;
}

/* Five authorised reels remain one deliberate row on large screens. */
.afn-author-reels__feed #sbi_images {
	grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

/* Project reasoning uses the number of verified facts it actually contains;
 * a missing materialisation never leaves an artificial empty card. */
.afn-project-reasoning--count-1 {
	grid-template-columns: 1fr !important;
}

.afn-project-reasoning--count-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.afn-project-reasoning--count-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.afn-project-reasoning--count-4 {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

/* Contact: editorial 40/60 composition, direct data and a real portrait. */
.afn-contact-layout {
	grid-template-columns: minmax(0, .78fr) minmax(430px, 1.22fr) !important;
	gap: clamp(38px, 6vw, 78px) !important;
}

.afn-contact-data h2 {
	font-size: clamp(2rem, 3.35vw, 3.25rem);
	line-height: 1.04;
	text-wrap: balance;
}

.afn-contact-data dl div {
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr);
	column-gap: 11px;
	align-content: start;
}

.afn-contact-data dl .afn-icon {
	grid-row: 1 / span 2;
	width: 24px;
	height: 24px;
}

.afn-contact-data dl :where(dt, dd) {
	grid-column: 2;
}

.afn-contact-portrait {
	position: relative;
	margin: clamp(24px, 3vw, 34px) 0 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: #dfe8e5;
}

.afn-contact-portrait img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 29%;
}

.afn-contact-portrait figcaption {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	display: grid;
	gap: 3px;
	padding: 44px 20px 18px;
	color: #fff;
	background: linear-gradient(0deg, rgba(5, 35, 32, .94), rgba(5, 35, 32, 0));
}

.afn-contact-portrait figcaption strong {
	font-size: .9rem;
}

.afn-contact-portrait figcaption span {
	font-size: .72rem;
	line-height: 1.45;
	opacity: .82;
}

.afn-contact-form {
	align-self: start;
}

.afn-form-split > *,
.afn-native-contact-form :where(input, select, textarea) {
	min-width: 0;
}

.afn-file-field {
	position: relative;
	gap: 8px;
	margin-top: 2px;
}

.afn-file-field__help {
	margin: 0;
	color: #46625f;
	font-size: .78rem;
	line-height: 1.55;
}

.afn-native-contact-form .afn-file-field__input {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.afn-file-field__picker {
	display: flex !important;
	align-items: center;
	gap: 14px;
	min-height: 78px;
	padding: 14px 16px !important;
	border: 1px dashed rgba(2, 115, 115, .46);
	background: rgba(226, 240, 237, .5);
	cursor: pointer;
	transition: border-color .2s ease, background-color .2s ease;
}

.afn-file-field__picker:hover {
	border-color: #075f5b;
	background: rgba(216, 235, 231, .72);
}

.afn-file-field__input:focus-visible + .afn-file-field__picker {
	outline: 3px solid #68d8ca;
	outline-offset: 3px;
}

.afn-file-field__picker .afn-icon {
	width: 28px;
	height: 28px;
}

.afn-file-field__picker > span:last-child {
	display: grid;
	gap: 4px;
	min-width: 0;
}

.afn-file-field__picker strong {
	color: #075f5b;
	font-size: .82rem;
	line-height: 1.35;
}

.afn-file-field__picker small {
	color: #607572;
	font-size: .68rem;
	font-weight: 560;
	line-height: 1.45;
	letter-spacing: 0;
}

.afn-file-field__status {
	min-height: 18px;
	color: #607572;
	font-size: .72rem;
	line-height: 1.45;
}

.afn-file-field__status--error {
	color: #8f3430;
}

.afn-file-field__list {
	display: grid;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.afn-file-field__list:empty {
	display: none;
}

.afn-file-field__list li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 10px 11px;
	border: 1px solid rgba(2, 115, 115, .18);
	background: rgba(255, 255, 255, .72);
}

.afn-file-field__list li > span {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.afn-file-field__list strong {
	color: #17302d;
	font-size: .74rem;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.afn-file-field__list small {
	color: #607572;
	font-size: .66rem;
}

.afn-file-field__list button {
	flex: 0 0 auto;
	padding: 7px 9px;
	color: #075f5b;
	border: 1px solid rgba(2, 115, 115, .28);
	background: transparent;
	font-size: .68rem;
	font-weight: 700;
	cursor: pointer;
}

.afn-native-contact-form button[type="submit"]:disabled {
	opacity: .65;
	cursor: wait;
}

.afn-project-filters,
.afn-project-filters button {
	min-width: 0;
}

@media (max-width: 1024px) {
	body:is(.afn-projects-page, .afn-secondary-page) .afn-page-hero {
		min-height: clamp(600px, 70svh, 660px) !important;
		padding: clamp(150px, 17vh, 182px) 0 clamp(68px, 8vh, 84px) !important;
	}

	.afn-page-hero h1 {
		font-size: clamp(2.6rem, 6vw, 4.1rem) !important;
	}

	.afn-author-reels__feed #sbi_images {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}

	.afn-contact-layout {
		grid-template-columns: minmax(0, .8fr) minmax(390px, 1.2fr) !important;
		gap: 38px !important;
	}
}

@media (max-width: 900px) {
	.afn-contact-layout {
		grid-template-columns: 1fr !important;
	}

	.afn-contact-data {
		display: grid;
		grid-template-columns: 1fr;
	}

	.afn-contact-portrait {
		width: min(100%, 560px);
		aspect-ratio: 4 / 5;
	}

	.afn-project-reasoning--count-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.afn-project-reasoning--count-3 {
		grid-template-columns: 1fr !important;
	}
}

@media (max-width: 782px) {
	body:is(.afn-projects-page, .afn-secondary-page) .afn-page-hero {
		min-height: clamp(560px, 75svh, 630px) !important;
		padding: 142px 0 74px !important;
	}

	.afn-page-hero h1,
	.afn-page-hero--municipal h1 {
		max-width: 15ch !important;
		font-size: clamp(2.35rem, 8.8vw, 3.6rem) !important;
	}

	.afn-home-positioning__proof p {
		grid-template-columns: 30px minmax(0, 1fr) !important;
		gap: 9px 13px !important;
	}

	.afn-home-positioning__proof p > span:last-child {
		grid-column: 2;
	}

	.afn-project-filters {
		display: flex !important;
		flex-wrap: wrap !important;
		gap: 7px !important;
		overflow: visible !important;
	}

	.afn-project-filters button {
		flex: 1 1 145px;
		overflow-wrap: break-word;
	}

	.afn-author-reels__feed #sbi_images {
		grid-template-columns: none !important;
	}

	.afn-form-split {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 560px) {
	body:is(.afn-projects-page, .afn-secondary-page) .afn-page-hero {
		min-height: clamp(540px, 78svh, 590px) !important;
		padding: 134px 0 70px !important;
	}

	.afn-page-hero h1,
	.afn-page-hero--municipal h1 {
		max-width: 14ch !important;
		font-size: clamp(2.2rem, 10.6vw, 3.15rem) !important;
		line-height: 1.02 !important;
	}

	.afn-page-hero .afn-page-hero__content > p:last-child {
		font-size: .94rem;
		line-height: 1.55;
	}

	.afn-contact-data dl {
		grid-template-columns: 1fr;
	}

	.afn-contact-portrait {
		width: 100%;
		aspect-ratio: 4 / 5;
	}

	.afn-contact-form {
		padding: 30px 19px !important;
	}

	.afn-file-field__picker {
		align-items: flex-start;
	}

	.afn-project-reasoning--count-2,
	.afn-project-reasoning--count-3,
	.afn-project-reasoning--count-4 {
		grid-template-columns: 1fr !important;
	}

	.afn-municipal-needs__grid p {
		min-height: 0 !important;
	}
}

@media (max-width: 390px) {
	body:is(.afn-projects-page, .afn-secondary-page) .afn-page-hero {
		min-height: 550px !important;
	}

	.afn-page-hero h1,
	.afn-page-hero--municipal h1 {
		font-size: clamp(2.05rem, 10.2vw, 2.7rem) !important;
	}

	.afn-file-field__picker {
		padding: 13px !important;
	}

	.afn-file-field__list li {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (prefers-reduced-motion: reduce) {
	.afn-file-field__picker {
		transition: none;
	}
}

/*
 * Arquitectura FN · v1.8
 * Corrección final: señalética editorial, continuidad proyecto/obra,
 * contacto alineado, heroes controlados y footer compacto.
 */

/* Home: the icons clarify categories while the project imagery stays clear. */
.afn-home-services__grid article {
	display: flex;
	flex-direction: column;
}

.afn-home-services__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 30px;
}

.afn-home-services__meta > span {
	color: var(--afn-teal-bright);
	font-size: .67rem;
	font-weight: 850;
	letter-spacing: .12em;
}

.afn-home-services__meta .afn-icon {
	width: 29px;
	height: 29px;
	color: #075f5b;
}

.afn-home-services__grid article > p {
	flex: 1 1 auto;
}

.afn-home-services__grid article > a {
	align-self: flex-start;
}

/* Condition / operation / consequence becomes architectural wayfinding. */
.afn-home-manifesto__rules {
	display: grid;
}

.afn-home-manifesto__rules article {
	display: grid;
	grid-template-columns: 34px 42px minmax(0, 1fr);
	grid-template-areas:
		"number icon title"
		". . copy";
	column-gap: 14px;
	row-gap: 4px;
	align-items: start;
	margin: 0;
	padding: 19px 0;
	border-top: 1px solid rgba(117, 222, 209, .24);
}

.afn-home-manifesto__rules article > .afn-rule-number {
	position: static;
	grid-area: number;
	color: #75ded1;
	font-size: .66rem;
	font-weight: 850;
	letter-spacing: .08em;
}

.afn-home-manifesto__rules article > .afn-icon {
	position: static !important;
	grid-area: icon;
	width: 29px;
	height: 29px;
	color: #86e3d7;
}

.afn-home-manifesto__rules article > h3 {
	grid-area: title;
	margin: 0;
	color: #fff;
	font-size: 1rem;
	line-height: 1.35;
}

.afn-home-manifesto__rules article > p {
	position: static;
	grid-area: copy;
	margin: 0;
	padding: 0;
	border: 0;
	font-size: .92rem;
	line-height: 1.55;
}

/* A small icon per stage supports the numbered process without replacing it. */
.afn-home-process__steps > li > .afn-process-number {
	display: block;
	color: #75ded1;
	font-size: .66rem;
	font-weight: 850;
	letter-spacing: .1em;
}

.afn-home-process__steps .afn-icon {
	position: static;
	display: inline-grid;
	width: 24px;
	height: 24px;
	margin: 2px 0 3px;
	color: #86e3d7;
	font-size: initial;
	letter-spacing: normal;
}

/* Municipal process: icon, number and explanation share one stable grid. */
.afn-municipal-process li {
	grid-template-columns: 44px 34px minmax(0, 1fr);
	gap: 14px;
	align-items: start;
}

.afn-municipal-process li > .afn-icon {
	width: 27px;
	height: 27px;
	color: #075f5b;
	font-size: initial;
	font-weight: normal;
	letter-spacing: normal;
}

/* Municipal imagery is integrated as a sequence, not an unrelated gallery. */
.afn-municipal-evidence {
	padding: clamp(72px, 8vw, 112px) 0;
	background: #edf4f2;
}

.afn-municipal-evidence > .afn-shell > header {
	display: grid;
	grid-template-columns: minmax(180px, .5fr) minmax(0, 1.5fr);
	gap: clamp(28px, 5vw, 76px);
	align-items: end;
	margin-bottom: clamp(38px, 5vw, 70px);
}

.afn-municipal-evidence > .afn-shell > header h2 {
	max-width: 13ch;
	margin: 0;
	font-size: clamp(2rem, 3.7vw, 3.7rem);
	line-height: 1.04;
	text-wrap: balance;
}

.afn-municipal-evidence__steps {
	display: grid;
	gap: clamp(42px, 6vw, 82px);
}

.afn-municipal-evidence__steps article {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(260px, .92fr);
	gap: clamp(28px, 5vw, 72px);
	align-items: center;
}

.afn-municipal-evidence__steps article:nth-child(even) figure {
	order: 2;
}

.afn-municipal-evidence__steps figure {
	position: relative;
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #d6e1de;
}

.afn-municipal-evidence__steps img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.afn-municipal-evidence__steps figcaption {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	padding: 34px 16px 12px;
	color: rgba(255, 255, 255, .9);
	background: linear-gradient(0deg, rgba(4, 29, 27, .78), rgba(4, 29, 27, 0));
	font-size: .62rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.afn-municipal-evidence__steps article > div {
	max-width: 470px;
}

.afn-municipal-evidence__steps article > div > span {
	display: block;
	margin-bottom: 13px;
	color: #027373;
	font-size: .66rem;
	font-weight: 850;
	letter-spacing: .11em;
}

.afn-municipal-evidence__steps h3 {
	margin: 0 0 14px;
	font-size: clamp(1.55rem, 2.3vw, 2.45rem);
	line-height: 1.08;
	text-wrap: balance;
}

.afn-municipal-evidence__steps p {
	max-width: 48ch;
	margin: 0;
	color: #3e5653;
	line-height: 1.7;
}

/* The global bridge has room for the complete word Documentación. */
.afn-arquiener-bridge__inner {
	grid-template-columns: minmax(280px, .74fr) minmax(0, 1.26fr) !important;
	gap: clamp(38px, 5vw, 70px) !important;
}

.afn-arquiener-bridge__copy {
	min-width: 0;
}

.afn-arquiener-bridge__sequence {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.afn-arquiener-bridge__sequence li {
	display: grid;
	align-content: start;
	min-width: 0;
	padding: 13px 12px;
}

.afn-arquiener-bridge__sequence li > span {
	position: static;
}

.afn-arquiener-bridge__sequence li > strong {
	min-width: 0;
	color: inherit;
	font-size: clamp(.61rem, .72vw, .7rem);
	font-weight: 760;
	line-height: 1.35;
	letter-spacing: .015em;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}

/* Home-only evidence: project/documentation on the left, real Arquiener work on the right. */
.afn-arquiener-bridge--visual .afn-arquiener-bridge__visual {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: minmax(260px, .72fr) 76px minmax(0, 1.28fr);
	gap: clamp(18px, 3vw, 38px);
	align-items: stretch;
	height: clamp(480px, 44vw, 560px);
	margin-top: clamp(12px, 2vw, 24px);
}

.afn-arquiener-bridge__visual figure {
	position: relative;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	background: #0b2522;
}

.afn-arquiener-bridge__visual img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.afn-arquiener-bridge__project > img {
	object-position: center 54%;
}

.afn-arquiener-bridge__construction > div {
	display: grid;
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 2px;
	height: 100%;
}

.afn-arquiener-bridge__construction img:first-child {
	object-position: center 45%;
}

.afn-arquiener-bridge__construction img:last-child {
	object-position: center 38%;
}

.afn-arquiener-bridge__visual figcaption {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	display: grid;
	gap: 4px;
	padding: 50px 20px 18px;
	color: #fff;
	background: linear-gradient(0deg, rgba(4, 29, 27, .96), rgba(4, 29, 27, 0));
}

.afn-arquiener-bridge__visual figcaption span {
	font-size: .62rem;
	font-weight: 820;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.afn-arquiener-bridge__visual figcaption strong {
	font-size: .9rem;
	line-height: 1.35;
}

.afn-arquiener-bridge__transition {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
	justify-items: center;
	gap: 12px;
	padding: 12px 0;
	color: #075f5b;
}

.afn-arquiener-bridge__transition span {
	font-size: .61rem;
	font-weight: 850;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.afn-arquiener-bridge__transition i {
	position: relative;
	display: block;
	width: 1px;
	height: 100%;
	background: rgba(2, 115, 115, .55);
}

.afn-arquiener-bridge__transition i::after {
	content: "";
	position: absolute;
	right: -4px;
	bottom: 0;
	width: 8px;
	height: 8px;
	border-right: 1px solid #075f5b;
	border-bottom: 1px solid #075f5b;
	transform: rotate(45deg);
}

/* Contact: both columns close on the same baseline; the real portrait remains undistorted. */
@media (min-width: 901px) {
	.afn-contact-layout {
		align-items: stretch;
	}

	.afn-contact-data {
		display: flex;
		flex-direction: column;
	}

	.afn-contact-form {
		display: flex;
		align-self: stretch;
		flex-direction: column;
	}

	.afn-contact-form .afn-native-contact-form {
		flex: 1 1 auto;
	}

	.afn-contact-form .afn-native-contact-form button[type="submit"] {
		margin-top: auto;
	}
}

.afn-contact-portrait img {
	object-position: center 46%;
	transform: scaleX(-1) scale(1.22);
	transform-origin: 50% 52%;
}

/* The portfolio introduction reads as one compact composition. */
body.afn-projects-page .afn-page-hero {
	margin-bottom: clamp(28px, 3.2vw, 44px) !important;
}

.afn-project-archive__intro {
	grid-template-columns: minmax(0, 1.05fr) minmax(300px, .55fr) !important;
	grid-template-areas:
		"kicker copy"
		"title copy";
	column-gap: clamp(42px, 7vw, 92px) !important;
	row-gap: 14px !important;
	align-items: start !important;
	margin-bottom: 18px !important;
	padding-bottom: clamp(24px, 3vw, 38px) !important;
}

.afn-project-archive__intro > .afn-kicker {
	grid-area: kicker !important;
	margin: 0 !important;
}

.afn-project-archive__intro > h2 {
	grid-area: title !important;
	align-self: start;
}

.afn-project-archive__intro > p:last-child {
	grid-area: copy !important;
	align-self: end;
}

/* The construction block closes tightly and gives Arquiener a real signature. */
.afn-service-construction {
	grid-template-columns: minmax(0, 1fr) minmax(190px, 250px) !important;
	gap: clamp(30px, 4vw, 56px) !important;
	align-items: center !important;
	margin-top: clamp(38px, 4.5vw, 58px) !important;
	padding: clamp(28px, 3.2vw, 40px) !important;
}

.afn-service-construction__brand {
	display: grid;
	justify-items: center;
	gap: 18px;
}

.afn-service-construction__brand > img {
	display: block;
	width: clamp(118px, 10vw, 150px);
	height: auto;
}

.afn-service-construction__brand .afn-actions {
	justify-content: center;
	max-width: 250px;
}

/* Project heroes use Home's visual scale without deforming project media. */
@media (min-width: 783px) {
	.afn-project-master--wide .afn-project-hero {
		min-height: 0 !important;
		padding-top: clamp(26px, 3vw, 38px) !important;
		padding-bottom: clamp(54px, 5.6vw, 76px) !important;
	}

	.afn-project-master--wide .afn-project-hero__grid {
		min-height: 0 !important;
	}

	.afn-project-master--wide .afn-project-hero__media {
		height: clamp(400px, 32.5vw, 455px) !important;
	}

	.afn-project-master--wide .afn-project-hero__media :where(img, video) {
		height: 100% !important;
		max-height: none !important;
		object-fit: cover !important;
	}
}

/* The footer closes the page; it no longer behaves like another full section. */
.afn-footer {
	padding: clamp(26px, 2.8vw, 34px) 0 8px !important;
}

.afn-footer__grid {
	grid-template-columns: 1.25fr .82fr .95fr .88fr !important;
	gap: clamp(15px, 2vw, 24px) !important;
}

.afn-footer__logo {
	max-width: 180px !important;
	max-height: 39px !important;
	margin-bottom: 6px !important;
}

.afn-footer strong {
	margin-bottom: 5px !important;
}

.afn-footer p,
.afn-footer a {
	font-size: .72rem !important;
	line-height: 1.36 !important;
}

.afn-footer__bottom {
	margin-top: 10px !important;
	padding-top: 8px !important;
}

/* All causes are corrected above; clipping is only a final viewport safeguard. */
html,
body.afn-author-system {
	overflow-x: clip;
}

@media (max-width: 1100px) {
	.afn-contact-layout {
		grid-template-columns: minmax(0, .84fr) minmax(380px, 1.16fr) !important;
		gap: clamp(30px, 4.4vw, 48px) !important;
	}

	.afn-arquiener-bridge__inner {
		grid-template-columns: minmax(245px, .72fr) minmax(0, 1.28fr) !important;
	}
}

@media (max-width: 900px) {
	.afn-contact-layout,
	.afn-arquiener-bridge__inner {
		grid-template-columns: 1fr !important;
	}

	.afn-contact-data,
	.afn-contact-form {
		display: block;
		align-self: auto;
	}

	.afn-service-construction {
		grid-template-columns: 1fr !important;
	}

	.afn-service-construction__brand {
		justify-items: start;
	}

	.afn-service-construction__brand .afn-actions {
		justify-content: flex-start;
		max-width: none;
	}

	.afn-contact-form .afn-native-contact-form button[type="submit"] {
		margin-top: 0;
	}

	.afn-contact-portrait {
		width: min(100%, 560px);
		aspect-ratio: 4 / 5;
	}

	.afn-arquiener-bridge--visual .afn-arquiener-bridge__visual {
		grid-template-columns: 1fr;
		height: auto;
	}

	.afn-arquiener-bridge__project {
		height: min(112vw, 620px);
	}

	.afn-arquiener-bridge__construction > div {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: none;
		height: min(52vw, 420px);
	}

	.afn-arquiener-bridge__transition {
		grid-template-columns: auto minmax(0, 1fr) auto;
		grid-template-rows: 1fr;
		align-items: center;
		padding: 0 12px;
	}

	.afn-arquiener-bridge__transition i {
		width: 100%;
		height: 1px;
	}

	.afn-arquiener-bridge__transition i::after {
		right: 0;
		bottom: -4px;
		transform: rotate(-45deg);
	}

	.afn-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.afn-footer__grid > :nth-child(3) {
		display: block !important;
	}

	.afn-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (max-width: 782px) {
	.afn-project-archive__intro {
		grid-template-columns: 1fr !important;
		grid-template-areas:
			"kicker"
			"title"
			"copy";
		row-gap: 13px !important;
	}

	.afn-project-archive__intro > p:last-child {
		margin-top: 7px !important;
	}

	.afn-municipal-evidence > .afn-shell > header,
	.afn-municipal-evidence__steps article {
		grid-template-columns: 1fr;
	}

	.afn-municipal-evidence__steps article:nth-child(even) figure {
		order: 0;
	}

	.afn-municipal-evidence__steps article > div {
		max-width: 620px;
	}

	.afn-project-master--wide .afn-project-hero__media {
		height: min(70vw, 420px) !important;
	}

	.afn-project-master--wide .afn-project-hero__media :where(img, video) {
		height: 100% !important;
		max-height: none !important;
		object-fit: cover !important;
	}
}

@media (max-width: 560px) {
	.afn-contact-portrait img {
		transform: scaleX(-1) scale(1.16);
	}

	.afn-home-manifesto__rules article {
		grid-template-columns: 28px 36px minmax(0, 1fr);
		column-gap: 10px;
	}

	.afn-home-manifesto__rules article > .afn-icon {
		width: 26px;
		height: 26px;
	}

	.afn-home-process__steps li {
		grid-template-columns: 32px 28px minmax(0, 1fr);
		grid-template-areas:
			"number icon title"
			". . copy";
		column-gap: 10px;
		row-gap: 3px;
	}

	.afn-home-process__steps .afn-process-number { grid-area: number; }
	.afn-home-process__steps .afn-icon { grid-area: icon; margin: 0; }
	.afn-home-process__steps strong { grid-area: title; }
	.afn-home-process__steps small { grid-area: copy; max-width: none; }

	.afn-municipal-process li {
		grid-template-columns: 32px 29px minmax(0, 1fr);
		gap: 10px;
	}

	.afn-arquiener-bridge__sequence {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.afn-arquiener-bridge__sequence li > strong {
		font-size: .67rem;
	}

	.afn-arquiener-bridge__construction > div {
		grid-template-columns: 1fr;
		height: auto;
	}

	.afn-arquiener-bridge__construction img {
		aspect-ratio: 4 / 3;
	}

	.afn-footer__grid {
		grid-template-columns: 1fr !important;
		gap: 16px !important;
	}

	.afn-footer__brand {
		grid-column: auto;
	}

	.afn-footer__brand p {
		display: block !important;
	}

	.afn-footer__bottom {
		display: block !important;
	}
}
