:root {
	--af-olive: #747c4d;
	--af-olive-dark: #4e5534;
	--af-olive-deep: #343a25;
	--af-sage: #aeb391;
	--af-cream: #f5f3ec;
	--af-paper: #fbfaf6;
	--af-ink: #24261d;
	--af-muted: #696b5f;
	--af-line: rgba(52, 58, 37, .18);
	--af-serif: Georgia, 'Times New Roman', serif;
	--af-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

html {
	scroll-behavior: smooth;
	background: var(--af-paper);
}

body {
	margin: 0;
	background: var(--af-paper);
	color: var(--af-ink);
	font-family: var(--af-sans);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

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

body:has(.af-dialog[open]) {
	overflow: hidden;
}

.af-site,
.af-site * {
	box-sizing: border-box;
}

.af-site img {
	display: block;
	max-width: 100%;
}

.af-site button,
.af-site a {
	-webkit-tap-highlight-color: transparent;
}

.af-site a {
	color: inherit;
	text-decoration: none;
}

.af-progress {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	width: 100%;
	height: 3px;
	pointer-events: none;
}

.af-progress span {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, var(--af-sage), #f4f1dc);
	box-shadow: 0 0 18px rgba(244, 241, 220, .65);
	transform: scaleX(var(--af-scroll-progress, 0));
	transform-origin: left;
}

.af-header {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 30;
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	height: 104px;
	padding: 0 clamp(28px, 5vw, 82px);
	background: rgba(251, 250, 246, .96);
	border-bottom: 1px solid rgba(52, 58, 37, .08);
	transition: height .3s ease, box-shadow .3s ease;
}

.af-header.is-fixed {
	position: fixed;
	top: 14px;
	left: 18px;
	width: calc(100% - 36px);
	height: 78px;
	background: rgba(251, 250, 246, .84);
	border: 1px solid rgba(255, 255, 255, .62);
	border-radius: 18px;
	box-shadow: 0 18px 60px rgba(31, 34, 23, .12);
	backdrop-filter: blur(22px) saturate(1.25);
}

.af-brand {
	display: inline-flex;
	align-items: center;
	width: 205px;
}

.af-site .af-brand {
	color: var(--af-olive);
}

.af-brand img,
.af-brand__logo {
	width: 100%;
	height: 74px;
	object-fit: contain;
}

.af-brand__symbol,
.af-brand__name,
.af-brand__descriptor {
	transform-box: fill-box;
	transform-origin: center;
}

.af-js:not(.af-ready) .af-brand__symbol {
	opacity: 0;
	transform: scale(.84) rotate(-4deg);
}

.af-js:not(.af-ready) .af-brand__piece,
.af-js:not(.af-ready) .af-brand__name,
.af-js:not(.af-ready) .af-brand__descriptor {
	opacity: 0;
}

.af-js:not(.af-ready) .af-brand__name {
	clip-path: inset(0 100% 0 0);
	transform: translateY(7px);
}

.af-js:not(.af-ready) .af-brand__descriptor {
	transform: translateY(5px);
}

.af-ready .af-brand__symbol {
	opacity: 1;
	transform: scale(1) rotate(0);
	transition: opacity .65s ease, transform .9s cubic-bezier(.22, 1, .36, 1);
}

.af-ready .af-brand__piece {
	opacity: 1;
	transition: opacity .34s ease calc(.04s + var(--af-piece) * .025s);
}

.af-ready .af-brand__name {
	opacity: 1;
	clip-path: inset(0);
	transform: translateY(0);
	transition: opacity .55s ease .38s, clip-path .8s cubic-bezier(.22, 1, .36, 1) .38s, transform .75s cubic-bezier(.22, 1, .36, 1) .38s;
}

.af-ready .af-brand__descriptor {
	opacity: 1;
	transform: translateY(0);
	transition: opacity .55s ease .62s, transform .65s cubic-bezier(.22, 1, .36, 1) .62s;
}

.af-nav {
	display: flex;
	align-items: center;
	gap: clamp(22px, 2.65vw, 44px);
	font-size: 12px;
	font-weight: 650;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.af-nav a {
	position: relative;
	padding: 13px 0;
	white-space: nowrap;
}

.af-nav a:not(.af-nav__private)::after {
	position: absolute;
	right: 0;
	bottom: 5px;
	left: 0;
	height: 1px;
	background: var(--af-olive);
	content: '';
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .25s ease;
}

.af-nav a:hover::after,
.af-nav a:focus-visible::after,
.af-nav a[aria-current='page']::after {
	transform: scaleX(1);
	transform-origin: left;
}

.af-nav__private {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 13px 20px !important;
	border: 1px solid var(--af-olive);
	color: var(--af-olive-dark) !important;
}

.af-menu-toggle {
	display: none;
	width: 44px;
	height: 44px;
	padding: 11px 8px;
	border: 0;
	background: transparent;
}

.af-menu-toggle > span:not(.visually-hidden) {
	display: block;
	width: 100%;
	height: 1px;
	margin: 6px 0;
	background: var(--af-ink);
	transition: transform .25s ease, opacity .25s ease;
}

.af-hero {
	position: relative;
	min-height: max(720px, 100svh);
	overflow: hidden;
	background: var(--af-olive-deep);
}

.af-hero__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 56%;
	opacity: 0;
	transform: translate3d(0, var(--af-hero-shift, 0), 0) scale(1.015);
	will-change: transform, opacity;
	transition: opacity 1s ease, transform 8s ease;
}

.af-hero__image.is-active {
	opacity: 1;
	transform: translate3d(0, var(--af-hero-shift, 0), 0) scale(1.07);
}

.af-hero__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(42, 48, 28, .92) 0%, rgba(51, 58, 34, .79) 34%, rgba(48, 53, 34, .22) 63%, rgba(20, 22, 17, .08) 100%);
}

.af-hero__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: min(760px, 58vw);
	min-height: max(720px, 100svh);
	padding: 150px clamp(28px, 7vw, 120px) 132px;
	color: #fff;
	opacity: var(--af-hero-opacity, 1);
	transform: translate3d(0, var(--af-hero-copy-shift, 0), 0);
	will-change: transform, opacity;
}

.af-js:not(.af-ready) .af-hero__content > * {
	opacity: 0;
	transform: translateY(28px);
}

.af-ready .af-hero__content > * {
	opacity: 1;
	transform: translateY(0);
	transition: opacity .9s cubic-bezier(.22, 1, .36, 1), transform .9s cubic-bezier(.22, 1, .36, 1);
}

.af-ready .af-hero__content > :nth-child(2) { transition-delay: .08s; }
.af-ready .af-hero__content > :nth-child(3) { transition-delay: .16s; }
.af-ready .af-hero__content > :nth-child(4) { transition-delay: .24s; }

.af-eyebrow,
.af-kicker {
	margin: 0 0 22px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .24em;
	line-height: 1.4;
	text-transform: uppercase;
}

.af-eyebrow {
	color: rgba(255, 255, 255, .75);
}

.af-hero h1,
.af-section h2,
.af-story h2,
.af-gallery h2,
.af-contact h2,
.af-dialog h2,
.af-private-hero h1 {
	font-family: var(--af-serif);
	font-weight: 400;
}

.af-hero h1 {
	max-width: 700px;
	margin: 0;
	font-size: clamp(58px, 7.3vw, 116px);
	letter-spacing: -.055em;
	line-height: .88;
	text-transform: uppercase;
}

.af-hero h1 em,
.af-section h2 em,
.af-story h2 em,
.af-gallery h2 em,
.af-contact h2 em,
.af-dialog h2 em {
	font-weight: 400;
	text-transform: none;
}

.af-hero h1 em {
	color: #d7dbbf;
}

.af-hero__lead {
	max-width: 540px;
	margin: 30px 0 0;
	font-family: var(--af-serif);
	font-size: clamp(19px, 1.8vw, 28px);
	line-height: 1.45;
}

.af-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 38px;
}

.af-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 11px;
	min-height: 54px;
	padding: 0 27px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 750;
	letter-spacing: .14em;
	text-transform: uppercase;
	transform: translate3d(var(--af-magnetic-x, 0), var(--af-magnetic-y, 0), 0);
	transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .35s cubic-bezier(.2, .8, .2, 1);
}

.af-button:hover,
.af-button:focus-visible {
	box-shadow: 0 12px 32px rgba(26, 29, 19, .13);
}

.af-button--light {
	background: #fff;
	color: var(--af-olive-deep) !important;
}

.af-button--light:hover,
.af-button--light:focus-visible {
	background: #e8ead9;
}

.af-button--ghost {
	border-color: rgba(255, 255, 255, .48);
	color: #fff !important;
}

.af-button--ghost:hover,
.af-button--ghost:focus-visible {
	border-color: #fff;
	background: rgba(255, 255, 255, .1);
}

.af-button--olive {
	background: var(--af-olive);
	color: #fff !important;
}

.af-button--olive:hover,
.af-button--olive:focus-visible {
	background: var(--af-olive-dark);
}

.af-hero__facts {
	position: absolute;
	right: clamp(28px, 5vw, 82px);
	bottom: 44px;
	z-index: 3;
	display: flex;
	background: rgba(245, 243, 236, .94);
	border: 1px solid rgba(255, 255, 255, .48);
	border-radius: 18px;
	color: var(--af-ink);
	box-shadow: 0 20px 70px rgba(23, 26, 16, .18);
	backdrop-filter: blur(18px) saturate(1.2);
	overflow: hidden;
}

