/* ============================================================
   CSS RESET (the-new-css-reset, inline)
   ============================================================ */
*,
*::before,
*::after {
	box-sizing: border-box
}
* {
	margin: 0;
	padding: 0
}
html {
	-webkit-text-size-adjust: 100%;
	-moz-tab-size: 4;
	tab-size: 4
}
body {
	line-height: inherit
}
hr {
	height: 0;
	color: inherit;
	border-top-width: 1px
}
abbr:where([title]) {
	text-decoration: underline dotted
}
h1, h2, h3, h4, h5, h6 {
	font-size: inherit;
	font-weight: inherit
}
a {
	color: inherit;
	text-decoration: inherit
}
b, strong {
	font-weight: bolder
}
code, kbd, samp, pre {
	font-family: ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', Menlo, monospace;
	font-size: 1em
}
small {
	font-size: 80%
}
sub, sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline
}
sub {
	bottom: -.25em
}
sup {
	top: -.5em
}
table {
	text-indent: 0;
	border-color: inherit;
	border-collapse: collapse
}
button, input, optgroup, select, textarea {
	font-family: inherit;
	font-size: 100%;
	font-weight: inherit;
	line-height: inherit;
	color: inherit;
	margin: 0;
	padding: 0
}
button, select {
	text-transform: none
}
button, [type='button'], [type='reset'], [type='submit'] {
	-webkit-appearance: button;
	background-color: transparent;
	background-image: none
}
:-moz-focusring {
	outline: auto
}
:-moz-ui-invalid {
	box-shadow: none
}
progress {
	vertical-align: baseline
}
::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
	height: auto
}
[type='search'] {
	-webkit-appearance: textfield;
	outline-offset: -2px
}
::-webkit-search-decoration {
	-webkit-appearance: none
}
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit
}
summary {
	display: list-item
}
blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre {
	margin: 0
}
fieldset {
	margin: 0;
	padding: 0
}
legend {
	padding: 0
}
ol, ul, menu {
	list-style: none;
	margin: 0;
	padding: 0
}
textarea {
	resize: vertical
}
input::placeholder, textarea::placeholder {
	opacity: 1;
	color: #9ca3af
}
button, [role="button"] {
	cursor: pointer
}
:disabled {
	cursor: default
}
img, svg, video, canvas, audio, iframe, embed, object {
	display: block;
	vertical-align: middle
}
img, video {
	max-width: 100%;
	height: auto
}
[hidden] {
	display: none
}

/* ============================================================
   ROOT VARIABLES
   ============================================================ */
:root {
	--base--bg: #fff;
	--base--color: #1e1e1e;
	--family--1: "Helvetica Now Display", -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
	--family--2: "DM Mono", Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace;
	--color--1: #3e5b63;
	--color--2: #c6e758;
	--color--3: #1e1e1e;
	--color--4: #c7cdc8;
	--color--5: #4a5760;
	--color--6: #f5f5f5;
	--color--7: #5fc4e3;
	--max-width--1: 1540px;
	--gutter--1: clamp(20px, calc(12.14px + 1.78vw), 40px);
	--space--1: 4px;
	--space--2: 12px;
	--space--3: 20px;
	--space--4: 40px;
	--space--5: 60px;
	--space--6: 80px;
	--space--7: 100px;
	--focus-outline-width: 3px;
	--focus-outline-offset: 3px;
	--focus-outline-color: var(--color--1)
}

@font-face {
	font-family: "Helvetica Now Display";
	src: url(/fonts/HelveticaNowProDisplay-Regular.woff2) format("woff2");
	font-weight: 400;
	font-style: normal
}

/* ============================================================
   BASE
   ============================================================ */
html, body {
	max-width: 100%;
	min-height: 100vh;
	overflow-x: clip;
	width: 100%
}
html {
	scroll-behavior: smooth;
	min-height: 100%;
	-webkit-tap-highlight-color: transparent;
	overflow-y: scroll
}
@media (prefers-reduced-motion: reduce) {
	html *, html *:before, html *:after {
		transition: none !important;
		animation: none !important
	}
}
body {
	background: var(--base--bg);
	color: var(--base--color);
	font-family: var(--family--1);
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1em;
	position: relative;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-overflow-scrolling: touch;
	touch-action: manipulation
}
section {
	font-size: 0;
	overflow: clip;
	position: relative;
	width: 100%
}

/* ============================================================
   UTILITIES
   ============================================================ */
.u-section-hr {
	background: none;
	border: 0;
	display: block;
	height: 1px;
	margin: 0 auto;
	max-width: calc(var(--max-width--1) - calc(2 * var(--gutter--1)));
	width: 100%
}
.u-section-hr:before {
	background-color: var(--color--3);
	content: "";
	display: block;
	height: .5px;
	width: 100%
}
.u-grid {
	--col-sm: 2;
	--col-md: 6;
	--col-lg: 6;
	--col-xl: 12;
	--gap: var(--grid-gap-sm, 12px);
	--gap-col: var(--gap);
	--gap-row: var(--gap);
	--gap-sm: var(--gap-col);
	--gap-md: var(--gap-col);
	--gap-lg: var(--gap-col);
	--gap-xl: var(--gap-col);
	--row-gap-sm: var(--gap-row-sm, var(--gap-row, var(--gap-sm)));
	--row-gap-md: var(--gap-row-md, var(--gap-row, var(--gap-md)));
	--row-gap-lg: var(--gap-row-lg, var(--gap-row, var(--gap-lg)));
	--row-gap-xl: var(--gap-row-xl, var(--gap-row, var(--gap-xl)));
	--grid-pad: var(--container-padding, 20px);
	--max-width: 100%;
	display: grid;
	grid-template-columns: repeat(var(--col-sm), 1fr);
	column-gap: var(--gap-sm);
	row-gap: var(--row-gap-sm);
	margin: 0 auto;
	max-width: var(--max-width);
	width: 100%
}
@media (min-width: 769px) {
	.u-grid {
		--gap-md: var(--gap-col-md, var(--gap-col, var(--grid-gap-md, 24px)));
		column-gap: var(--gap-md);
		grid-template-columns: repeat(var(--col-md), 1fr);
		row-gap: var(--row-gap-md)
	}
}
@media (min-width: 1025px) {
	.u-grid {
		--gap-lg: var(--gap-col-lg, var(--gap-col, var(--grid-gap-lg, 48px)));
		column-gap: var(--gap-lg);
		grid-template-columns: repeat(var(--col-lg), 1fr);
		row-gap: var(--row-gap-lg)
	}
}
@media (min-width: 1281px) {
	.u-grid {
		--gap-xl: var(--gap-col-xl, var(--gap-col, var(--grid-gap-lg, 48px)));
		column-gap: var(--gap-xl);
		grid-template-columns: repeat(var(--col-xl), 1fr);
		row-gap: var(--row-gap-xl)
	}
}
.u-grid>* {
	--item-sm: var(--span-sm, 1/-1);
	--item-md: var(--span-md, 1/-1);
	--item-lg: var(--span-lg, 1/-1);
	--item-xl: var(--span-xl, 1/-1);
	grid-column: var(--sm, var(--item-sm));
	grid-row: var(--row-sm, auto)
}
@media (min-width: 769px) {
	.u-grid>* {
		grid-column: var(--md, var(--item-md));
		grid-row: var(--row-md, auto)
	}
}
@media (min-width: 1025px) {
	.u-grid>* {
		grid-column: var(--lg, var(--item-lg));
		grid-row: var(--row-lg, auto)
	}
}
@media (min-width: 1281px) {
	.u-grid>* {
		grid-column: var(--xl, var(--item-xl));
		grid-row: var(--row-xl, auto)
	}
}
.u-grid.-fixed { max-width: var(--max-width) }
.u-grid.-pad { padding-inline: calc(var(--gap-sm) * 2) }

