
/* Source: working/arquitectura-fn-sistema-autor/assets/css/frontend.css */
:root {
	--afn-teal: #027373;
	--afn-teal-bright: #038c7f;
	--afn-teal-pale: #d7e7e3;
	--afn-ink: #101414;
	--afn-ink-soft: #27302f;
	--afn-paper: #f1f2ef;
	--afn-white: #ffffff;
	--afn-muted: #65706e;
	--afn-line: rgba(2, 115, 115, .22);
	--afn-shell: min(1180px, calc(100% - 40px));
	--afn-diagonal: clamp(24px, 3vw, 48px);
	--afn-shadow: 0 22px 50px rgba(16, 20, 20, .10);
	--afn-transition: 220ms cubic-bezier(.2, .75, .25, 1);
}

body.afn-author-system,
body.afn-author-system * {
	box-sizing: border-box;
}

html:has(body.afn-author-system) {
	scroll-behavior: smooth;
	max-width: 100%;
	overflow-x: clip !important;
}

body.afn-author-system {
	margin: 0;
	color: var(--afn-ink-soft);
	background-color: var(--afn-paper) !important;
	background-image:
		linear-gradient(90deg, rgba(241, 242, 239, .84), rgba(241, 242, 239, .52) 52%, rgba(241, 242, 239, .86)),
		url('../img/architectural-grid.svg') !important;
	background-attachment: fixed, fixed !important;
	background-position: center, center top !important;
	background-size: auto, 480px 480px !important;
	font-family: Inter, "Helvetica Neue", Arial, sans-serif;
	overflow-x: clip;
}

body.afn-author-system a {
	text-underline-offset: .16em;
}

body.afn-author-system :focus-visible {
	outline: 3px solid #5bd4c4;
	outline-offset: 4px;
}

.afn-shell {
	width: var(--afn-shell);
	margin-inline: auto;
}

.afn-kicker {
	margin: 0 0 18px;
	color: var(--afn-teal-bright);
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .16em;
	line-height: 1.35;
	text-transform: uppercase;
}

/* Header: keeps the theme navigation and logo fully manageable in WordPress. */
body.afn-author-system #masthead.site-header {
	position: fixed !important;
	top: 0;
	right: 0;
	left: 0;
	z-index: 9990;
	min-height: 96px;
	padding: 0 !important;
	color: var(--afn-white);
	background: linear-gradient(108deg, rgba(16, 20, 20, .98), rgba(2, 83, 82, .97) 66%, rgba(3, 140, 127, .96)) !important;
	box-shadow: 0 14px 32px rgba(10, 18, 18, .14);
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 22px), 0 100%);
	transition: min-height var(--afn-transition), background var(--afn-transition), box-shadow var(--afn-transition);
}

body.admin-bar.afn-author-system #masthead.site-header {
	top: 32px;
}

body.afn-author-system #masthead.site-header::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 17px;
	left: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent 3%, #5bd4c4 42%, var(--afn-teal-bright) 88%, transparent);
	transform: skewY(-1deg);
	pointer-events: none;
}

body.afn-author-system.afn-header-scrolled #masthead.site-header {
	min-height: 82px;
	background: linear-gradient(108deg, rgba(16, 20, 20, .99), rgba(2, 78, 77, .99) 72%, rgba(3, 140, 127, .98)) !important;
	box-shadow: 0 16px 34px rgba(10, 18, 18, .23);
}

body.afn-author-system #masthead .navbar {
	width: var(--afn-shell);
	min-height: 82px;
	margin-inline: auto;
	padding: 8px 0 18px !important;
	background: transparent !important;
	display: flex;
	align-items: center;
}

body.afn-author-system #masthead .inner-wrap {
	width: 100%;
	max-width: none !important;
	padding-inline: 0 !important;
}

body.afn-author-system #masthead .site-branding,
body.afn-author-system #masthead .custom-logo-link {
	margin: 0 !important;
}

body.afn-author-system #masthead .custom-logo {
	width: auto !important;
	max-width: min(320px, 31vw) !important;
	max-height: 68px !important;
	object-fit: contain;
}

body.afn-author-system #masthead .main-navigation a {
	position: relative;
	color: rgba(255, 255, 255, .9) !important;
	font-size: .82rem;
	font-weight: 650;
	letter-spacing: .012em;
	text-decoration: none;
}

body.afn-author-system #masthead .main-navigation a::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: -8px;
	left: 0;
	height: 1px;
	background: #5bd4c4;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform var(--afn-transition);
}

body.afn-author-system #masthead .main-navigation a:hover::after,
body.afn-author-system #masthead .main-navigation .current-menu-item > a::after {
	transform: scaleX(1);
	transform-origin: left;
}

body.afn-author-system #masthead .main-navigation .menu-item:last-child > a {
	padding: 12px 25px !important;
	background: var(--afn-teal-bright);
	clip-path: polygon(10px 3px, 100% 0, calc(100% - 10px) calc(100% - 3px), 0 100%);
}

body.afn-author-system #masthead .main-navigation .menu-item:last-child > a::after {
	display: none;
}

body.afn-author-system .navbar-toggle,
body.afn-author-system .menu-toggle {
	color: var(--afn-white) !important;
	border-color: rgba(255, 255, 255, .3) !important;
}

body.home.afn-author-system .custom-header {
	display: none !important;
}

body.afn-author-system .site-content-contain {
	padding-top: 96px;
}

body.afn-projects-page #content.site-content,
body.afn-secondary-page #content.site-content {
	padding-top: 0 !important;
}

body.afn-projects-page .entry-content,
body.afn-secondary-page .entry-content {
	margin-top: 0 !important;
}

body.home.afn-author-system .site-content-contain {
	padding-top: 0;
}

body.afn-author-system .entry-header .entry-title,
body.afn-author-system .page-header .page-title,
body.afn-projects-page .entry-title {
	display: none !important;
}

/* Editorial hero */
.afn-editorial-hero {
	position: relative;
	z-index: 1;
	width: 100vw;
	margin-right: calc(50% - 50vw);
	margin-left: calc(50% - 50vw);
	min-height: 92svh;
	display: grid;
	align-items: center;
	padding: clamp(155px, 18vh, 230px) 0 clamp(90px, 11vh, 140px);
	color: var(--afn-white);
	background-color: var(--afn-ink);
	background-image:
		linear-gradient(102deg, rgba(9, 17, 17, .95) 2%, rgba(2, 71, 70, .88) 48%, rgba(2, 115, 115, .34) 100%),
		var(--afn-hero-image);
	background-position: center, center;
	background-size: cover, cover;
	overflow: hidden;
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--afn-diagonal)), 0 100%);
}

.afn-editorial-hero::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: calc(var(--afn-diagonal) + 13px);
	left: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, #6de0d0 38%, var(--afn-teal-bright) 86%, transparent);
	transform: skewY(-1.8deg);
	pointer-events: none;
}

.afn-editorial-hero__geometry {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(118deg, transparent 0 61%, rgba(255, 255, 255, .07) 61.1% 61.25%, transparent 61.35%),
		linear-gradient(73deg, transparent 0 78%, rgba(91, 212, 196, .13) 78.1% 78.25%, transparent 78.35%),
		radial-gradient(circle at 86% 26%, rgba(91, 212, 196, .28) 0 1px, transparent 2px);
	background-size: auto, auto, 22px 22px;
	mix-blend-mode: screen;
	pointer-events: none;
}

.afn-editorial-hero__inner {
	position: relative;
	z-index: 2;
}

.afn-editorial-hero__copy {
	max-width: 860px;
}

.afn-editorial-hero .afn-kicker {
	color: #75ded1;
}

.afn-editorial-hero h1 {
	max-width: 900px;
	margin: 0;
	color: var(--afn-white) !important;
	font-family: Inter, "Helvetica Neue", Arial, sans-serif !important;
	font-size: clamp(3rem, 6vw, 5.9rem) !important;
	font-weight: 520 !important;
	letter-spacing: -.052em;
	line-height: .98;
	text-wrap: balance;
	text-shadow: 0 5px 30px rgba(0, 0, 0, .22);
}

.afn-editorial-hero__intro {
	max-width: 760px;
	margin: 30px 0 0;
	color: rgba(255, 255, 255, .86);
	font-size: clamp(1.05rem, 1.5vw, 1.28rem);
	line-height: 1.62;
}

.afn-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}

.afn-button,
body.afn-author-system .elementor-button {
	min-height: 50px;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	padding: 0 30px !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-size: .78rem !important;
	font-weight: 780 !important;
	letter-spacing: .025em;
	line-height: 1.2;
	text-decoration: none !important;
	clip-path: polygon(11px 4px, 100% 0, calc(100% - 11px) calc(100% - 4px), 0 100%);
	transition: transform var(--afn-transition), background var(--afn-transition), color var(--afn-transition), filter var(--afn-transition);
}

.afn-button:hover,
body.afn-author-system .elementor-button:hover {
	transform: translateY(-3px);
	filter: drop-shadow(0 12px 17px rgba(10, 20, 19, .18));
}

.afn-button--primary,
body.afn-author-system .elementor-button {
	color: var(--afn-white) !important;
	background: var(--afn-teal-bright) !important;
}

.afn-button--ghost {
	color: var(--afn-white) !important;
	background: rgba(255, 255, 255, .12);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .34);
	backdrop-filter: blur(10px);
}

.afn-hero-principles {
	position: relative;
	margin-top: clamp(54px, 8vh, 90px);
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.afn-hero-principles article {
	min-height: 165px;
	padding: 22px 24px;
	color: var(--afn-white);
	background: rgba(9, 24, 23, .66);
	border: 1px solid rgba(117, 222, 209, .3);
	backdrop-filter: blur(14px);
	clip-path: polygon(9px 4px, 100% 0, calc(100% - 9px) calc(100% - 4px), 0 100%);
}

.afn-hero-principles span {
	color: #75ded1;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .14em;
}

.afn-hero-principles h2 {
	margin: 13px 0 8px;
	color: var(--afn-white) !important;
	font-family: Inter, "Helvetica Neue", Arial, sans-serif !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	letter-spacing: -.01em;
}

.afn-hero-principles p {
	margin: 0;
	color: rgba(255, 255, 255, .72);
	font-size: .88rem;
	line-height: 1.55;
}

/* Interior-page hero */
.afn-page-hero {
	position: relative;
	width: 100vw;
	margin: 0 calc(50% - 50vw) clamp(48px, 7vw, 90px);
	padding: clamp(96px, 13vw, 160px) 0 clamp(72px, 9vw, 116px);
	color: var(--afn-white);
	background:
		linear-gradient(112deg, rgba(16, 20, 20, .98), rgba(2, 72, 71, .96) 68%, rgba(3, 140, 127, .88)),
		url('../img/architectural-grid.svg');
	background-size: auto, 480px;
	overflow: hidden;
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--afn-diagonal)), 0 100%);
}

.afn-page-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(72deg, transparent 0 64%, rgba(255, 255, 255, .05) 64.1% 64.3%, transparent 64.4%);
}

.afn-page-hero__line {
	position: absolute;
	right: 0;
	bottom: calc(var(--afn-diagonal) + 9px);
	left: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent 4%, #65d6c8 45%, var(--afn-teal-bright) 87%, transparent);
	transform: skewY(-1.7deg);
}

.afn-page-hero .afn-shell {
	position: relative;
	z-index: 1;
}

.afn-page-hero .afn-kicker {
	color: #75ded1;
}

.afn-page-hero h1 {
	max-width: 980px;
	margin: 0;
	color: var(--afn-white) !important;
	font-family: Inter, "Helvetica Neue", Arial, sans-serif !important;
	font-size: clamp(2.7rem, 5.4vw, 5rem) !important;
	font-weight: 520 !important;
	letter-spacing: -.048em;
	line-height: 1.02;
	text-wrap: balance;
}

.afn-page-hero > .afn-shell > p:last-child {
	max-width: 790px;
	margin: 26px 0 0;
	color: rgba(255, 255, 255, .78);
	font-size: clamp(1rem, 1.35vw, 1.22rem);
	line-height: 1.6;
}

/* Elementor content remains editable and acts as the content source. */
body.afn-author-system .site-main,
body.afn-author-system #main,
body.afn-author-system .entry-content,
body.afn-author-system .page-content {
	max-width: none !important;
}

body.afn-author-system .elementor-widget-heading h2,
body.afn-author-system .elementor-widget-heading h3,
body.afn-author-system .elementor-widget-heading h4 {
	color: var(--afn-teal) !important;
	font-family: Inter, "Helvetica Neue", Arial, sans-serif !important;
	font-weight: 620 !important;
	letter-spacing: -.035em;
	line-height: 1.08;
	text-wrap: balance;
}

body.afn-author-system .elementor-widget-heading h2 {
	font-size: clamp(2rem, 4vw, 3.75rem) !important;
}

body.afn-author-system .elementor-widget-text-editor,
body.afn-author-system .elementor-widget-text-editor p,
body.afn-author-system .elementor-widget-text-editor li {
	color: var(--afn-ink-soft);
	font-family: Inter, "Helvetica Neue", Arial, sans-serif;
	font-size: clamp(.98rem, 1.05vw, 1.08rem);
	line-height: 1.68;
}

body.afn-author-system .elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}

.afn-lead {
	font-size: clamp(1.1rem, 1.55vw, 1.34rem) !important;
	line-height: 1.58 !important;
}

.afn-statement {
	margin: 0 !important;
	color: var(--afn-teal) !important;
	font-size: clamp(1.25rem, 2.4vw, 2.05rem) !important;
	font-weight: 600;
	letter-spacing: -.035em;
	line-height: 1.22 !important;
}