.af-hero__facts > div {
	display: grid;
	min-width: 144px;
	padding: 20px 25px;
	border-right: 1px solid var(--af-line);
}

.af-hero__facts > div:last-child {
	border-right: 0;
}

.af-hero__facts strong {
	font-family: var(--af-serif);
	font-size: 38px;
	font-weight: 400;
	line-height: 1;
}

.af-hero__facts span {
	margin-top: 5px;
	color: var(--af-muted);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .15em;
	text-transform: uppercase;
}

.af-daynight {
	position: absolute;
	top: 136px;
	right: clamp(28px, 5vw, 82px);
	z-index: 4;
	display: inline-flex;
	align-items: center;
	gap: 11px;
	min-height: 44px;
	padding: 0 17px;
	border: 1px solid rgba(255, 255, 255, .5);
	border-radius: 999px;
	background: rgba(36, 38, 29, .28);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	backdrop-filter: blur(12px);
	cursor: pointer;
}

.af-daynight:hover,
.af-daynight:focus-visible {
	background: rgba(36, 38, 29, .62);
}

.af-scroll {
	position: absolute;
	bottom: 43px;
	left: 50%;
	z-index: 3;
	display: grid;
	width: 46px;
	height: 46px;
	border: 1px solid rgba(255, 255, 255, .45);
	border-radius: 50%;
	color: #fff !important;
	place-items: center;
	transform: translateX(-50%);
	animation: af-scroll-pulse 2.4s ease-in-out infinite;
}

@keyframes af-scroll-pulse {
	0%, 100% { transform: translate(-50%, 0); }
	50% { transform: translate(-50%, 8px); }
}

.af-section {
	padding: clamp(92px, 11vw, 172px) clamp(28px, 7vw, 120px);
}

.af-intro {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(290px, .62fr);
	gap: clamp(42px, 8vw, 132px);
	background: var(--af-paper);
}

/* Quiet brand signatures: every instance uses the definitive logo symbol. */
.af-symbol-host {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}

.af-symbol-host > :not(.af-symbol-decor) {
	position: relative;
	z-index: 1;
}

.af-symbol-host > .af-symbol-decor {
	position: absolute;
	z-index: 0;
	display: block;
	height: auto;
	opacity: var(--af-symbol-opacity, .05);
	pointer-events: none;
	user-select: none;
	will-change: transform;
}

.af-js .af-symbol-decor {
	opacity: 0;
	animation-play-state: paused;
	transition: opacity 1.8s cubic-bezier(.22, 1, .36, 1);
}

.af-js .af-symbol-decor.is-visible {
	opacity: var(--af-symbol-opacity, .05);
	animation-play-state: running;
}

.af-symbol-decor--daybreak {
	top: clamp(58px, 7vw, 112px);
	right: clamp(-148px, -8vw, -76px);
	width: clamp(280px, 30vw, 470px);
	--af-symbol-opacity: .045;
	animation: af-symbol-daybreak 24s ease-in-out infinite alternate;
}

.af-symbol-decor--counterturn {
	bottom: clamp(-190px, -11vw, -112px);
	left: clamp(-170px, -9vw, -92px);
	width: clamp(340px, 36vw, 560px);
	--af-symbol-opacity: .038;
	animation: af-symbol-counterturn 54s linear infinite;
}

.af-symbol-decor--bloom {
	top: clamp(76px, 8vw, 128px);
	right: clamp(-136px, -7vw, -72px);
	width: clamp(310px, 31vw, 490px);
	--af-symbol-opacity: .046;
	animation: af-symbol-bloom 17s cubic-bezier(.45, 0, .55, 1) infinite alternate;
}

.af-symbol-decor--tide {
	top: clamp(70px, 9vw, 145px);
	left: clamp(-124px, -6vw, -62px);
	width: clamp(250px, 25vw, 390px);
	--af-symbol-opacity: .042;
	animation: af-symbol-tide 21s ease-in-out infinite alternate;
}

.af-symbol-decor--halo {
	top: clamp(96px, 9vw, 150px);
	left: clamp(-145px, -8vw, -78px);
	width: clamp(300px, 30vw, 470px);
	filter: brightness(2.7) saturate(.38);
	--af-symbol-opacity: .055;
	animation: af-symbol-halo 15s ease-in-out infinite alternate;
}

@keyframes af-symbol-daybreak {
	from { transform: translate3d(-10px, 12px, 0) rotate(-9deg); }
	to { transform: translate3d(12px, -8px, 0) rotate(3deg); }
}

@keyframes af-symbol-counterturn {
	from { transform: rotate(18deg); }
	to { transform: rotate(-342deg); }
}

@keyframes af-symbol-bloom {
	from { transform: scale(.94) rotate(-3deg); }
	to { transform: scale(1.045) rotate(4deg); }
}

@keyframes af-symbol-tide {
	from { transform: translate3d(-7px, -10px, 0) rotate(5deg); }
	to { transform: translate3d(16px, 14px, 0) rotate(-5deg); }
}

@keyframes af-symbol-halo {
	from { transform: scale(.96) rotate(-7deg); }
	to { transform: scale(1.025) rotate(1deg); }
}

.af-kicker {
	color: var(--af-olive);
}

.af-section h2,
.af-story h2,
.af-gallery h2,
.af-contact h2 {
	margin: 0;
	font-size: clamp(44px, 5.3vw, 82px);
	letter-spacing: -.045em;
	line-height: .98;
}

.af-section h2 em,
.af-story h2 em,
.af-gallery h2 em,
.af-contact h2 em {
	color: var(--af-olive);
}

.af-intro__lead {
	align-self: end;
	max-width: 520px;
	margin: 0 0 3px;
	color: var(--af-muted);
	font-family: var(--af-serif);
	font-size: clamp(19px, 1.65vw, 26px);
	line-height: 1.6;
}

.af-feature-grid {
	display: grid;
	grid-column: 1 / -1;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: clamp(42px, 6vw, 92px);
	border-top: 1px solid var(--af-line);
	border-bottom: 1px solid var(--af-line);
}

.af-feature-grid article {
	padding: 34px clamp(20px, 2.6vw, 42px) 40px 0;
	border-right: 1px solid var(--af-line);
}

.af-feature-grid article:not(:first-child) {
	padding-left: clamp(20px, 2.6vw, 42px);
}

.af-feature-grid article:last-child {
	border-right: 0;
}

.af-feature-grid article > span {
	display: grid;
	width: 42px;
	height: 42px;
	margin-bottom: 24px;
	border: 1px solid var(--af-line);
	border-radius: 50%;
	color: var(--af-olive);
	place-items: center;
	transition: background-color .35s ease, color .35s ease, transform .35s cubic-bezier(.2, .8, .2, 1);
}

.af-feature-grid article:hover > span {
	background: var(--af-olive);
	color: #fff;
	transform: rotate(8deg) scale(1.08);
}

.af-feature-grid h3 {
	margin: 0 0 11px;
	font-family: var(--af-serif);
	font-size: 22px;
	font-weight: 400;
}

.af-feature-grid p {
	margin: 0;
	color: var(--af-muted);
	font-size: 14px;
	line-height: 1.7;
}

/* Editorial statement */
.af-manifesto {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: min(860px, 92svh);
	padding: clamp(100px, 14vw, 220px) clamp(28px, 7vw, 120px);
	overflow: hidden;
	background: #eceade;
}

.af-manifesto::before {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 78% 50%, rgba(174, 179, 145, .25), transparent 34%);
	content: '';
	pointer-events: none;
}

.af-manifesto .af-kicker,
.af-manifesto__line {
	position: relative;
	z-index: 1;
}

.af-manifesto__line {
	max-width: 1280px;
	margin: 0;
	font-family: var(--af-serif);
	font-size: clamp(52px, 8.6vw, 144px);
	letter-spacing: -.065em;
	line-height: .95;
}

.af-manifesto__line--accent {
	color: var(--af-olive);
	font-style: italic;
}

.af-manifesto__orbit {
	position: absolute;
	right: -7vw;
	top: 50%;
	width: clamp(280px, 38vw, 610px);
	aspect-ratio: 1;
	border: 1px solid rgba(116, 124, 77, .24);
	border-radius: 50%;
	animation: af-orbit 18s linear infinite;
	transform: translateY(-50%);
}

.af-manifesto__orbit::before,
.af-manifesto__orbit::after {
	position: absolute;
	inset: 15%;
	border: 1px solid rgba(116, 124, 77, .2);
	border-radius: 50%;
	content: '';
}

.af-manifesto__orbit::after {
	inset: 34%;
}

.af-manifesto__orbit span {
	position: absolute;
	top: 50%;
	left: -5px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--af-olive);
	box-shadow: 0 0 0 9px rgba(116, 124, 77, .12);
}

@keyframes af-orbit {
	from { transform: translateY(-50%) rotate(0); }
	to { transform: translateY(-50%) rotate(360deg); }
}

/* Progressive reveals: content stays visible when JavaScript is unavailable. */
.af-js [data-af-reveal],
.af-js [data-af-reveal-group] > * {
	opacity: 0;
	transform: translateY(48px);
	transition: opacity 1s cubic-bezier(.22, 1, .36, 1), transform 1s cubic-bezier(.22, 1, .36, 1);
}

.af-js [data-af-reveal='image'] {
	opacity: 0;
	transform: translateY(42px) scale(.985);
	transition: opacity 1s cubic-bezier(.22, 1, .36, 1), transform 1.2s cubic-bezier(.22, 1, .36, 1);
}

.af-js [data-af-reveal].is-visible,
.af-js [data-af-reveal-group].is-visible > * {
	opacity: 1;
	transform: translateY(0);
}