@media (min-width: 769px) { .u-grid.-pad { padding-inline: var(--gap-md) } }
@media (min-width: 1025px) { .u-grid.-pad { padding-inline: var(--grid-pad) } }
@media (min-width: 1281px) { .u-grid.-pad { padding-inline: var(--grid-pad) } }

.u-grid.-no-gap {
	column-gap: 0;
	row-gap: 0
}
.u-container {
	margin-inline: auto;
	width: 100%
}
.u-container--pad { padding-inline: var(--gutter--1) }
.u-container--1 { max-width: var(--max-width--1) }

@media (min-width: 1025px) {
	.u-container--1.u-container--pad {
		max-width: calc(var(--max-width--1) + calc(2 * var(--gutter--1)))
	}
}

/* ============================================================
   BUTTONS
   ============================================================ */
.u-btn--1, .u-btn--2, .u-btn--3, .u-btn--4 {
	border: none;
	box-shadow: none;
	cursor: pointer;
	font-family: inherit;
	outline: none
}
.u-btn--1 {
	--u-btn-1-height: 52px;
	--u-btn-1-label-bg: var(--color--3);
	--u-btn-1-label-color: #fff;
	--u-btn-1-icon-bg: var(--color--7);
	--u-btn-1-icon-bg-before: var(--color--7);
	--u-btn-1-icon-bg-after: var(--color--7);
	--u-btn-1-icon-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' fill='none'%3E%3Cpath fill='%231e1e1e' d='M.5 0a.5.5 0 0 1 .5.5v5.833a2.835 2.835 0 0 0 2.833 2.834h8.793L9.313 5.854a.5.5 0 1 1 .707-.708l4.167 4.167q.045.047.076.101a.496.496 0 0 1-.076.607l-4.167 4.166a.5.5 0 1 1-.707-.707l3.311-3.313H3.833A3.834 3.834 0 0 1 0 6.333V.5A.5.5 0 0 1 .5 0'/%3E%3C/svg%3E");
	--u-btn-1-icon-image-before: var(--u-btn-1-icon-image);
	--u-btn-1-icon-image-after: var(--u-btn-1-icon-image);
	align-items: center;
	background-color: var(--u-btn-1-label-bg);
	border-radius: 8px;
	color: var(--u-btn-1-label-color);
	display: inline-flex;
	font-family: var(--family--2);
	font-size: 14px;
	height: var(--u-btn-1-height);
	letter-spacing: -.01em;
	line-height: 1em;
	padding-inline: 20px;
	text-decoration: none;
	text-transform: uppercase;
	-webkit-user-select: none;
	user-select: none;
	width: fit-content
}
.u-btn--1.-icon {
	align-items: stretch;
	background: none;
	gap: 1px;
	padding-inline: 0
}
.u-btn--1.-icon .u-btn--1_label {
	align-items: center;
	background-color: var(--color--5);
	border-radius: 8px;
	color: var(--u-btn-1-label-color);
	display: inline-flex;
	justify-content: center;
	padding-inline: 20px;
	position: relative;
	transition: border-radius .3s ease;
	z-index: 1
}
.u-btn--1.-icon:before, .u-btn--1.-icon:after {
	background-position: center;
	background-repeat: no-repeat;
	content: "";
	flex-shrink: 0;
	height: var(--u-btn-1-height);
	margin-block: auto;
	overflow: hidden;
	transition: background-size .3s ease, border-radius .3s ease, height .3s ease, width .3s ease;
	width: var(--u-btn-1-height)
}
.u-btn--1.-icon:before {
	background-color: var(--u-btn-1-icon-bg-before);
	background-image: var(--u-btn-1-icon-image-before);
	background-size: 0 0;
	border-radius: 12px;
	height: 25%;
	min-width: 0;
	width: 0
}
.u-btn--1.-icon:hover:before {
	background-size: 15px 15px;
	border-radius: 8px;
	height: 100%;
	width: var(--u-btn-1-height)
}
.u-btn--1.-icon:after {
	background-color: var(--u-btn-1-icon-bg-after);
	background-image: var(--u-btn-1-icon-image-after);
	background-size: 15px 15px;
	border-radius: 8px;
	height: 100%
}
.u-btn--1.-icon:hover:after {
	background-size: 0 0;
	border-radius: 12px;
	height: 25%;
	min-width: 0;
	width: 0
}
.u-btn--1.-icon.-down:before, .u-btn--1.-icon.-down:after { transform: rotate(90deg) }
.u-btn--1.-wide {
	display: flex;
	width: 100%
}
.u-btn--1.-wide .u-btn--1_label { flex: 1 0 auto }
.u-btn--2 {
	--u-btn-2-height: 52px;
	--u-btn-2-label-bg: transparent;
	--u-btn-2-label-color: var(--base--color);
	--u-btn-2-icon-bg: var(--color--7);
	--u-btn-2-icon-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' fill='none'%3E%3Cpath fill='%231e1e1e' d='M.5 0a.5.5 0 0 1 .5.5v5.833a2.835 2.835 0 0 0 2.833 2.834h8.793L9.313 5.854a.5.5 0 1 1 .707-.708l4.167 4.167q.045.047.076.101a.496.496 0 0 1-.076.607l-4.167 4.166a.5.5 0 1 1-.707-.707l3.311-3.313H3.833A3.834 3.834 0 0 1 0 6.333V.5A.5.5 0 0 1 .5 0'/%3E%3C/svg%3E");
	align-items: center;
	background-color: var(--u-btn-2-label-bg);
	border-radius: 8px;
	color: var(--u-btn-2-label-color);
	display: inline-flex;
	font-family: var(--family--2);
	font-size: 14px;
	gap: 18px;
	height: var(--u-btn-2-height);
	letter-spacing: -.01em;
	line-height: 1em;
	padding-inline-end: 20px;
	padding-inline-start: 0;
	text-decoration: none;
	text-transform: uppercase;
	-webkit-user-select: none;
	user-select: none
}
.u-btn--2:before {
	background-color: var(--u-btn-2-icon-bg);
	background-image: var(--u-btn-2-icon-image);
	background-position: center;
	background-repeat: no-repeat;
	background-size: 15px 15px;
	border-radius: 8px;
	content: "";
	flex-shrink: 0;
	height: var(--u-btn-2-height);
	transform: rotate(90deg);
	transition: transform .3s ease;
	width: var(--u-btn-2-height)
}
@media (hover: hover) {
	.u-btn--2:hover:before { transform: rotate(90deg) scale(1.1) }
}
.u-btn--3 {
	--u-btn-3-height: 36px;
	--u-btn-3-icon-size: 36px;
	--u-btn-3-icon-bg: var(--color--3);
	--u-btn-3-icon-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' fill='none'%3E%3Cpath fill='%23fff' d='M.5 0a.5.5 0 0 1 .5.5v5.833a2.835 2.835 0 0 0 2.833 2.834h8.793L9.313 5.854a.5.5 0 1 1 .707-.708l4.167 4.167q.045.047.076.101a.496.496 0 0 1-.076.607l-4.167 4.166a.5.5 0 1 1-.707-.707l3.311-3.313H3.833A3.834 3.834 0 0 1 0 6.333V.5A.5.5 0 0 1 .5 0'/%3E%3C/svg%3E");
	align-items: center;
	background: none;
	border-radius: 0;
	color: var(--base--color);
	display: inline-flex;
	font-family: var(--family--2);
	font-size: clamp(12px, calc(11.21px + .18vw), 14px);
	gap: 0;
	height: var(--u-btn-3-height);
	letter-spacing: -.01em;
	line-height: 1em;
	padding-inline: 0;
	text-decoration: none;
	text-transform: uppercase;
	-webkit-user-select: none;
	user-select: none;
	width: fit-content
}
.u-btn--3:before, .u-btn--3:after {
	background-color: var(--u-btn-3-icon-bg);
	background-image: var(--u-btn-3-icon-image);
	background-position: center;
	background-repeat: no-repeat;
	background-size: 15px 15px;
	border-radius: 4px;
	content: "";
	flex-shrink: 0;
	height: var(--u-btn-3-icon-size);
	overflow: hidden;
	transform-origin: center;
	transition: transform .3s ease, width .3s ease, margin-inline-end .3s ease, margin-inline-start .3s ease;
	width: var(--u-btn-3-icon-size)
}
.u-btn--3:before {
	margin-inline-end: 0;
	min-width: 0;
	transform: scale(0);
	width: 0
}
.u-btn--3:after {
	margin-inline-start: var(--space--2);
	transform: scale(1)
}
@media (hover: hover) {
	.u-btn--3:hover:before {
		margin-inline-end: var(--space--2);
		transform: scale(1.1);
		width: var(--u-btn-3-icon-size)
	}
	.u-btn--3:hover:after {
		margin-inline-start: 0;
		min-width: 0;
		transform: scale(0);
		width: 0
	}
}
.u-btn--4 {
	--u-btn-4-height: 22px;
	--u-btn-4-icon-bg: transparent;
	--u-btn-4-icon-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='none'%3E%3Cpath fill='%23222f30' fill-rule='evenodd' d='M8.747 14.812V7.177l6.012 3.817zM11 0C4.935 0 0 4.935 0 11s4.935 11 11 11 11-4.935 11-11S17.065 0 11 0' clip-rule='evenodd'/%3E%3C/svg%3E");
	align-items: center;
	background: none;
	border-radius: 8px;
	color: var(--base--color);
	display: inline-flex;
	font-family: var(--family--2);
	font-size: 14px;
	gap: clamp(10px, calc(9.21px + .18vw), 12px);
	height: var(--u-btn-4-height);
	letter-spacing: -.02em;
	line-height: 1em;
	overflow: visible;
	padding-inline: 0;
	position: relative;
	text-decoration: none;
	text-transform: uppercase;
	-webkit-user-select: none;
	user-select: none;
	width: fit-content
}
.u-btn--4:before {
	background-color: var(--u-btn-4-icon-bg);
	background-image: var(--u-btn-4-icon-image);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	border-radius: 50%;
	box-shadow: 0 0 #1e1e1e00;
	content: "";
	flex-shrink: 0;
	height: 22px;
	transform-origin: center;
	transform: scale(1);
	transition: transform .3s ease, box-shadow .3s ease;
	width: 22px
}
@media (hover: hover) {
	.u-btn--4:hover:before {
		box-shadow: 0 0 0 6px #1e1e1e0d;
		transform: scale(1.1)
	}
}
.u-ts--1 {
	align-items: center;
	color: var(--base--color);
	display: flex;
	font-family: var(--family--2);
	font-size: clamp(14px, calc(13.21px + .36vw), 16px);
	font-weight: 400;
	gap: clamp(16px, calc(14.43px + .36vw), 20px);
	letter-spacing: -.01em;
	line-height: 1em;
	margin: 0;
	text-transform: uppercase
}
.u-ts--1:before {
	background-color: var(--base--color);
	border-radius: 50%;
	content: "";
	flex-shrink: 0;
	height: 10px;
	width: 10px
}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
	outline: var(--focus-outline-width) solid var(--focus-outline-color);
	outline-offset: var(--focus-outline-offset)
}