.afn-role {
	color: var(--afn-teal) !important;
	font-size: .76rem !important;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.afn-small {
	color: var(--afn-muted) !important;
	font-size: .86rem !important;
}

.afn-inline-list,
.afn-check-list {
	margin: 25px 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.afn-inline-list li,
.afn-check-list li {
	position: relative;
	padding: 13px 15px 13px 35px;
	background: rgba(255, 255, 255, .62);
	border: 1px solid var(--afn-line);
}

.afn-inline-list li::before,
.afn-check-list li::before {
	content: "";
	position: absolute;
	top: 20px;
	left: 15px;
	width: 9px;
	height: 9px;
	background: var(--afn-teal-bright);
	clip-path: polygon(0 0, 100% 50%, 0 100%);
}

.afn-principles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: 26px;
}

.afn-principles > p {
	margin: 0 !important;
	padding: 18px;
	background: rgba(255, 255, 255, .67);
	border: 1px solid var(--afn-line);
}

.afn-principles strong,
.afn-principles span {
	display: block;
}

.afn-principles strong {
	margin-bottom: 7px;
	color: var(--afn-teal);
	font-size: .78rem;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.afn-principles span {
	color: var(--afn-muted);
	font-size: .9rem;
	line-height: 1.5;
}

.afn-number-list {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	counter-reset: afn-step;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.afn-number-list li {
	position: relative;
	min-height: 132px;
	padding: 24px 22px 22px 68px;
	background: rgba(255, 255, 255, .72);
	border: 1px solid var(--afn-line);
	counter-increment: afn-step;
}

.afn-number-list li::before {
	content: "0" counter(afn-step);
	position: absolute;
	top: 23px;
	left: 20px;
	color: var(--afn-teal-bright);
	font-size: .78rem;
	font-weight: 850;
	letter-spacing: .08em;
}

.afn-number-list strong,
.afn-number-list span {
	display: block;
}

.afn-number-list strong {
	color: var(--afn-ink);
	font-size: 1rem;
}

.afn-number-list span {
	margin-top: 7px;
	color: var(--afn-muted);
	font-size: .9rem;
	line-height: 1.45;
}

/* Home page: large editorial boxes, still composed of the original widgets. */
body.afn-home-page .elementor-element-7c2e07f,
body.afn-home-page .elementor-element-e238fe1,
body.afn-home-page .elementor-element-94a5083,
body.afn-home-page .elementor-element-12aa741 {
	width: var(--afn-shell) !important;
	max-width: 1180px !important;
	margin: clamp(52px, 7vw, 92px) auto !important;
	padding: clamp(28px, 5vw, 64px) !important;
	background: rgba(255, 255, 255, .78) !important;
	border: 1px solid rgba(2, 115, 115, .16) !important;
	box-shadow: var(--afn-shadow);
	backdrop-filter: blur(8px);
	clip-path: polygon(0 18px, 100% 0, 100% calc(100% - 18px), 0 100%);
}

body.afn-home-page .elementor-element-7c2e07f {
	display: grid !important;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(18px, 2.4vw, 30px) !important;
}

body.afn-home-page .elementor-element-7c2e07f > .elementor-element,
body.afn-home-page .elementor-element-7c2e07f > .e-con-inner > .elementor-element {
	grid-column: 1 / -1;
}

body.afn-home-page .elementor-element-c164b53,
body.afn-home-page .elementor-widget-divider,
body.afn-home-page .elementor-element-90ef927,
body.afn-home-page .elementor-element-fb1df53 {
	display: none !important;
}

/* Construction and municipal management now belong to Arquiener S.A. */
body.afn-home-page .elementor-element-e8b47f5,
body.afn-home-page .elementor-element-e238fe1 {
	display: none !important;
}

body.afn-home-page .elementor-element-89c52b0 {
	grid-column: 1 / span 7 !important;
}

body.afn-home-page .elementor-element-da5436b {
	grid-column: 8 / -1 !important;
	padding: 25px;
	background: rgba(215, 231, 227, .46);
	border-left: 2px solid var(--afn-teal-bright);
}

body.afn-home-page .elementor-element-b454729 {
	grid-column: 1 / -1 !important;
	margin-top: 10px;
	gap: 16px !important;
}

body.afn-home-page .elementor-element-b454729 img,
body.afn-home-page .elementor-element-9f4f95a img,
body.afn-home-page .elementor-element-0ad0edf img,
body.afn-home-page .elementor-element-26ae77b img,
body.afn-home-page .elementor-element-67b02b7 img {
	width: 100% !important;
	height: 100% !important;
	min-height: 280px;
	object-fit: cover;
	clip-path: polygon(0 5%, 100% 0, 100% 95%, 0 100%);
}

body.afn-home-page .elementor-element-15a3065 {
	grid-column: 1 / span 8 !important;
	align-self: center;
}

body.afn-home-page .elementor-element-904b645 {
	grid-column: 9 / -1 !important;
	align-self: center;
}

body.afn-home-page .elementor-element-4ae0634,
body.afn-home-page .elementor-element-e8b47f5 {
	margin-top: 36px;
	padding-top: 30px;
	border-top: 1px solid var(--afn-line);
}

body.afn-home-page .elementor-element-e238fe1 > .e-con-inner,
body.afn-home-page .elementor-element-94a5083 > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(18px, 2.4vw, 30px) !important;
}

body.afn-home-page .elementor-element-e238fe1 .elementor-element-5927ecb,
body.afn-home-page .elementor-element-e238fe1 .elementor-element-3ad5a1a,
body.afn-home-page .elementor-element-e238fe1 .elementor-element-466538c,
body.afn-home-page .elementor-element-e238fe1 .elementor-element-9845604 {
	grid-column: 1 / span 5;
}

body.afn-home-page .elementor-element-e238fe1 .elementor-element-0ad0edf,
body.afn-home-page .elementor-element-e238fe1 .elementor-element-26ae77b {
	grid-column: 6 / -1;
}

body.afn-home-page .elementor-element-e238fe1 .elementor-element-27c1f5e,
body.afn-home-page .elementor-element-e238fe1 .elementor-element-ebac472,
body.afn-home-page .elementor-element-e238fe1 .elementor-element-d896252 {
	grid-column: 1 / span 5;
}

body.afn-home-page .elementor-element-e238fe1 .elementor-element-3ad5a1a {
	margin-top: 40px;
}

body.afn-home-page .elementor-element-94a5083 {
	color: var(--afn-white);
	background: linear-gradient(120deg, rgba(16, 20, 20, .97), rgba(2, 92, 90, .95)) !important;
	border-color: rgba(91, 212, 196, .28) !important;
}

body.afn-home-page .elementor-element-94a5083 .elementor-widget-text-editor,
body.afn-home-page .elementor-element-94a5083 .elementor-widget-text-editor p,
body.afn-home-page .elementor-element-94a5083 .elementor-widget-text-editor span {
	color: rgba(255, 255, 255, .8) !important;
}

body.afn-home-page .elementor-element-94a5083 .elementor-widget-text-editor h2 {
	color: var(--afn-white) !important;
}

body.afn-home-page .elementor-element-94a5083 .elementor-element-3388371 {
	grid-column: 1 / span 7;
}

body.afn-home-page .elementor-element-94a5083 .elementor-element-67b02b7 {
	grid-column: 8 / -1;
}

body.afn-home-page .elementor-element-94a5083 .afn-principles > p {
	background: rgba(255, 255, 255, .08);
	border-color: rgba(117, 222, 209, .22);
}

body.afn-home-page .elementor-element-94a5083 .afn-principles strong {
	color: #75ded1;
}

body.afn-home-page .elementor-element-04fab85,
body.afn-home-page .elementor-element-e65c8bf,
body.afn-home-page .elementor-element-c6c4043 {
	width: var(--afn-shell) !important;
	max-width: 1180px !important;
	margin: 24px auto !important;
}

body.afn-home-page .elementor-element-e65c8bf {
	padding: 54px 32px !important;
	color: var(--afn-white);
	background: linear-gradient(110deg, var(--afn-ink), var(--afn-teal)) !important;
	clip-path: polygon(0 15px, 100% 0, 100% calc(100% - 15px), 0 100%);
}

body.afn-home-page .elementor-element-e65c8bf h2 {
	color: var(--afn-white) !important;
}

body.afn-home-page .elementor-element-12aa741 .swiper,
body.afn-home-page .elementor-element-12aa741 .elementor-image-carousel-wrapper {
	overflow: hidden;
	clip-path: polygon(0 12px, 100% 0, 100% calc(100% - 12px), 0 100%);
}

/* Projects: the existing Elementor widgets become an asymmetric editorial grid. */
body.afn-projects-page .elementor-element-d05963a {
	width: var(--afn-shell) !important;
	max-width: 1180px !important;
	margin: 0 auto clamp(70px, 9vw, 120px) !important;
	padding: 0 !important;
	background: transparent !important;
}

.afn-project-filters {
	position: relative;
	z-index: 5;
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin: 0 0 34px;
	padding: 14px;
	background: rgba(255, 255, 255, .78);
	border: 1px solid var(--afn-line);
	box-shadow: 0 14px 30px rgba(16, 20, 20, .06);
	backdrop-filter: blur(12px);
}

.afn-project-filters button {
	min-height: 40px;
	padding: 0 18px;
	color: var(--afn-teal);
	background: transparent;
	border: 1px solid rgba(2, 115, 115, .22);
	border-radius: 0;
	font: 750 .73rem/1 Inter, "Helvetica Neue", Arial, sans-serif;
	letter-spacing: .055em;
	text-transform: uppercase;
	cursor: pointer;
	transition: color var(--afn-transition), background var(--afn-transition), transform var(--afn-transition);
}

.afn-project-filters button:hover,
.afn-project-filters button[aria-pressed="true"] {
	color: var(--afn-white);
	background: var(--afn-teal);
	transform: translateY(-2px);
}

body.afn-projects-page:not(.elementor-editor-active) .elementor-element-7bd9b75.afn-gallery-ready {
	display: grid !important;
	grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
	grid-auto-flow: dense;
	grid-auto-rows: clamp(38px, 4.4vw, 66px);
	gap: clamp(10px, 1.35vw, 18px) !important;
}

body.afn-projects-page .afn-category-heading {
	position: relative;
	grid-column: 1 / -1 !important;
	grid-row: span 2;
	align-self: end;
	margin: clamp(42px, 7vw, 86px) 0 5px !important;
	padding: 22px 0 14px 30px;
	border-top: 1px solid var(--afn-line);
}

body.afn-projects-page .afn-category-heading::before {
	content: attr(data-afn-index);
	position: absolute;
	left: 0;
	bottom: 18px;
	color: var(--afn-teal-bright);
	font-size: .7rem;
	font-weight: 850;
	letter-spacing: .08em;
}

body.afn-projects-page .afn-category-heading h2 {
	margin: 0 !important;
	font-size: clamp(1.65rem, 3vw, 2.75rem) !important;
}

body.afn-projects-page .afn-project-card {
	position: relative;
	min-width: 0;
	margin: 0 !important;
	overflow: hidden;
	background: #cfd9d6;
	border: 1px solid rgba(2, 115, 115, .16);
	box-shadow: 0 12px 25px rgba(16, 20, 20, .08);
	transition: transform var(--afn-transition), box-shadow var(--afn-transition), opacity var(--afn-transition);
}

body.afn-projects-page .afn-project-card.afn-size-standard {
	grid-column: span 4;
	grid-row: span 5;
}

body.afn-projects-page .afn-project-card.afn-size-wide {
	grid-column: span 8;
	grid-row: span 5;
}

body.afn-projects-page .afn-project-card.afn-size-tall {
	grid-column: span 4;
	grid-row: span 8;
}

body.afn-projects-page .afn-project-card.afn-size-feature {
	grid-column: span 8;
	grid-row: span 8;
}

body.afn-projects-page .afn-project-card:nth-of-type(4n + 1) {
	clip-path: polygon(0 5%, 100% 0, 100% 95%, 0 100%);
}

body.afn-projects-page .afn-project-card:nth-of-type(4n + 2) {
	clip-path: polygon(0 0, 100% 5%, 100% 100%, 0 95%);
}

body.afn-projects-page .afn-project-card:nth-of-type(4n + 3) {
	clip-path: polygon(0 4%, 96% 0, 100% 96%, 4% 100%);
}

body.afn-projects-page .afn-project-card:hover {
	z-index: 3;
	transform: translateY(-7px);
	box-shadow: 0 24px 45px rgba(16, 20, 20, .17);
}

body.afn-projects-page .afn-project-card .elementor-widget-container,
body.afn-projects-page .afn-project-card a,
body.afn-projects-page .afn-project-card picture,
body.afn-projects-page .afn-project-card img {
	width: 100% !important;
	height: 100% !important;
	display: block;
}

body.afn-projects-page .afn-project-card .elementor-widget-container {
	position: relative;
	overflow: hidden;
}

body.afn-projects-page .afn-project-card img {
	object-fit: cover;
	transform: scale(1.002);
	transition: transform 650ms cubic-bezier(.2, .75, .25, 1), filter 450ms ease;
}

body.afn-projects-page .afn-project-card:hover img {
	transform: scale(1.055);
	filter: saturate(1.04) contrast(1.03);
}

body.afn-projects-page .afn-project-card .elementor-widget-container::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, transparent 48%, rgba(8, 16, 16, .83) 100%);
	opacity: .78;
	transition: opacity var(--afn-transition);
	pointer-events: none;
}

body.afn-projects-page .afn-project-card:hover .elementor-widget-container::before {
	opacity: 1;
}

body.afn-projects-page .afn-project-card .elementor-widget-container::after {
	content: attr(data-afn-title);
	position: absolute;
	right: clamp(18px, 2vw, 26px);
	bottom: clamp(20px, 2vw, 30px);
	left: clamp(18px, 2vw, 26px);
	z-index: 2;
	color: var(--afn-white);
	font: 680 clamp(.88rem, 1.1vw, 1.06rem)/1.28 Inter, "Helvetica Neue", Arial, sans-serif;
	letter-spacing: -.015em;
	text-shadow: 0 2px 12px rgba(0, 0, 0, .34);
	pointer-events: none;
}

body.afn-projects-page .afn-project-card[hidden],
body.afn-projects-page .afn-category-heading[hidden] {
	display: none !important;
}

body.afn-projects-page .elementor-element-42ec585 {
	display: none !important;
}

body.afn-projects-page .elementor-element-4c5db42 {
	width: var(--afn-shell) !important;
	margin: 10px auto 90px !important;
	padding: 54px 28px !important;
	background: linear-gradient(110deg, var(--afn-ink), var(--afn-teal)) !important;
	clip-path: polygon(0 16px, 100% 0, 100% calc(100% - 16px), 0 100%);
}

/* Secondary pages: every top-level Elementor container becomes an editorial box. */
body.afn-secondary-page .elementor-element.e-con.e-parent {
	width: var(--afn-shell) !important;
	max-width: 1180px !important;
	margin: clamp(28px, 4.5vw, 58px) auto !important;
	padding: clamp(26px, 4.5vw, 58px) !important;
	background: rgba(255, 255, 255, .78) !important;
	border: 1px solid rgba(2, 115, 115, .16) !important;
	box-shadow: 0 18px 42px rgba(16, 20, 20, .08);
	backdrop-filter: blur(8px);
	clip-path: polygon(0 14px, 100% 0, 100% calc(100% - 14px), 0 100%);
}

body.afn-secondary-page .elementor-widget-image img,
body.afn-secondary-page .elementor-widget-image-carousel img {
	width: 100%;
	object-fit: cover;
	clip-path: polygon(0 4%, 100% 0, 100% 96%, 0 100%);
}

body.afn-secondary-page .elementor-widget-image-carousel .swiper,
body.afn-secondary-page .elementor-widget-image-carousel .elementor-image-carousel-wrapper {
	overflow: hidden;
}

body.afn-about-page .elementor-element-3a06912,
body.afn-contact-page .elementor-element-6d51ac3,
body.afn-contact-page .elementor-element-a868169 {
	padding: clamp(22px, 3vw, 36px);
	background: rgba(215, 231, 227, .44);
	border: 1px solid var(--afn-line);
}

body.afn-contact-page blockquote {
	margin: 0;
	padding: clamp(24px, 4vw, 50px);
	color: var(--afn-white);
	background: linear-gradient(115deg, var(--afn-ink), var(--afn-teal));
	font-size: clamp(1.25rem, 2.4vw, 2rem);
	font-weight: 540;
	letter-spacing: -.035em;
	line-height: 1.35;
	clip-path: polygon(0 12px, 100% 0, 100% calc(100% - 12px), 0 100%);
}

.afn-contact-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.afn-contact-grid > p {
	margin: 0 !important;
	padding: 18px;
	background: rgba(255, 255, 255, .72);
	border: 1px solid var(--afn-line);
}

.afn-contact-grid strong,
.afn-contact-grid span {
	display: block;
}

.afn-contact-grid strong {
	margin-bottom: 8px;
	color: var(--afn-teal);
	font-size: .76rem;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.afn-whatsapp-box p {
	margin: 8px 0 22px !important;
}

/* Institutional bridge: clear separation between author practice and company. */
.afn-arquiener-bridge {
	position: relative;
	width: 100%;
	margin-top: clamp(62px, 9vw, 120px);
	padding: clamp(58px, 7vw, 92px) 0;
	color: rgba(255, 255, 255, .8);
	background:
		linear-gradient(112deg, rgba(16, 20, 20, .98), rgba(2, 87, 85, .97)),
		url('../img/architectural-grid.svg');
	background-size: auto, 480px;
	clip-path: polygon(0 24px, 100% 0, 100% calc(100% - 24px), 0 100%);
	overflow: hidden;
}

.afn-arquiener-bridge::before {
	content: "";
	position: absolute;
	top: 20px;
	right: 0;
	left: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, #65d6c8 44%, var(--afn-teal-bright), transparent);
	transform: skewY(-1.4deg);
}

.afn-arquiener-bridge__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
	gap: clamp(34px, 7vw, 100px);
	align-items: center;
}

.afn-arquiener-bridge .afn-kicker {
	color: #75ded1;
}

.afn-arquiener-bridge h2 {
	max-width: 760px;
	margin: 0;
	color: var(--afn-white) !important;
	font-size: clamp(2rem, 4.2vw, 4rem) !important;
	font-weight: 680;
	letter-spacing: -.045em;
	line-height: .98;
}

.afn-arquiener-bridge__copy {
	padding-left: clamp(22px, 3vw, 42px);
	border-left: 1px solid rgba(117, 222, 209, .34);
}

.afn-arquiener-bridge__copy p {
	margin: 0 0 28px;
	font-size: 1rem;
	line-height: 1.72;
}

.afn-arquiener-bridge + .afn-footer {
	margin-top: 0;
}

/* Native floating contact dock replaces the old third-party button. */
body.afn-author-system .buttonizer,
body.afn-author-system #buttonizer-backdrop {
	display: none !important;
}

.afn-floating-actions {
	position: fixed;
	right: clamp(14px, 2.2vw, 30px);
	bottom: clamp(16px, 2.2vw, 30px);
	z-index: 9995;
	display: grid;
	gap: 10px;
	justify-items: end;
}

.afn-floating-action {
	display: flex;
	min-width: 142px;
	height: 50px;
	padding: 0 17px;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
	color: var(--afn-white) !important;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 999px;
	box-shadow: 0 12px 28px rgba(10, 18, 18, .24);
	font-size: .79rem;
	font-weight: 760;
	letter-spacing: .015em;
	text-decoration: none !important;
	transition: transform var(--afn-transition), box-shadow var(--afn-transition), background var(--afn-transition);
}

.afn-floating-action:hover {
	transform: translateY(-2px);
	box-shadow: 0 16px 32px rgba(10, 18, 18, .3);
}

.afn-floating-action svg {
	width: 22px;
	height: 22px;
	flex: 0 0 22px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.afn-floating-action--instagram {
	background: linear-gradient(115deg, var(--afn-ink), #304a47);
}

.afn-floating-action--whatsapp {
	background: linear-gradient(115deg, var(--afn-teal), var(--afn-teal-bright));
}

/* Original theme footer is replaced by the reversible plugin footer. */
body.afn-author-system > #page .site-footer {
	display: none !important;
}

.afn-footer {
	position: relative;
	margin-top: clamp(60px, 9vw, 120px);
	padding: clamp(82px, 9vw, 116px) 0 24px;
	color: rgba(255, 255, 255, .72);
	background:
		linear-gradient(112deg, rgba(16, 20, 20, .99), rgba(2, 75, 74, .98)),
		url('../img/architectural-grid.svg');
	background-size: auto, 480px;
	clip-path: polygon(0 var(--afn-diagonal), 100% 0, 100% 100%, 0 100%);
}

.afn-footer__edge {
	position: absolute;
	top: calc(var(--afn-diagonal) - 7px);
	right: 0;
	left: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, #65d6c8 44%, var(--afn-teal-bright), transparent);
	transform: skewY(-1.8deg);
}

.afn-footer__grid {
	display: grid;
	grid-template-columns: 1.65fr .8fr 1fr .9fr;
	gap: clamp(24px, 4vw, 54px);
}

.afn-footer strong {
	display: block;
	margin-bottom: 14px;
	color: var(--afn-white);
	font-size: .75rem;
	font-weight: 780;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.afn-footer a {
	display: block;
	margin: 8px 0;
	color: rgba(255, 255, 255, .73);
	font-size: .9rem;
	text-decoration: none;
}

.afn-footer a:hover {
	color: #75ded1;
}

.afn-footer p {
	margin: 0;
	font-size: .88rem;
	line-height: 1.65;
}

.afn-footer__logo {
	width: auto;
	max-width: 310px;
	max-height: 74px;
	margin-bottom: 20px;
	object-fit: contain;
}

.afn-footer__brand p {
	max-width: 430px;
}

.afn-footer__bottom {
	margin-top: 46px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, .13);
	display: flex;
	justify-content: space-between;
	gap: 20px;
}

.afn-footer__bottom p {
	font-size: .72rem;
	letter-spacing: .02em;
}

/* Subtle reveal; the layout remains readable when JavaScript is disabled. */
.afn-js .afn-reveal {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 650ms ease, transform 650ms cubic-bezier(.2, .75, .25, 1);
}

.afn-js .afn-reveal.afn-visible {
	opacity: 1;
	transform: none;
}

@media (max-width: 1050px) {
	body.afn-author-system #masthead .main-navigation a {
		font-size: .74rem;
	}

	.afn-footer__grid {
		grid-template-columns: 1.5fr 1fr 1fr;
	}

	.afn-footer__grid > :last-child {
		grid-column: 2 / -1;
	}

	body.afn-projects-page .afn-project-card.afn-size-standard,
	body.afn-projects-page .afn-project-card.afn-size-tall {
		grid-column: span 6;
	}

	body.afn-projects-page .afn-project-card.afn-size-wide,
	body.afn-projects-page .afn-project-card.afn-size-feature {
		grid-column: span 12;
	}
}