.af-js [data-af-reveal='image'].is-visible {
	opacity: 1;
	transform: translateY(0) scale(1);
}

.af-js [data-af-reveal-group].is-visible > :nth-child(2) { transition-delay: .08s; }
.af-js [data-af-reveal-group].is-visible > :nth-child(3) { transition-delay: .16s; }
.af-js [data-af-reveal-group].is-visible > :nth-child(4) { transition-delay: .24s; }

.af-js .af-type-card[data-af-reveal] {
	opacity: 0;
	transform: translateY(58px) perspective(1400px) rotateX(2.4deg) rotateY(var(--af-tilt-y));
	transition: opacity .8s cubic-bezier(.22, 1, .36, 1), transform 1.05s cubic-bezier(.16, 1, .3, 1), box-shadow .6s ease;
}

.af-js .af-type-card[data-af-reveal].is-visible {
	opacity: 1;
	transform: translateY(var(--af-card-lift)) perspective(1400px) rotateX(var(--af-tilt-x)) rotateY(var(--af-tilt-y));
}

.af-js .af-type-card[data-af-reveal] > button {
	opacity: 0;
	clip-path: inset(0 0 14% 0);
	transform: translateY(22px);
	transition: opacity .75s .08s cubic-bezier(.22, 1, .36, 1), clip-path 1s cubic-bezier(.16, 1, .3, 1), transform 1s cubic-bezier(.16, 1, .3, 1);
}

.af-js .af-type-card[data-af-reveal].is-visible > button {
	opacity: 1;
	clip-path: inset(0);
	transform: translateY(0);
}

.af-story {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
	min-height: 720px;
	background: var(--af-olive-deep);
	color: #fff;
}

.af-story__image-wrap {
	position: relative;
	min-height: 680px;
	overflow: hidden;
}

.af-story__image-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: translate3d(0, var(--af-parallax-shift, 0), 0) scale(1.12);
	will-change: transform;
	transition: transform .15s linear;
}

.af-story:hover .af-story__image-wrap img {
	transform: translate3d(0, var(--af-parallax-shift, 0), 0) scale(1.15);
}

.af-story__number {
	position: absolute;
	top: 32px;
	left: 34px;
	display: grid;
	width: 50px;
	height: 50px;
	background: var(--af-paper);
	color: var(--af-olive-dark);
	font-family: var(--af-serif);
	font-size: 16px;
	place-items: center;
}

.af-story__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(62px, 7vw, 116px);
}

.af-story .af-kicker {
	color: var(--af-sage);
}

.af-story h2 {
	font-size: clamp(42px, 4.6vw, 72px);
}

.af-story h2 em {
	color: #d7dbbf;
}

.af-story__copy > p:not(.af-kicker),
.af-gallery__copy > p:not(.af-kicker),
.af-contact__aside p {
	margin: 30px 0 0;
	font-size: 16px;
	line-height: 1.8;
}

.af-story__copy > p:not(.af-kicker) {
	color: rgba(255, 255, 255, .7);
}

.af-text-link {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 14px;
	margin-top: 34px;
	padding-bottom: 7px;
	border-bottom: 1px solid rgba(255, 255, 255, .5);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.af-residences {
	background: var(--af-cream);
}

.af-section__heading--row {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 48px;
}

.af-section__heading--row > p {
	max-width: 390px;
	margin: 0 0 7px;
	color: var(--af-muted);
	font-family: var(--af-serif);
	font-size: 20px;
	line-height: 1.55;
}

.af-filters {
	display: flex;
	gap: 9px;
	margin-top: 54px;
	overflow-x: auto;
	scrollbar-width: none;
}

.af-filters::-webkit-scrollbar {
	display: none;
}

.af-filters button {
	flex: 0 0 auto;
	min-height: 42px;
	padding: 0 18px;
	border: 1px solid var(--af-line);
	background: transparent;
	color: var(--af-muted);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
	cursor: pointer;
}

.af-filters button.is-active,
.af-filters button:hover,
.af-filters button:focus-visible {
	border-color: var(--af-olive);
	background: var(--af-olive);
	color: #fff;
}

.af-type-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin-top: 25px;
}

.af-type-grid.is-filtering {
	pointer-events: none;
}

.af-type-card {
	--af-tilt-x: 0deg;
	--af-tilt-y: 0deg;
	--af-pan-x: 0px;
	--af-pan-y: 0px;
	--af-card-lift: 0px;
	--af-spot-x: 50%;
	--af-spot-y: 50%;
	position: relative;
	isolation: isolate;
	min-width: 0;
	background: var(--af-paper);
	box-shadow: 0 22px 60px rgba(39, 43, 28, 0);
	transform: translateY(var(--af-card-lift)) perspective(1400px) rotateX(var(--af-tilt-x)) rotateY(var(--af-tilt-y));
	transform-style: preserve-3d;
	will-change: transform;
	transition: opacity .35s ease, transform .6s cubic-bezier(.16, 1, .3, 1), box-shadow .6s ease;
}

.af-type-card::before {
	position: absolute;
	inset: 0;
	z-index: 3;
	border: 1px solid rgba(116, 124, 77, .32);
	content: '';
	opacity: 0;
	pointer-events: none;
	transform: scale(.985);
	transition: opacity .45s ease, transform .65s cubic-bezier(.16, 1, .3, 1);
}

.af-type-card::after {
	position: absolute;
	inset: 0;
	z-index: 4;
	background: radial-gradient(circle at var(--af-spot-x) var(--af-spot-y), rgba(255, 255, 255, .22), transparent 34%);
	content: '';
	opacity: 0;
	pointer-events: none;
	transition: opacity .45s ease;
}

.af-type-card:hover {
	--af-card-lift: -7px;
	box-shadow: 0 30px 80px rgba(39, 43, 28, .16);
}

.af-type-card:hover::before,
.af-type-card:focus-within::before {
	opacity: 1;
	transform: scale(1);
}

.af-type-card:hover::after {
	opacity: 1;
}

.af-type-card.is-hidden {
	display: none;
}

.af-type-card > button {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	text-align: left;
	cursor: pointer;
	transform-style: preserve-3d;
}

.af-type-card > button:focus-visible {
	outline: 2px solid var(--af-olive);
	outline-offset: 5px;
}

.af-type-card__image {
	position: relative;
	aspect-ratio: 1.42;
	overflow: hidden;
	background: #ddd9cd;
}

.af-type-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: translate3d(var(--af-pan-x), var(--af-pan-y), 0) scale(1.025);
	will-change: transform;
	transition: transform 1.05s cubic-bezier(.16, 1, .3, 1), filter .7s ease;
}

.af-type-card:hover .af-type-card__image img,
.af-type-card > button:focus-visible .af-type-card__image img {
	filter: saturate(1.04) contrast(1.025);
	transform: translate3d(var(--af-pan-x), var(--af-pan-y), 0) scale(1.075);
}

.af-type-card__image span {
	position: absolute;
	top: 18px;
	left: 18px;
	padding: 8px 11px;
	background: rgba(251, 250, 246, .93);
	color: var(--af-olive-dark);
	font-size: 9px;
	font-weight: 750;
	letter-spacing: .15em;
	text-transform: uppercase;
	transform: translateZ(28px);
	transition: background-color .4s ease, color .4s ease, transform .6s cubic-bezier(.16, 1, .3, 1);
}

.af-type-card:hover .af-type-card__image span,
.af-type-card:focus-within .af-type-card__image span {
	background: var(--af-olive);
	color: #fff;
	transform: translate3d(3px, -3px, 32px);
}

.af-type-card__body {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	min-height: 112px;
	padding: 24px;
	transform: translateZ(22px);
}

.af-type-card__body > div {
	display: grid;
	gap: 7px;
}

.af-type-card__body strong {
	font-family: var(--af-serif);
	font-size: 28px;
	font-weight: 400;
	transition: color .35s ease, transform .55s cubic-bezier(.16, 1, .3, 1);
}

.af-type-card__body span {
	color: var(--af-muted);
	font-size: 10px;
	font-weight: 650;
	letter-spacing: .12em;
	text-transform: uppercase;
	transition: transform .55s .025s cubic-bezier(.16, 1, .3, 1);
}

.af-type-card__body > i {
	color: var(--af-olive);
	transition: transform .5s cubic-bezier(.16, 1, .3, 1);
}

.af-type-card:hover .af-type-card__body > i {
	transform: translateX(7px);
}

.af-type-card:hover .af-type-card__body strong,
.af-type-card:focus-within .af-type-card__body strong,
.af-type-card:hover .af-type-card__body span,
.af-type-card:focus-within .af-type-card__body span {
	transform: translateX(3px);
}

.af-gallery {
	display: grid;
	grid-template-columns: .72fr 1.05fr .66fr;
	gap: 22px;
	padding: clamp(92px, 10vw, 160px) clamp(28px, 5vw, 82px);
	background: var(--af-paper);
}

.af-gallery__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-right: clamp(10px, 3vw, 48px);
}

.af-gallery h2 {
	font-size: clamp(42px, 4vw, 66px);
}

.af-gallery__copy > p:not(.af-kicker) {
	color: var(--af-muted);
}

.af-gallery figure {
	margin: 0;
	overflow: hidden;
}

.af-gallery figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: translate3d(0, var(--af-parallax-shift, 0), 0) scale(1.12);
	will-change: transform;
}

.af-gallery__large {
	aspect-ratio: .86;
}

.af-gallery__small {
	align-self: center;
	aspect-ratio: .78;
	height: 68%;
}

