
/*!

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxx  xxxxxxxxxxxxxxx   xxxxxxxx
xxxxxxxx    xxxxxxxxxxxxx   xxxxxxxx
xxxxxxxx      xxxxxxxxxxx   xxxxxxxx
xxxxxxxx   x    xxxxxxxxx   xxxxxxxx
xxxxxxxx   xxx    xxxxxxx   xxxxxxxx
xxxx                            xxxx
xxxxxxxx   xxxxxxx    xxx   xxxxxxxx
xxxxxxxx   xxxxxxxxx    x   xxxxxxxx
xxxxxxxx   xxxxxxxxxxx      xxxxxxxx
xxxxxxxx   xxxxxxxxxxxxx    xxxxxxxx
xxxxxxxx   xxxxxxxxxxxxxxx  xxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Website for Kuester & Partner

Code by foxacid / Negative (c) 2025

We are looking for developers - get in touch!
https://negativelabs.com

*/

@charset "UTF-8";
/* Functions */
/* Libs */
/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark

MODIFIED BY FOXACID/NEGATIVE
*/
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: inherit;
}

b,
strong {
	font-weight: 500;
}

body {
	line-height: 1;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
	display: block;
}

ul {
	list-style: none;
}

blockquote,
q {
	quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
	content: "";
	content: none;
}

a {
	margin: 0;
	padding: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}

/* change colours to suit your needs */
ins {
	background-color: #ff9;
	color: #000;
	text-decoration: none;
}

/* change colours to suit your needs */
mark {
	background-color: #ff9;
	color: #000;
	font-style: italic;
	font-weight: bold;
}

del {
	text-decoration: line-through;
}