@media (max-width: 782px) {
	body.admin-bar.afn-author-system #masthead.site-header {
		top: 46px;
	}

	body.afn-author-system #masthead.site-header {
		min-height: 82px;
		clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), 0 100%);
	}

	body.afn-author-system #masthead.site-header::after {
		bottom: 9px;
	}

	body.afn-author-system #masthead .navbar {
		min-height: 72px;
		padding-bottom: 12px !important;
	}

	body.afn-author-system #masthead .custom-logo {
		max-width: 245px !important;
		max-height: 58px !important;
	}

	body.afn-author-system .site-content-contain {
		padding-top: 82px;
	}

	body.home.afn-author-system .site-content-contain {
		padding-top: 0;
	}

	.afn-editorial-hero {
		min-height: auto;
		padding-top: 150px;
	}

	.afn-hero-principles {
		grid-template-columns: 1fr;
	}

	.afn-hero-principles article {
		min-height: 0;
	}

	body.afn-home-page .elementor-element-7c2e07f,
	body.afn-home-page .elementor-element-e238fe1 > .e-con-inner,
	body.afn-home-page .elementor-element-94a5083 > .e-con-inner {
		display: block !important;
	}

	body.afn-home-page .elementor-element-7c2e07f .elementor-element,
	body.afn-home-page .elementor-element-e238fe1 .elementor-element,
	body.afn-home-page .elementor-element-94a5083 .elementor-element {
		margin-bottom: 22px;
	}

	body.afn-projects-page:not(.elementor-editor-active) .elementor-element-7bd9b75.afn-gallery-ready {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		grid-auto-rows: 68px;
	}

	body.afn-projects-page .afn-category-heading {
		grid-column: 1 / -1 !important;
		grid-row: span 2;
	}

	body.afn-projects-page .afn-project-card.afn-size-standard,
	body.afn-projects-page .afn-project-card.afn-size-wide,
	body.afn-projects-page .afn-project-card.afn-size-tall,
	body.afn-projects-page .afn-project-card.afn-size-feature {
		grid-column: span 1;
		grid-row: span 4;
	}

	body.afn-projects-page .afn-project-card.afn-size-wide,
	body.afn-projects-page .afn-project-card.afn-size-feature {
		grid-column: 1 / -1;
		grid-row: span 5;
	}

	.afn-contact-grid,
	.afn-principles,
	.afn-number-list {
		grid-template-columns: 1fr;
	}

	.afn-arquiener-bridge__inner {
		grid-template-columns: 1fr;
	}

	.afn-arquiener-bridge__copy {
		padding-top: 26px;
		padding-left: 0;
		border-top: 1px solid rgba(117, 222, 209, .34);
		border-left: 0;
	}

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

	.afn-footer__grid > :last-child {
		grid-column: auto;
	}

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

	.afn-footer__bottom {
		flex-direction: column;
	}
}

@media (max-width: 560px) {
	:root {
		--afn-shell: min(100% - 24px, 1180px);
		--afn-diagonal: 22px;
	}

	body.afn-author-system #masthead .custom-logo {
		max-width: 205px !important;
	}

	.afn-editorial-hero h1,
	.afn-page-hero h1 {
		font-size: clamp(2.45rem, 12vw, 3.55rem) !important;
	}

	.afn-actions,
	.afn-actions .afn-button {
		width: 100%;
	}

	.afn-editorial-hero {
		padding-bottom: 85px;
	}

	.afn-project-filters {
		padding: 10px;
	}

	.afn-project-filters button {
		flex: 1 1 calc(50% - 8px);
		padding-inline: 10px;
	}

	body.afn-projects-page:not(.elementor-editor-active) .elementor-element-7bd9b75.afn-gallery-ready {
		grid-template-columns: 1fr !important;
		grid-auto-rows: 72px;
	}

	body.afn-projects-page .afn-category-heading,
	body.afn-projects-page .afn-project-card.afn-size-standard,
	body.afn-projects-page .afn-project-card.afn-size-wide,
	body.afn-projects-page .afn-project-card.afn-size-tall,
	body.afn-projects-page .afn-project-card.afn-size-feature {
		grid-column: 1 !important;
	}

	body.afn-projects-page .afn-project-card.afn-size-standard,
	body.afn-projects-page .afn-project-card.afn-size-tall {
		grid-row: span 4;
	}

	body.afn-projects-page .afn-project-card.afn-size-wide,
	body.afn-projects-page .afn-project-card.afn-size-feature {
		grid-row: span 5;
	}

	.afn-inline-list,
	.afn-check-list,
	.afn-footer__grid {
		grid-template-columns: 1fr;
	}

	.afn-floating-action {
		width: 52px;
		min-width: 52px;
		height: 52px;
		padding: 0;
		justify-content: center;
	}

	.afn-floating-action span {
		display: none;
	}

	.afn-footer__brand,
	.afn-footer__grid > :last-child {
		grid-column: 1;
	}
}

/* --------------------------------------------------------------------------
 * 1.3.0 · Mother template for every project page
 * ----------------------------------------------------------------------- */

body.afn-project-detail-page #content,
body.afn-project-detail-page #primary,
body.afn-project-detail-page #main,
body.afn-project-detail-page .site-main,
body.afn-project-detail-page .content-area,
body.afn-project-detail-page .entry-content {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
}

body.afn-project-detail-page .entry-content > p:empty {
	display: none;
}

.afn-project-master {
	width: 100vw;
	margin-right: calc(50% - 50vw);
	margin-left: calc(50% - 50vw);
	overflow: clip;
}

.afn-project-hero {
	position: relative;
	min-height: clamp(560px, 72vh, 740px);
	padding: clamp(34px, 4vw, 58px) 0 clamp(74px, 8vw, 112px);
	color: var(--afn-white);
	background:
		linear-gradient(118deg, rgba(13, 20, 20, .99), rgba(1, 70, 69, .96) 66%, rgba(3, 140, 127, .92));
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-project-hero::before,
.afn-project-hero::after {
	content: "";
	position: absolute;
	pointer-events: none;
}

.afn-project-hero::before {
	inset: 0;
	background:
		linear-gradient(90deg, transparent 0 47%, rgba(91, 212, 196, .10) 47% 47.15%, transparent 47.15%),
		linear-gradient(calc(90deg - var(--afn-angle)), transparent 0 73%, rgba(255, 255, 255, .07) 73% 73.1%, transparent 73.1%);
}

.afn-project-hero::after {
	right: 0;
	bottom: calc(var(--afn-plane-rise) + 8px);
	left: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent 4%, #5bd4c4 42%, var(--afn-teal-bright) 88%, transparent);
	transform: rotate(calc(-1 * var(--afn-angle)));
	transform-origin: left center;
}

.afn-project-hero__grid {
	position: relative;
	z-index: 1;
	min-height: 510px;
	display: grid;
	align-items: center;
	gap: clamp(28px, 4vw, 60px);
}

.afn-project-master--split .afn-project-hero__grid {
	grid-template-columns: minmax(0, 1.35fr) minmax(290px, .65fr);
}

.afn-project-master--wide .afn-project-hero__grid {
	grid-template-columns: 1fr;
}

.afn-project-hero__media {
	position: relative;
	width: min(100%, var(--afn-source-max));
	max-width: var(--afn-source-max);
	margin-inline: auto;
	background: #0b1111;
	box-shadow: 0 28px 70px rgba(0, 0, 0, .28);
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-project-master--split .afn-project-hero__media {
	justify-self: start;
}

.afn-project-hero__media img,
.afn-project-hero__media video {
	display: block;
	width: 100%;
	height: auto;
	max-height: 650px;
	object-fit: cover;
}

.afn-project-master--split .afn-project-hero__media img,
.afn-project-master--split .afn-project-hero__media video {
	min-height: clamp(360px, 43vw, 570px);
}

.afn-project-hero__copy {
	min-width: 0;
}

.afn-project-master--wide .afn-project-hero__copy {
	position: absolute;
	right: clamp(18px, 4vw, 54px);
	bottom: clamp(42px, 7vw, 86px);
	left: clamp(18px, 4vw, 54px);
	max-width: 900px;
	padding: clamp(22px, 3vw, 38px);
	background: linear-gradient(98deg, rgba(10, 18, 18, .92), rgba(2, 77, 75, .75) 72%, transparent);
	backdrop-filter: blur(7px);
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, calc(100% - var(--afn-plane-rise)) 100%, 0 calc(100% - 4px));
}

.afn-project-hero .afn-kicker {
	color: #75ded1;
}

.afn-project-hero h1 {
	max-width: 15ch;
	margin: 0;
	color: var(--afn-white);
	font: 570 clamp(3rem, 6.2vw, 6.7rem)/.93 Inter, "Helvetica Neue", Arial, sans-serif;
	letter-spacing: -.062em;
	text-wrap: balance;
}

.afn-project-master--split .afn-project-hero h1 {
	font-size: clamp(2.9rem, 4.8vw, 5.4rem);
}

.afn-project-back {
	display: inline-flex;
	margin-top: 30px;
	color: rgba(255, 255, 255, .82);
	font-size: .78rem;
	font-weight: 760;
	letter-spacing: .08em;
	text-decoration: none;
	text-transform: uppercase;
}

.afn-project-back:hover {
	color: #75ded1;
}

.afn-project-overview {
	position: relative;
	margin-top: calc(-1 * var(--afn-plane-rise));
	padding: clamp(82px, 8vw, 116px) 0 clamp(64px, 7vw, 96px);
	background: rgba(255, 255, 255, .88);
}

.afn-project-overview__grid {
	display: grid;
	grid-template-columns: minmax(320px, .86fr) minmax(0, 1.14fr);
	gap: clamp(38px, 6vw, 88px);
	align-items: start;
}

.afn-project-overview__facts,
.afn-project-overview__memory {
	min-width: 0;
}

.afn-project-overview .afn-project-facts {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border: 0;
	background: rgba(2, 115, 115, .22);
	box-shadow: var(--afn-shadow);
}

.afn-project-overview .afn-project-facts div {
	min-height: 92px;
	padding: 20px;
	background: rgba(255, 255, 255, .96);
}

.afn-project-overview .afn-project-facts dt {
	color: var(--afn-teal);
}

.afn-project-overview__memory {
	max-width: 760px;
	font-size: clamp(1.08rem, 1.32vw, 1.24rem);
	line-height: 1.72;
}

.afn-project-overview__memory > p:not(.afn-kicker),
.afn-project-overview__memory .afn-project-memory {
	margin: 0;
	padding: clamp(26px, 3.5vw, 44px);
	background: rgba(241, 242, 239, .9);
	border-left: 2px solid var(--afn-teal-bright);
	box-shadow: 0 22px 50px rgba(16, 20, 20, .08);
}

.afn-project-overview__memory .afn-project-memory strong {
	color: var(--afn-teal);
}

.afn-project-gallery {
	padding: clamp(68px, 8vw, 112px) 0 0;
}

.afn-project-gallery__heading {
	display: grid;
	grid-template-columns: minmax(220px, .55fr) minmax(0, 1.45fr);
	gap: clamp(24px, 5vw, 70px);
	align-items: end;
	padding-bottom: clamp(42px, 5vw, 68px);
}

.afn-project-gallery__heading h2 {
	max-width: 15ch;
	margin: 0;
	color: var(--afn-ink);
	font-size: clamp(2.25rem, 4.2vw, 4.6rem);
	line-height: .98;
	letter-spacing: -.048em;
}

.afn-project-media-band {
	position: relative;
	width: 100%;
	padding: clamp(54px, 6vw, 86px) 0;
	background: rgba(255, 255, 255, .52);
}

.afn-project-media-band:nth-of-type(even) {
	background: rgba(2, 115, 115, .055);
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
	padding-top: calc(clamp(54px, 6vw, 86px) + var(--afn-plane-rise));
	padding-bottom: calc(clamp(54px, 6vw, 86px) + var(--afn-plane-rise));
}

.afn-project-media-band__inner > h3 {
	margin: 0 0 28px;
	color: var(--afn-teal);
	font-size: .8rem;
	font-weight: 850;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.afn-project-media-grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(16px, 2.2vw, 30px);
	align-items: start;
}

.afn-project-media {
	grid-column: span 6;
	width: min(100%, var(--afn-media-max));
	max-width: var(--afn-media-max);
	margin: 0 auto;
	background: #111817;
	box-shadow: 0 20px 45px rgba(16, 20, 20, .12);
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-project-media--compact {
	grid-column: span 4;
}

.afn-project-media--wide,
.afn-project-media--plan {
	grid-column: 1 / -1;
}

.afn-project-media--portrait {
	grid-column: span 5;
}

.afn-project-media a {
	display: flex;
	min-height: 100%;
	align-items: center;
	justify-content: center;
	background: #111817;
}

.afn-project-media img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 820px;
	object-fit: contain;
	transition: transform var(--afn-transition), filter var(--afn-transition);
}

.afn-project-media:not(.afn-project-media--plan):hover img {
	filter: saturate(1.03) contrast(1.02);
	transform: scale(1.012);
}

.afn-project-media--plan,
.afn-project-media--plan a {
	background: rgba(255, 255, 255, .96);
	clip-path: none;
}

.afn-project-media--plan img {
	padding: clamp(12px, 2vw, 26px);
}

.afn-project-video-grid {
	max-width: 1040px;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

.afn-project-video,
.afn-project-video-grid iframe,
.afn-project-video-native {
	width: 100%;
	min-height: 0;
	aspect-ratio: 16 / 9;
	border: 0;
}

.afn-project-video {
	position: relative;
	display: grid;
	place-content: center;
	gap: 12px;
	color: var(--afn-white);
	background:
		linear-gradient(rgba(10, 18, 18, .45), rgba(10, 18, 18, .78)),
		var(--afn-video-poster) center / cover no-repeat,
		var(--afn-ink);
	cursor: pointer;
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-project-video span {
	width: 58px;
	height: 58px;
	display: grid;
	place-content: center;
	margin-inline: auto;
	padding-left: 4px;
	background: var(--afn-teal-bright);
	border-radius: 50%;
}

.afn-project-video strong {
	font-size: .78rem;
	letter-spacing: .1em;
	text-transform: uppercase;
}

/* Author media: intrinsic sizes are preserved; final limits live in v1.4.css. */
.afn-author-gallery {
	width: 100vw;
	margin: clamp(52px, 6vw, 84px) calc(50% - 50vw) 0;
	padding: clamp(54px, 6vw, 82px) 0;
	background: rgba(2, 115, 115, .06);
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-author-gallery__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(18px, 2.5vw, 34px);
	align-items: end;
}

.afn-author-gallery figure {
	margin: 0;
}

.afn-author-gallery figure:nth-child(1) { max-width: 405px; }
.afn-author-gallery figure:nth-child(2) { max-width: 480px; transform: translateY(-22px); }
.afn-author-gallery figure:nth-child(3) { max-width: 768px; }

.afn-author-gallery img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 620px;
	object-fit: cover;
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-author-gallery figcaption {
	padding: 14px 4px 0;
	color: var(--afn-muted);
	font-size: .72rem;
	font-weight: 730;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.afn-author-method {
	width: 100vw;
	max-width: none;
	margin: 0 calc(50% - 50vw);
	padding: clamp(72px, 8vw, 108px) 0;
	background: linear-gradient(112deg, #0d1716, #064846 72%, #027373);
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-author-method__inner {
	display: grid;
	grid-template-columns: minmax(250px, .65fr) minmax(0, 1.35fr);
	gap: clamp(34px, 6vw, 86px);
	align-items: start;
}

.afn-author-method__inner header,
.afn-author-method__rules {
	display: block;
	width: auto;
	max-width: none;
	padding: 0;
}

.afn-author-method__rules {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	background: rgba(255, 255, 255, .15);
}

.afn-author-method__rules p {
	margin: 0;
	padding: clamp(22px, 3vw, 36px);
	background: rgba(10, 20, 19, .46);
}

@media (max-width: 980px) {
	.afn-project-master--split .afn-project-hero__grid {
		grid-template-columns: 1fr;
	}

	.afn-project-master--split .afn-project-hero__media {
		justify-self: center;
	}

	.afn-project-master--split .afn-project-hero__copy {
		max-width: 760px;
	}

	.afn-project-overview__grid,
	.afn-project-gallery__heading,
	.afn-author-method__inner {
		grid-template-columns: 1fr;
	}

	.afn-author-method__rules {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 782px) {
	.afn-project-hero {
		min-height: 0;
		padding-top: 24px;
	}

	.afn-project-hero__grid {
		min-height: 0;
	}

	.afn-project-master--wide .afn-project-hero__copy {
		position: relative;
		right: auto;
		bottom: auto;
		left: auto;
		max-width: none;
		margin-top: -32px;
		background: linear-gradient(98deg, rgba(10, 18, 18, .96), rgba(2, 77, 75, .9));
	}

	.afn-project-hero h1,
	.afn-project-master--split .afn-project-hero h1 {
		font-size: clamp(2.65rem, 10vw, 4.6rem);
	}

	.afn-project-media,
	.afn-project-media--compact,
	.afn-project-media--portrait {
		grid-column: span 6;
	}

	.afn-project-video-grid,
	.afn-author-gallery__grid {
		grid-template-columns: 1fr;
	}

	.afn-author-gallery figure,
	.afn-author-gallery figure:nth-child(1),
	.afn-author-gallery figure:nth-child(2),
	.afn-author-gallery figure:nth-child(3) {
		max-width: min(100%, 560px);
		margin-inline: auto;
		transform: none;
	}

	.afn-author-method__rules {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 560px) {
	.afn-project-hero {
		padding-bottom: 72px;
	}

	.afn-project-hero__media {
		width: min(100%, var(--afn-source-max));
	}

	.afn-project-master--split .afn-project-hero__media img,
	.afn-project-master--split .afn-project-hero__media video {
		min-height: 0;
	}

	.afn-project-overview {
		padding-top: 70px;
	}

	.afn-project-overview .afn-project-facts {
		grid-template-columns: 1fr;
	}

	.afn-project-media,
	.afn-project-media--compact,
	.afn-project-media--portrait,
	.afn-project-media--wide,
	.afn-project-media--plan {
		grid-column: 1 / -1;
	}

	.afn-project-gallery__heading h2 {
		font-size: clamp(2rem, 10vw, 3rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	html:has(body.afn-author-system) {
		scroll-behavior: auto;
	}

	.afn-js .afn-reveal,
	.afn-js .afn-reveal.afn-visible,
	body.afn-author-system *,
	body.afn-author-system *::before,
	body.afn-author-system *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/* --------------------------------------------------------------------------
 * v1.2 — precisión dentro de la identidad existente
 *
 * Header y footer conservan sus planos, superposiciones y bordes inclinados.
 * Todas las piezas equivalentes derivan ahora de un único ángulo base.
 * ----------------------------------------------------------------------- */

:root {
	--afn-angle: .9deg;
	--afn-plane-rise: clamp(14px, 1.55vw, 24px);
	--afn-header-height: 92px;
	--afn-section-space: clamp(46px, 5.4vw, 72px);
	--afn-box-space: clamp(24px, 3.4vw, 44px);
	--afn-grid-gap: clamp(12px, 1.35vw, 18px);
}

/* Header: same composition, tighter execution and explicit intersecting plane. */
body.afn-author-system #masthead.site-header {
	--afn-local-rise: var(--afn-plane-rise);
	min-height: var(--afn-header-height);
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--afn-local-rise)), 0 100%);
	isolation: isolate;
	overflow: hidden;
}

body.afn-author-system #masthead.site-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(104deg, transparent 0 47%, rgba(255, 255, 255, .035) 47.1% 68%, transparent 68.1%),
		linear-gradient(104deg, transparent 0 63%, rgba(3, 140, 127, .24) 63.1% 100%);
	clip-path: polygon(39% 0, 100% 0, 100% 100%, 51% calc(100% - var(--afn-local-rise)));
	pointer-events: none;
}

body.afn-author-system #masthead.site-header::after {
	bottom: calc(var(--afn-local-rise) - 3px);
	transform: rotate(calc(-1 * var(--afn-angle)));
	transform-origin: left center;
}

body.afn-author-system.afn-header-scrolled #masthead.site-header {
	min-height: 80px;
}

body.afn-author-system #masthead .navbar {
	min-height: 78px;
	padding: 6px 0 15px !important;
}

body.afn-author-system.afn-header-scrolled #masthead .navbar {
	min-height: 68px;
}

body.afn-author-system #masthead .custom-logo {
	max-width: min(290px, 29vw) !important;
	max-height: 58px !important;
}

body.afn-author-system #masthead .main-navigation a {
	font-size: .8rem;
}