.af-contact {
	position: relative;
	display: grid;
	grid-template-columns: minmax(280px, .65fr) minmax(600px, 1.15fr);
	align-items: center;
	gap: clamp(52px, 8vw, 128px);
	min-height: min(920px, 96svh);
	padding: clamp(110px, 12vw, 190px) clamp(28px, 7vw, 120px);
	overflow: hidden;
	background: var(--af-olive);
	color: #fff;
}

.af-contact::before,
.af-contact::after {
	position: absolute;
	z-index: 0;
	inset: 0;
	content: '';
}

.af-contact::before {
	background: url('../images/hero-night.webp') center 57% / cover;
	transform: scale(1.04);
}

.af-contact::after {
	background: linear-gradient(90deg, rgba(33, 38, 22, .94), rgba(45, 50, 31, .8) 46%, rgba(24, 27, 19, .42));
}

.af-contact > :not(.af-symbol-decor) {
	position: relative;
	z-index: 2;
}

.af-contact > .af-symbol-decor {
	z-index: 1;
}

.af-contact .af-kicker {
	color: rgba(255, 255, 255, .65);
}

.af-contact h2 em {
	color: #e8ead9;
}

.af-contact__aside {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding: clamp(34px, 4.6vw, 62px);
	background: rgba(245, 243, 236, .96);
	color: var(--af-ink);
	box-shadow: 0 30px 90px rgba(15, 18, 10, .25);
	backdrop-filter: blur(18px) saturate(1.08);
}

.af-contact__heading > p:last-child {
	max-width: 520px;
	margin: 34px 0 0;
	color: rgba(255, 255, 255, .74);
	font-family: var(--af-serif);
	font-size: clamp(18px, 1.5vw, 23px);
	line-height: 1.55;
}

.af-contact__form-heading {
	max-width: 570px;
	margin-bottom: 34px;
}

.af-contact__form-kicker {
	margin: 0 0 14px;
	color: var(--af-olive);
	font-size: 10px;
	font-weight: 750;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.af-contact__form-heading h3 {
	margin: 0;
	font-family: var(--af-serif);
	font-size: clamp(37px, 3.6vw, 56px);
	font-weight: 400;
	letter-spacing: -.035em;
	line-height: 1;
	text-transform: uppercase;
}

.af-contact__form-heading > p:not(.af-contact__form-kicker) {
	max-width: 520px;
	margin: 20px 0 0;
	color: var(--af-muted);
	font-size: 14px;
	line-height: 1.6;
}

.af-contact-form {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 23px 18px;
	width: 100%;
	padding: 0;
	color: var(--af-ink);
}

.af-contact-form__trap {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

.af-contact-form__field {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.af-contact-form__field--wide,
.af-contact-form__status,
.af-contact-form__footer {
	grid-column: 1 / -1;
}

.af-contact-form__field label {
	margin-bottom: 9px;
	font-size: 10px;
	font-weight: 750;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.af-contact-form__field label span {
	color: var(--af-muted);
	font-weight: 500;
	letter-spacing: .08em;
}

.af-contact-form__field input,
.af-contact-form__field select,
.af-contact-form__field textarea {
	width: 100%;
	min-height: 48px;
	padding: 9px 4px;
	border: 0;
	border-bottom: 1px solid rgba(52, 58, 37, .55);
	border-radius: 0;
	outline: 0;
	background: transparent;
	color: var(--af-ink);
	font: 17px/1.45 var(--af-sans);
	transition: border-color .2s ease, box-shadow .2s ease;
}

.af-contact-form__field textarea {
	min-height: 72px;
	resize: vertical;
}

.af-contact-form__field input::placeholder,
.af-contact-form__field textarea::placeholder {
	color: rgba(36, 38, 29, .54);
	opacity: 1;
}

.af-contact-form__field input:focus,
.af-contact-form__field select:focus,
.af-contact-form__field textarea:focus {
	border-color: var(--af-olive);
	box-shadow: 0 2px 0 var(--af-olive);
}

.af-contact-form__privacy {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	color: var(--af-muted);
	font-size: 11px;
	line-height: 1.5;
}

.af-contact-form__privacy input {
	width: 15px;
	height: 15px;
	margin: 1px 0 0;
	accent-color: var(--af-olive);
}

.af-contact-form__privacy a {
	border-bottom: 1px solid currentColor;
	color: var(--af-olive-dark);
}

.af-contact-form__field [aria-invalid='true'] {
	border-color: #a3483d;
	box-shadow: 0 0 0 3px rgba(163, 72, 61, .12);
}

.af-contact-form__privacy [aria-invalid='true'] {
	outline: 2px solid #a3483d;
	outline-offset: 2px;
}

.af-contact-form__status {
	margin: 0;
	padding: 12px 14px;
	border-left: 3px solid currentColor;
	background: rgba(52, 58, 37, .07);
	font-size: 13px;
	line-height: 1.5;
}

.af-contact-form__status.is-success {
	color: var(--af-olive-dark);
}

.af-contact-form__status.is-error {
	color: #8e3e35;
}

.af-contact-form__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding-top: 4px;
}

.af-contact-form__footer p {
	max-width: 280px;
	margin-top: 0;
	margin-bottom: 0;
	color: var(--af-muted);
	font-size: 11px;
	line-height: 1.55;
}

.af-contact-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	min-height: 52px;
	padding: 0 23px;
	border: 0;
	border-radius: 999px;
	background: var(--af-olive);
	color: #fff;
	font-size: 10px;
	font-weight: 750;
	letter-spacing: .13em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .2s ease, transform .2s ease, opacity .2s ease;
}

.af-contact-form__submit:hover,
.af-contact-form__submit:focus-visible {
	background: var(--af-olive-dark);
	transform: translateY(-1px);
}

.af-contact-form__submit:disabled {
	opacity: .62;
	cursor: wait;
}

.af-footer {
	background: #171b11;
	color: rgba(255, 255, 255, .78);
}

.af-footer__feature {
	position: relative;
	min-height: clamp(300px, 30vw, 520px);
	overflow: hidden;
	border-bottom: 1px solid rgba(255, 255, 255, .32);
}

.af-footer__feature::after {
	position: absolute;
	inset: 0;
	background: rgba(17, 21, 12, .5);
	content: '';
}

.af-footer__feature > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 58%;
	filter: saturate(.72) brightness(.72);
}

.af-footer__feature-copy {
	position: absolute;
	z-index: 1;
	left: clamp(28px, 5vw, 90px);
	bottom: clamp(36px, 5vw, 82px);
	display: grid;
	width: min(440px, calc(100% - 56px));
	gap: 22px;
}

.af-footer__feature-copy p {
	margin: 0;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
}

.af-footer__feature-copy a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 0 14px;
	border-bottom: 1px solid rgba(255, 255, 255, .62);
	font-family: var(--af-serif);
	font-size: clamp(24px, 2.1vw, 34px);
	letter-spacing: -.02em;
	transition: border-color .3s ease, color .3s ease;
}

.af-footer__feature-copy a i {
	font-size: 16px;
	transition: transform .3s ease;
}

.af-footer__feature-copy a:hover,
.af-footer__feature-copy a:focus-visible {
	border-color: var(--af-olive-light);
	color: var(--af-olive-light);
}

.af-footer__feature-copy a:hover i,
.af-footer__feature-copy a:focus-visible i {
	transform: translateX(8px);
}

.af-footer__main {
	display: grid;
	grid-template-columns: minmax(180px, .8fr) 2fr auto minmax(230px, 1fr);
	align-items: center;
	gap: clamp(28px, 4vw, 76px);
	padding: clamp(34px, 4.6vw, 74px) clamp(28px, 5vw, 90px);
	border-bottom: 1px solid rgba(255, 255, 255, .32);
}

.af-footer__brand {
	display: block;
	width: clamp(150px, 12vw, 210px);
}

.af-footer__brand img {
	display: block;
	width: 100%;
	height: auto;
	filter: brightness(1.7) saturate(.45);
}

.af-footer__nav {
	display: grid;
	grid-template-columns: repeat(5, max-content);
	gap: clamp(22px, 3vw, 62px);
}

.af-footer__nav a,
.af-footer__private,
.af-footer__address {
	font-size: 11px;
	font-style: normal;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.af-footer__private {
	padding: 20px 0 20px clamp(28px, 3vw, 54px);
	border-left: 1px solid rgba(255, 255, 255, .32);
	white-space: nowrap;
}

.af-footer__private i {
	margin-right: 8px;
}

.af-footer__address {
	display: grid;
	gap: 9px;
	padding-left: clamp(28px, 3vw, 54px);
	border-left: 1px solid rgba(255, 255, 255, .32);
}

.af-footer__address a {
	color: var(--af-olive-light);
}

.af-footer__nav a,
.af-footer__private,
.af-footer__bottom a {
	transition: color .3s ease;
}

.af-footer__nav a:hover,
.af-footer__nav a:focus-visible,
.af-footer__private:hover,
.af-footer__private:focus-visible,
.af-footer__bottom a:hover,
.af-footer__bottom a:focus-visible {
	color: var(--af-olive-light);
}

.af-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	padding: 26px clamp(28px, 5vw, 90px) 30px;
	font-size: 11px;
}

.af-footer__bottom p {
	margin: 0;
}

.af-footer__bottom a {
	text-decoration: underline;
	text-underline-offset: 4px;
}