/* ============================================================
   REVEAL ANIMATIONS (replaces GSAP ScrollTrigger reveal)
   ============================================================ */
[data-reveal-item] {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.7s ease, transform 0.7s ease
}
[data-reveal-item].is-visible {
	opacity: 1;
	transform: translateY(0)
}
@media (prefers-reduced-motion: reduce) {
	[data-reveal-item] {
		opacity: 1;
		transform: none;
		transition: none
	}
}

/* ============================================================
   HERO
   ============================================================ */
.c-hero {
	--focus-outline-color: #fff;
	color: #fff;
	overflow: hidden;
	position: relative
}
.c-hero .hero_inner {
	display: flex;
	flex-direction: column;
	margin-inline: auto;
	gap: var(--space--1);
	padding: var(--space--2);
	height: 100svh
}
.c-hero .hero_tile { border-radius: 12px }
.c-hero.is-preloading .hero_tile { opacity: 0 }
.c-hero .hero_hgroup {
	background-color: var(--color--5);
	display: flex;
	flex-direction: column;
	gap: var(--space--7);
	justify-content: space-between;
	height: 100%;
	padding: 20px
}
.c-hero .hero_brand { display: block }
.c-hero .hero_brand-logo {
	aspect-ratio: 170 / 53;
	display: block;
	max-width: clamp(120px, calc(98px + 5vw), 170px);
	width: 100%
}
.c-hero .hero_content {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: clamp(40px, calc(8.57px + 7.14vw), 120px);
	justify-content: space-between
}
.c-hero .hero_cta.u-btn--2 { --u-btn-2-label-color: var(--base--bg) }
.c-hero .hero_title {
	font-size: clamp(36px, calc(15.57px + 4.64vw), 88px);
	font-weight: 400;
	letter-spacing: -.02em;
	line-height: 1em;
	margin: 0;
	text-wrap: balance
}
.c-hero .hero_right {
	display: flex;
	flex-direction: column;
	gap: var(--space--1)
}
.c-hero .hero_media-wrap {
	aspect-ratio: 654 / 448;
	overflow: hidden;
	position: relative
}
.c-hero .hero_media-zoom-wrap, .c-hero .hero_media-zoom-wrap picture {
	display: block;
	height: 100%;
	overflow: hidden;
	width: 100%
}
.c-hero .hero_media {
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: center;
	width: 100%
}
.c-hero .hero_media-actions {
	bottom: 20px;
	display: flex;
	gap: var(--space--1);
	position: absolute;
	left: 20px
}
.c-hero .hero_monogram {
	align-items: center;
	background-color: var(--color--5);
	display: none;
	justify-content: center;
	min-height: 220px;
	padding: var(--space--3)
}
.c-hero .hero_monogram-svg {
	aspect-ratio: 170 / 152;
	display: inline-flex;
	margin: auto;
	width: 90px
}
/* Hero fade-in (replaces GSAP Flip intro) */
.c-hero .hero_tile { animation: heroTileFadeIn 0.6s ease forwards }
.c-hero .hero_hgroup {
	animation-delay: 0.05s;
	opacity: 0
}
.c-hero .hero_media-wrap {
	animation-delay: 0.2s;
	opacity: 0
}
.c-hero .hero_monogram {
	animation-delay: 0.35s;
	opacity: 0
}
@keyframes heroTileFadeIn {
	from {
		opacity: 0;
		transform: translateY(10px)
	}
	to {
		opacity: 1;
		transform: translateY(0)
	}
}
.c-hero.is-preloading .hero_tile {
	opacity: 0;
	animation: none
}
@media (prefers-reduced-motion: reduce) {
	.c-hero .hero_tile {
		opacity: 1 !important;
		animation: none
	}
}
@media (min-width: 1025px) {
	.c-hero {
		border-radius: 12px;
		height: 100svh;
		max-height: 1000px;
		min-height: 500px
	}
	.c-hero .hero_inner {
		border-radius: 12px;
		display: grid;
		gap: var(--space--1);
		grid-template-columns: 1.35fr 1fr;
		grid-template-rows: 1fr;
		height: 100%;
		min-height: 0;
		padding: var(--space--2)
	}
	.c-hero .hero_hgroup {
		grid-column: 1;
		grid-row: 1 / -1;
		min-height: 0;
		padding: 28px
	}
	.c-hero .hero_right {
		grid-column: 2;
		grid-row: 1 / -1;
		min-height: 0
	}
	.c-hero .hero_media-wrap {
		aspect-ratio: auto;
		flex: 1 1 0;
		min-height: 0;
		object-fit: cover;
		object-position: top center;
		position: relative;
		transition: flex-grow .4s cubic-bezier(.25, .1, .25, 1)
	}
	.c-hero .hero_monogram {
		display: flex;
		flex: 1 1 0;
		min-height: 0;
		transition: flex-grow .4s cubic-bezier(.25, .1, .25, 1)
	}
	.c-hero .hero_monogram-svg { width: 170px }
	.c-hero .hero_media-actions { inset: 28px 28px auto auto }

	@media (hover: hover) {
		.c-hero:not(.is-preloading) .hero_right:has(.hero_media-wrap:hover) .hero_media-wrap { flex-grow: 1.1 }
		.c-hero:not(.is-preloading) .hero_right:has(.hero_media-wrap:hover) .hero_monogram { flex-grow: .9 }
		.c-hero:not(.is-preloading) .hero_right:has(.hero_monogram:hover) .hero_media-wrap { flex-grow: .9 }
		.c-hero:not(.is-preloading) .hero_right:has(.hero_monogram:hover) .hero_monogram { flex-grow: 1.1 }
	}
}
@media (min-width: 1025px) and (max-height: 570px) {
	.c-hero { height: 570px }
}