body.afn-author-system #masthead .main-navigation .menu-item:last-child > a {
	padding: 11px 22px !important;
}

/* Home hero: photo first, no 100vh and the next section is visible on load. */
.afn-editorial-hero {
	min-height: clamp(560px, 68svh, 720px);
	padding: clamp(132px, 15vh, 164px) 0 clamp(62px, 7vh, 82px);
	align-items: center;
	background-image:
		linear-gradient(102deg, rgba(9, 17, 17, .93) 1%, rgba(2, 71, 70, .74) 52%, rgba(2, 115, 115, .18) 100%),
		var(--afn-hero-image);
	background-position: center, center 54%;
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-editorial-hero::after {
	bottom: calc(var(--afn-plane-rise) + 7px);
	transform: rotate(calc(-1 * var(--afn-angle)));
	transform-origin: left center;
}

.afn-editorial-hero__copy {
	max-width: 850px;
}

.afn-editorial-hero h1 {
	max-width: 850px;
	font-size: clamp(3rem, 5vw, 4.75rem) !important;
	line-height: 1.01;
}

.afn-editorial-hero__intro {
	max-width: 710px;
	margin-top: 24px;
	font-size: clamp(1rem, 1.3vw, 1.16rem);
	line-height: 1.55;
}

.afn-editorial-hero .afn-actions {
	margin-top: 28px;
}

/* Common section heading. */
.afn-section-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 28px;
	margin-bottom: 28px;
}

.afn-section-heading h2,
.afn-home-manifesto h2,
.afn-home-author h2,
.afn-home-contact h2,
.afn-author-profile h2,
.afn-contact-page-content h2 {
	margin: 0;
	color: var(--afn-teal);
	font: 620 clamp(2rem, 3.7vw, 3.55rem)/1.04 Inter, "Helvetica Neue", Arial, sans-serif;
	letter-spacing: -.045em;
	text-wrap: balance;
}

.afn-section-heading > a,
.afn-text-link {
	color: var(--afn-teal) !important;
	font-size: .82rem;
	font-weight: 780;
	letter-spacing: .02em;
	text-decoration: none !important;
}

/* Selected projects: asymmetry comes from the grid, not random angles. */
.afn-home-projects {
	padding: var(--afn-section-space) 0;
}

.afn-selected-grid {
	height: clamp(620px, 53vw, 720px);
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-template-rows: repeat(4, minmax(0, 1fr));
	gap: var(--afn-grid-gap);
}

.afn-selected-card {
	position: relative;
	min-width: 0;
	margin: 0;
	background: #c8d4d1;
	box-shadow: 0 16px 34px rgba(16, 20, 20, .11);
	overflow: hidden;
	transform: skewY(calc(-1 * var(--afn-angle)));
	transform-origin: center;
	transition: transform var(--afn-transition), box-shadow var(--afn-transition), opacity 420ms ease;
}

.afn-selected-card--1 { grid-column: 1 / 8; grid-row: 1 / 3; }
.afn-selected-card--2 { grid-column: 8 / 13; grid-row: 1 / 2; }
.afn-selected-card--3 { grid-column: 8 / 13; grid-row: 2 / 3; }
.afn-selected-card--4 { grid-column: 1 / 5; grid-row: 3 / 5; }
.afn-selected-card--5 { grid-column: 5 / 9; grid-row: 3 / 5; }
.afn-selected-card--6 { grid-column: 9 / 13; grid-row: 3 / 5; }

.afn-selected-card a {
	position: absolute;
	inset: -12px;
	display: block;
	overflow: hidden;
	transform: skewY(var(--afn-angle));
}

.afn-selected-card img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transform: scale(1.035);
	transition: transform 520ms cubic-bezier(.2, .75, .25, 1), filter 420ms ease;
}

.afn-selected-card a::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 43%, rgba(6, 14, 14, .84) 100%);
}

.afn-selected-card__caption {
	position: absolute;
	right: 30px;
	bottom: 27px;
	left: 30px;
	z-index: 2;
	display: grid;
	gap: 6px;
	color: var(--afn-white);
}

.afn-selected-card__caption small {
	font-size: .66rem;
	font-weight: 800;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.afn-selected-card__caption strong {
	font-size: clamp(1rem, 1.55vw, 1.42rem);
	line-height: 1.15;
}

.afn-selected-card:hover {
	z-index: 2;
	transform: skewY(calc(-1 * var(--afn-angle))) translateY(-4px);
	box-shadow: 0 24px 42px rgba(16, 20, 20, .18);
}

.afn-selected-card:hover img {
	transform: scale(1.075);
	filter: saturate(1.03) contrast(1.02);
}

/* Manifesto: one decisive band instead of several generic service boxes. */
.afn-home-manifesto {
	position: relative;
	padding: clamp(58px, 6vw, 78px) 0;
	color: rgba(255, 255, 255, .78);
	background:
		linear-gradient(112deg, rgba(16, 20, 20, .99), rgba(2, 81, 79, .97)),
		url('../img/architectural-grid.svg');
	background-size: auto, 480px;
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-home-manifesto__grid {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	gap: clamp(38px, 7vw, 92px);
	align-items: center;
}

.afn-home-manifesto h2 {
	color: var(--afn-white);
}

.afn-home-manifesto__rules {
	display: grid;
}

.afn-home-manifesto__rules p {
	position: relative;
	margin: 0;
	padding: 18px 0 18px 50px;
	border-top: 1px solid rgba(117, 222, 209, .24);
	font-size: .95rem;
	line-height: 1.55;
}

.afn-home-manifesto__rules span {
	position: absolute;
	left: 0;
	color: #75ded1;
	font-size: .7rem;
	font-weight: 850;
	letter-spacing: .08em;
}

.afn-home-manifesto__rules strong {
	display: block;
	margin-bottom: 4px;
	color: var(--afn-white);
}

/* Author preview. */
.afn-home-author {
	padding: var(--afn-section-space) 0;
}

.afn-home-author__grid {
	display: grid;
	grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr);
	gap: clamp(34px, 7vw, 92px);
	align-items: center;
}

.afn-home-author figure,
.afn-author-profile__lead figure {
	margin: 0;
	overflow: hidden;
	background: #c8d4d1;
	transform: skewY(calc(-1 * var(--afn-angle)));
}

.afn-home-author figure img,
.afn-author-profile__lead figure img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transform: skewY(var(--afn-angle)) scale(1.04);
}

.afn-home-author figure {
	height: clamp(340px, 36vw, 470px);
}

.afn-home-author p:not(.afn-kicker) {
	margin: 24px 0;
	font-size: 1.06rem;
	line-height: 1.72;
}

.afn-home-contact {
	padding: 0 0 var(--afn-section-space);
}

.afn-home-contact__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 34px;
	align-items: center;
	padding: clamp(30px, 4vw, 48px);
	background: rgba(255, 255, 255, .78);
	border: 1px solid var(--afn-line);
	box-shadow: var(--afn-shadow);
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-home-contact .afn-actions {
	margin: 0;
	align-items: center;
}

/* Interior heroes: compact, still made of the same superimposed planes. */
.afn-page-hero {
	min-height: clamp(390px, 47vh, 500px);
	margin-bottom: var(--afn-section-space);
	padding: clamp(128px, 14vw, 154px) 0 clamp(64px, 7vw, 82px);
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-page-hero__line {
	bottom: calc(var(--afn-plane-rise) + 6px);
	transform: rotate(calc(-1 * var(--afn-angle)));
	transform-origin: left center;
}

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

/* Author page: author first, collaborators deliberately secondary. */
.afn-author-profile {
	padding-bottom: var(--afn-section-space);
}

.afn-author-profile__lead {
	display: grid;
	grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr);
	gap: clamp(34px, 7vw, 92px);
	align-items: center;
}

.afn-author-profile__lead figure {
	height: clamp(430px, 48vw, 630px);
}

.afn-author-profile__lead p:not(.afn-kicker) {
	margin: 20px 0 0;
	font-size: 1.04rem;
	line-height: 1.72;
}

.afn-author-method,
.afn-author-collaboration,
.afn-author-cta {
	margin-top: var(--afn-section-space);
}