@media (max-width: 1260px) {
	.af-footer__main {
		grid-template-columns: 150px minmax(300px, 1fr) auto 220px;
		gap: clamp(18px, 2vw, 30px);
		padding-inline: clamp(28px, 3.5vw, 50px);
	}

	.af-footer__nav {
		grid-template-columns: repeat(5, max-content);
		gap: clamp(14px, 1.6vw, 28px);
	}

	.af-footer__private,
	.af-footer__address {
		padding: 18px 0 18px 22px;
		border-top: 0;
		border-left: 1px solid rgba(255, 255, 255, .22);
	}
}

/* Multipage editorial structure */
.af-inner-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: min(780px, 88svh);
	padding: 190px clamp(28px, 7vw, 120px) clamp(76px, 9vw, 130px);
	overflow: hidden;
	background: var(--af-olive-deep);
	color: #fff;
}

.af-inner-hero::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(29, 33, 20, .92) 0%, rgba(29, 33, 20, .62) 46%, rgba(29, 33, 20, .12) 78%);
	content: '';
}

.af-inner-hero > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.af-inner-hero--contacts > img {
	object-position: center 60%;
}

.af-inner-hero > div {
	position: relative;
	z-index: 1;
	max-width: 850px;
}

.af-inner-hero .af-kicker {
	color: #d7dbbf;
}

.af-inner-hero h1,
.af-home-paths h2,
.af-page-cta h2 {
	margin: 0;
	font-family: var(--af-serif);
	font-size: clamp(54px, 6.7vw, 106px);
	font-weight: 400;
	letter-spacing: -.052em;
	line-height: .91;
}

.af-inner-hero h1 em,
.af-home-paths h2 em,
.af-page-cta h2 em {
	color: #d7dbbf;
	font-weight: 400;
}

.af-inner-hero > div > p:last-child {
	max-width: 630px;
	margin: 30px 0 0;
	color: rgba(255, 255, 255, .78);
	font-family: var(--af-serif);
	font-size: clamp(18px, 1.7vw, 25px);
	line-height: 1.55;
}

.af-intro__link {
	grid-column: 1 / -1;
	margin-top: 0;
	border-color: var(--af-line);
	color: var(--af-olive-dark);
}

.af-home-paths {
	padding: clamp(92px, 11vw, 172px) clamp(28px, 5vw, 82px) clamp(130px, 14vw, 210px);
	background: var(--af-cream);
}

.af-home-paths h2 {
	max-width: 980px;
	color: var(--af-ink);
	font-size: clamp(48px, 5.5vw, 86px);
}

.af-home-paths h2 em {
	color: var(--af-olive);
}

.af-home-paths__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
	margin-top: clamp(58px, 7vw, 104px);
}

.af-home-paths__grid > a {
	position: relative;
	min-height: 520px;
	overflow: hidden;
	background: var(--af-olive-deep);
	color: #fff;
}

.af-home-paths__grid > a:nth-child(2) {
	margin-top: 58px;
}

.af-home-paths__grid img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: brightness(.68) saturate(.9);
	transition: filter .8s ease, transform 1.2s cubic-bezier(.16, 1, .3, 1);
}

.af-home-paths__grid > a:hover img,
.af-home-paths__grid > a:focus-visible img {
	filter: brightness(.82) saturate(1);
	transform: scale(1.045);
}

.af-home-paths__grid > a > span {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: end;
	gap: 14px;
	padding: 25px;
	background: rgba(30, 34, 21, .84);
	backdrop-filter: blur(12px);
}

.af-home-paths__grid small {
	grid-column: 1 / -1;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.af-home-paths__grid strong {
	max-width: 290px;
	font-family: var(--af-serif);
	font-size: clamp(22px, 2vw, 30px);
	font-weight: 400;
	line-height: 1.15;
}

.af-home-paths__grid i {
	margin-bottom: 5px;
	transition: transform .45s cubic-bezier(.16, 1, .3, 1);
}

.af-home-paths__grid > a:hover i,
.af-home-paths__grid > a:focus-visible i {
	transform: translateX(7px);
}

.af-gallery-wall {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
	padding: 0 clamp(28px, 5vw, 82px) clamp(92px, 10vw, 160px);
	background: var(--af-paper);
}

.af-gallery-wall figure {
	margin: 0;
	aspect-ratio: 1.42;
	overflow: hidden;
}

.af-gallery-wall figure:nth-child(2),
.af-gallery-wall figure:nth-child(3) {
	aspect-ratio: 1;
}

.af-gallery-wall img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1s cubic-bezier(.16, 1, .3, 1);
}

.af-gallery-wall figure:hover img {
	transform: scale(1.035);
}

.af-page-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 52px;
	min-height: 510px;
	padding: clamp(86px, 10vw, 150px) clamp(28px, 7vw, 120px);
	background: var(--af-olive-deep);
	color: #fff;
}

.af-page-cta .af-kicker {
	align-self: flex-start;
	min-width: 180px;
	color: var(--af-sage);
}

.af-page-cta h2 {
	flex: 1;
	max-width: 820px;
	font-size: clamp(44px, 5.2vw, 80px);
}

.af-page-cta .af-button {
	flex: 0 0 auto;
}

.af-context {
	position: relative;
	display: grid;
	grid-template-columns: minmax(310px, .7fr) minmax(560px, 1.28fr) minmax(150px, .3fr);
	align-items: stretch;
	gap: clamp(26px, 3.2vw, 58px);
	min-height: 760px;
	padding: 152px clamp(28px, 5vw, 82px) 24px;
	overflow: hidden;
	background: var(--af-paper);
}

.af-context__intro {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-bottom: 26px;
}

.af-context h1 {
	margin: 0;
	font-family: var(--af-serif);
	font-size: clamp(58px, 5.7vw, 90px);
	font-weight: 400;
	letter-spacing: -.052em;
	line-height: .87;
}

.af-context h1 em {
	color: var(--af-olive);
	font-weight: 400;
}

.af-context__address {
	margin: 35px 0 0;
	font-family: var(--af-serif);
	font-size: clamp(20px, 1.7vw, 27px);
	line-height: 1.3;
}

.af-context__lead {
	max-width: 460px;
	margin: 14px 0 0;
	color: var(--af-muted);
	font-family: var(--af-serif);
	font-size: clamp(17px, 1.35vw, 21px);
	line-height: 1.5;
}

.af-context__actions {
	display: grid;
	gap: 10px;
	margin-top: 36px;
}

.af-context__action {
	display: grid;
	grid-template-columns: 22px 1fr auto;
	align-items: center;
	gap: 14px;
	min-height: 66px;
	padding: 0 22px;
	border: 1px solid rgba(78, 85, 52, .58);
	color: var(--af-olive-dark);
	font-size: 10px;
	font-weight: 750;
	letter-spacing: .15em;
	text-transform: uppercase;
	transition: background-color .3s ease, color .3s ease, transform .45s cubic-bezier(.16, 1, .3, 1);
}

.af-context__action--primary {
	background: var(--af-olive);
	color: #fff;
}

.af-context__action:hover,
.af-context__action:focus-visible {
	background: var(--af-olive-dark);
	color: #fff;
	transform: translateY(-2px);
}

.af-context__action i:last-child {
	transition: transform .35s ease;
}

.af-context__action:hover i:last-child,
.af-context__action:focus-visible i:last-child {
	transform: translateX(6px);
}

.af-context__map-panel {
	display: grid;
	grid-template-rows: auto 1fr;
	min-width: 0;
}

.af-context__filters {
	display: flex;
	gap: 10px;
	padding-bottom: 12px;
	overflow-x: auto;
	scrollbar-width: none;
}

.af-context__filters::-webkit-scrollbar {
	display: none;
}

.af-context__filters button {
	display: inline-flex;
	flex: 1 0 auto;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 18px;
	border: 1px solid var(--af-line);
	background: transparent;
	color: var(--af-ink);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}

.af-context__filters button.is-active,
.af-context__filters button:hover,
.af-context__filters button:focus-visible {
	border-color: var(--af-olive);
	background: var(--af-olive);
	color: #fff;
}

.af-context__map {
	position: relative;
	min-height: 510px;
	overflow: hidden;
	border: 1px solid rgba(78, 85, 52, .15);
	background: #e9eadf;
}

.af-context__map-canvas {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 510px;
	border: 0;
	filter: saturate(.72) sepia(.08) contrast(.93) brightness(1.03);
}

.af-context__map .leaflet-control-zoom a {
	color: var(--af-ink);
}

.af-context__map .leaflet-control-attribution {
	font-size: .62rem;
}

.af-context__map-card {
	position: absolute;
	z-index: 2;
	left: 50%;
	top: 49%;
	display: flex;
	align-items: center;
	gap: 12px;
	width: max-content;
	max-width: calc(100% - 36px);
	padding: 13px 16px;
	background: rgba(251, 250, 246, .94);
	box-shadow: 0 15px 40px rgba(37, 41, 26, .18);
	pointer-events: none;
	transform: translate(-50%, -50%);
	backdrop-filter: blur(12px);
}

.af-context__map-card img {
	width: 34px;
	height: 34px;
}

.af-context__map-card div {
	display: grid;
	gap: 3px;
}

.af-context__map-card strong {
	font-family: var(--af-serif);
	font-size: 17px;
	font-weight: 400;
}

.af-context__map-card span {
	color: var(--af-muted);
	font-size: 9px;
	font-weight: 650;
	letter-spacing: .08em;
	line-height: 1.35;
	text-transform: uppercase;
}

.af-context__aside {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 42px 0 38px;
}

.af-context__aside p {
	margin: 0;
	font-family: var(--af-serif);
	font-size: clamp(16px, 1.25vw, 20px);
	line-height: 1.35;
}