/* ============================================================
   ABOUT
   ============================================================ */
.c-about {
	background-color: var(--base--bg);
	color: var(--base--color)
}
.c-about .about_inner {
	max-width: var(--max-width--1);
	padding-block-start: clamp(58px, calc(22.64px + 8.04vw), 148px);
	padding-block-end: var(--space--6);
	row-gap: 0
}
.c-about .about_heading {
	border-bottom: 1px solid var(--color--3);
	font-size: clamp(28px, calc(4.43px + 5.36vw), 88px);
	font-weight: 400;
	letter-spacing: -.02em;
	line-height: 1em;
	margin: 0 0 var(--space--4);
	padding-bottom: var(--space--4);
	text-wrap: pretty
}
.c-about .about_left {
	display: flex;
	flex-direction: column;
	gap: var(--space--2)
}
.c-about .about_label { margin-bottom: clamp(30px, calc(4.46px + 5.8vw), 95px) }
.c-about .about_media-wrap {
	aspect-ratio: 260 / 320;
	border-radius: 8px;
	margin-bottom: clamp(30px, calc(4.46px + 5.8vw), 95px);
	overflow: hidden
}
@media (max-width: 768px) {
	.c-about .about_media-wrap { display: none }
}
.c-about .about_media {
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: center;
	width: 100%
}
.c-about .about_content {
	display: flex;
	flex-direction: column;
	gap: var(--space--4)
}
.c-about .about_text { margin: 0 }
.c-about .about_text p {
	font-size: clamp(18px, calc(17.21px + .18vw), 20px);
	font-weight: 400;
	letter-spacing: -.02em;
	line-height: 1.3em
}
.c-about .about_text p:not(:last-child) { margin-bottom: 1.5em }
.c-about .about_text a {
	color: inherit;
	padding-block-end: 1px;
	position: relative;
	text-decoration: none;
	transition: color .2s ease
}
.c-about .about_text a:before, .c-about .about_text a:after {
	bottom: 0;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	right: 0;
	transform-origin: left;
	transition: transform .4s ease
}
.c-about .about_text a:before {
	background-color: currentColor;
	transform: scaleX(1);
	transform-origin: right;
	transition-delay: .25s
}
.c-about .about_text a:after {
	background-color: var(--color--4);
	transform: scaleX(0);
	transform-origin: left;
	transition-delay: 0s
}
.c-about .about_text a:hover:before {
	transform: scaleX(0);
	transition-delay: 0s
}
.c-about .about_text a:hover:after {
	transform: scaleX(1);
	transition-delay: .25s
}
.c-about .about_cta {
	align-self: flex-start;
	overflow: hidden
}
@media (min-width: 769px) {
	.c-about .about_left { --row-md: 3; --md: 1/3 }
	.c-about .about_media-wrap { margin-bottom: 0 }
	.c-about .about_content { --row-md: 3; --md: 4/7 }
}
@media (min-width: 1025px) {
	.c-about .about_heading { text-indent: 25% }
	.c-about .about_left { --row-lg: 3; --lg: 1/3 }
	.c-about .about_content { --row-lg: 3; --lg: 4/7 }
}
@media (min-width: 1281px) {
	.c-about .about_left { --row-xl: 3; --xl: 1/3 }
	.c-about .about_content { --row-xl: 3; --xl: 6/10 }
}

/* ============================================================
   PROJECTS
   ============================================================ */