.afn-author-method {
	padding: var(--afn-box-space);
	color: rgba(255, 255, 255, .78);
	background: linear-gradient(114deg, var(--afn-ink), var(--afn-teal));
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-author-method header {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 30px;
	align-items: end;
}

.afn-author-method h2 {
	color: var(--afn-white);
}

.afn-author-method > div {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	margin-top: 32px;
	background: rgba(255, 255, 255, .14);
}

.afn-author-method > div p {
	margin: 0;
	padding: 22px;
	background: rgba(9, 22, 21, .88);
}

.afn-author-method strong,
.afn-author-method span {
	display: block;
}

.afn-author-method strong { color: #75ded1; }
.afn-author-method span { margin-top: 8px; }

.afn-author-collaboration {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(34px, 6vw, 76px);
	align-items: center;
	padding-top: 34px;
	border-top: 1px solid var(--afn-line);
}

.afn-author-collaboration > p {
	margin: 0;
	font-size: 1.02rem;
	line-height: 1.7;
}

.afn-author-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	padding: 28px var(--afn-box-space);
	background: rgba(255, 255, 255, .76);
	border: 1px solid var(--afn-line);
}

.afn-author-cta p {
	max-width: 720px;
	margin: 0;
	font-size: 1.06rem;
	font-weight: 600;
	line-height: 1.5;
}

/* Contact page and reduced form. */
.afn-contact-page-content {
	padding-bottom: var(--afn-section-space);
}

.afn-contact-layout {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
	gap: clamp(34px, 7vw, 88px);
	align-items: start;
}

.afn-contact-data > p:not(.afn-kicker) {
	margin: 22px 0 30px;
	font-size: 1.02rem;
	line-height: 1.7;
}

.afn-contact-data dl {
	margin: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: var(--afn-line);
	border: 1px solid var(--afn-line);
}

.afn-contact-data dl div {
	min-width: 0;
	padding: 18px;
	background: rgba(255, 255, 255, .8);
}

.afn-contact-data dt {
	margin-bottom: 7px;
	color: var(--afn-teal);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.afn-contact-data dd {
	margin: 0;
	font-size: .9rem;
	line-height: 1.5;
	overflow-wrap: anywhere;
}

.afn-contact-data a { color: var(--afn-ink-soft); }

.afn-contact-form {
	padding: var(--afn-box-space);
	background: rgba(255, 255, 255, .8);
	border: 1px solid var(--afn-line);
	box-shadow: var(--afn-shadow);
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-contact-form .wpforms-field-checkbox,
.afn-contact-form #wpforms-263-field_4-container,
.afn-contact-form .wpforms-field-hp {
	display: none !important;
}

.afn-contact-form .wpforms-container {
	margin: 0 !important;
}

.afn-contact-form .wpforms-field {
	padding: 8px 0 !important;
}

.afn-contact-form label {
	color: var(--afn-ink) !important;
	font-size: .76rem !important;
	font-weight: 760 !important;
	letter-spacing: .025em;
}

.afn-contact-form input,
.afn-contact-form textarea,
.afn-contact-form select {
	width: 100% !important;
	max-width: none !important;
	border: 1px solid rgba(2, 115, 115, .28) !important;
	border-radius: 0 !important;
	background: rgba(255, 255, 255, .86) !important;
}

.afn-contact-form button[type="submit"] {
	min-height: 48px !important;
	padding: 0 28px !important;
	color: var(--afn-white) !important;
	background: var(--afn-teal) !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-size: .78rem !important;
	font-weight: 800 !important;
}

/* Projects grid: every card is skewed by exactly the same angle. */
body.afn-projects-page .afn-project-card,
body.afn-projects-page .afn-project-card:nth-of-type(4n + 1),
body.afn-projects-page .afn-project-card:nth-of-type(4n + 2),
body.afn-projects-page .afn-project-card:nth-of-type(4n + 3) {
	clip-path: none !important;
	transform: skewY(calc(-1 * var(--afn-angle)));
	transform-origin: center;
}

body.afn-projects-page .afn-project-card .elementor-widget-container {
	transform: skewY(var(--afn-angle)) scale(1.035);
	transform-origin: center;
}

body.afn-projects-page .afn-project-card:hover {
	transform: skewY(calc(-1 * var(--afn-angle))) translateY(-5px);
}

body.afn-projects-page .afn-project-card .elementor-widget-container::after {
	content: none !important;
}

body.afn-projects-page .afn-project-card__caption {
	position: absolute;
	right: clamp(22px, 2.2vw, 32px);
	bottom: clamp(22px, 2.2vw, 32px);
	left: clamp(22px, 2.2vw, 32px);
	z-index: 2;
	display: grid;
	gap: 5px;
	color: var(--afn-white);
	pointer-events: none;
}

body.afn-projects-page .afn-project-card__caption small {
	font-size: .62rem;
	font-weight: 820;
	letter-spacing: .11em;
	text-transform: uppercase;
}

body.afn-projects-page .afn-project-card__caption strong {
	font-size: clamp(.9rem, 1.15vw, 1.08rem);
	line-height: 1.25;
}

body.afn-projects-page .afn-project-card[hidden] {
	display: none !important;
}

.afn-project-filters {
	margin-bottom: 26px;
	padding: 10px;
}

/* Individual project pages: one shell, one memory pattern, one technical file. */
body.afn-project-detail-page .site-content-contain {
	padding-top: var(--afn-header-height);
}

body.afn-project-detail-page .entry-content > .elementor,
body.afn-project-detail-page .elementor-location-single {
	width: var(--afn-shell);
	max-width: 1180px;
	margin-inline: auto;
}

body.afn-project-detail-page .elementor-widget-heading h1 {
	margin: clamp(38px, 5vw, 66px) 0 22px !important;
	color: var(--afn-ink) !important;
	font: 560 clamp(2.7rem, 5vw, 4.9rem)/1 Inter, "Helvetica Neue", Arial, sans-serif !important;
	letter-spacing: -.052em;
}

body.afn-project-detail-page .elementor-element-d58a012,
body.afn-project-detail-page .elementor-element-dacbeb8 {
	margin-block: 24px !important;
}

body.afn-project-detail-page .afn-project-memory {
	max-width: 880px;
	margin: 0;
	padding: clamp(24px, 3vw, 38px);
	background: rgba(255, 255, 255, .78);
	border-left: 2px solid var(--afn-teal-bright);
	font-size: clamp(1.02rem, 1.25vw, 1.16rem);
	line-height: 1.7;
}

body.afn-project-detail-page .afn-project-memory strong {
	color: var(--afn-teal);
}

.afn-project-facts {
	margin: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	background: var(--afn-line);
	border: 1px solid var(--afn-line);
}

.afn-project-facts div {
	min-width: 0;
	padding: 17px 19px;
	background: rgba(255, 255, 255, .82);
}

.afn-project-facts dt {
	margin-bottom: 7px;
	color: var(--afn-teal);
	font-size: .65rem;
	font-weight: 850;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.afn-project-facts dd {
	margin: 0;
	font-size: .9rem;
	line-height: 1.42;
}

body.afn-project-detail-page .entry-content .elementor-widget-image img {
	width: 100%;
	max-height: 820px;
	object-fit: cover;
}

body.afn-project-detail-page .entry-content .elementor-widget-image[hidden] {
	display: none !important;
}

/* Arquiener bridge and footer: same geometry, less height, aligned planes. */
.afn-arquiener-bridge {
	margin-top: var(--afn-section-space);
	padding: clamp(48px, 5.5vw, 68px) 0;
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-arquiener-bridge::before {
	top: calc(var(--afn-plane-rise) - 4px);
	transform: rotate(calc(-1 * var(--afn-angle)));
	transform-origin: left center;
}

.afn-arquiener-bridge h2 {
	font-size: clamp(2rem, 3.5vw, 3.25rem) !important;
	line-height: 1.03;
}

.afn-footer {
	margin-top: calc(-1 * var(--afn-plane-rise));
	padding: clamp(62px, 6.5vw, 82px) 0 18px;
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% 100%, 0 100%);
	isolation: isolate;
	overflow: hidden;
}

.afn-footer::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(104deg, transparent 0 48%, rgba(255, 255, 255, .035) 48.1% 66%, transparent 66.1%);
	clip-path: polygon(34% 0, 100% 0, 100% 100%, 48% 100%);
}

.afn-footer__edge {
	top: calc(var(--afn-plane-rise) - 4px);
	transform: rotate(calc(-1 * var(--afn-angle)));
	transform-origin: left center;
}

.afn-footer__grid {
	grid-template-columns: 1.55fr .8fr 1fr .9fr;
	gap: clamp(22px, 3.2vw, 42px);
}

.afn-footer__logo {
	max-width: 280px;
	max-height: 64px;
	margin-bottom: 15px;
}

.afn-footer__bottom {
	margin-top: 32px;
	padding-top: 16px;
}

/* Reveals retain the base skew and move only a few pixels. */
.afn-js .afn-selected-card.afn-reveal,
.afn-js body.afn-projects-page .afn-project-card.afn-reveal {
	opacity: 0;
	transform: skewY(calc(-1 * var(--afn-angle))) translateY(12px);
	transition: opacity 420ms ease, transform 420ms cubic-bezier(.2, .75, .25, 1), box-shadow var(--afn-transition);
}

.afn-js .afn-selected-card.afn-reveal.afn-visible,
.afn-js body.afn-projects-page .afn-project-card.afn-reveal.afn-visible {
	opacity: 1;
	transform: skewY(calc(-1 * var(--afn-angle)));
}

.afn-js .afn-selected-card.afn-reveal.afn-visible:hover,
.afn-js body.afn-projects-page .afn-project-card.afn-reveal.afn-visible:hover {
	transform: skewY(calc(-1 * var(--afn-angle))) translateY(-5px);
}

@media (max-width: 900px) {
	.afn-home-manifesto__grid,
	.afn-home-author__grid,
	.afn-author-profile__lead,
	.afn-contact-layout {
		grid-template-columns: 1fr;
	}

	.afn-home-author figure,
	.afn-author-profile__lead figure {
		max-width: 620px;
	}

	.afn-home-author figure { height: 430px; }
	.afn-author-profile__lead figure { height: 560px; }

	.afn-author-collaboration {
		grid-template-columns: 1fr;
	}

	.afn-footer__grid {
		grid-template-columns: 1.3fr 1fr 1fr;
	}
}

@media (max-width: 782px) {
	:root {
		--afn-header-height: 80px;
		--afn-plane-rise: clamp(10px, 2.5vw, 18px);
	}

	body.afn-author-system #masthead.site-header,
	body.afn-author-system.afn-header-scrolled #masthead.site-header {
		min-height: var(--afn-header-height);
		clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--afn-local-rise)), 0 100%);
	}

	body.afn-author-system #masthead .navbar,
	body.afn-author-system.afn-header-scrolled #masthead .navbar {
		min-height: 70px;
		padding: 4px 0 12px !important;
	}

	body.afn-author-system #masthead .custom-logo {
		max-width: 230px !important;
		max-height: 52px !important;
	}

	.afn-editorial-hero {
		min-height: 560px;
		padding: 132px 0 70px;
		background-position: center, 58% center;
	}

	.afn-editorial-hero h1 {
		font-size: clamp(2.55rem, 8.5vw, 4rem) !important;
	}

	.afn-section-heading,
	.afn-home-contact__inner,
	.afn-author-cta {
		align-items: flex-start;
		flex-direction: column;
	}

	.afn-home-contact__inner {
		display: grid;
		grid-template-columns: 1fr;
	}

	.afn-selected-grid {
		height: auto;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: none;
		grid-auto-rows: auto;
	}

	.afn-selected-card,
	.afn-selected-card--2,
	.afn-selected-card--3,
	.afn-selected-card--4,
	.afn-selected-card--5,
	.afn-selected-card--6 {
		grid-column: auto;
		grid-row: auto;
		min-height: 280px;
		aspect-ratio: 4 / 3;
	}

	.afn-selected-card--1 {
		grid-column: 1 / -1;
		grid-row: auto;
		aspect-ratio: 16 / 9;
	}

	.afn-author-method header,
	.afn-author-method > div {
		grid-template-columns: 1fr;
	}

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

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

@media (max-width: 560px) {
	.afn-editorial-hero {
		min-height: 540px;
		padding: 118px 0 62px;
		background-position: center, 62% center;
	}

	.afn-editorial-hero h1,
	.afn-page-hero h1 {
		font-size: clamp(2.25rem, 10.8vw, 3.15rem) !important;
	}

	.afn-page-hero {
		min-height: 350px;
		padding: 112px 0 58px;
	}

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

	.afn-selected-card,
	.afn-selected-card--1,
	.afn-selected-card--2,
	.afn-selected-card--3,
	.afn-selected-card--4,
	.afn-selected-card--5,
	.afn-selected-card--6 {
		grid-column: 1;
		aspect-ratio: 4 / 3;
		min-height: 245px;
	}

	.afn-home-author figure { height: 360px; }
	.afn-author-profile__lead figure { height: 440px; }

	.afn-contact-data dl,
	.afn-project-facts,
	.afn-footer__grid {
		grid-template-columns: 1fr;
	}

	.afn-contact-form {
		padding: 28px 20px;
	}
}

/* Source: working/arquitectura-fn-sistema-autor/assets/css/v1.4.css */
/*
 * Arquitectura FN · v1.4.1
 * Precision pass: image-first project heroes, compact galleries, crawlable
 * portfolio cards and repaired full-width editorial bands.
 */

:root {
	--afn-v14-soft: #d8ebe7;
	--afn-v14-mid: #8fcac0;
	--afn-v14-dark: #09211f;
}

/* Remove the duplicated spacer below the in-flow header. */
body.afn-project-detail-page .site-content-contain,
body.afn-project-detail-page #content.site-content,
body.afn-project-detail-page #primary,
body.afn-project-detail-page #main,
body.afn-project-detail-page article.post,
body.afn-project-detail-page .entry-content {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

body.afn-project-detail-page .entry-content > :empty,
body.afn-project-detail-page .afn-project-media-grid:empty,
body.afn-project-detail-page .afn-project-video-grid:empty {
	display: none !important;
}

/* -------------------------------------------------------------------------
 * Project mother template: the image leads; the title never covers it.
 * ---------------------------------------------------------------------- */

.afn-project-hero {
	min-height: 0 !important;
	padding: clamp(22px, 2.6vw, 36px) 0 clamp(62px, 6vw, 86px) !important;
	background:
		linear-gradient(116deg, #0a1716 0%, #063f3d 64%, #027373 100%) !important;
}

.afn-project-hero__grid {
	min-height: 0 !important;
	align-items: stretch !important;
	gap: 0 !important;
}

.afn-project-master--wide .afn-project-hero__grid {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	justify-items: center;
}

.afn-project-master--split .afn-project-hero__grid {
	display: grid !important;
	grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr) !important;
	align-items: stretch !important;
}

.afn-project-hero__media {
	width: min(100%, var(--afn-source-max)) !important;
	max-width: var(--afn-source-max) !important;
	margin: 0 auto !important;
	background: #09100f !important;
	box-shadow: 0 24px 58px rgba(0, 0, 0, .25) !important;
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%) !important;
}

.afn-project-master--split .afn-project-hero__media {
	width: 100% !important;
	max-width: none !important;
	justify-self: stretch !important;
}

.afn-project-hero__media img,
.afn-project-hero__media video,
.afn-project-master--split .afn-project-hero__media img,
.afn-project-master--split .afn-project-hero__media video {
	display: block;
	width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: 650px !important;
	object-fit: cover !important;
	background: #09100f;
}

.afn-project-master--wide .afn-project-hero__media img,
.afn-project-master--wide .afn-project-hero__media video {
	aspect-ratio: var(--afn-hero-ratio) !important;
}

.afn-project-hero__copy,
.afn-project-master--wide .afn-project-hero__copy {
	position: relative !important;
	inset: auto !important;
	width: min(100%, var(--afn-source-max)) !important;
	max-width: var(--afn-source-max) !important;
	min-width: 0;
	margin: -1px auto 0 !important;
	padding: clamp(20px, 2.3vw, 30px) clamp(22px, 3vw, 40px) clamp(23px, 2.8vw, 34px) !important;
	background: linear-gradient(102deg, rgba(6, 26, 25, .99), rgba(2, 115, 115, .94)) !important;
	backdrop-filter: none !important;
	clip-path: polygon(0 0, 100% var(--afn-plane-rise), calc(100% - var(--afn-plane-rise)) 100%, 0 calc(100% - var(--afn-plane-rise))) !important;
}

.afn-project-master--wide .afn-project-hero__copy {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"kicker back"
		"title back";
	column-gap: 32px;
	align-items: center;
}

.afn-project-master--wide .afn-project-hero__copy .afn-kicker { grid-area: kicker; }
.afn-project-master--wide .afn-project-hero__copy h1 { grid-area: title; }
.afn-project-master--wide .afn-project-hero__copy .afn-project-back { grid-area: back; }

.afn-project-master--split .afn-project-hero__copy {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	display: flex;
	flex-direction: column;
	justify-content: center;
	clip-path: polygon(0 0, 100% var(--afn-plane-rise), calc(100% - var(--afn-plane-rise)) 100%, 0 calc(100% - var(--afn-plane-rise))) !important;
}

.afn-project-hero h1,
.afn-project-master--split .afn-project-hero h1 {
	max-width: 18ch !important;
	margin: 0 !important;
	font-size: clamp(2.35rem, 4.25vw, 4.5rem) !important;
	line-height: .98 !important;
	letter-spacing: -.052em !important;
}

.afn-project-hero .afn-kicker {
	margin-bottom: 10px !important;
	color: #86e3d7 !important;
}

.afn-project-back {
	margin-top: 0 !important;
	white-space: nowrap;
}

.afn-project-overview {
	margin-top: calc(-1 * var(--afn-plane-rise)) !important;
	padding: clamp(64px, 6vw, 82px) 0 clamp(50px, 5vw, 72px) !important;
}

.afn-project-overview__grid {
	gap: clamp(30px, 4.5vw, 64px) !important;
}

.afn-project-overview .afn-project-facts div {
	min-height: 0 !important;
	padding: 17px 19px !important;
}

.afn-project-overview__memory > p:not(.afn-kicker),
.afn-project-overview__memory .afn-project-memory {
	padding: clamp(22px, 3vw, 34px) !important;
}

.afn-project-gallery {
	padding: clamp(44px, 5vw, 64px) 0 0 !important;
}

.afn-project-gallery__heading {
	padding-bottom: clamp(30px, 3.8vw, 48px) !important;
}

.afn-project-gallery__heading h2 {
	font-size: clamp(2rem, 3.55vw, 3.8rem) !important;
}

.afn-project-media-band,
.afn-project-media-band:nth-of-type(even) {
	padding: clamp(34px, 4vw, 52px) 0 !important;
}

.afn-project-media-band:nth-of-type(even) {
	padding-top: calc(clamp(34px, 4vw, 52px) + var(--afn-plane-rise)) !important;
	padding-bottom: calc(clamp(34px, 4vw, 52px) + var(--afn-plane-rise)) !important;
}

.afn-project-media-band__inner > h3 {
	margin-bottom: 20px !important;
}

.afn-project-media-grid {
	gap: clamp(14px, 1.8vw, 24px) !important;
	align-items: start !important;
}

.afn-project-media,
.afn-project-media--standard,
.afn-project-media--compact,
.afn-project-media--portrait,
.afn-project-media--maquette {
	grid-column: span 6 !important;
	width: min(100%, var(--afn-media-max)) !important;
	max-width: var(--afn-media-max) !important;
	margin: 0 auto !important;
}

.afn-project-media--wide,
.afn-project-media--plan {
	grid-column: 1 / -1 !important;
}

.afn-project-media:only-child {
	grid-column: 1 / -1 !important;
}

.afn-project-media img {
	width: 100% !important;
	height: auto !important;
	max-height: 760px !important;
	object-fit: contain !important;
}

.afn-project-media--standard:not(.afn-project-media--maquette):not(.afn-project-media--portrait) img {
	object-fit: cover !important;
}

.afn-project-media--maquette,
.afn-project-media--maquette a {
	background: #eef1ee !important;
}

/* -------------------------------------------------------------------------
 * Home cards: title band is separate from the photograph.
 * ---------------------------------------------------------------------- */

.afn-selected-card a {
	inset: -10px !important;
	display: grid !important;
	grid-template-rows: minmax(0, 1fr) auto !important;
}

.afn-selected-card img {
	min-height: 0 !important;
	object-fit: cover !important;
}

.afn-selected-card a::after {
	display: none !important;
}