.af-context__aside p em {
	color: var(--af-olive);
}

.af-context__aside span {
	position: relative;
	padding-top: 18px;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .24em;
	line-height: 1.7;
	text-transform: uppercase;
}

.af-context__aside span::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 30px;
	height: 1px;
	background: var(--af-olive);
	content: '';
}

.af-context-gallery {
	display: grid;
	grid-template-columns: minmax(0, 2.2fr) minmax(270px, .9fr);
	gap: 14px;
	padding: 0 clamp(28px, 5vw, 82px) clamp(92px, 10vw, 160px);
	background: var(--af-paper);
}

.af-context-gallery figure {
	position: relative;
	margin: 0;
	overflow: hidden;
	background: var(--af-olive-deep);
}

.af-context-gallery img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: filter .8s ease, transform 1.2s cubic-bezier(.16, 1, .3, 1);
}

.af-context-gallery figure:hover img {
	filter: saturate(1.03);
	transform: scale(1.025);
}

.af-context-gallery__main {
	min-height: 650px;
}

.af-context-gallery__main img {
	object-position: center 55%;
}

.af-context-gallery__main::after,
.af-context-gallery__details figure::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 42%, rgba(25, 28, 18, .66));
	content: '';
	pointer-events: none;
}

.af-context-gallery__main figcaption {
	position: absolute;
	z-index: 1;
	left: clamp(24px, 4vw, 64px);
	bottom: clamp(26px, 4vw, 58px);
	width: min(420px, calc(100% - 48px));
	color: #fff;
}

.af-context-gallery__main h2 {
	margin: 0;
	font-family: var(--af-serif);
	font-size: clamp(42px, 4.5vw, 72px);
	font-weight: 400;
	letter-spacing: -.045em;
	line-height: .92;
}

.af-context-gallery__main h2 em {
	color: #d7dbbf;
	font-weight: 400;
}

.af-context-gallery__main p {
	max-width: 380px;
	margin: 20px 0 0;
	color: rgba(255, 255, 255, .78);
	font-family: var(--af-serif);
	font-size: 17px;
	line-height: 1.5;
}

.af-context-gallery__details {
	display: grid;
	grid-template-rows: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.af-context-gallery__details figcaption {
	position: absolute;
	z-index: 1;
	right: 18px;
	bottom: 17px;
	left: 18px;
	color: #fff;
	font-family: var(--af-serif);
	font-size: clamp(17px, 1.4vw, 22px);
	font-style: italic;
	line-height: 1.1;
}

@media (max-width: 1020px) {
	.af-context {
		grid-template-columns: minmax(260px, .58fr) minmax(0, 1fr);
	}

	.af-context__aside {
		display: none;
	}

	.af-home-paths__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.af-home-paths__grid > a:last-child {
		grid-column: 1 / -1;
		min-height: 440px;
	}

	.af-page-cta {
		align-items: flex-start;
		flex-direction: column;
	}

	.af-contact {
		grid-template-columns: 1fr;
		gap: 42px;
	}
}

@media (max-width: 760px) {
	.af-context {
		grid-template-columns: 1fr;
		gap: 34px;
		padding: 126px 22px 18px;
	}

	.af-context h1 {
		font-size: clamp(56px, 18vw, 74px);
	}

	.af-context__intro {
		padding-bottom: 0;
	}

	.af-context__actions {
		margin-top: 30px;
	}

	.af-context__filters button {
		flex: 0 0 auto;
	}

	.af-context__map,
	.af-context__map-canvas {
		min-height: 430px;
	}

	.af-context-gallery {
		grid-template-columns: 1fr;
		padding: 0 18px 90px;
	}

	.af-context-gallery__main {
		min-height: 480px;
	}

	.af-context-gallery__details {
		grid-template-rows: none;
		grid-template-columns: 1fr;
	}

	.af-context-gallery__details figure {
		min-height: 280px;
	}

	.af-symbol-decor--daybreak,
	.af-symbol-decor--bloom,
	.af-symbol-decor--tide,
	.af-symbol-decor--halo {
		width: 255px;
		--af-symbol-opacity: .035;
	}

	.af-symbol-decor--counterturn {
		width: 310px;
		--af-symbol-opacity: .03;
	}

	.af-symbol-decor--daybreak,
	.af-symbol-decor--bloom {
		right: -96px;
	}

	.af-symbol-decor--tide,
	.af-symbol-decor--halo {
		left: -88px;
	}

	.af-inner-hero {
		min-height: 720px;
		padding: 150px 22px 72px;
	}

	.af-inner-hero::after {
		background: linear-gradient(180deg, rgba(29, 33, 20, .26), rgba(29, 33, 20, .9) 62%);
	}

	.af-inner-hero h1 {
		font-size: clamp(50px, 14.5vw, 68px);
	}

	.af-home-paths {
		padding-inline: 22px;
	}

	.af-home-paths__grid,
	.af-gallery-wall {
		grid-template-columns: 1fr;
	}

	.af-home-paths__grid > a,
	.af-home-paths__grid > a:last-child {
		grid-column: auto;
		min-height: 450px;
		transform: none;
	}

	.af-home-paths__grid > a:nth-child(2) {
		margin-top: 0;
	}

	.af-gallery-wall {
		gap: 14px;
		padding-inline: 18px;
	}

	.af-gallery-wall figure,
	.af-gallery-wall figure:nth-child(2),
	.af-gallery-wall figure:nth-child(3) {
		aspect-ratio: 1.05;
	}

	.af-page-cta {
		min-height: 520px;
		padding-inline: 22px;
	}

	.af-page-cta h2 {
		font-size: clamp(44px, 13vw, 62px);
	}
}

.af-dialog {
	width: min(1420px, calc(100vw - 56px));
	max-width: none;
	max-height: calc(100vh - 56px);
	padding: 0;
	border: 0;
	background: var(--af-paper);
	color: var(--af-ink);
	box-shadow: 0 30px 90px rgba(18, 20, 13, .42);
}

.af-dialog::backdrop {
	background: rgba(27, 30, 19, .78);
	backdrop-filter: blur(4px);
}

.af-dialog[open] {
	display: grid;
	grid-template-columns: minmax(0, 2.15fr) minmax(330px, .85fr);
	height: min(840px, calc(100vh - 56px));
	overflow: hidden;
}

.af-dialog__close {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 2;
	display: grid;
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 50%;
	background: rgba(78, 85, 52, .94);
	box-shadow: 0 8px 24px rgba(31, 33, 24, .22);
	color: #fff;
	place-items: center;
	cursor: pointer;
}

.af-dialog__gallery {
	display: grid;
	grid-template-rows: minmax(0, 1fr) 136px;
	min-height: 0;
	overflow: hidden;
	background: #1f2118;
}

.af-dialog__stage {
	position: relative;
	min-height: 0;
	overflow: hidden;
	background: #d9d6ca;
	touch-action: pan-y;
}

.af-dialog__slide {
	position: absolute;
	inset: 0;
	margin: 0;
	overflow: hidden;
}

.af-dialog__slide[hidden] {
	display: none;
}

.af-dialog__slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.af-dialog__slide--plan {
	background: #fff;
	padding: clamp(24px, 4vw, 54px);
}

.af-dialog__slide--plan img {
	object-fit: contain;
}

.af-dialog__step {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: grid;
	width: 48px;
	height: 48px;
	border: 1px solid rgba(255, 255, 255, .55);
	border-radius: 50%;
	background: rgba(31, 33, 24, .45);
	color: #fff;
	place-items: center;
	cursor: pointer;
	transform: translateY(-50%);
	backdrop-filter: blur(8px);
	transition: background-color .25s ease, border-color .25s ease, transform .25s ease;
}

.af-dialog__step:hover,
.af-dialog__step:focus-visible {
	border-color: #fff;
	background: rgba(31, 33, 24, .82);
}

.af-dialog__step--previous {
	left: 22px;
}

.af-dialog__step--next {
	right: 22px;
}

.af-dialog__position {
	position: absolute;
	right: 22px;
	bottom: 18px;
	left: 22px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0;
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
	text-shadow: 0 1px 14px rgba(0, 0, 0, .6);
	text-transform: uppercase;
}

.af-dialog__position span:last-child {
	font-variant-numeric: tabular-nums;
}

.af-dialog__gallery.is-plan .af-dialog__position {
	color: var(--af-ink);
	text-shadow: none;
}

.af-dialog__gallery.is-plan .af-dialog__step {
	border-color: rgba(31, 33, 24, .28);
	background: rgba(78, 85, 52, .72);
}

.af-dialog__thumbnails {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1px;
	min-width: 0;
	background: rgba(255, 255, 255, .18);
}

.af-dialog__thumbnail {
	position: relative;
	display: grid;
	grid-template-rows: 82px auto;
	gap: 7px;
	min-width: 0;
	padding: 8px 8px 10px;
	border: 0;
	background: #292b21;
	color: rgba(255, 255, 255, .64);
	font-size: 8px;
	font-weight: 700;
	letter-spacing: .1em;
	text-align: left;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .25s ease, color .25s ease;
}

.af-dialog__thumbnail::after {
	position: absolute;
	right: 8px;
	bottom: 0;
	left: 8px;
	height: 2px;
	background: #c7c9a4;
	content: '';
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .35s cubic-bezier(.16, 1, .3, 1);
}

.af-dialog__thumbnail:hover,
.af-dialog__thumbnail:focus-visible,
.af-dialog__thumbnail.is-active {
	background: #36392a;
	color: #fff;
}

.af-dialog__thumbnail.is-active::after {
	transform: scaleX(1);
}

.af-dialog__thumbnail-image {
	min-height: 0;
	overflow: hidden;
	background: #d9d6ca;
}

.af-dialog__thumbnail-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s cubic-bezier(.16, 1, .3, 1);
}