abbr[title],
dfn[title] {
	border-bottom: 1px dotted;
	cursor: help;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

/* change border colour to suit your needs */
hr {
	display: block;
	height: 1px;
	border: 0;
	border-top: 1px solid #cccccc;
	margin: 1em 0;
	padding: 0;
}

input,
select {
	vertical-align: middle;
}

button {
	border: none;
	margin: 0;
	padding: 0;
	width: auto;
	background: transparent;
	/* inherit font & color from ancestor */
	color: inherit;
	font: inherit;
	/* Normalize `line-height`. Cannot be changed from `normal` in Firefox 4+. */
	line-height: normal;
	/* Corrects font smoothing for webkit */
	-webkit-font-smoothing: inherit;
	-moz-osx-font-smoothing: inherit;
	/* Corrects inability to style clickable `input` types in iOS */
	-webkit-appearance: none;
}
button:focus {
	outline: 0;
}

/* Variables */
/* Typefaces */
/* Font weights */
/* none or block */
/* GENERIC TRANSITIONS */
/* NAV TRANSITIONS */
/* BTN TRANSITIONS */
/* IMAGE TRANSITIONS */
/* THEME BG TRANSITION */
:root {
	--color-brand-primary: rgb(246, 229, 28);
	--color-black: rgb(16, 22, 24);
	/* color contrasts */
	--color-contrast-lowest: rgb(240, 240, 240);
	--color-contrast-lower: rgb(200, 200, 200);
	--color-contrast-low: rgb(150, 150, 150);
	--color-contrast-medium: rgb(128, 128, 128);
	--color-contrast-high: rgb(80, 80, 80);
	--color-contrast-highest: rgb(16, 22, 24);
	--color-bg: rgb(255, 255, 255);
	/* cards */
	--color-card-bg: rgb(242, 242, 242);
	/* layout */
	--border-radius-image: 8px;
	--border-radius-card: 12px;
	--paragraph-max-width: 38ch;
	/* spacing */
	--gutter: 20px;
	--gutter-outer: 36px;
	--padding-header: 32px;
	--space-section: 144px;
	--space-96: 96px;
	--space-72: 72px;
	--space-48: 48px;
	--space-36: 36px;
	--space-24: 24px;
	--space-18: 18px;
	--space-12: 12px;
}
@media (max-width: 480px) {
	:root {
		--gutter: 24px;
		--gutter-outer: 24px;
		--space-section: 96px;
	}
}

[data-theme] {
	color: var(--color-contrast-medium);
}

[data-theme=dark] {
	/* color contrasts */
	--color-contrast-lowest: rgba(255, 255, 255, 0.08);
	--color-contrast-lower: rgb(55, 55, 55);
	--color-contrast-low: rgba(255, 255, 255, 0.3);
	--color-contrast-medium: rgba(255, 255, 255, 0.6);
	--color-contrast-high: rgba(255, 255, 255, 0.8);
	--color-contrast-highest: rgb(255, 255, 255);
	--color-bg: rgb(16, 22, 24);
	/* cards */
	--color-card-bg: rgba(16, 22, 24);
}

/* Grid */
/* Typography */
/*

USAGE

// Single property
 html {
   @include fluid-type(font-size, 320px, 1366px, 14px, 18px);
 }

// Multiple properties with same values
 h1 {
   @include fluid-type(padding-bottom padding-top, 20em, 70em, 2em, 4em);
 }

*/
@font-face {
	font-family: "Rufina";
	font-display: swap;
	font-style: normal;
	font-weight: 400;
	src: url("../fonts/rufina-v15-latin-regular.woff2") format("woff2");
}
@font-face {
	font-family: "Inter";
	font-display: swap;
	font-style: normal;
	font-weight: 300;
	src: url("../fonts/Inter-Light.woff2") format("woff2");
}
@font-face {
	font-family: "Inter";
	font-display: swap;
	font-style: normal;
	font-weight: 400;
	src: url("../fonts/Inter-Regular.woff2") format("woff2");
}
/*
    __  ____      _
   /  |/  (_)  __(_)___  _____
  / /|_/ / / |/_/ / __ \/ ___/
 / /  / / />  </ / / / (__  )
/_/  /_/_/_/|_/_/_/ /_/____/

*/
/* Graphics */
/* Layout */
/*
   ______                                             __
  / ____/___  ____ ___  ____  ____  ____  ___  ____  / /______
 / /   / __ \/ __ `__ \/ __ \/ __ \/ __ \/ _ \/ __ \/ __/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ / / / /  __/ / / / /_(__  )
\____/\____/_/ /_/ /_/ .___/\____/_/ /_/\___/_/ /_/\__/____/
                    /_/
*/
/* Animation */
@keyframes scaleIn {
	0% {
		transform: scale(0.8);
		opacity: 0;
	}
	100% {
		transform: scale(1);
		opacity: 1;
	}
}
@keyframes pulsate {
	0% {
		transform: scale(1);
	}
	50% {
		transform: scale(1.05);
	}
	100% {
		transform: scale(1);
	}
}
@keyframes slideInFromLeft {
	0% {
		transform: translateX(-9.6rem);
	}
	50% {
		opacity: 1;
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}
@keyframes slideInFromRight {
	0% {
		transform: translateX(9.6rem);
		opacity: 0;
	}
	50% {
		opacity: 1;
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}
@keyframes slideInFromBottom {
	0% {
		transform: translateY(12rem);
		opacity: 0;
	}
	50% {
		opacity: 1;
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}
@keyframes slideInFromTop {
	0% {
		transform: translateY(-36px);
		opacity: 0;
	}
	50% {
		opacity: 1;
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}
@keyframes rotate {
	from {
		transform: scale(0.8) rotate(0deg) translate(2%) rotate(0deg);
	}
	to {
		transform: scale(0.8) rotate(360deg) translate(2%) rotate(-360deg);
	}
}
@keyframes rotateCcw {
	from {
		transform: scale(0.8) rotate(0deg) translate(2%) rotate(0deg);
	}
	to {
		transform: scale(0.8) rotate(-360deg) translate(2%) rotate(360deg);
	}
}
@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}
/* Base */
* {
	box-sizing: border-box;
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
}

:root {
	font-size: 10px;
	font-size: min(max(3px, 1vw), 10px);
	font-size: clamp(3px, 1vw, 10px);
}

html {
	background: var(--color-bg);
	scroll-behavior: smooth;
}

body {
	font-size: 22px;
	line-height: 1.4;
	font-family: "Inter Variable", "Inter", "Manrope", "Noto Sans", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
	font-weight: 300;
	letter-spacing: -0.01em;
	background-color: var(--color-bg);
	color: var(--color-contrast-medium);
}
@media (min-width: 480px) {
	body {
		font-size: calc(22px + (6) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	body {
		font-size: 28px;
	}
}

img,
video {
	width: 100%;
	height: auto;
	display: block;
}

a {
	text-decoration: underline;
	color: inherit;
	transition: color 200ms;
}
a:hover, a:focus, a:active, a[href^="tel:"] {
	text-decoration: none;
}

em {
	font-style: italic;
}

svg {
	fill: currentColor;
}

.is-hidden {
	visibility: hidden;
}

.is-visually-hidden {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(100%);
	height: 1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.body {
	display: flex;
	min-height: 100vh;
	flex-direction: column;
}
.body--news, .body--newspost {
	background: radial-gradient(circle at 50% -35vw, var(--color-brand-primary) 35vw, rgba(255, 255, 0, 0) 45vw);
	position: relative;
	top: 0;
}
html.no-scroll .body {
	overflow: hidden;
}

.header {
	padding: max(var(--gutter-outer), 4.1666666667vw);
	color: var(--color-contrast-highest);
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	background: transparent;
}
.header .btn {
	align-self: flex-end;
}
.body--home .header {
	position: fixed;
	z-index: 2;
}
.body--career .header {
	position: absolute;
	z-index: 3;
}

.back-to-top {
	position: fixed;
	margin: max(var(--gutter-outer), 4.1666666667vw);
	top: 0;
	left: 0;
	z-index: 5;
	display: none;
	transform: translateX(-50%);
}
.back-to-top[data-visible=true] {
	display: block;
}
.back-to-top svg {
	width: 54px;
	height: 54px;
}
.back-to-top polygon {
	fill: #222;
}
@media (max-width: 1080px) {
	.back-to-top {
		display: none !important;
	}
}

.logo {
	display: block;
}
.logo svg {
	height: 24px;
	display: block;
}

.menu {
	display: inline-block;
	vertical-align: middle;
}
.menu__item {
	margin-left: 1.5em;
	display: inline-block;
	font-size: 18px;
	line-height: 1.4;
	font-weight: 400;
	color: var(--color-contrast-medium);
	vertical-align: middle;
}
@media (min-width: 480px) {
	.menu__item {
		font-size: calc(18px + (4) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.menu__item {
		font-size: 22px;
	}
}
.menu__item a {
	text-decoration: none;
	color: var(--color-contrast-medium);
}
.menu__item a:hover {
	text-decoration: underline;
}
.menu__item a.is-active {
	color: var(--color-contrast-highest);
}
.menu__item a.is-active:hover {
	text-decoration: none;
}

.menu-languages {
	text-transform: uppercase;
	border: 1px solid var(--color-contrast-lower);
	border-radius: 8px;
	display: flex;
	overflow: hidden;
	flex-shrink: 0;
	max-width: fit-content;
	order: 2;
}
.menu-languages--header {
	position: fixed;
	bottom: 0;
	right: 0;
	margin: 4.1666666667vw;
}
@media (max-width: 1080px) {
	.menu-languages--header {
		margin: 8.3333333333vw;
	}
}
.menu-languages--footer {
	align-self: flex-end;
}
@media (min-width: 1081px) and (max-width: 1440px) {
	.menu-languages--footer {
		margin-bottom: var(--space-24);
	}
}
@media (max-width: 768px) {
	.menu-languages--footer {
		margin-bottom: var(--space-24);
	}
}
.menu-languages abbr {
	text-decoration: none;
	border: none;
}
.menu-languages abbr:hover {
	cursor: default;
}
.menu-languages__item {
	font-size: 16px;
	line-height: 1.25;
	font-weight: 400;
	border-right: 1px solid var(--color-contrast-lower);
}
@media (min-width: 480px) {
	.menu-languages__item {
		font-size: calc(16px + (0) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.menu-languages__item {
		font-size: 16px;
	}
}
.menu-languages__item:last-child {
	border-right: none;
}
.menu-languages__item a {
	display: block;
	line-height: 2em;
	padding: 0 1.25em;
	text-decoration: none;
	color: var(--color-contrast-medium);
}
.menu-languages__item a:not(.is-active):hover {
	background: var(--color-contrast-lowest);
}
.menu-languages__item a.is-active {
	color: var(--color-contrast-highest);
}
.menu-languages__item a.is-active:hover {
	color: var(--color-contrast-highest);
}

.menu-legal {
	align-self: flex-end;
	vertical-align: middle;
}
.menu-legal__item {
	display: inline-block;
	font-size: 13px;
	line-height: 1.25;
	font-weight: 400;
}
@media (min-width: 480px) {
	.menu-legal__item {
		font-size: calc(13px + (0) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.menu-legal__item {
		font-size: 13px;
	}
}
.menu-legal__item a {
	white-space: nowrap;
	text-decoration: none;
	color: var(--color-contrast-medium);
	display: block;
	margin-right: 2em;
}
.menu-legal__item a:hover {
	color: var(--color-contrast-highest);
}
@media (max-width: 480px) {
	.menu-legal {
		margin: var(--space-72) 0 var(--space-48);
	}
	.menu-legal__item {
		display: block;
	}
	.menu-legal__item a {
		padding: 0.25em 0;
	}
}

header[data-theme=dark] .nav-main {
	position: relative;
	vertical-align: middle;
}
header[data-theme=dark] .nav-main:after {
	box-shadow: 0 0 100px 40px rgba(0, 0, 0, 0.25);
	display: block;
	content: "";
	position: absolute;
	width: 100%;
	z-index: -1;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.nav-footer {
	padding: var(--space-24) 4.1666666667vw 4.1666666667vw;
	width: 100%;
	text-transform: uppercase;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
@media (max-width: 1440px) {
	.nav-footer {
		display: block;
		padding: var(--space-24) 8.3333333333vw 8.3333333333vw;
	}
}
@media (max-width: 1080px) {
	.nav-footer {
		display: flex;
		padding: var(--space-24) 8.3333333333vw 8.3333333333vw;
	}
}
@media (max-width: 768px) {
	.nav-footer {
		display: block;
	}
}

.nav-onpage {
	position: fixed;
	bottom: 0;
	left: 0;
	flex: 0;
	padding: 4.1666666667vw;
	margin: 0;
	font-size: 32px;
	line-height: 1.875;
}
.nav-onpage a {
	text-decoration: none;
}
.nav-onpage a:hover {
	text-decoration: underline;
}
@media (max-width: 1080px) {
	.nav-onpage {
		padding: 8.3333333333vw;
		font-size: 24px;
	}
}
@media (max-width: 480px) {
	.nav-onpage {
		display: none;
	}
}

.main {
	background: white;
	position: relative;
	z-index: 2;
}
.body--home .main {
	top: 150vh;
}
.body--home.no-skrollr .main {
	top: 100vh;
}
.main__figure {
	display: grid;
	gap: 0;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	align-items: start;
}

html,
.body {
	height: 100%;
}

.p--intro {
	max-width: none;
}
.p--specials-text {
	margin: 48px 0;
}

.image.lazy {
	opacity: 0;
	transition: opacity 300ms ease-in, transform 300ms ease-out;
}
.image.lazyloaded {
	opacity: 1;
}
.image--s {
	grid-column: span 3;
}
.image--m {
	grid-column: span 5;
}
.image--l {
	grid-column: span 7;
}
.image--xl {
	grid-column: 2/-2;
}
.image--full {
	grid-column: 1/-1;
}
.image--end {
	grid-column-end: -1;
}
.image--bottom {
	align-self: end;
}
@media (max-width: 1080px) {
	.image--s {
		grid-column: span 5;
	}
}
@media (max-width: 768px) {
	.image--s {
		grid-column: span 6;
	}
	.image--m {
		grid-column: span 8;
	}
	.image--l {
		grid-column: span 10;
	}
	.image--xl {
		grid-column: 1/-1;
	}
}
@media (max-width: 480px) {
	.image--s {
		grid-column: span 6;
	}
	.image--m {
		grid-column: span 8;
	}
	.image--l {
		grid-column: span 10;
	}
	.image--xl {
		grid-column: 1/-1;
	}
}

.btn {
	font-size: 16px;
	line-height: 1.25;
	font-weight: 400;
	text-decoration: none;
	padding: 1.25em 6em;
	line-height: 1.25em;
	display: inline-block;
	background: transparent;
	color: var(--color-contrast-highest);
	cursor: pointer;
	white-space: nowrap;
	border: 1px solid var(--color-contrast-highest);
	text-decoration: none !important;
}
.btn-bar {
	margin-top: var(--space-96);
}
@media (min-width: 480px) {
	.btn {
		font-size: calc(16px + (0) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.btn {
		font-size: 16px;
	}
}
.btn a {
	text-decoration: none;
}
.btn--career {
	color: var(--color-black);
	border-radius: 666px;
	padding: 0 12px;
	line-height: 48px;
	border-color: #999;
	letter-spacing: 0;
}
.btn--filled {
	background-color: var(--color-bg);
}
.btn--round {
	border-radius: 666px;
	padding: 1em 2em;
	border-color: rgba(255, 255, 255, 0.5);
}

.link--small {
	font-size: 18px;
	line-height: 1.4;
	font-weight: 400;
	color: var(--color-contrast-highest);
}
@media (min-width: 480px) {
	.link--small {
		font-size: calc(18px + (4) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.link--small {
		font-size: 22px;
	}
}

.image-mask {
	grid-column: 1/-1;
	grid-row: 1/-1;
	border-radius: var(--border-radius-image);
	position: relative;
	z-index: 0;
	overflow: hidden;
	height: 100%;
}
.image-mask--half {
	grid-column: span 6/-1;
	grid-row: span 2;
}
.image-mask img {
	object-fit: cover;
	width: 100%;
	height: 100%;
	border-radius: 0;
}
@media (max-width: 768px) {
	.image-mask--half {
		grid-column: 1/-1;
	}
}
@media (max-width: 480px) {
	.image-mask:not(.image-mask--half) {
		border-radius: 0;
	}
}

.hero {
	background: var(--color-contrast-highest);
	height: 100vh;
	width: 100%;
	position: fixed;
	top: 0;
}
.hero__diamond {
	width: 33.333%;
	max-width: 720px;
	min-width: 240px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: center;
}
.hero__diamond svg polygon {
	fill: white;
}
.hero__claim {
	font-family: "Rufina", "Libre Baskerville", Helvetica, Arial, "Lucida Grande", sans-serif;
	font-size: 48px;
	line-height: 1.1;
	max-width: 20ch;
	width: 100%;
	padding: 0 2ch;
	color: white;
	background: transparent;
	text-align: center;
	position: fixed;
	transform: translate(-50%, -50%);
	top: 50%;
	left: 50%;
	z-index: 1;
	opacity: 0;
}
@media (min-width: 480px) {
	.hero__claim {
		font-size: calc(48px + (36) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.hero__claim {
		font-size: 84px;
	}
}
.hero__claim h1 {
	font-weight: 400;
}
@media (max-width: 480px) {
	.hero__claim {
		padding: 0 1ch;
	}
}
.no-skrollr .hero__diamond {
	opacity: 0.2 !important;
}
.no-skrollr .hero__claim {
	position: relative;
	opacity: 1 !important;
}

.header-banner {
	position: relative;
	z-index: 0;
	height: 90vh;
	overflow: hidden;
}
.header-banner .image {
	object-position: center;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.header-banner h1 {
	position: absolute;
	z-index: 1;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.heading-page {
	font-family: "Rufina", "Libre Baskerville", Helvetica, Arial, "Lucida Grande", sans-serif;
	font-weight: 400;
	color: var(--color-contrast-highest);
	font-size: 36px;
	line-height: 1.2;
	max-width: 24ch;
}
@media (min-width: 480px) {
	.heading-page {
		font-size: calc(36px + (8) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.heading-page {
		font-size: 44px;
	}
}
.heading-page--hero {
	font-size: 48px;
	line-height: 1.1;
	text-align: center;
	max-width: 18ch;
}
@media (min-width: 480px) {
	.heading-page--hero {
		font-size: calc(48px + (36) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.heading-page--hero {
		font-size: 84px;
	}
}
@media (max-width: 480px) {
	.heading-page--hero {
		font-size: 36px;
	}
}

.heading-section--small {
	font-size: 18px;
	line-height: 1.4;
	margin-bottom: var(--space-48);
	font-weight: 400;
}
@media (min-width: 480px) {
	.heading-section--small {
		font-size: calc(18px + (4) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.heading-section--small {
		font-size: 22px;
	}
}
.heading-section--large {
	font-size: 48px;
	line-height: 1.1;
	font-family: "Rufina", "Libre Baskerville", Helvetica, Arial, "Lucida Grande", sans-serif;
	font-weight: 400;
	color: var(--color-contrast-highest);
	margin-bottom: 1em;
}
@media (min-width: 480px) {
	.heading-section--large {
		font-size: calc(48px + (36) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.heading-section--large {
		font-size: 84px;
	}
}

.lead-in {
	font-family: "Rufina", "Libre Baskerville", Helvetica, Arial, "Lucida Grande", sans-serif;
	color: var(--color-contrast-highest);
	font-size: 36px;
	line-height: 1.2;
	margin-bottom: 1.25em;
}
@media (min-width: 480px) {
	.lead-in {
		font-size: calc(36px + (8) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.lead-in {
		font-size: 44px;
	}
}
.lead-in--xxxl {
	font-size: 48px;
	line-height: 1.1;
}
@media (min-width: 480px) {
	.lead-in--xxxl {
		font-size: calc(48px + (36) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.lead-in--xxxl {
		font-size: 84px;
	}
}
.lead-in--short {
	max-width: 18ch;
}

.section {
	padding-top: var(--space-section);
	position: relative;
	display: grid;
	gap: 0;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	align-items: start;
	background: var(--color-bg);
}
.section--pad-top-0 {
	padding-top: 0;
}
.section--team {
	width: 100%;
	padding-bottom: 8.3333333333vw;
}
.section--cta {
	padding-bottom: var(--space-section);
}
.section__text {
	grid-column: 4/-4;
	padding-bottom: var(--space-section);
	max-width: 48ch;
	margin: 0 auto;
}
.section__text p:not(.lead-in) {
	margin-bottom: 25.2px;
}
.section__text aside {
	font-size: 18px;
	line-height: 1.4;
	font-weight: 400;
	max-width: 48ch;
}
@media (min-width: 480px) {
	.section__text aside {
		font-size: calc(18px + (4) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.section__text aside {
		font-size: 22px;
	}
}
@media (min-width: 1921px) {
	.section__text {
		margin: 0 auto;
	}
}
@media (max-width: 1080px) {
	.section__text {
		grid-column: 2/-2;
	}
}

.banner {
	grid-column: 1/-1;
	width: 100%;
	display: grid;
	gap: 0;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	align-items: start;
	position: relative;
	z-index: 0;
	overflow: hidden;
	height: 90vh;
	text-align: right;
}
.banner__slim {
	height: 90vh;
}
.banner .image {
	grid-row: 1;
	object-fit: cover;
	object-position: center;
	width: 100%;
	height: 100%;
}
.banner__text {
	grid-column: 1/-1;
	grid-row: 1;
	align-self: center;
	font-size: 96px;
	line-height: 1;
	font-family: "Rufina", "Libre Baskerville", Helvetica, Arial, "Lucida Grande", sans-serif;
	font-weight: 400;
	color: var(--color-contrast-highest);
	margin: 0 auto;
	padding: 0 1ch;
	position: relative;
	z-index: 1;
}
@media (min-width: 480px) {
	.banner__text {
		font-size: calc(96px + (96) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.banner__text {
		font-size: 192px;
	}
}
.banner__text--right {
	grid-column-end: -3;
	text-align: right;
	padding: 0;
	margin: 0;
	display: block;
}
@media (max-width: 768px) {
	.banner__text--right {
		grid-column: 1/-1;
		font-size: 18vw;
		text-align: center;
	}
}
.banner__heading {
	text-align: center;
	font-family: "Rufina", "Libre Baskerville", Helvetica, Arial, "Lucida Grande", sans-serif;
	font-weight: 400;
	color: var(--color-contrast-highest);
	font-size: 48px;
	line-height: 1.1;
	max-width: 18ch;
	margin: 0 auto;
}
@media (min-width: 480px) {
	.banner__heading {
		font-size: calc(48px + (36) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.banner__heading {
		font-size: 84px;
	}
}

.portrait {
	grid-column: span 6;
	padding: 8.3333333333vw;
	padding-bottom: 0;
	top: -8.3333333333vw;
	position: relative;
	z-index: 2;
	background-color: var(--color-bg);
	font-size: 18px;
	line-height: 1.4;
	font-weight: 400;
}
@media (min-width: 480px) {
	.portrait {
		font-size: calc(18px + (4) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.portrait {
		font-size: 22px;
	}
}
.portrait:nth-of-type(2n) {
	top: 0;
}
.portrait .image {
	margin-bottom: var(--space-36);
}
.portrait h3 {
	color: var(--color-contrast-high);
}
.portrait--ceo {
	align-self: stretch;
	padding-right: 8.3333333333vw;
	padding-bottom: 8.3333333333vw;
	flex-basis: 50%;
}
.portrait--ceo .image {
	width: 75%;
	margin-bottom: var(--space-36);
}
.portrait--ceo .text {
	max-width: 54ch;
}
@media (max-width: 1080px) {
	.portrait {
		margin-top: 8.3333333333vw;
	}
	.portrait--ceo {
		grid-column: 1/-1;
		top: 0;
		margin: 0;
		padding-bottom: 16.6666666667vw;
	}
	.portrait--ceo:nth-of-type(2n) {
		padding-top: 0;
	}
	.portrait--ceo .image {
		width: 50%;
		top: 0;
	}
}
@media (max-width: 480px) {
	.portrait {
		grid-column: 1/-1;
	}
	.portrait--ceo .image {
		width: 100%;
	}
}

.article {
	padding-top: var(--space-section);
	padding-bottom: var(--space-section);
	max-width: 1440px;
	margin: 0 auto;
	position: relative;
	display: grid;
	gap: 0;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	align-items: start;
	background: var(--color-bg);
}
.article__header {
	margin-bottom: 7.2rem;
	font-size: 18px;
	line-height: 1.4;
	font-weight: 400;
}
@media (min-width: 480px) {
	.article__header {
		font-size: calc(18px + (4) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.article__header {
		font-size: 22px;
	}
}
.article__text {
	grid-column: 4/-4;
	padding-bottom: var(--space-section);
	max-width: 48ch;
	margin: 0 auto;
}
.article__text:last-child {
	padding-bottom: 0;
}
.article__text p {
	margin-bottom: 25.2px;
}
@media (max-width: 1080px) {
	.article__text {
		grid-column: 2/-2;
	}
}
.article__blocks {
	font-size: 18px;
	line-height: 1.4;
	font-weight: 400;
}
@media (min-width: 480px) {
	.article__blocks {
		font-size: calc(18px + (4) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.article__blocks {
		font-size: 22px;
	}
}
.article__blocks p {
	margin-bottom: 25.2px;
	font-weight: 400;
}
.article__cta {
	margin: var(--space-72) 0 0;
}
.article__cta p {
	font-size: 16px;
	line-height: 1.25;
	font-weight: 400;
	max-width: 32ch;
	margin-top: var(--space-36);
}
@media (min-width: 480px) {
	.article__cta p {
		font-size: calc(16px + (0) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.article__cta p {
		font-size: 16px;
	}
}

.block strong {
	font-weight: 500;
}
.block--text {
	margin-bottom: 25.2px;
}
.block--quote {
	grid-column: 3/span 8;
	font-size: 30px;
	line-height: 1.25;
	padding: 75px 0;
}
@media (min-width: 480px) {
	.block--quote {
		font-size: calc(30px + (6) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.block--quote {
		font-size: 36px;
	}
}
.block--quote footer {
	font-size: 13px;
	line-height: 1.25;
	margin-top: 12px;
}
@media (min-width: 480px) {
	.block--quote footer {
		font-size: calc(13px + (0) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.block--quote footer {
		font-size: 13px;
	}
}
.block--text + .block--quote {
	margin-top: -25.2px;
}
@media (max-width: 768px) {
	.block--quote {
		grid-column: 1/-1;
	}
}
.block--h2 {
	font-size: 22px;
	line-height: 1.4;
	font-family: "Rufina", "Libre Baskerville", Helvetica, Arial, "Lucida Grande", sans-serif;
	font-weight: 400;
	color: var(--color-contrast-highest);
	margin-top: 61.6px;
	margin-bottom: 30.8px;
}
@media (min-width: 480px) {
	.block--h2 {
		font-size: calc(22px + (6) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.block--h2 {
		font-size: 28px;
	}
}
.block--h2, .block--h3 {
	font-weight: 500;
	max-width: 24ch;
}
.block--list ol,
.block--list ul {
	list-style: none;
	font-weight: 400;
}
.block--list li {
	position: relative;
	padding-left: 1.25em;
}
.block--list li:before {
	position: absolute;
	left: 0;
}
.block--list ol {
	counter-reset: my-counter;
}
.block--list ol li {
	counter-increment: my-counter;
}
.block--list ol li:before {
	content: counter(my-counter) ".";
}
.block--list ul {
	margin-bottom: 50.4px;
}
.block--list ul li:before {
	content: "–";
}
.block--video {
	margin: 7.2rem 0 9.6rem;
	grid-column: span 8/-3;
}
.block--video__wrapper {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
}
.block--video iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
@media (max-width: 768px) {
	.block--video {
		grid-column: 1/-1;
	}
}
.block--image {
	margin: 7.2rem 0 9.6rem;
	grid-column: 3/span 8;
}
@media (max-width: 1079px) {
	.block--image {
		grid-column: span 10/-1;
	}
}
.block--gallery {
	margin: 7.2rem 0 9.6rem;
	grid-column: 1/-1;
	position: relative;
	display: grid;
	gap: 0;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
	gap: var(--gutter);
}
@media (max-width: 479px) {
	.block--gallery {
		display: block;
	}
	.block--gallery figure:first-of-type {
		padding: 0;
		margin-bottom: 24px;
	}
	.block--gallery figure:last-of-type {
		padding: 0;
	}
}

.job-listing {
	margin-bottom: var(--space-72);
}
.job-listing__link {
	display: block;
	border-bottom: 1px solid var(--color-contrast-lower);
	padding: 1em 0;
	text-decoration: none;
	color: var(--color-contrast-highest);
}
.job-listing__link:hover {
	color: var(--color-contrast-medium);
}
.job-listing__btns {
	margin-top: 48px;
}

.ngtv-credit {
	text-decoration: none;
	white-space: nowrap;
	vertical-align: middle;
	display: inline-block;
}
.ngtv-credit__strike {
	position: relative;
	display: inline-block;
	width: 2ch;
	text-align: center;
}
.ngtv-credit__strike:after {
	content: "";
	border-bottom: 1px solid var(--color-contrast-low);
	position: absolute;
	display: block;
	top: 50%;
	left: 0;
	margin-top: -0.5px;
	width: 100%;
}
.ngtv-credit:hover {
	color: inherit;
}
.ngtv-credit:hover .ngtv-credit__strike:after {
	border-color: inherit;
}

.footer {
	background: white;
	position: relative;
	z-index: 5;
	display: flex;
}
.body--home .footer {
	top: 150vh;
}
.body--home.no-skrollr .footer {
	top: 100vh;
}
.footer__map {
	flex-basis: 50%;
	position: relative;
}
.footer__map .image {
	object-fit: cover;
	width: 100%;
	height: 100%;
}
.footer__map .google-credit {
	position: absolute;
	bottom: 6px;
	right: 24px;
	color: #999;
	font-size: 0.75em;
	z-index: 1;
	font-size: 13px;
	line-height: 1.25;
}
@media (min-width: 480px) {
	.footer__map .google-credit {
		font-size: calc(13px + (0) * (100vw - 480px) / 960);
	}
}
@media (min-width: 1440px) {
	.footer__map .google-credit {
		font-size: 13px;
	}
}
.footer__map .google-logo {
	position: absolute;
	bottom: 9px;
	left: 1em;
	z-index: 1;
	width: auto;
	opacity: 0.5;
}
.footer__contact {
	flex-basis: 50%;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	margin-top: -8.3333333333vw;
	position: relative;
	z-index: 2;
	background: var(--color-bg);
}
.footer__contact p {
	margin-bottom: 30.8px;
	color: var(--color-contrast-highest);
}
.footer .footer-address {
	flex-grow: 1;
	margin: 8.3333333333vw;
}
.footer .footer-address a {
	white-space: nowrap;
	text-decoration: none;
	color: var(--color-contrast-medium);
}
.footer .footer-address a:hover {
	color: var(--color-contrast-highest);
}
.footer .footer-address a[href^="tel:"] {
	color: var(--color-contrast-highest);
}
@media (max-width: 1080px) {
	.footer {
		display: block;
	}
	.footer__map {
		display: none;
	}
}

.rbb-logo {
	margin-bottom: var(--space-72);
}
.rbb-logo svg {
	display: inline-block;
	max-width: 128px;
}

.footer-credits {
	font-size: 12px;
	font-weight: 500;
	text-align: center;
	background: #C1C2C2;
	height: 40px;
	vertical-align: middle;
	display: flex;
	align-items: center;
	justify-content: center;
}
.footer-credits a {
	color: #ffffff;
	text-decoration: none;
}
.footer-credits svg {
	height: 24px;
	vertical-align: middle;
	margin-left: 10px;
}
.footer-credits svg path,
.footer-credits svg rect,
.footer-credits svg polygon {
	fill: var(--color-bg);
}