.afn-selected-card__caption {
	position: relative !important;
	right: auto !important;
	bottom: auto !important;
	left: auto !important;
	min-height: 62px;
	padding: 12px 20px 14px !important;
	align-content: center;
	background: linear-gradient(100deg, #0b2927, #027373) !important;
	text-shadow: none !important;
}

.afn-selected-card__caption strong {
	font-size: clamp(.92rem, 1.18vw, 1.12rem) !important;
}

/* -------------------------------------------------------------------------
 * Native, crawlable portfolio archive.
 * ---------------------------------------------------------------------- */

.afn-project-archive {
	width: 100%;
	padding: 0 0 clamp(70px, 8vw, 108px);
}

.afn-project-archive__intro {
	display: grid;
	grid-template-columns: minmax(180px, .45fr) minmax(0, 1.55fr);
	gap: clamp(26px, 5vw, 70px);
	align-items: end;
	margin-bottom: 28px;
}

.afn-project-archive__intro h2 {
	max-width: 20ch;
	margin: 0;
	color: var(--afn-teal);
	font: 620 clamp(2rem, 3.6vw, 3.8rem)/1.02 Inter, "Helvetica Neue", Arial, sans-serif;
	letter-spacing: -.047em;
}

.afn-project-archive > .afn-project-filters {
	width: var(--afn-shell);
	max-width: 1180px;
	margin: 0 auto 24px !important;
}

.afn-project-archive__grid {
	width: var(--afn-shell);
	max-width: 1180px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-auto-flow: dense;
	grid-auto-rows: clamp(48px, 4.8vw, 68px);
	gap: var(--afn-grid-gap);
}

.afn-archive-card {
	position: relative;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	background: #cad7d3;
	box-shadow: 0 14px 30px rgba(16, 20, 20, .11);
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
	transition: transform var(--afn-transition), box-shadow var(--afn-transition), opacity 420ms ease;
}

.afn-archive-card.afn-size-standard { grid-column: span 4; grid-row: span 5; }
.afn-archive-card.afn-size-wide { grid-column: span 8; grid-row: span 5; }
.afn-archive-card.afn-size-tall { grid-column: span 4; grid-row: span 8; }
.afn-archive-card.afn-size-feature { grid-column: span 8; grid-row: span 8; }

.afn-archive-card a,
.afn-archive-card figure {
	width: 100%;
	height: 100%;
	display: block;
	margin: 0;
	color: inherit;
	text-decoration: none;
}

.afn-archive-card figure {
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
}

.afn-archive-card img {
	width: 100%;
	height: 100%;
	min-height: 0;
	display: block;
	object-fit: cover;
	transition: transform 560ms cubic-bezier(.2, .75, .25, 1), filter 420ms ease;
}

.afn-archive-card figcaption {
	min-height: 66px;
	display: grid;
	align-content: center;
	gap: 5px;
	padding: 12px clamp(17px, 2vw, 24px) 14px;
	color: #fff;
	background: linear-gradient(102deg, #0b2927, #027373);
}

.afn-archive-card figcaption small {
	font-size: .62rem;
	font-weight: 820;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.afn-archive-card figcaption strong {
	font-size: clamp(.92rem, 1.15vw, 1.08rem);
	line-height: 1.22;
}

.afn-archive-card:hover {
	z-index: 2;
	transform: translateY(-5px);
	box-shadow: 0 24px 46px rgba(16, 20, 20, .18);
}

.afn-archive-card:hover img {
	transform: scale(1.035);
	filter: saturate(1.03) contrast(1.02);
}

.afn-archive-card[hidden] {
	display: none !important;
}

/* -------------------------------------------------------------------------
 * Repaired author method and a lighter Arquiener bridge.
 * ---------------------------------------------------------------------- */

.afn-author-method {
	width: 100vw !important;
	max-width: none !important;
	margin: var(--afn-section-space) calc(50% - 50vw) 0 !important;
	padding: clamp(60px, 6vw, 84px) 0 !important;
}

.afn-author-method > .afn-author-method__inner {
	display: grid !important;
	grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr) !important;
	gap: clamp(32px, 5vw, 72px) !important;
	align-items: center !important;
	margin-top: 0 !important;
	padding-top: 0 !important;
	background: transparent !important;
}

.afn-author-method > .afn-author-method__inner > header {
	display: block !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}

.afn-author-method > .afn-author-method__inner > .afn-author-method__rules {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	gap: 1px !important;
}

.afn-author-method__rules p {
	min-width: 0;
	padding: clamp(20px, 2.4vw, 30px) !important;
}

.afn-author-method__rules strong,
.afn-author-method__rules span {
	word-break: normal !important;
	overflow-wrap: normal !important;
	hyphens: none !important;
}

.afn-author-method__rules strong {
	font-size: clamp(.78rem, .9vw, .9rem);
}

.afn-arquiener-bridge {
	color: #17302d !important;
	background:
		linear-gradient(112deg, rgba(224, 240, 236, .99), rgba(165, 214, 205, .98) 63%, rgba(112, 194, 182, .98)),
		url('../img/architectural-grid.svg') !important;
	background-size: auto, 480px !important;
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%) !important;
}

.afn-arquiener-bridge::before {
	background: linear-gradient(90deg, transparent, #027373 42%, #038c7f 88%, transparent) !important;
	transform: rotate(calc(-1 * var(--afn-angle))) !important;
}

.afn-arquiener-bridge .afn-kicker {
	color: #027373 !important;
}

.afn-arquiener-bridge h2 {
	color: #102522 !important;
}

.afn-arquiener-bridge__copy {
	border-left-color: rgba(2, 115, 115, .45) !important;
}

.afn-arquiener-bridge__copy p {
	color: #24433f !important;
}

.afn-arquiener-bridge .afn-button {
	color: #fff !important;
	background: #027373 !important;
}

@media (max-width: 980px) {
	.afn-project-master--split .afn-project-hero__grid {
		grid-template-columns: 1fr !important;
		justify-items: center;
	}

	.afn-project-master--split .afn-project-hero__media,
	.afn-project-master--split .afn-project-hero__copy {
		width: min(100%, var(--afn-source-max)) !important;
		max-width: var(--afn-source-max) !important;
	}

	.afn-project-master--split .afn-project-hero__copy {
		margin-top: -1px !important;
	}

	.afn-author-method > .afn-author-method__inner {
		grid-template-columns: 1fr !important;
	}

	.afn-project-archive__intro {
		grid-template-columns: 1fr;
	}

	.afn-project-archive__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-rows: auto;
	}

	.afn-archive-card,
	.afn-archive-card.afn-size-standard,
	.afn-archive-card.afn-size-wide,
	.afn-archive-card.afn-size-tall,
	.afn-archive-card.afn-size-feature {
		grid-column: auto;
		grid-row: auto;
		min-height: 340px;
		aspect-ratio: 4 / 3;
	}

	.afn-archive-card.afn-size-feature {
		grid-column: 1 / -1;
		aspect-ratio: 16 / 9;
	}
}

@media (max-width: 720px) {
	.afn-project-master--wide .afn-project-hero__copy {
		grid-template-columns: 1fr;
		grid-template-areas: "kicker" "title" "back";
	}

	.afn-project-back {
		margin-top: 18px !important;
	}

	.afn-project-media,
	.afn-project-media--standard,
	.afn-project-media--compact,
	.afn-project-media--portrait,
	.afn-project-media--maquette,
	.afn-project-media--wide,
	.afn-project-media--plan {
		grid-column: 1 / -1 !important;
	}

	.afn-author-method > .afn-author-method__inner > .afn-author-method__rules {
		grid-template-columns: 1fr !important;
	}
}

@media (max-width: 560px) {
	.afn-project-hero {
		padding-top: 14px !important;
	}

	.afn-project-hero h1,
	.afn-project-master--split .afn-project-hero h1 {
		font-size: clamp(2.15rem, 10vw, 3.2rem) !important;
	}

	.afn-project-overview__grid,
	.afn-project-gallery__heading {
		grid-template-columns: 1fr !important;
	}

	.afn-project-archive__grid {
		grid-template-columns: 1fr;
	}

	.afn-archive-card,
	.afn-archive-card.afn-size-standard,
	.afn-archive-card.afn-size-wide,
	.afn-archive-card.afn-size-tall,
	.afn-archive-card.afn-size-feature {
		grid-column: 1;
		min-height: 300px;
		aspect-ratio: 4 / 3;
	}
}

/* Source: working/arquitectura-fn-sistema-autor/assets/css/v1.4.2.css */
/*
 * Arquitectura FN · v1.4.2
 * Continuous header/hero plane, two editorial video heroes and a contained
 * author-image composition built from the same diagonal family.
 */

:root {
	--afn-v142-frame: #082c29;
	--afn-v142-frame-deep: #061d1b;
	--afn-v142-accent: #68d8ca;
}

/* The clipped header now reveals the hero itself instead of a white page. */
body.afn-projects-page .site-content-contain,
body.afn-secondary-page .site-content-contain {
	padding-top: 0 !important;
}

body.afn-projects-page #content.site-content,
body.afn-secondary-page #content.site-content,
body.afn-projects-page #primary,
body.afn-secondary-page #primary,
body.afn-projects-page #main,
body.afn-secondary-page #main,
body.afn-projects-page .entry-content,
body.afn-secondary-page .entry-content {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Projects and Author: the moving image occupies the whole editorial plane. */
.afn-page-hero--video {
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	min-height: clamp(560px, 72svh, 760px) !important;
	margin-top: 0 !important;
	margin-bottom: clamp(54px, 6.5vw, 88px) !important;
	padding: clamp(168px, 21vh, 230px) 0 clamp(76px, 9vh, 108px) !important;
	background: var(--afn-v142-frame-deep) !important;
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%) !important;
}

.afn-page-hero--video::before {
	z-index: 2;
	background:
		linear-gradient(72deg, transparent 0 63%, rgba(104, 216, 202, .12) 63.1% 63.3%, transparent 63.4%),
		linear-gradient(104deg, transparent 0 78%, rgba(255, 255, 255, .055) 78.1% 78.3%, transparent 78.4%) !important;
	pointer-events: none;
}

.afn-page-hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	background: var(--afn-v142-frame-deep);
}

.afn-page-hero__media video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	filter: saturate(.8) contrast(1.07);
}

.afn-page-hero--projects .afn-page-hero__media video {
	object-position: center 48%;
}

.afn-page-hero--about .afn-page-hero__media video {
	object-position: center 55%;
}

.afn-page-hero__scrim {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(5, 20, 19, .91) 0%, rgba(5, 29, 27, .73) 43%, rgba(3, 38, 36, .29) 72%, rgba(2, 28, 27, .25) 100%),
		linear-gradient(0deg, rgba(3, 18, 17, .68), transparent 62%);
	pointer-events: none;
}

.afn-page-hero--about .afn-page-hero__scrim {
	background:
		linear-gradient(90deg, rgba(5, 20, 19, .92) 0%, rgba(5, 31, 29, .72) 47%, rgba(3, 38, 36, .3) 76%, rgba(2, 28, 27, .22) 100%),
		linear-gradient(0deg, rgba(3, 18, 17, .72), transparent 64%);
}

.afn-page-hero--video .afn-page-hero__content {
	position: relative;
	z-index: 3;
	width: var(--afn-shell);
	margin-inline: auto;
}

.afn-page-hero--video .afn-page-hero__line {
	z-index: 4;
}

.afn-page-hero--video h1 {
	max-width: 16ch !important;
	text-shadow: 0 3px 28px rgba(0, 0, 0, .38);
}

.afn-page-hero--video > .afn-shell > p:last-child {
	max-width: 720px;
	color: rgba(255, 255, 255, .88);
	text-shadow: 0 2px 20px rgba(0, 0, 0, .34);
}

/* One common geometric frame contains the three author photographs. */
.afn-author-gallery {
	margin-top: clamp(54px, 6.2vw, 82px) !important;
	padding: clamp(42px, 5vw, 66px) 0 !important;
	background:
		linear-gradient(112deg, rgba(216, 235, 231, .98), rgba(186, 222, 215, .97)),
		url('../img/architectural-grid.svg') !important;
	background-size: auto, 480px !important;
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%) !important;
}

.afn-author-gallery__grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(8px, .8vw, 12px) !important;
	align-items: stretch !important;
	width: var(--afn-shell) !important;
	max-width: 1180px !important;
	margin-inline: auto !important;
	padding: calc(var(--afn-plane-rise) + 10px) clamp(12px, 1.35vw, 18px) calc(var(--afn-plane-rise) + 10px) !important;
	background: linear-gradient(108deg, var(--afn-v142-frame-deep), var(--afn-v142-frame) 68%, #075650) !important;
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%) !important;
	box-shadow: 0 24px 54px rgba(7, 30, 28, .18);
}

.afn-author-gallery figure,
.afn-author-gallery figure:nth-child(1),
.afn-author-gallery figure:nth-child(2),
.afn-author-gallery figure:nth-child(3) {
	display: grid !important;
	grid-template-rows: minmax(0, 1fr) auto !important;
	min-width: 0;
	width: 100% !important;
	max-width: none !important;
	height: 100%;
	margin: 0 !important;
	transform: none !important;
	overflow: hidden;
	background: rgba(255, 255, 255, .08);
}

.afn-author-gallery img {
	display: block !important;
	width: 100% !important;
	height: clamp(390px, 37vw, 570px) !important;
	max-height: none !important;
	object-fit: cover !important;
	clip-path: none !important;
	filter: saturate(.94) contrast(1.025);
}

.afn-author-gallery figure:nth-child(1) img { object-position: center 38%; }
.afn-author-gallery figure:nth-child(2) img { object-position: center 48%; }
.afn-author-gallery figure:nth-child(3) img { object-position: center 52%; }

.afn-author-gallery figcaption {
	display: flex;
	align-items: center;
	min-height: 66px;
	margin: 0;
	padding: 14px clamp(14px, 1.5vw, 20px) 16px !important;
	color: rgba(255, 255, 255, .84) !important;
	background: linear-gradient(102deg, rgba(5, 28, 26, .98), rgba(3, 80, 75, .96));
	font-size: clamp(.66rem, .72vw, .76rem) !important;
	font-weight: 760 !important;
	line-height: 1.35;
	letter-spacing: .075em !important;
}

@media (max-width: 980px) {
	.afn-page-hero--video {
		min-height: clamp(520px, 68svh, 660px) !important;
		padding-top: clamp(150px, 19vh, 190px) !important;
	}

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

	.afn-author-gallery figure:nth-child(3) {
		grid-column: 1 / -1;
	}

	.afn-author-gallery figure:nth-child(3) img {
		height: clamp(360px, 58vw, 560px) !important;
	}
}

@media (max-width: 782px) {
	body.admin-bar.afn-projects-page .site-content-contain,
	body.admin-bar.afn-secondary-page .site-content-contain {
		padding-top: 0 !important;
	}

	.afn-page-hero--video {
		min-height: clamp(500px, 72svh, 640px) !important;
		padding: clamp(136px, 18vh, 178px) 0 clamp(66px, 8vh, 90px) !important;
	}

	.afn-page-hero--video .afn-page-hero__media video {
		object-position: 58% center;
	}

	.afn-page-hero--about .afn-page-hero__media video {
		object-position: 52% center;
	}
}

@media (max-width: 680px) {
	.afn-author-gallery__grid {
		grid-template-columns: 1fr !important;
		gap: 8px !important;
		padding-inline: 10px !important;
	}

	.afn-author-gallery figure:nth-child(3) {
		grid-column: auto;
	}

	.afn-author-gallery img,
	.afn-author-gallery figure:nth-child(3) img {
		height: min(118vw, 540px) !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.afn-page-hero--video .afn-page-hero__media video {
		display: none;
	}

	.afn-page-hero--video .afn-page-hero__media {
		background-position: center;
		background-size: cover;
	}

	.afn-page-hero--projects .afn-page-hero__media {
		background-image: url('../media/process-plano-detalle-poster.webp');
	}

	.afn-page-hero--about .afn-page-hero__media {
		background-image: url('../media/process-planos-mesa-poster.webp');
	}
}

/* Source: working/arquitectura-fn-sistema-autor/assets/css/v1.4.3.css */
/*
 * Arquitectura FN · v1.4.3
 * Benavídez home hero, working native contact form, architectural contact
 * gallery, compact project copy and a substantially lower footer.
 */

/* Home: preserve the previous high-resolution Benavídez image as the lead. */
.afn-editorial-hero {
	background-size: auto, cover !important;
	background-position: center, center 52% !important;
}

.afn-editorial-hero::before {
	background: linear-gradient(104deg, transparent 0 69%, rgba(104, 216, 202, .12) 69.1% 69.3%, transparent 69.4%) !important;
}

/* Contact receives the process video; the home remains entirely static. */
.afn-page-hero--contact .afn-page-hero__media video {
	object-position: center 48%;
}

.afn-page-hero--contact .afn-page-hero__scrim {
	background:
		linear-gradient(90deg, rgba(5, 20, 19, .92) 0%, rgba(5, 31, 29, .72) 45%, rgba(3, 38, 36, .28) 74%, rgba(2, 28, 27, .2) 100%),
		linear-gradient(0deg, rgba(3, 18, 17, .72), transparent 64%);
}

/* Native contact form: semantic, compact and independent from WPForms markup. */
.afn-native-contact-form {
	display: grid;
	gap: 15px;
	margin-top: 18px;
}

.afn-form-row {
	display: grid;
	gap: 7px;
}

.afn-form-split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.afn-native-contact-form label {
	margin: 0;
	color: var(--afn-ink) !important;
	font-size: .75rem !important;
	font-weight: 780 !important;
	letter-spacing: .025em;
}

.afn-native-contact-form input,
.afn-native-contact-form textarea {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 12px 13px;
	color: var(--afn-ink);
	border: 1px solid rgba(2, 115, 115, .3);
	border-radius: 0;
	background: rgba(255, 255, 255, .9);
	box-shadow: none;
}

.afn-native-contact-form input:focus,
.afn-native-contact-form textarea:focus {
	outline: 2px solid rgba(3, 140, 127, .42);
	outline-offset: 1px;
	border-color: var(--afn-teal);
}

.afn-native-contact-form textarea {
	min-height: 138px;
	resize: vertical;
}

.afn-native-contact-form button[type="submit"] {
	justify-self: start;
	min-height: 48px;
	padding: 0 28px;
	color: #fff;
	border: 0;
	border-radius: 0;
	background: var(--afn-teal);
	font-size: .78rem;
	font-weight: 820;
	letter-spacing: .025em;
	cursor: pointer;
}

.afn-native-contact-form button[type="submit"]:hover,
.afn-native-contact-form button[type="submit"]:focus-visible {
	background: #038c7f;
}

.afn-form-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.afn-form-privacy {
	margin: -2px 0 0;
	color: var(--afn-ink-soft);
	font-size: .72rem;
	line-height: 1.45;
}

.afn-form-notice {
	margin: 16px 0 2px;
	padding: 13px 15px;
	border-left: 3px solid var(--afn-teal);
	background: rgba(216, 235, 231, .8);
	font-size: .86rem;
	line-height: 1.45;
}

.afn-form-notice--error {
	border-left-color: #9a413d;
	background: rgba(246, 226, 223, .84);
}

/* Architecture-related media completes Contact without competing with the form. */
.afn-contact-projects {
	margin-top: clamp(48px, 5.5vw, 72px);
	padding: clamp(48px, 5.5vw, 70px) 0;
	color: rgba(255, 255, 255, .84);
	background:
		linear-gradient(112deg, rgba(7, 29, 27, .99), rgba(2, 91, 86, .97)),
		url('../img/architectural-grid.svg');
	background-size: auto, 480px;
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-contact-projects header {
	display: grid;
	grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr);
	gap: clamp(24px, 4vw, 58px);
	align-items: end;
	margin-bottom: 28px;
}

.afn-contact-projects h2 {
	max-width: 18ch;
	color: #fff;
}

.afn-contact-projects__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(10px, 1.2vw, 16px);
}

.afn-contact-projects__grid a {
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	min-width: 0;
	color: #fff;
	background: rgba(4, 27, 25, .88);
	text-decoration: none;
	overflow: hidden;
	transform: skewY(calc(-1 * var(--afn-angle)));
}

.afn-contact-projects__grid img {
	display: block;
	width: 100%;
	height: clamp(220px, 22vw, 330px);
	object-fit: cover;
	transform: skewY(var(--afn-angle)) scale(1.035);
	transition: transform 480ms cubic-bezier(.2, .75, .25, 1);
}

.afn-contact-projects__grid span {
	position: relative;
	z-index: 1;
	min-height: 58px;
	padding: 14px 18px;
	background: linear-gradient(102deg, rgba(5, 28, 26, .99), rgba(3, 93, 86, .98));
	font-size: .8rem;
	font-weight: 780;
	line-height: 1.35;
	letter-spacing: .025em;
	transform: skewY(var(--afn-angle));
}

.afn-contact-projects__grid a:hover img {
	transform: skewY(var(--afn-angle)) scale(1.075);
}