.af-dialog__thumbnail:hover img,
.af-dialog__thumbnail:focus-visible img,
.af-dialog__thumbnail.is-active img {
	transform: scale(1.035);
}

.af-dialog__thumbnail-image--plan {
	background: #fff;
	padding: 5px;
}

.af-dialog__thumbnail-image--plan img {
	object-fit: contain;
}

.af-dialog__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 0;
	overflow-y: auto;
	padding: clamp(42px, 5vw, 76px);
}

.af-dialog h2 {
	margin: 0;
	font-size: clamp(44px, 4vw, 68px);
	letter-spacing: -.04em;
	line-height: 1;
}

.af-dialog[open] {
	animation: af-dialog-in .58s cubic-bezier(.16, 1, .3, 1) both;
}

.af-dialog[open]::backdrop {
	animation: af-dialog-backdrop-in .45s ease-out both;
}

.af-dialog[open] .af-dialog__slide.is-active img {
	animation: af-dialog-image-in .9s .08s cubic-bezier(.16, 1, .3, 1) both;
}

.af-dialog[open] .af-dialog__copy > * {
	animation: af-dialog-copy-in .65s cubic-bezier(.16, 1, .3, 1) both;
}

.af-dialog[open] .af-dialog__copy > :nth-child(1) { animation-delay: .13s; }
.af-dialog[open] .af-dialog__copy > :nth-child(2) { animation-delay: .18s; }
.af-dialog[open] .af-dialog__copy > :nth-child(3) { animation-delay: .23s; }
.af-dialog[open] .af-dialog__copy > :nth-child(4) { animation-delay: .28s; }

.af-dialog[open].is-closing {
	animation: af-dialog-out .32s cubic-bezier(.55, .06, .68, .19) both;
}

.af-dialog[open].is-closing::backdrop {
	animation: af-dialog-backdrop-out .32s ease-in both;
}

@keyframes af-dialog-in {
	from { opacity: 0; transform: translateY(34px) scale(.975); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes af-dialog-out {
	from { opacity: 1; transform: translateY(0) scale(1); }
	to { opacity: 0; transform: translateY(16px) scale(.988); }
}

@keyframes af-dialog-backdrop-in {
	from { background: rgba(27, 30, 19, 0); backdrop-filter: blur(0); }
	to { background: rgba(27, 30, 19, .78); backdrop-filter: blur(4px); }
}

@keyframes af-dialog-backdrop-out {
	from { background: rgba(27, 30, 19, .78); backdrop-filter: blur(4px); }
	to { background: rgba(27, 30, 19, 0); backdrop-filter: blur(0); }
}

@keyframes af-dialog-image-in {
	from { opacity: .4; transform: scale(1.045); }
	to { opacity: 1; transform: scale(1); }
}

@keyframes af-dialog-copy-in {
	from { opacity: 0; transform: translateY(18px); }
	to { opacity: 1; transform: translateY(0); }
}

.af-dialog__copy > p:not(.af-kicker):not(.af-dialog__note) {
	margin: 26px 0 0;
	color: var(--af-muted);
	font-family: var(--af-serif);
	font-size: 19px;
	line-height: 1.55;
}

.af-dialog__copy ul {
	display: grid;
	gap: 13px;
	margin: 28px 0 0;
	padding: 23px 0;
	border-top: 1px solid var(--af-line);
	border-bottom: 1px solid var(--af-line);
	list-style: none;
}

.af-dialog__copy li {
	display: flex;
	align-items: center;
	gap: 13px;
	font-size: 13px;
}

.af-dialog__copy li i {
	width: 17px;
	color: var(--af-olive);
	text-align: center;
}

.af-dialog__note {
	margin: 22px 0 0;
	color: #8b8b82;
	font-size: 11px;
	line-height: 1.55;
}

/* Login */
.af-login-body {
	min-height: 100vh;
	background: var(--af-paper);
}

.af-login-shell {
	display: grid;
	grid-template-columns: minmax(390px, 1.05fr) minmax(430px, .95fr);
	min-height: 100vh;
}

.af-login-visual {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 100vh;
	padding: clamp(34px, 5vw, 74px);
	overflow: hidden;
	background: var(--af-olive-deep);
	color: #fff;
}

.af-login-visual::before {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(34, 38, 24, .3), rgba(34, 38, 24, .88)), url('../images/hero-night.webp') center / cover;
	content: '';
}

.af-login-visual > * {
	position: relative;
	z-index: 1;
}

.af-login-brand {
	align-self: flex-start;
	width: 210px;
	padding: 10px 14px;
	background: rgba(255, 255, 255, .94);
}

.af-login-visual__copy {
	max-width: 570px;
}

.af-login-visual__copy p:first-child {
	margin: 0 0 20px;
	color: rgba(255, 255, 255, .62);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .2em;
	text-transform: uppercase;
}

.af-login-visual__copy h1 {
	margin: 0;
	font-family: var(--af-serif);
	font-size: clamp(50px, 6vw, 88px);
	font-weight: 400;
	letter-spacing: -.045em;
	line-height: .96;
}

.af-login-visual__copy p:last-child {
	max-width: 480px;
	margin: 28px 0 0;
	color: rgba(255, 255, 255, .72);
	font-size: 15px;
	line-height: 1.75;
}

.af-login-back {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 12px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.af-login-panel {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100vh;
	padding: clamp(38px, 7vw, 110px);
}

.af-login-panel__inner {
	width: min(100%, 470px);
}

.af-login-panel__head {
	margin-bottom: 40px;
}

.af-login-panel__head .af-kicker {
	margin-bottom: 15px;
}

.af-login-panel__head h2 {
	margin: 0;
	font-family: var(--af-serif);
	font-size: clamp(42px, 4vw, 60px);
	font-weight: 400;
	letter-spacing: -.035em;
}

.af-login-panel__head p:last-child {
	margin: 14px 0 0;
	color: var(--af-muted);
	line-height: 1.65;
}

.af-login-form fieldset {
	margin: 0;
	padding: 0;
	border: 0;
}

.af-login-field {
	margin-bottom: 22px;
}

.af-login-field label {
	display: block;
	margin-bottom: 9px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.af-login-field .form-control {
	min-height: 56px;
	padding: 0 17px;
	border: 1px solid var(--af-line);
	border-radius: 0;
	background: #fff;
	font-size: 15px;
	box-shadow: none;
}

.af-login-field .form-control:focus {
	border-color: var(--af-olive);
	box-shadow: 0 0 0 3px rgba(116, 124, 77, .12);
}

.af-login-submit {
	width: 100%;
	min-height: 58px;
	margin-top: 8px;
	border: 0;
	background: var(--af-olive);
	color: #fff;
	font-size: 11px;
	font-weight: 750;
	letter-spacing: .15em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .25s ease;
}

.af-login-submit:hover,
.af-login-submit:focus-visible {
	background: var(--af-olive-dark);
}

.af-login-note {
	display: flex;
	gap: 12px;
	margin: 28px 0 0;
	padding-top: 24px;
	border-top: 1px solid var(--af-line);
	color: var(--af-muted);
	font-size: 12px;
	line-height: 1.55;
}

.af-login-note i {
	margin-top: 3px;
	color: var(--af-olive);
}

/* Area riservata */
.af-private-body {
	min-height: 100vh;
	background: var(--af-cream);
}

.af-private-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 88px;
	padding: 0 clamp(24px, 5vw, 72px);
	background: #fff;
	border-bottom: 1px solid var(--af-line);
}

.af-private-header img {
	display: block;
	width: 168px;
	height: 70px;
	object-fit: contain;
}

.af-private-header > a:last-child {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--af-olive-dark);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-decoration: none;
	text-transform: uppercase;
}

.af-private-main {
	padding: clamp(66px, 8vw, 120px) clamp(24px, 7vw, 120px);
}

.af-private-hero {
	max-width: 800px;
}

.af-private-hero h1 {
	margin: 0;
	font-size: clamp(46px, 6vw, 82px);
	letter-spacing: -.045em;
	line-height: 1;
}

.af-private-hero > p:not(.af-kicker) {
	max-width: 650px;
	margin: 25px 0 0;
	color: var(--af-muted);
	font-size: 17px;
	line-height: 1.7;
}

.af-private-badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: 28px;
	padding: 11px 15px;
	background: var(--af-olive);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.af-private-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin-top: 64px;
}

.af-private-grid article {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 20px;
	min-height: 210px;
	padding: 30px;
	background: #fff;
	border: 1px solid rgba(52, 58, 37, .09);
}

.af-private-grid article > i {
	color: var(--af-olive);
	font-size: 26px;
}

.af-private-grid h2 {
	margin: 0;
	font-family: var(--af-serif);
	font-size: 25px;
	font-weight: 400;
}

.af-private-grid p {
	margin: 12px 0 0;
	color: var(--af-muted);
	font-size: 13px;
	line-height: 1.55;
}