.c-projects {
	background-color: var(--block-color-background, var(--base--bg, #fff));
	color: var(--base--color, #1e1e1e)
}
.c-projects .scroll_container {
	align-items: center;
	display: flex;
	flex-direction: column;
	height: 100vh;
	justify-content: center;
	padding-block: var(--space--3);
	row-gap: var(--space--4)
}
@media (min-width: 1281px) {
	.c-projects .scroll_container {
		row-gap: 120px;
		position: sticky;
		top: 0
	}
}
@media (min-width: 1281px) and (max-height: 900px) {
	.c-projects .scroll_container { row-gap: 40px }
}
@media (min-width: 1281px) and (max-height: 740px) {
	.c-projects .scroll_container { padding-block: var(--space--3) }
}
.c-projects .projects_hgroup {
	display: flex;
	flex-direction: column;
	gap: var(--space--3);
	width: 100%
}
@media (min-width: 1025px) { .c-projects .projects_hgroup { gap: var(--space--4) } }

.c-projects .hgroup_heading {
	font-size: clamp(36px, calc(15.57px + 4.64vw), 88px);
	font-weight: 400;
	letter-spacing: -.02em;
	line-height: 1em;
	margin: 0;
	text-wrap: balance
}
.c-projects .hgroup_sub-heading {
	font-size: clamp(20px, calc(15.29px + 1.07vw), 32px);
	font-weight: 400;
	letter-spacing: -.02em;
	line-height: 1em;
	margin: 0;
	text-wrap: balance
}
.c-projects .projects_main {
	--gap-row: var(--space--6);
	--max-width: var(--max-width--1);
	--gap-col: var(--grid-gap-md, 24px)
}
@media (min-width: 1281px) and (max-height: 740px) {
	.c-projects .projects_main { --gap-row: var(--space--4) }
	.c-projects .projects_main .scroll_media { --xl: 1/4 !important }
}
.c-projects .projects_main .projects_hgroup { --row-sm: 1/2 }

@media (min-width: 769px) { .c-projects .projects_main .projects_hgroup { --row-md: 1/2 } }
@media (min-width: 1281px) {
	.c-projects .projects_main .projects_hgroup {
		--lg: 1/-1;
		--row-lg: 1/2;
		--xl: 1/7;
		--row-xl: 1/2
	}
}
@media (min-width: 769px) {
	.c-projects .projects_main .scroll_media {
		--md: 1/3;
		--row-md: 2/3
	}
}
@media (min-width: 1281px) {
	.c-projects .projects_main .scroll_media {
		--lg: 1/3;
		--row-lg: 2/3;
		--xl: 1/5;
		--row-xl: 2/3
	}
}
@media (min-width: 769px) {
	.c-projects .projects_main .scroll_content {
		--md: 3/7;
		--row-md: 1/3
	}
}
@media (min-width: 1281px) {
	.c-projects .projects_main .scroll_content {
		--lg: 3/7;
		--row-lg: 1/3;
		--xl: 7/13;
		--row-xl: 1/3
	}
}
.c-projects .scroll_media {
	border-radius: 12px;
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	width: 100%
}
.c-projects .scroll_media .media_container { width: 100% }
.c-projects .scroll_media .media_list {
	position: relative;
	width: 100%
}
@media (min-width: 1281px) { .c-projects .scroll_media .media_list { aspect-ratio: 495 / 320 } }

.c-projects .scroll_media .media_item {
	aspect-ratio: 16 / 10;
	position: relative;
	width: 100%
}
.c-projects .scroll_media .media_item picture {
	display: block;
	height: 100%;
	width: 100%
}
@media (min-width: 1281px) {
	.c-projects .scroll_media .media_item {
		aspect-ratio: auto;
		-webkit-clip-path: inset(50% round 12px);
		clip-path: inset(50% round 12px);
		height: 100%;
		inset: 0;
		position: absolute;
		transition: clip-path 0.75s cubic-bezier(.77, 0, .175, 1)
	}
	.c-projects .scroll_media .media_item:first-of-type {
		-webkit-clip-path: inset(0% round 12px);
		clip-path: inset(0 round 12px)
	}
}
.c-projects .scroll_media .media_image {
	height: 100%;
	object-fit: cover;
	object-position: center;
	width: 100%
}
.c-projects .scroll_content {
	color: var(--block-color-text, var(--base--color, #1e1e1e));
	display: flex;
	flex-direction: column;
	min-width: 0;
	position: relative;
	width: 100%
}
.c-projects .content_progress {
	background-color: #1e1e1e33;
	height: 1px;
	margin-bottom: 20px;
	width: 100%
}
@media (min-width: 1281px) { .c-projects .content_progress { margin-bottom: 80px } }
@media (min-width: 1281px) and (max-height: 900px) { .c-projects .content_progress { margin-bottom: var(--space--4) } }

.c-projects .progress_bar {
	background-color: var(--color--3);
	height: 100%;
	transform: scale3d(0, 1, 1);
	transform-origin: 0% 50%;
	width: 100%;
	transition: transform 0.3s ease
}
.c-projects .content_list {
	align-items: flex-start;
	display: flex;
	flex-flow: column;
	height: 100%;
	justify-content: flex-start;
	max-height: 100%;
	min-height: 200px;
	position: relative
}
@media (min-width: 1281px) { .c-projects .content_list { min-height: auto } }

.c-projects .content_item {
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: 100%
}
@media (min-width: 1281px) {
	.c-projects .content_item {
		left: 0;
		opacity: 0;
		position: absolute;
		top: 0;
		visibility: hidden;
		transition: opacity 0.4s ease, visibility 0.4s ease;
		align-items: flex-start;
		display: grid;
		gap: var(--space--3);
		grid-template-columns: 110px 1fr;
		max-width: 760px
	}
	.c-projects .content_item:first-of-type {
		opacity: 1;
		visibility: visible
	}
	.c-projects .item_media { display: none }
}
@media (min-width: 1281px) and (max-width: 1440px) {
	.c-projects .content_item {
		align-items: stretch;
		display: flex;
		flex-direction: column;
		justify-content: flex-start
	}
}
.c-projects .item_index {
	font-size: clamp(20px, calc(15.29px + 1.07vw), 32px);
	letter-spacing: -.02em;
	line-height: 1
}
.c-projects .item_content {
	display: flex;
	flex-direction: column
}
@media (min-width: 1025px) { .c-projects .item_content { row-gap: 30px } }

.c-projects .item_heading {
	font-size: clamp(28px, calc(26.43px + .36vw), 32px);
	letter-spacing: -.02em;
	line-height: 1em;
	margin-bottom: 0;
	margin-top: 0
}
@media (min-width: 1025px) { .c-projects .item_heading { font-size: 36px } }
@media (min-width: 1281px) { .c-projects .item_heading { font-size: 42px } }

.c-projects .item_text { margin-bottom: 0 }
.c-projects .item_text p {
	font-size: clamp(16px, calc(14.68px + .3vw), 19px);
	letter-spacing: -.02em;
	line-height: 1.3em
}
.c-projects .item_text p:not(:last-child) { margin-bottom: 1em }

@media (max-width: 1280px) {
	.c-projects .scroll_container {
		height: auto;
		justify-content: flex-start;
		min-height: 0;
		padding-block: var(--space--6);
		row-gap: 0
	}
	.c-projects .projects_main {
		display: flex;
		flex-direction: column;
		gap: var(--space--5)
	}
	.c-projects .projects_main .projects_hgroup {
		display: flex;
		flex-direction: column;
		gap: 30px;
		margin: 0;
		opacity: 1;
		order: 1;
		visibility: visible;
		width: 100%
	}
	.c-projects .projects_main .scroll_content { order: 2 }
	.c-projects .projects_main .content_list .content_item:last-child {
		border-bottom: none;
		padding-bottom: 0
	}
	.c-projects .scroll_media, .c-projects .content_progress { display: none }
	.c-projects .item_media {
		aspect-ratio: 16 / 10;
		border-radius: 12px;
		display: block;
		margin-bottom: var(--space--3);
		overflow: hidden;
		width: 100%
	}
	.c-projects .item_media picture {
		display: block;
		height: 100%;
		width: 100%
	}
	.c-projects .item_media_image {
		display: block;
		height: 100%;
		object-fit: cover;
		width: 100%
	}
	.c-projects .content_item {
		border-top: 1px solid rgba(30, 30, 30, .2);
		padding-bottom: var(--space--5);
		padding-top: var(--space--3)
	}
	.c-projects .item_content { gap: var(--space--3) }
	.c-projects .item_index { margin-bottom: var(--space--2) }
}
@media (min-width: 769px) and (max-width: 1280px) {
	.c-projects .content_item {
		align-items: start;
		display: grid;
		gap: var(--space--4);
		grid-template-columns: minmax(220px, .55fr) 1fr;
		grid-template-rows: 1fr
	}
	.c-projects .item_media {
		grid-column: 1;
		grid-row: 1;
		margin-bottom: 0;
		min-width: 0
	}
	.c-projects .item_index, .c-projects .item_content {
		grid-column: 2;
		grid-row: 1
	}
	.c-projects .item_index {
		margin-bottom: var(--space--2);
		text-align: right
	}
}

/* ============================================================
   CAREERS
   ============================================================ */
.c-careers { padding-inline: 12px }
.c-careers:before {
	background-color: var(--color--4);
	border-radius: 12px;
	bottom: 0;
	content: "";
	height: 100%;
	left: var(--space--2);
	margin-inline: auto;
	max-width: 1800px;
	position: absolute;
	top: 0;
	right: var(--space--2);
	width: calc(100% - calc(2 * var(--space--2)));
	z-index: 0
}
.c-careers .careers_inner {
	padding-block-start: 48px;
	padding-block-end: clamp(60px, calc(20.71px + 8.93vw), 160px);
	position: relative;
	z-index: 1
}
.c-careers .careers_heading {
	border-bottom: 1px solid var(--color--3);
	font-size: clamp(36px, calc(15.57px + 4.64vw), 88px);
	font-weight: 400;
	line-height: 1em;
	margin: 0 0 var(--space--3);
	padding-bottom: var(--space--3)
}
.c-careers .careers_heading sup {
	display: inline-block;
	font-size: clamp(16px, calc(14.82px + .27vw), 19px);
	line-height: 1;
	margin-inline-start: var(--space--1);
	opacity: .5;
	position: relative;
	top: -.4em;
	vertical-align: top
}
.c-careers .careers_inner.u-grid { --max-width: var(--max-width--1) }
.c-careers .careers_content p {
	font-size: clamp(18px, calc(17.21px + .18vw), 20px);
	font-weight: 400;
	letter-spacing: -.02em;
	line-height: 1.3em;
	text-wrap: pretty
}
.c-careers .careers_content p:not(:last-child) { margin-bottom: 1em }
.c-careers .careers_list {
	display: flex;
	flex-direction: column;
	list-style: none;
	margin: var(--space--3) 0 0;
	padding: 0
}
.c-careers .careers_item {
	border-bottom: 1px solid var(--color--3);
	transition: border-bottom-color .25s ease
}
.c-careers .careers_item:last-child { border-bottom: none }

.c-careers .careers_vacancy {
	--careers-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' fill='none'%3E%3Cpath fill='%231e1e1e' d='M.5 0a.5.5 0 0 1 .5.5v5.833a2.835 2.835 0 0 0 2.833 2.834h8.793L9.313 5.854a.5.5 0 1 1 .707-.708l4.167 4.167q.045.047.076.101a.496.496 0 0 1-.076.607l-4.167 4.166a.5.5 0 1 1-.707-.707l3.311-3.313H3.833A3.834 3.834 0 0 1 0 6.333V.5A.5.5 0 0 1 .5 0'/%3E%3C/svg%3E");
	align-items: center;
	color: var(--color--3);
	display: grid;
	gap: var(--space--2) var(--space--4);
	grid-template-columns: 1fr 1.2fr 15px;
	min-height: 90px;
	overflow: visible;
	padding-block: var(--space--3);
	padding-inline: 0;
	position: relative;
	text-decoration: none;
	transition: color .25s ease, padding-inline .25s ease
}
.c-careers .careers_vacancy:before {
	background-color: var(--color--5);
	border-radius: 8px;
	content: "";
	height: 100%;
	inset: 50% 0 0 50%;
	opacity: 0;
	position: absolute;
	transform: scale(1.02) translate(-50%, -50%);
	transform-origin: center;
	transition: opacity .25s ease, transform .25s ease;
	width: 100%;
	z-index: 0
}
.c-careers .careers_vacancy_title, .c-careers .careers_vacancy_meta, .c-careers .careers_vacancy_icon {
	position: relative;
	z-index: 1
}
.c-careers .careers_vacancy_title {
	font-size: clamp(18px, calc(17.61px + .09vw), 19px);
	font-weight: 400;
	letter-spacing: -.02em;
	line-height: 1.2em
}
.c-careers .careers_vacancy_meta {
	display: flex;
	gap: var(--space--4);
	font-size: clamp(14px, calc(13.21px + .18vw), 16px);
	font-weight: 400;
	letter-spacing: -.02em;
	line-height: 1em
}
.c-careers .careers_vacancy_location, .c-careers .careers_vacancy_type {
	color: inherit;
	flex: 1 1 auto;
	opacity: .85
}
.c-careers .careers_vacancy_icon {
	background-image: var(--careers-icon);
	background-position: center;
	background-repeat: no-repeat;
	background-size: 15px 15px;
	flex-shrink: 0;
	height: 15px;
	justify-self: end;
	width: 15px
}
@media (max-width: 640px) {
	.c-careers .careers_vacancy {
		align-items: start;
		grid-template-columns: 1fr;
		grid-template-rows: auto auto
	}
	.c-careers .careers_vacancy_title { padding-inline-end: 36px }
	.c-careers .careers_vacancy_icon {
		grid-column: 1;
		grid-row: 1;
		position: absolute;
		right: 0;
		top: var(--space--3)
	}
	.c-careers .careers_vacancy_meta {
		display: grid;
		gap: var(--space--2);
		grid-column: 1;
		grid-template-columns: 1fr 1fr;
		grid-row: 2
	}
	.c-careers .careers_vacancy_location, .c-careers .careers_vacancy_type { flex: none }
}
@media (hover: hover) and (pointer: fine) and (min-width: 641px) {
	.c-careers .careers_item:hover, .c-careers .careers_item:has(+ .careers_item:hover) { border-bottom-color: transparent }
	.c-careers .careers_vacancy:hover {
		color: #fff;
		padding-inline: 20px
	}
	.c-careers .careers_vacancy:hover:before {
		opacity: 1;
		transform: scale(1) translate(-50%, -50%)
	}
	.c-careers .careers_vacancy:hover .careers_vacancy_icon { filter: brightness(0) invert(1) }
	.c-careers .careers_vacancy:hover .careers_vacancy_location, .c-careers .careers_vacancy:hover .careers_vacancy_type { opacity: 1 }
}
@media (min-width: 641px) {
	.c-careers .careers_item:has(.careers_vacancy:focus-visible) { border-bottom-color: transparent }
	.c-careers .careers_vacancy:focus-visible {
		color: #fff;
		padding-inline: 20px
	}
	.c-careers .careers_vacancy:focus-visible:before {
		opacity: 1;
		transform: scale(1) translate(-50%, -50%)
	}
	.c-careers .careers_vacancy:focus-visible .careers_vacancy_icon { filter: brightness(0) invert(1) }
	.c-careers .careers_vacancy:focus-visible .careers_vacancy_location, .c-careers .careers_vacancy:focus-visible .careers_vacancy_type { opacity: 1 }
}
@media (min-width: 1025px) {
	.c-careers { padding-inline: 0 }
	.c-careers .careers_content { --lg: 1/3 }
	.c-careers .careers_list { --lg: 3/7 }
}
@media (min-width: 1281px) {
	.c-careers .careers_content { --xl: 1/4 }
	.c-careers .careers_list {
		--xl: 6/13;
		margin-top: 0
	}
}

/* ============================================================
   CONTACT
   ============================================================ */
.c-contact {
	background-color: var(--base--bg);
	color: var(--base--color)
}
.c-contact .contact_inner {
	padding-block-start: 48px;
	padding-block-end: clamp(100px, calc(76.43px + 5.36vw), 160px)
}
.c-contact .contact_heading {
	border-bottom: 1px solid var(--color--3);
	font-size: clamp(36px, calc(15.57px + 4.64vw), 88px);
	font-weight: 400;
	line-height: 1em;
	margin: 0 0 var(--space--3);
	padding-bottom: var(--space--3)
}
.c-contact .contact_main { --max-width: var(--max-width--1) }
.c-contact .contact_content {
	display: flex;
	flex-direction: column;
	gap: var(--space--4)
}
.c-contact .contact_cta {
	align-self: flex-start;
	overflow: hidden
}
.c-contact .contact_content p {
	font-size: clamp(18px, calc(17.21px + .18vw), 20px);
	font-weight: 400;
	letter-spacing: -.02em;
	line-height: 1.3em;
	text-wrap: pretty
}
.c-contact .contact_content p:not(:last-of-type) { margin-bottom: 1.5em }

.c-contact .contact_form { margin: var(--space--5) 0 0 }
.c-contact .contact-form-element {
	display: flex;
	flex-direction: column;
	gap: var(--space--4) 0;
	margin-inline: auto;
	min-height: 200px;
	position: relative;
	width: 100%
}
.c-contact .contact-form-element .contact-form-input-wrapper {
	display: flex;
	position: relative
}
.c-contact .contact-form-element .contact-form-input-wrapper:after {
	background: var(--color--4);
	bottom: 0;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .3s ease;
	width: 100%
}
.c-contact .contact-form-element .contact-form-input-wrapper.is-active:after { transform: scaleX(1) }

.c-contact .contact-form-element input, .c-contact .contact-form-element textarea {
	background: transparent;
	border: none;
	border-bottom: 1px solid var(--color--3);
	border-radius: 0;
	color: var(--base--color);
	font-size: clamp(16px, calc(14.82px + .27vw), 19px);
	font-weight: 400;
	letter-spacing: -.02em;
	line-height: 1.3em;
	outline: none;
	padding: 0 0 var(--space--3);
	text-align: left;
	transition: border-color .3s ease;
	width: 100%
}
.c-contact .contact-form-element input::placeholder, .c-contact .contact-form-element textarea::placeholder { color: var(--base--color) }

.c-contact .contact-form-element textarea {
	min-height: 100px;
	overflow: hidden;
	resize: none;
	field-sizing: content
}
.c-contact .contact-form-element button.u-btn--1 {
	--u-btn-1-height: 70px;
	--u-btn-1-label-bg: var(--color--5);
	margin-top: var(--space--3)
}
.c-contact .contact-form-element input:focus-visible, .c-contact .contact-form-element textarea:focus-visible, .c-contact .contact-form-element button:focus-visible {
	outline: var(--focus-outline-width) solid var(--focus-outline-color);
	outline-offset: var(--focus-outline-offset)
}
@media (min-width: 769px) {
	.c-contact .contact_content { --md: 1/3 }
	.c-contact .contact_form {
		--md: 3/7;
		margin: var(--space--4) 0 0
	}
	.c-contact .contact-form-element {
		column-gap: 40px;
		display: grid;
		grid-template-columns: 1fr 1fr
	}
	.c-contact .contact-form-element .contact-form-input-wrapper:nth-child(3),
	.c-contact .contact-form-element .contact-form-input-wrapper:nth-child(4),
	.c-contact .contact-form-element .contact-form-input-wrapper:nth-child(5),
	.c-contact .contact-form-element button {
		grid-column: 1 / -1
	}
}
@media (min-width: 1025px) {
	.c-contact .contact_content { --lg: 1/3 }
	.c-contact .contact_form { --lg: 3/7 }
}
@media (min-width: 1281px) {
	.c-contact .contact_content { --xl: 1/4 }
	.c-contact .contact_form { --xl: 6/13 }
}

/* ============================================================
   FOOTER
   ============================================================ */
.c-footer {
	--focus-outline-color: #fff;
	color: #fff;
	padding-block-end: var(--space--2);
	padding-inline: 12px;
	position: relative
}
.c-footer .footer_bg {
	background-color: var(--color--5);
	border-radius: 0;
	height: 100%;
	inset: 0;
	margin-inline: auto;
	max-width: 1800px;
	position: absolute;
	width: 100%;
	z-index: 0;
	transition: border-radius 0.4s ease, bottom 0.4s ease, left 0.4s ease, right 0.4s ease, width 0.4s ease, height 0.4s ease
}
@media (max-width: 1024px) {
	.c-footer .footer_bg {
		border-radius: 12px;
		bottom: 12px;
		height: calc(100% - 12px);
		left: 12px;
		right: 12px;
		width: calc(100% - 24px)
	}
}
.c-footer .footer_inner {
	padding-block: 28px;
	position: relative;
	width: 100%;
	z-index: 1
}
.c-footer .footer_logo {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 180px
}
.c-footer .footer_logo_hero { display: none }

.c-footer .footer_logo_hero-svg {
	aspect-ratio: 170 / 53;
	color: #fff;
	display: block;
	max-width: clamp(120px, calc(98px + 5vw), 170px);
	width: 100%
}
.c-footer .footer_logo_wordmark-svg {
	aspect-ratio: 99 / 30;
	display: block;
	max-width: 99px;
	width: 100%
}
.c-footer .footer_logo_monogram-svg {
	aspect-ratio: 110 / 111;
	display: block;
	max-width: 80px;
	width: 100%
}
.c-footer .footer_main {
	display: grid;
	gap: var(--space--3) var(--space--4);
	grid-template-columns: 1fr 1fr;
	grid-template-rows: auto auto
}
.c-footer .footer_main_statement, .c-footer .footer_main_menu {
	font-size: clamp(16px, calc(14.43px + .36vw), 20px);
	font-weight: 400;
	letter-spacing: -.02em;
	line-height: 1.2em;
	margin: 0
}
.c-footer .footer_main_statement {
	display: flex;
	flex-direction: column;
	gap: 24px;
	grid-column: 1;
	grid-row: 1
}
.c-footer .footer_address-block {
	font-style: normal;
	margin: 0
}
.c-footer .footer_statement-link {
	align-self: flex-start;
	color: inherit;
	position: relative;
	text-decoration: none;
	transition: color .2s ease
}
.c-footer .footer_statement-link:after {
	background-color: #fff;
	bottom: 2px;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	right: 0;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .4s ease
}
.c-footer .footer_statement-link:hover:after { transform: scaleX(1) }

.c-footer .footer_main_menu {
	grid-column: 2;
	grid-row: 1
}
.c-footer .footer_menu-list, .c-footer .footer_menu-list li {
	list-style: none;
	margin: 0;
	padding: 0
}
.c-footer .footer_menu-list li:not(:last-child) { margin-bottom: var(--space--2) }

.c-footer .footer_menu-link {
	color: inherit;
	position: relative;
	text-decoration: none;
	transition: color .2s ease
}
.c-footer .footer_menu-link:after {
	background-color: #fff;
	bottom: 0;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	right: 0;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .4s ease
}
.c-footer .footer_menu-link:hover:after { transform: scaleX(1) }

.c-footer .footer_main_terms, .c-footer .footer_main_copyright {
	font-family: var(--family--2);
	font-size: clamp(12px, calc(11.21px + .18vw), 14px);
	font-weight: 400;
	letter-spacing: -.02em;
	line-height: 1em;
	text-transform: uppercase
}
.c-footer .footer_main_terms {
	grid-column: 1;
	grid-row: 2
}
.c-footer .footer_terms-link {
	color: inherit;
	padding-block-end: 1px;
	position: relative;
	text-decoration: none;
	transition: color .2s ease
}
.c-footer .footer_terms-link:before, .c-footer .footer_terms-link:after {
	bottom: 0;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	right: 0;
	transform-origin: left;
	transition: transform .4s ease
}
.c-footer .footer_terms-link:before {
	background-color: currentColor;
	transform: scaleX(1);
	transform-origin: right;
	transition-delay: .25s
}
.c-footer .footer_terms-link:after {
	background-color: var(--color--4);
	transform: scaleX(0);
	transform-origin: left;
	transition-delay: 0s
}
.c-footer .footer_terms-link:hover:before {
	transform: scaleX(0);
	transition-delay: 0s
}
.c-footer .footer_terms-link:hover:after {
	transform: scaleX(1);
	transition-delay: .25s
}
.c-footer .footer_main_copyright {
	grid-column: 2;
	grid-row: 2
}
@media (max-width: 1280px) {
	.c-footer .footer_logo_hero {
		display: block;
		margin-bottom: 80px
	}
	.c-footer .footer_logo_wordmark, .c-footer .footer_logo_monogram { display: none }
	.c-footer .footer_main { grid-template-columns: 1fr 1fr }
	.c-footer .footer_main_statement {
		grid-column: 1;
		grid-row: 1
	}
	.c-footer .footer_main_menu {
		grid-column: 2;
		grid-row: 1;
		justify-self: end;
		text-align: right
	}
	.c-footer .footer_main_terms {
		border-top: 1px solid rgba(255, 255, 255, .1);
		grid-column: 1 / -1;
		grid-row: 2;
		padding-top: var(--space--4)
	}
	.c-footer .footer_main_copyright {
		grid-column: 1 / -1;
		grid-row: 3
	}
}
@media (min-width: 1281px) {
	.c-footer {
		align-items: stretch;
		display: flex;
		min-height: 517px;
		padding-inline: 0
	}
	.c-footer .footer_logo { --xl: 1/6 }
	.c-footer .footer_main { --xl: 6/13 }
	.c-footer .footer_main_terms, .c-footer .footer_main_copyright {
		align-items: flex-end;
		display: flex;
		justify-content: flex-start
	}
}

/* ============================================================
   NAV MENU  –  MediPrax
   ============================================================ */

.nav-trigger {
  --size: 48px;
  align-items: center;
  background: var(--color--5);
  border-radius: 8px;
  border: none;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 9px;
  height: var(--size);
  justify-content: center;
  padding: 0 10px;
  position: fixed;
  right: clamp(16px, 3vw, 40px);
  top: clamp(16px, 3vw, 36px);
  width: var(--size);
  z-index: 1000;
  -webkit-tap-highlight-color: transparent;
}
.nav-trigger__bar {
  background: var(--base--bg);
  border-radius: 2px;
  display: block;
  height: 1.5px;
  transform-origin: center;
  transition:
    transform 0.55s cubic-bezier(0.77, 0, 0.175, 1),
    opacity   0.3s  ease,
    width     0.4s  cubic-bezier(0.77, 0, 0.175, 1);
  width: 28px;
}
.nav-trigger__bar--top { width: 28px; }
.nav-trigger__bar--bot { width: 20px; }

.nav-trigger:hover .nav-trigger__bar--top,
.nav-trigger:hover .nav-trigger__bar--bot { width: 28px; }

.nav-trigger.is-open .nav-trigger__bar--top {
  transform: translateY(5.25px) rotate(38deg);
  width: 28px;
}
.nav-trigger.is-open .nav-trigger__bar--bot {
  transform: translateY(-5.25px) rotate(-38deg);
  width: 28px;
}
.nav-trigger:focus-visible {
  outline: var(--focus-outline-width) solid var(--focus-outline-color);
  outline-offset: 4px;
  border-radius: 4px;
}

.nav-backdrop {
  background: rgb(30 30 30 / 85%);
  inset: 0;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  transition: opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 900;
}
.nav-backdrop.is-visible {
  opacity: 1;
  pointer-events: all;
}

.nav-panel {
  --panel-w: min(400px, calc(100vw - 32px));
  --panel-radius: 8px;
  background: var(--color--5);
  border-radius: var(--panel-radius);
  color: #fff;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: clamp(28px, 5vw, 44px);
  position: fixed;
  right: clamp(16px, 3vw, 40px);
  top: clamp(16px, 3vw, 36px);
  width: var(--panel-w);
  z-index: 950;
  clip-path: inset(0 0 100% 100% round var(--panel-radius));
  opacity: 0;
  pointer-events: none;
  transform: scale(0.92) translateY(-6px);
  transform-origin: top right;
  transition:
    clip-path 0.6s cubic-bezier(0.77, 0, 0.175, 1),
    opacity   0.3s ease,
    transform 0.6s cubic-bezier(0.77, 0, 0.175, 1);
  will-change: clip-path, transform;
}
.nav-panel.is-open {
  clip-path: inset(0 0 0 0 round var(--panel-radius));
  opacity: 1;
  pointer-events: all;
  transform: scale(1) translateY(0);
}

.nav-panel__mono {
  bottom: -20px;
  pointer-events: none;
  position: absolute;
  right: -20px;
  width: 180px;
  z-index: 0;
}
.nav-panel__mono svg {
  display: block;
  height: auto;
  width: 100%;
}

.nav-panel__list {
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
  position: relative;
  z-index: 1;
}
.nav-panel__item {
  border-bottom: 1px solid rgba(255,255,255,.1);
  overflow: hidden;
  opacity: 0;
  transform: translateY(16px);
  transition:
  opacity   0.45s ease calc(var(--i) * 70ms + 120ms),
  transform 0.55s cubic-bezier(0.25, 1, 0.5, 1) calc(var(--i) * 70ms + 120ms);
}
.nav-panel__item:first-child { border-top: 1px solid rgba(255,255,255,.1); }

.nav-panel.is-open .nav-panel__item {
  opacity: 1;
  transform: translateY(0);
}
.nav-panel__link {
  align-items: center;
  color: #fff;
  display: flex;
  gap: 14px;
  padding: 18px 0;
  position: relative;
  text-decoration: none;
  transition: color 0.2s ease;
}
.nav-panel__link::before {
  color: rgba(255,255,255,.35);
  content: attr(data-label);
  font-family: var(--family--2);
  font-size: 11px;
  letter-spacing: .05em;
  line-height: 1;
  text-transform: uppercase;
  transition: color 0.2s ease;
  flex-shrink: 0;
  width: 24px;
}
.nav-panel__link-inner {
  font-family: var(--family--1);
  font-size: clamp(22px, 5vw, 30px);
  font-weight: 400;
  letter-spacing: -.03em;
  line-height: 1;
}
.nav-panel__link::after {
  content: '↗';
  font-size: 16px;
  margin-left: auto;
  opacity: 0;
  transform: translate(-4px, 4px);
  transition:
    opacity   0.25s ease,
    transform 0.3s  cubic-bezier(0.25, 1, 0.5, 1);
}
.nav-panel__link:hover { color: var(--color--7); }
.nav-panel__link:hover::before { color: var(--color--7); }
.nav-panel__link:hover::after {
  opacity: 1;
  transform: translate(0, 0);
}
.nav-panel__link:focus-visible {
  outline: 2px solid var(--color--2);
  outline-offset: 3px;
  border-radius: 3px;
}

.nav-panel__footer {
  align-items: flex-end;
  display: flex;
  justify-content: flex-start;
  margin-top: 28px;
  opacity: 0;
  position: relative;
  transform: translateY(12px);
  transition:
    opacity   0.4s ease 0.42s,
    transform 0.5s cubic-bezier(0.25, 1, 0.5, 1) 0.42s;
  z-index: 1;
}
.nav-panel.is-open .nav-panel__footer {
  opacity: 1;
  transform: translateY(0);
}
.nav-panel__footer-tag {
  color: rgba(255,255,255,.3);
  font-family: var(--family--2);
  font-size: 11px;
  letter-spacing: .08em;
}
.nav-panel__footer-cta {
  background: var(--color--2);
  border-radius: 100px;
  color: var(--color--3);
  font-family: var(--family--2);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .06em;
  padding: 10px 16px;
  text-decoration: none;
  text-transform: uppercase;
  transition:
    background 0.25s ease,
    transform  0.25s cubic-bezier(0.25, 1, 0.5, 1),
    box-shadow 0.25s ease;
}
.nav-panel__footer-cta:hover {
  background: #d4f55a;
  box-shadow: 0 4px 16px rgba(198, 231, 88, .35);
  transform: translateY(-1px);
}
.nav-panel__footer-cta:focus-visible {
  outline: 2px solid var(--color--2);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .nav-trigger__bar,
  .nav-panel,
  .nav-backdrop,
  .nav-panel__item,
  .nav-panel__footer,
  .nav-panel__link,
  .nav-panel__link::after,
  .nav-panel__footer-cta {
    transition: none !important;
    animation: none !important;
  }
}