/* All summaries fit the proposed two-column editorial module. */
.afn-project-overview__grid {
	grid-template-columns: minmax(280px, .82fr) minmax(0, 1.18fr) !important;
	align-items: stretch !important;
}

.afn-project-overview__facts,
.afn-project-overview__memory {
	min-width: 0;
}

.afn-project-overview__memory {
	display: flex;
	flex-direction: column;
}

.afn-project-overview__memory .afn-project-memory,
.afn-project-overview__memory > p:not(.afn-kicker) {
	flex: 1;
	max-width: none !important;
	margin: 0;
	font-size: clamp(.93rem, 1.05vw, 1.04rem) !important;
	line-height: 1.58 !important;
	overflow-wrap: anywhere;
}

.afn-project-overview .afn-project-facts {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.afn-project-overview .afn-project-facts dd {
	font-size: .84rem;
	line-height: 1.38;
	overflow-wrap: anywhere;
}

/* Footer: same inclined identity, materially less height. */
.afn-footer {
	padding: clamp(38px, 4vw, 50px) 0 12px !important;
}

.afn-footer__grid {
	grid-template-columns: 1.45fr .75fr 1fr .85fr !important;
	gap: clamp(18px, 2.4vw, 30px) !important;
	align-items: start;
}

.afn-footer__logo {
	max-width: 205px !important;
	max-height: 45px !important;
	margin-bottom: 8px !important;
}

.afn-footer__brand p {
	max-width: 310px;
	margin: 0 !important;
}

.afn-footer strong {
	margin-bottom: 7px !important;
	font-size: .64rem !important;
}

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

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

.afn-footer__bottom p {
	font-size: .67rem !important;
}

@media (max-width: 900px) {
	.afn-contact-projects header,
	.afn-project-overview__grid {
		grid-template-columns: 1fr !important;
	}

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

	.afn-contact-projects__grid a:first-child {
		grid-column: 1 / -1;
	}

	.afn-contact-projects__grid a:first-child img {
		height: clamp(280px, 50vw, 460px);
	}

	.afn-footer__grid {
		grid-template-columns: 1.3fr .7fr 1fr !important;
	}

	.afn-footer__grid > :nth-child(3) {
		display: none;
	}
}

@media (max-width: 680px) {
	.afn-page-hero--contact .afn-page-hero__media video {
		object-position: 58% center;
	}

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

	.afn-contact-projects__grid a:first-child {
		grid-column: auto;
	}

	.afn-contact-projects__grid img,
	.afn-contact-projects__grid a:first-child img {
		height: min(70vw, 390px);
	}

	.afn-project-overview .afn-project-facts {
		grid-template-columns: 1fr;
	}

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

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

	.afn-footer__brand p {
		display: none;
	}

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

	.afn-footer__bottom p + p {
		margin-top: 4px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.afn-page-hero--contact .afn-page-hero__media {
		background: url('../media/process-plano-detalle-poster.webp') center / cover no-repeat;
	}
}

/* Source: working/arquitectura-fn-sistema-autor/assets/css/v1.5.css */
/*
 * Arquitectura FN · v1.5.0
 * Strategic editorial layer: positioning, service architecture, municipal
 * conversion flow and reasoned project narratives.
 */

/* Shared editorial rhythm. */
.afn-home-positioning,
.afn-home-services,
.afn-home-process,
.afn-project-archive__intro,
.afn-project-archive__closing,
.afn-service-page-content,
.afn-municipal-page-content,
.afn-project-closing {
	position: relative;
}

.afn-home-positioning h2,
.afn-home-services h2,
.afn-home-process h2,
.afn-project-archive__intro h2,
.afn-project-archive__closing h2,
.afn-service-page-content h2,
.afn-municipal-page-content h2,
.afn-author-practice h2,
.afn-author-continuity h2,
.afn-project-closing h2 {
	margin: 0;
	font: 620 clamp(2rem, 3.7vw, 3.55rem)/1.04 Inter, "Helvetica Neue", Arial, sans-serif;
	letter-spacing: -.045em;
	text-wrap: balance;
}

/* Home: brand position made tangible through three observable practices. */
.afn-home-positioning {
	padding: clamp(72px, 8vw, 108px) 0;
}

.afn-home-positioning__grid {
	display: grid;
	grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
	gap: clamp(42px, 8vw, 108px);
	align-items: start;
}

.afn-home-positioning h2 {
	max-width: 16ch;
	color: var(--afn-teal);
}

.afn-home-positioning__proof {
	display: grid;
	border-top: 1px solid var(--afn-line);
}

.afn-home-positioning__proof p {
	display: grid;
	grid-template-columns: minmax(160px, .7fr) minmax(0, 1.3fr);
	gap: 24px;
	margin: 0;
	padding: 21px 0;
	border-bottom: 1px solid var(--afn-line);
}

.afn-home-positioning__proof strong {
	color: var(--afn-teal);
	font-size: .86rem;
	line-height: 1.45;
}

.afn-home-positioning__proof span {
	font-size: .93rem;
	line-height: 1.62;
}

/* Home: service pathways. */
.afn-home-services {
	padding: clamp(66px, 7vw, 94px) 0;
	background: rgba(216, 235, 231, .43);
}

.afn-home-services__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	border: 1px solid var(--afn-line);
	background: var(--afn-line);
}

.afn-home-services__grid article {
	min-height: 250px;
	padding: clamp(25px, 3.2vw, 40px);
	background: rgba(255, 255, 255, .91);
}

.afn-home-services__grid article > span {
	display: block;
	margin-bottom: 35px;
	color: var(--afn-teal-bright);
	font-size: .67rem;
	font-weight: 850;
	letter-spacing: .12em;
}

.afn-home-services__grid h3 {
	margin: 0;
	color: var(--afn-ink);
	font-size: clamp(1.35rem, 2vw, 1.85rem);
	line-height: 1.12;
}

.afn-home-services__grid p {
	max-width: 60ch;
	margin: 17px 0 24px;
	font-size: .93rem;
	line-height: 1.65;
}

.afn-home-services__grid a {
	color: var(--afn-teal) !important;
	font-size: .78rem;
	font-weight: 800;
	text-decoration: none !important;
}

/* Home: continuity from idea to construction. */
.afn-home-process {
	padding: clamp(78px, 8vw, 112px) 0;
	color: rgba(255, 255, 255, .78);
	background:
		linear-gradient(112deg, rgba(5, 22, 21, .995), rgba(2, 78, 75, .98)),
		url('../img/architectural-grid.svg');
	background-size: auto, 520px;
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-home-process header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(240px, .55fr);
	gap: 32px;
	align-items: end;
}

.afn-home-process header .afn-kicker,
.afn-home-process header h2 {
	grid-column: 1;
}

.afn-home-process h2 {
	max-width: 16ch;
	color: #fff;
}

.afn-home-process header > p:last-child {
	grid-column: 2;
	grid-row: 1 / span 2;
	margin: 0;
	font-size: 1rem;
	line-height: 1.65;
}

.afn-home-process__steps {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	margin: clamp(38px, 5vw, 62px) 0 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(117, 222, 209, .34);
}

.afn-home-process__steps li {
	position: relative;
	display: grid;
	gap: 8px;
	padding: 25px 15px 20px 0;
}

.afn-home-process__steps li:not(:last-child)::after {
	content: "";
	position: absolute;
	top: -4px;
	right: 12px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #75ded1;
}

.afn-home-process__steps span {
	color: #75ded1;
	font-size: .66rem;
	font-weight: 850;
	letter-spacing: .1em;
}

.afn-home-process__steps strong {
	color: #fff;
	font-size: .94rem;
}

.afn-home-process__steps small {
	max-width: 16ch;
	font-size: .75rem;
	line-height: 1.42;
}

.afn-home-process__bridge {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
	gap: clamp(22px, 4vw, 52px);
	align-items: center;
	margin-top: 26px;
	padding: 27px 0 0;
	border-top: 1px solid rgba(117, 222, 209, .25);
}

.afn-home-process__bridge p {
	margin: 0;
	font-size: .88rem;
	line-height: 1.58;
}

.afn-home-process__bridge strong {
	display: block;
	color: #fff;
}

.afn-home-process__bridge .afn-text-link {
	color: #86e3d7 !important;
}

/* Projects archive: explain why the portfolio matters. */
.afn-project-archive__intro {
	display: grid;
	grid-template-columns: minmax(0, .85fr) minmax(260px, .5fr);
	gap: clamp(36px, 7vw, 90px);
	align-items: end;
	padding-bottom: clamp(38px, 5vw, 62px);
}

.afn-project-archive__intro .afn-kicker,
.afn-project-archive__intro h2 {
	grid-column: 1;
}

.afn-project-archive__intro h2 {
	color: var(--afn-teal);
}

.afn-project-archive__intro > p:last-child {
	grid-column: 2;
	grid-row: 1 / span 2;
	margin: 0;
	font-size: .96rem;
	line-height: 1.68;
}

.afn-project-archive__closing {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 36px;
	align-items: end;
	margin-top: clamp(58px, 7vw, 92px);
	padding: clamp(34px, 4vw, 50px);
	border: 1px solid var(--afn-line);
	background: rgba(255, 255, 255, .82);
}

.afn-project-archive__closing h2 {
	max-width: 19ch;
	color: var(--afn-teal);
}

.afn-project-archive__closing p:not(.afn-kicker) {
	max-width: 75ch;
	margin: 20px 0 0;
	line-height: 1.65;
}

/* Services: clear scopes without flattening the architectural argument. */
.afn-service-page-content {
	padding-bottom: var(--afn-section-space);
}

.afn-service-intro,
.afn-municipal-intro {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	gap: clamp(42px, 8vw, 104px);
	align-items: start;
}

.afn-service-intro h2,
.afn-municipal-intro h2 {
	color: var(--afn-teal);
}

.afn-service-intro > div:last-child p,
.afn-municipal-intro > div:last-child p {
	margin: 0 0 18px;
	font-size: 1rem;
	line-height: 1.72;
}

.afn-service-cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	margin-top: clamp(56px, 7vw, 92px);
	border: 1px solid var(--afn-line);
	background: var(--afn-line);
}

.afn-service-cards article {
	padding: clamp(28px, 4vw, 48px);
	background: rgba(255, 255, 255, .88);
}

.afn-service-cards h2 {
	color: var(--afn-ink);
	font-size: clamp(1.65rem, 2.5vw, 2.35rem);
}

.afn-service-cards article > p:not(.afn-kicker) {
	margin: 18px 0;
	line-height: 1.68;
}

.afn-service-cards ul {
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.afn-service-cards li {
	padding: 8px 0;
	border-top: 1px solid rgba(2, 115, 115, .14);
	font-size: .87rem;
}

.afn-service-budget {
	margin-top: clamp(58px, 7vw, 92px);
	padding: clamp(68px, 7vw, 96px) 0;
	color: rgba(255, 255, 255, .8);
	background: linear-gradient(112deg, var(--afn-ink), var(--afn-teal));
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-service-budget__grid {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	gap: clamp(42px, 8vw, 104px);
}

.afn-service-budget h2 {
	color: #fff;
}

.afn-service-budget__grid > div:last-child p {
	margin: 0 0 18px;
	font-size: 1rem;
	line-height: 1.72;
}

.afn-service-construction {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 42px;
	align-items: end;
	margin-top: clamp(58px, 7vw, 92px);
	padding: clamp(34px, 4vw, 52px);
	border: 1px solid var(--afn-line);
	background: rgba(255, 255, 255, .82);
}

.afn-service-construction h2 {
	max-width: 20ch;
	color: var(--afn-teal);
}

.afn-service-construction p:not(.afn-kicker) {
	max-width: 74ch;
	margin: 18px 0 0;
	line-height: 1.65;
}

/* Municipal: transactional sequence and visible uncertainty management. */
.afn-municipal-page-content {
	padding-bottom: var(--afn-section-space);
}

.afn-municipal-needs,
.afn-municipal-inputs {
	margin-top: clamp(58px, 7vw, 92px);
	padding: clamp(66px, 7vw, 94px) 0;
	background: rgba(216, 235, 231, .43);
}

.afn-municipal-needs header,
.afn-municipal-process header {
	margin-bottom: 30px;
}

.afn-municipal-needs h2,
.afn-municipal-process h2,
.afn-municipal-inputs h2,
.afn-municipal-scope h2 {
	color: var(--afn-teal);
}

.afn-municipal-needs__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	border: 1px solid var(--afn-line);
	background: var(--afn-line);
}

.afn-municipal-needs__grid p {
	min-height: 170px;
	margin: 0;
	padding: 25px;
	background: rgba(255, 255, 255, .9);
}

.afn-municipal-needs__grid strong,
.afn-municipal-needs__grid span {
	display: block;
}

.afn-municipal-needs__grid strong {
	margin-bottom: 13px;
	color: var(--afn-teal);
}

.afn-municipal-needs__grid span {
	font-size: .9rem;
	line-height: 1.6;
}

.afn-municipal-process {
	margin-top: clamp(58px, 7vw, 92px);
}

.afn-municipal-process ol {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--afn-line);
}

.afn-municipal-process li {
	display: grid;
	grid-template-columns: 54px minmax(0, 1fr);
	gap: 18px;
	padding: 21px 0;
	border-bottom: 1px solid var(--afn-line);
}

.afn-municipal-process li > span {
	color: var(--afn-teal-bright);
	font-size: .67rem;
	font-weight: 850;
	letter-spacing: .1em;
}

.afn-municipal-process strong {
	color: var(--afn-ink);
	font-size: 1rem;
}

.afn-municipal-process li p {
	margin: 5px 0 0;
	font-size: .9rem;
	line-height: 1.58;
}

.afn-municipal-inputs__grid {
	display: grid;
	grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
	gap: clamp(42px, 8vw, 104px);
	align-items: start;
}

.afn-municipal-inputs__grid p:not(.afn-kicker) {
	line-height: 1.65;
}

.afn-municipal-inputs ul {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--afn-line);
}

.afn-municipal-inputs li {
	padding: 13px 0 13px 23px;
	border-bottom: 1px solid var(--afn-line);
	background: linear-gradient(90deg, var(--afn-teal-bright) 0 7px, transparent 7px);
	font-size: .9rem;
	line-height: 1.5;
}

.afn-municipal-scope {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 42px;
	align-items: end;
	margin-top: clamp(58px, 7vw, 92px);
	padding: clamp(34px, 4vw, 52px);
	border: 1px solid var(--afn-line);
	background: rgba(255, 255, 255, .82);
}

.afn-municipal-scope p:not(.afn-kicker) {
	max-width: 74ch;
	margin: 18px 0 0;
	line-height: 1.65;
}

.afn-municipal-scope .afn-actions,
.afn-service-construction .afn-actions {
	max-width: 280px;
	justify-content: flex-end;
}

/* Author: the manifesto becomes a working method. */
.afn-author-practice {
	margin-top: var(--afn-section-space);
}

.afn-author-practice header {
	display: grid;
	grid-template-columns: minmax(0, .45fr) minmax(0, 1fr);
	gap: 28px;
	align-items: end;
	margin-bottom: 30px;
}

.afn-author-practice h2 {
	color: var(--afn-teal);
}

.afn-author-practice > div:not(.afn-shell) {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	border: 1px solid var(--afn-line);
	background: var(--afn-line);
}

.afn-author-practice article {
	padding: 27px;
	background: rgba(255, 255, 255, .86);
}

.afn-author-practice h3 {
	margin: 0 0 14px;
	color: var(--afn-teal);
	font-size: 1.25rem;
}

.afn-author-practice article p {
	margin: 0;
	font-size: .91rem;
	line-height: 1.65;
}