.af-private-grid span {
	position: absolute;
	right: 30px;
	bottom: 25px;
	color: #94968b;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

@media (max-width: 1100px) {
	.af-header {
		height: 88px;
		padding-inline: 28px;
	}

	.af-header.is-fixed {
		top: 10px;
		left: 12px;
		width: calc(100% - 24px);
	}

	.af-brand {
		width: 172px;
	}

	.af-menu-toggle {
		display: block;
		position: relative;
		z-index: 32;
	}

	.af-menu-toggle[aria-expanded='true'] > span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.af-menu-toggle[aria-expanded='true'] > span:nth-child(2) {
		opacity: 0;
	}

	.af-menu-toggle[aria-expanded='true'] > span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	.af-nav {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		width: min(420px, 88vw);
		padding: 88px 48px;
		background: var(--af-paper);
		box-shadow: -20px 0 70px rgba(32, 35, 25, .18);
		font-family: var(--af-serif);
		font-size: 25px;
		font-weight: 400;
		letter-spacing: 0;
		text-transform: none;
		transform: translateX(105%);
		transition: transform .3s ease;
	}

	.af-nav.is-open {
		transform: translateX(0);
	}

	.af-nav__private {
		margin-top: 18px;
		font-family: var(--af-sans);
		font-size: 10px;
		letter-spacing: .14em;
		text-transform: uppercase;
	}

	.af-hero__content {
		width: 75vw;
	}

	.af-hero__facts > div {
		min-width: 115px;
		padding: 17px 20px;
	}

	.af-hero__facts strong {
		font-size: 31px;
	}

	.af-feature-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.af-feature-grid article:nth-child(2) {
		border-right: 0;
	}

	.af-feature-grid article:nth-child(-n + 2) {
		border-bottom: 1px solid var(--af-line);
	}

	.af-story {
		grid-template-columns: 1fr 1fr;
	}

	.af-story__copy {
		padding: 64px 46px;
	}

	.af-type-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.af-gallery {
		grid-template-columns: 1fr 1.2fr;
	}

	.af-gallery__copy {
		grid-column: 1 / -1;
		max-width: 720px;
		padding: 0 0 38px;
	}

	.af-gallery__small {
		height: 78%;
	}

	.af-footer__main {
		grid-template-columns: minmax(170px, .7fr) 1.5fr;
	}

	.af-footer__nav {
		grid-template-columns: repeat(2, max-content);
		row-gap: 18px;
	}

	.af-footer__private,
	.af-footer__address {
		padding: 18px 0 0;
		border-top: 1px solid rgba(255, 255, 255, .22);
		border-left: 0;
	}

	.af-private-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 760px) {
	.af-header,
	.af-header.is-fixed {
		height: 78px;
		padding-inline: 18px;
	}

	.af-brand {
		width: 145px;
	}

	.af-brand img,
	.af-brand__logo {
		height: 62px;
	}

	.af-hero {
		min-height: 780px;
	}

	.af-hero__image {
		object-position: 62% center;
	}

	.af-hero__veil {
		background: linear-gradient(180deg, rgba(47, 53, 32, .28) 5%, rgba(43, 49, 29, .83) 49%, rgba(38, 43, 27, .96) 100%);
	}

	.af-hero__content {
		justify-content: flex-end;
		width: 100%;
		min-height: 780px;
		padding: 120px 22px 214px;
	}

	.af-eyebrow {
		margin-bottom: 16px;
	}

	.af-hero h1 {
		font-size: clamp(50px, 15vw, 72px);
		line-height: .91;
	}

	.af-hero__lead {
		margin-top: 20px;
		font-size: 18px;
	}

	.af-actions {
		gap: 9px;
		margin-top: 26px;
	}

	.af-button {
		width: 100%;
	}

	.af-daynight {
		top: 102px;
		right: 18px;
	}

	.af-hero__facts {
		right: 18px;
		bottom: 25px;
		left: 18px;
	}

	.af-manifesto {
		min-height: 640px;
	}

	.af-manifesto__line {
		font-size: clamp(48px, 14vw, 72px);
		line-height: .98;
	}

	.af-manifesto__line + .af-manifesto__line {
		margin-top: 8px;
	}

	.af-manifesto__orbit {
		right: -44vw;
		width: 98vw;
		opacity: .7;
	}

	.af-hero__facts > div {
		min-width: 0;
		width: 33.333%;
		padding: 14px 11px;
	}

	.af-hero__facts strong {
		font-size: 28px;
	}

	.af-hero__facts span {
		font-size: 8px;
		letter-spacing: .08em;
	}

	.af-scroll {
		display: none;
	}

	.af-intro {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.af-feature-grid {
		grid-template-columns: 1fr;
		margin-top: 23px;
	}

	.af-feature-grid article,
	.af-feature-grid article:not(:first-child) {
		padding: 27px 0;
		border-right: 0;
		border-bottom: 1px solid var(--af-line);
	}

	.af-feature-grid article:last-child {
		border-bottom: 0;
	}

	.af-story {
		grid-template-columns: 1fr;
	}

	.af-story__image-wrap {
		min-height: 430px;
	}

	.af-story__copy {
		padding: 65px 26px 76px;
	}

	.af-section__heading--row {
		align-items: flex-start;
		flex-direction: column;
		gap: 28px;
	}

	.af-type-grid {
		grid-template-columns: 1fr;
	}

	.af-gallery {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.af-gallery__copy {
		padding-bottom: 22px;
	}

	.af-gallery__large,
	.af-gallery__small {
		width: 100%;
		height: auto;
		aspect-ratio: 1.08;
	}

	.af-gallery__small {
		width: 76%;
		margin: -58px 0 0 auto !important;
		border: 8px solid var(--af-paper);
	}

	.af-contact {
		grid-template-columns: 1fr;
		gap: 42px;
		min-height: 720px;
	}

	.af-contact-form {
		grid-template-columns: 1fr;
	}

	.af-contact-form__field--wide,
	.af-contact-form__privacy,
	.af-contact-form__status,
	.af-contact-form__footer {
		grid-column: auto;
	}

	.af-contact-form__footer {
		align-items: stretch;
		flex-direction: column;
	}

	.af-contact-form__footer p {
		max-width: none;
	}

	.af-contact-form__submit {
		width: 100%;
	}

	.af-contact__aside {
		padding: 34px 22px 30px;
	}

	.af-contact::after {
		background: linear-gradient(180deg, rgba(33, 38, 22, .9), rgba(30, 34, 21, .86));
	}

	.af-footer__feature {
		min-height: 390px;
	}

	.af-footer__feature > img {
		object-position: 58% center;
	}

	.af-footer__feature-copy {
		bottom: 36px;
		gap: 16px;
	}

	.af-footer__feature-copy a {
		font-size: 25px;
	}

	.af-footer__main {
		grid-template-columns: 1fr;
		gap: 30px;
		padding-block: 42px;
	}

	.af-footer__brand {
		width: 165px;
	}

	.af-footer__nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px 30px;
	}

	.af-footer__private,
	.af-footer__address {
		padding-top: 25px;
	}

	.af-footer__bottom {
		align-items: flex-start;
		flex-direction: column;
		gap: 14px;
	}

	.af-dialog {
		width: calc(100vw - 20px);
		max-height: calc(100vh - 20px);
	}

	.af-dialog[open] {
		display: block;
		height: auto;
		overflow-y: auto;
	}

	.af-dialog__gallery {
		grid-template-rows: auto 112px;
		min-height: 0;
	}

	.af-dialog__stage {
		aspect-ratio: 16 / 9;
	}

	.af-dialog__step {
		width: 42px;
		height: 42px;
	}

	.af-dialog__step--previous {
		left: 12px;
	}

	.af-dialog__step--next {
		right: 12px;
	}

	.af-dialog__position {
		right: 14px;
		bottom: 12px;
		left: 14px;
	}

	.af-dialog__thumbnails {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 126px;
		overflow-x: auto;
		scroll-snap-type: x proximity;
		scrollbar-width: thin;
	}

	.af-dialog__thumbnail {
		grid-template-rows: 67px auto;
		scroll-snap-align: start;
	}

	.af-dialog__copy {
		padding: 38px 25px 44px;
	}

	.af-login-shell {
		grid-template-columns: 1fr;
	}

	.af-login-visual {
		min-height: 360px;
		padding: 26px 24px 36px;
	}

	.af-login-brand {
		width: 160px;
	}

	.af-login-visual__copy h1 {
		font-size: 46px;
	}

	.af-login-visual__copy p:last-child {
		display: none;
	}

	.af-login-panel {
		min-height: 0;
		padding: 54px 24px 68px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.af-site *,
	.af-site *::before,
	.af-site *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}

	.af-js [data-af-reveal],
	.af-js [data-af-reveal-group] > *,
	.af-js [data-af-symbol-decor],
	.af-js .af-type-card[data-af-reveal],
	.af-js .af-type-card[data-af-reveal] > button {
		opacity: 1 !important;
		clip-path: none !important;
		transform: none !important;
	}

	.af-symbol-decor {
		animation: none !important;
		opacity: var(--af-symbol-opacity, .04) !important;
		transform: none !important;
	}

	.af-type-card,
	.af-type-card__image img,
	.af-type-card__image span,
	.af-type-card__body strong,
	.af-type-card__body span,
	.af-type-card__body > i,
	.af-dialog,
	.af-dialog::backdrop,
	.af-dialog__slide img,
	.af-dialog__thumbnail,
	.af-dialog__thumbnail::after,
	.af-dialog__thumbnail img,
	.af-dialog__copy > * {
		animation: none !important;
		transform: none !important;
	}

	.af-js .af-brand__symbol,
	.af-js .af-brand__name,
	.af-js .af-brand__descriptor {
		opacity: 1 !important;
		clip-path: none !important;
		transform: none !important;
	}

	.af-js .af-brand__piece {
		opacity: 1 !important;
	}
}