.afn-author-continuity {
	margin-top: var(--afn-section-space);
	padding: clamp(68px, 7vw, 96px) 0;
	color: rgba(255, 255, 255, .8);
	background: linear-gradient(112deg, var(--afn-ink), var(--afn-teal));
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-author-continuity__grid {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	gap: clamp(42px, 8vw, 104px);
}

.afn-author-continuity h2 {
	color: #fff;
}

.afn-author-continuity__grid > div:last-child p {
	margin: 0 0 18px;
	line-height: 1.7;
}

.afn-author-continuity .afn-text-link {
	color: #86e3d7 !important;
}

/* Contact: longer brief, same visual density. */
.afn-contact-expectation {
	padding: 18px 20px;
	border-left: 3px solid var(--afn-teal-bright);
	background: rgba(216, 235, 231, .58);
	font-size: .92rem !important;
}

.afn-contact-expectation strong {
	display: block;
	margin-bottom: 4px;
	color: var(--afn-teal);
}

.afn-native-contact-form select {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 12px 36px 12px 13px;
	color: var(--afn-ink);
	border: 1px solid rgba(2, 115, 115, .3);
	border-radius: 0;
	background-color: rgba(255, 255, 255, .9);
	box-shadow: none;
}

.afn-native-contact-form select:focus {
	outline: 2px solid rgba(3, 140, 127, .42);
	outline-offset: 1px;
	border-color: var(--afn-teal);
}

/* Project pages: reason before description, then intentional internal links. */
.afn-project-reasoning {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	background: var(--afn-line);
	border: 1px solid var(--afn-line);
}

.afn-project-reasoning section {
	min-width: 0;
	padding: clamp(20px, 2.4vw, 28px);
	background: rgba(255, 255, 255, .9);
}

.afn-project-reasoning h3 {
	margin: 0 0 10px;
	color: var(--afn-teal);
	font-size: .72rem;
	font-weight: 850;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.afn-project-reasoning p {
	margin: 0 !important;
	padding: 0 !important;
	font-size: .91rem !important;
	line-height: 1.62 !important;
}

.afn-project-credit {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	margin: 18px 0 0 !important;
	padding: 15px 0 0 !important;
	border-top: 1px solid var(--afn-line);
	font-size: .8rem !important;
}

.afn-project-credit strong {
	color: var(--afn-teal);
}

.afn-project-closing {
	padding: clamp(72px, 8vw, 108px) 0;
}

.afn-project-closing header {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(260px, .6fr);
	gap: clamp(34px, 7vw, 88px);
	align-items: end;
}

.afn-project-closing h2 {
	max-width: 20ch;
	color: var(--afn-teal);
}

.afn-project-closing header > p {
	margin: 0;
	font-size: .95rem;
	line-height: 1.68;
}

.afn-project-closing > .afn-shell > .afn-actions {
	margin: 28px 0 38px;
}

.afn-related-projects {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(12px, 1.7vw, 22px);
}

.afn-related-projects article {
	min-width: 0;
	background: #0a2422;
	overflow: hidden;
}

.afn-related-projects a {
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	height: 100%;
	color: #fff !important;
	text-decoration: none !important;
}

.afn-related-projects img {
	display: block;
	width: 100%;
	height: clamp(210px, 22vw, 320px);
	object-fit: cover;
	transition: transform 480ms cubic-bezier(.2, .75, .25, 1);
}

.afn-related-projects a > span {
	display: grid;
	gap: 5px;
	min-height: 72px;
	padding: 15px 18px;
	background: linear-gradient(104deg, #071d1b, #075650);
}

.afn-related-projects small {
	color: #86e3d7;
	font-size: .62rem;
	font-weight: 820;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.afn-related-projects strong {
	font-size: .9rem;
	line-height: 1.35;
}

.afn-related-projects a:hover img {
	transform: scale(1.045);
}

@media (max-width: 980px) {
	.afn-home-process__steps {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.afn-home-process__steps li:nth-child(4) {
		border-top: 1px solid rgba(117, 222, 209, .22);
	}

	.afn-home-process__bridge,
	.afn-project-archive__closing,
	.afn-service-construction,
	.afn-municipal-scope {
		grid-template-columns: 1fr;
	}

	.afn-home-process__bridge .afn-text-link,
	.afn-project-archive__closing .afn-actions,
	.afn-service-construction .afn-actions,
	.afn-municipal-scope .afn-actions {
		justify-self: start;
		max-width: none;
	}

	.afn-municipal-needs__grid,
	.afn-author-practice > div:not(.afn-shell) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 782px) {
	.afn-home-positioning__grid,
	.afn-home-process header,
	.afn-project-archive__intro,
	.afn-service-intro,
	.afn-service-budget__grid,
	.afn-municipal-intro,
	.afn-municipal-inputs__grid,
	.afn-author-practice header,
	.afn-author-continuity__grid,
	.afn-project-closing header {
		grid-template-columns: 1fr;
	}

	.afn-home-process header > p:last-child,
	.afn-project-archive__intro > p:last-child {
		grid-column: 1;
		grid-row: auto;
	}

	.afn-home-services__grid,
	.afn-service-cards {
		grid-template-columns: 1fr;
	}

	.afn-home-services__grid article {
		min-height: 0;
	}

	.afn-home-positioning__proof p {
		grid-template-columns: 1fr;
		gap: 8px;
	}

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

	.afn-related-projects article:first-child {
		grid-column: 1 / -1;
	}
}

@media (max-width: 560px) {
	.afn-home-process__steps,
	.afn-municipal-needs__grid,
	.afn-author-practice > div:not(.afn-shell),
	.afn-project-reasoning,
	.afn-related-projects {
		grid-template-columns: 1fr;
	}

	.afn-home-process__steps li {
		padding: 17px 0;
		border-bottom: 1px solid rgba(117, 222, 209, .2);
	}

	.afn-home-process__steps li::after {
		display: none;
	}

	.afn-home-process__bridge {
		grid-template-columns: 1fr;
	}

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

	.afn-related-projects article:first-child {
		grid-column: auto;
	}

	.afn-related-projects img {
		height: min(68vw, 360px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.afn-related-projects img {
		transition: none;
	}
}

/* Source: working/arquitectura-fn-sistema-autor/assets/css/v1.6.css */
/*
 * Arquitectura FN · v1.6
 * One hero system, curated author portraits, progressive portfolio, authorised
 * reels integration, privacy and responsive/accessibility refinements.
 */

html,
body.afn-author-system {
	max-width: 100%;
	overflow-x: clip;
}

body.afn-author-system :where(a, button, input, select, textarea):focus-visible {
	outline: 3px solid #68d8ca !important;
	outline-offset: 3px !important;
}

/* One visual datum for every principal page: same height, different evidence. */
.afn-page-hero,
.afn-page-hero--video,
.afn-page-hero--media {
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	min-height: clamp(560px, 68svh, 720px) !important;
	margin: 0 0 clamp(58px, 6vw, 86px) !important;
	padding: clamp(168px, 19vh, 218px) 0 clamp(78px, 9vh, 104px) !important;
	background: #061d1b !important;
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%) !important;
}

.afn-page-hero--media::before {
	z-index: 2;
	pointer-events: none;
}

.afn-page-hero__media,
.afn-page-hero__scrim {
	position: absolute;
	inset: 0;
}

.afn-page-hero__media {
	z-index: 0;
	margin: 0;
	overflow: hidden;
	background: #061d1b;
}

.afn-page-hero__media img,
.afn-page-hero__media video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.afn-page-hero__media video {
	position: absolute;
	inset: 0;
	filter: saturate(.8) contrast(1.07);
}

.afn-page-hero__poster {
	position: absolute;
	inset: 0;
}

.afn-page-hero__scrim {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(4, 20, 19, .94) 0%, rgba(4, 31, 29, .78) 46%, rgba(3, 38, 36, .33) 74%, rgba(2, 28, 27, .24) 100%),
		linear-gradient(0deg, rgba(3, 18, 17, .72), transparent 64%);
	pointer-events: none;
}

.afn-page-hero__content {
	position: relative;
	z-index: 3;
	width: var(--afn-shell) !important;
	margin-inline: auto !important;
}

.afn-page-hero__line {
	z-index: 4;
}

.afn-page-hero h1 {
	max-width: 16ch !important;
	font-size: clamp(2.8rem, 5vw, 4.9rem) !important;
	text-wrap: balance;
	text-shadow: 0 3px 28px rgba(0, 0, 0, .38);
}

.afn-page-hero .afn-page-hero__content > p:last-child {
	max-width: 710px;
	color: rgba(255, 255, 255, .9);
	text-shadow: 0 2px 20px rgba(0, 0, 0, .34);
}

.afn-page-hero--projects .afn-page-hero__media :where(img, video) { object-position: center 48%; }
.afn-page-hero--services .afn-page-hero__media img { object-position: center 52%; }
.afn-page-hero--municipal .afn-page-hero__media img { object-position: center 48%; }

/* Portrait and process evidence occupy a deliberate right-hand bay on desktop. */
.afn-page-hero--about,
.afn-page-hero--contact {
	background: linear-gradient(112deg, #061d1b, #083d39) !important;
}

.afn-page-hero--about .afn-page-hero__media,
.afn-page-hero--contact .afn-page-hero__media {
	left: 54%;
	width: 46%;
}

.afn-page-hero--about .afn-page-hero__media img { object-position: center 24%; }
.afn-page-hero--contact .afn-page-hero__media img { object-position: center 42%; }

.afn-page-hero--about .afn-page-hero__scrim,
.afn-page-hero--contact .afn-page-hero__scrim {
	background: linear-gradient(90deg, #061d1b 0 44%, rgba(6, 29, 27, .96) 52%, rgba(6, 29, 27, .32) 78%, rgba(6, 29, 27, .18));
}

.afn-page-hero--about .afn-page-hero__content,
.afn-page-hero--contact .afn-page-hero__content {
	padding-right: 43%;
}

/* Portfolio: all links remain in server HTML; visual density grows on demand. */
.afn-project-more {
	display: grid;
	justify-items: center;
	gap: 14px;
	width: var(--afn-shell);
	margin: clamp(34px, 4vw, 54px) auto 0;
}

.afn-project-more[hidden],
.afn-project-more button[hidden] {
	display: none !important;
}

.afn-project-more p {
	margin: 0;
	color: #35514f;
	font-size: .78rem;
	font-weight: 760;
	letter-spacing: .04em;
}

.afn-project-more .afn-button--ghost {
	min-width: 220px;
	color: #075f5b !important;
	border-color: #075f5b !important;
	background: transparent !important;
}

.afn-project-more .afn-button--ghost:hover {
	color: #fff !important;
	background: #075f5b !important;
}

/* Author: person, thought, method and proof—without turning the page into a shoot. */
.afn-author-profile__lead--text {
	grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr) !important;
	align-items: start !important;
}

.afn-author-profile__lead--text h2 {
	max-width: 12ch;
}

.afn-author-profile__lead--text > div:last-child {
	padding-top: 2px;
}

.afn-author-thought {
	margin-top: var(--afn-section-space);
	padding: clamp(56px, 7vw, 94px) 0;
	background: linear-gradient(112deg, rgba(216, 235, 231, .98), rgba(188, 223, 216, .94));
	clip-path: polygon(0 var(--afn-plane-rise), 100% 0, 100% calc(100% - var(--afn-plane-rise)), 0 100%);
}

.afn-author-thought__grid {
	display: grid;
	grid-template-columns: minmax(280px, .78fr) minmax(0, 1.22fr);
	gap: clamp(40px, 8vw, 104px);
	align-items: center;
}

.afn-author-thought figure {
	height: clamp(430px, 48vw, 620px);
	margin: 0;
	overflow: hidden;
	background: #c8d4d1;
	transform: skewY(calc(-1 * var(--afn-angle)));
}

.afn-author-thought img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 28%;
	transform: skewY(var(--afn-angle)) scale(1.045);
}

.afn-author-thought h2 {
	max-width: 16ch;
	color: #075f5b;
}

.afn-author-thought p:not(.afn-kicker) {
	max-width: 66ch;
	font-size: 1rem;
	line-height: 1.72;
}

.afn-author-gallery__grid--two {
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr) !important;
}

.afn-author-gallery__grid--two figure,
.afn-author-gallery__grid--two figure:nth-child(n) {
	max-width: none !important;
	transform: none !important;
}

.afn-author-gallery__grid--two figure:first-child img { object-position: center 46%; }
.afn-author-gallery__grid--two figure:last-child img { object-position: center 54%; }

/* Latest reels are authorised, cached by the integration and visually contained. */
.afn-author-reels {
	padding: clamp(68px, 8vw, 110px) 0;
	background: #f4f7f6;
}

.afn-author-reels header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, .58fr);
	gap: clamp(34px, 7vw, 88px);
	align-items: end;
	margin-bottom: 30px;
}

.afn-author-reels h2 {
	max-width: 17ch;
	color: #075f5b;
}

.afn-author-reels header > p {
	margin: 0;
	line-height: 1.66;
}

.afn-author-reels__feed {
	overflow: hidden;
}

.afn-author-reels__feed #sb_instagram {
	width: 100% !important;
	padding: 0 !important;
	background: transparent !important;
}

.afn-author-reels__feed #sbi_images {
	display: grid !important;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: clamp(8px, 1vw, 14px) !important;
	padding: 0 !important;
}

.afn-author-reels__feed .sbi_item {
	width: auto !important;
	min-width: 0;
	padding: 0 !important;
	aspect-ratio: 9 / 16;
	overflow: hidden;
	background: #0b2725;
}

.afn-author-reels__feed .sbi_item[hidden] {
	display: none !important;
}

.afn-author-reels__empty {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	align-items: center;
	padding: 24px;
	border: 1px solid rgba(2, 115, 115, .24);
	background: rgba(255, 255, 255, .76);
}

.afn-author-reels__empty p { margin: 0; }

.afn-author-reels__feed .sbi_photo,
.afn-author-reels__feed .sbi_photo_wrap,
.afn-author-reels__feed .sbi_photo img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

.afn-author-reels__feed :where(.sb_instagram_header, #sbi_load, .sbi_follow_btn, .sbi_load_btn) {
	display: none !important;
}

.afn-author-reels__fallback {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	align-items: center;
	padding: 24px;
	border: 1px solid rgba(2, 115, 115, .24);
	background: rgba(255, 255, 255, .76);
}

.afn-author-reels__fallback p { margin: 0; }

/* Form consent is explicit without turning the page into legal copy. */
.afn-form-consent {
	display: grid !important;
	grid-template-columns: auto 1fr;
	gap: 9px;
	align-items: start;
	font-size: .76rem !important;
	font-weight: 560 !important;
	line-height: 1.5;
}

.afn-form-consent input {
	width: 18px !important;
	height: 18px;
	margin-top: 1px !important;
	accent-color: #075f5b;
}

.afn-form-consent a,
.afn-form-privacy a {
	color: #075f5b !important;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.afn-native-contact-form button[type="submit"] {
	background: #075f5b;
}

.afn-native-contact-form button[type="submit"]:hover,
.afn-native-contact-form button[type="submit"]:focus-visible {
	background: #0b4643;
}

/* The bridge behaves as a process, not as a second logo lock-up. */
.afn-arquiener-bridge__sequence {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	margin: 24px 0 28px;
	padding: 0;
	list-style: none;
	background: rgba(255, 255, 255, .16);
}

.afn-arquiener-bridge__sequence li {
	position: relative;
	padding: 13px 11px;
	color: rgba(255, 255, 255, .92);
	background: rgba(5, 35, 32, .82);
	font-size: .7rem;
	font-weight: 760;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.afn-arquiener-bridge__sequence span {
	display: block;
	margin-bottom: 4px;
	color: #86e3d7;
	font-size: .58rem;
}

/* Privacy page: legible, direct and consistent with the service pages. */
.afn-privacy-page-content {
	padding-bottom: var(--afn-section-space);
}

.afn-privacy-page-content__grid {
	display: grid;
	grid-template-columns: minmax(190px, .36fr) minmax(0, 1fr);
	gap: clamp(44px, 8vw, 110px);
	align-items: start;
}

.afn-privacy-page-content nav {
	position: sticky;
	top: 110px;
	display: grid;
	gap: 9px;
}

.afn-privacy-page-content nav a {
	color: #075f5b;
	font-size: .82rem;
	font-weight: 720;
}

.afn-privacy-page-content section {
	padding: 0 0 32px;
	border-bottom: 1px solid rgba(2, 115, 115, .2);
}

.afn-privacy-page-content section + section { margin-top: 36px; }
.afn-privacy-page-content h2 { color: #075f5b; }
.afn-privacy-page-content p { max-width: 72ch; line-height: 1.72; }

@media (max-width: 1024px) {
	.afn-page-hero,
	.afn-page-hero--video,
	.afn-page-hero--media {
		min-height: clamp(560px, 64svh, 650px) !important;
	}

	.afn-author-reels__feed #sbi_images {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}

	.afn-author-reels__feed .sbi_item { scroll-snap-align: start; }
}

@media (max-width: 768px) {
	.afn-page-hero--about .afn-page-hero__media,
	.afn-page-hero--contact .afn-page-hero__media {
		left: 42%;
		width: 58%;
	}

	.afn-page-hero--about .afn-page-hero__content,
	.afn-page-hero--contact .afn-page-hero__content {
		padding-right: 32%;
	}

	.afn-author-profile__lead--text,
	.afn-author-thought__grid,
	.afn-author-reels header,
	.afn-privacy-page-content__grid {
		grid-template-columns: 1fr !important;
	}

	.afn-author-thought figure {
		width: min(100%, 520px);
		height: min(112vw, 620px);
	}

	.afn-author-gallery__grid--two {
		grid-template-columns: 1fr 1fr !important;
	}

	.afn-author-reels__feed #sbi_images {
		grid-auto-flow: column;
		grid-auto-columns: minmax(240px, 31vw);
		grid-template-columns: none;
	}

	.afn-privacy-page-content nav {
		position: static;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		padding-bottom: 24px;
		border-bottom: 1px solid rgba(2, 115, 115, .2);
	}
}

@media (max-width: 720px) {
	.afn-page-hero__media video { display: none !important; }
}

@media (max-width: 560px) {
	.afn-page-hero,
	.afn-page-hero--video,
	.afn-page-hero--media {
		min-height: clamp(520px, 78svh, 580px) !important;
		padding: 146px 0 78px !important;
	}

	.afn-page-hero h1 {
		max-width: 12ch !important;
		font-size: clamp(2.35rem, 11.5vw, 3.35rem) !important;
	}

	.afn-page-hero--about .afn-page-hero__media,
	.afn-page-hero--contact .afn-page-hero__media {
		left: 0;
		width: 100%;
		opacity: .7;
	}

	.afn-page-hero--about .afn-page-hero__content,
	.afn-page-hero--contact .afn-page-hero__content {
		padding-right: 0;
	}

	.afn-page-hero--about .afn-page-hero__scrim,
	.afn-page-hero--contact .afn-page-hero__scrim {
		background: linear-gradient(90deg, rgba(5, 24, 22, .96), rgba(5, 29, 27, .74)), linear-gradient(0deg, rgba(3, 18, 17, .82), transparent 70%);
	}

	.afn-author-gallery__grid--two {
		grid-template-columns: 1fr !important;
	}

	.afn-author-reels__feed #sbi_images {
		grid-auto-columns: minmax(78vw, 1fr);
	}

	.afn-author-reels__fallback,
	.afn-author-reels__empty {
		align-items: stretch;
		flex-direction: column;
	}

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

	.afn-privacy-page-content nav { grid-template-columns: 1fr; }
}

@media (max-width: 390px) {
	.afn-page-hero,
	.afn-page-hero--video,
	.afn-page-hero--media {
		min-height: 540px !important;
	}

	.afn-project-more .afn-button--ghost {
		width: 100%;
		min-width: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.afn-author-reels__feed #sbi_images { scroll-behavior: auto; }
	.afn-page-hero__media video { display: none !important; }
	.afn-author-system *,
	.afn-author-system *::before,
	.afn-author-system *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}
