/* ========================================
   Fonts
======================================== */

/* inter-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/inter-v20-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-500 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  src: url('../fonts/inter-v20-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}



/* ========================================
   Root Variablen
======================================== */

:root {
    --color-primary: #111;
    --color-primary-hover: #242323;
    --color-secondary: #626262;
    --color-secondary-hover: #393838;
    --color-text: #626262;
    --color-text-secondary: #555;
	--color-headlines: #111;
    --color-white: #fff;
    --color-grey: #f5f5f5;

    --font-std: "Inter", sans-serif;
    --font-weight-text: 400;
    --font-weight-medium: 500;
    --font-weight-headline: 500;

    --ease-standard: cubic-bezier(0.22, 0.61, 0.36, 1);
    --transition-standard: 0.35s var(--ease-standard);

	--text-hero-title: clamp(2.75rem, 5vw, 6rem);
	--text-hero: clamp(1.125rem, 1rem + 0.5vw, 1.25rem);
	--text-headline: clamp(2rem, 1.5rem + 2.5vw, 3.5rem);
	--text-base: clamp(1rem, 0.875rem + 0.5vw, 1.125rem);
	--text-pill: clamp(0.875rem, 0.8125rem + 0.25vw, 1rem);
	--text-box: clamp(1.125rem, 1rem + 0.5vw, 1.25rem);
	--leading-hero-title: 1.1;
	--leading-hero: 1.2;
	--leading-headline: 1;
	--leading-text: 1.35;
	--tracking-hero-title: -0.03em;
	--tracking-hero: 0.004em;
	--tracking-headline: -0.02em;
	--tracking-text: 0;
	--tracking-pill: -0.02em;
	--tracking-box: 0.01em;
	--content-padding: 3%;

	--text-fact: clamp(2rem, 1.5rem + 1.5vw, 2.75rem);
	--section-spacing: clamp(4rem, 6.5vw, 8rem);
	--color-border: #d8d8d8;
	--radius-card: 0.875rem;
	--image-saturation: 0.3;

	--color-overlay: #111;
	--color-overlay-muted: #b8b8b8;
	--color-overlay-field: #111;
	--color-overlay-border: #555;
	--text-contact: clamp(1.5rem, 2.2vw, 2.75rem);

	--text-footer-claim: clamp(1.5rem, 1.1rem + 1vw, 2rem);
}

/* ========================================
   Reset / Base
======================================== */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    overflow-x: hidden;
	scrollbar-gutter: stable;
}

body {
    background-color: var(--color-white);
    color: var(--color-text);
    padding: 0;
    margin: 0;
    font-family: var(--font-std);
    font-weight: var(--font-weight-text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

html.has-open-modal,
body.has-open-modal {
  overflow: hidden;
}

img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
}

img,
video {
    height: auto;
}

button,
input,
textarea,
select {
    font: inherit;
}

button {
    cursor: pointer;
}

a {
    color: inherit;
    text-decoration: none;
}

a,
button {
    transition: background-color var(--transition-standard), color var(--transition-standard),
        transform var(--transition-standard), border-color var(--transition-standard),
        box-shadow var(--transition-standard), opacity var(--transition-standard);
}

p {
  margin: 0;
  font-size: var(--text-base);
  line-height: var(--leading-text);
  letter-spacing: var(--tracking-text);
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  color: var(--color-headlines);
  font-weight: var(--font-weight-headline);
  line-height: var(--leading-headline);
  letter-spacing: var(--tracking-headline);
}

section {
    position: relative;
	padding-block: var(--section-spacing);
}

::selection {
    background-color: var(--color-primary);
    color: var(--color-white);
}

.section__title {
  font-size: var(--text-headline);
}
.hero__title {
  font-size: var(--text-hero-title);
  line-height: var(--leading-hero-title);
  letter-spacing: var(--tracking-hero-title);
}
.hero__content p {
  font-size: var(--text-hero);
  line-height: var(--leading-hero);
  letter-spacing: var(--tracking-hero);
}
.pill {
  font-size: var(--text-pill);
  letter-spacing: var(--tracking-pill);
}
.card p {
  font-size: var(--text-box);
  letter-spacing: var(--tracking-box);
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

.container {
  padding-inline: var(--content-padding);
}

/* ========================================
   Accessibility
======================================== */

.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;
}

:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 4px;
}

.skip-link {
	position: fixed;
	top: 1rem;
	left: var(--content-padding);
	z-index: 1000;
	padding: 0.75rem 1rem;
	background: var(--color-primary);
	color: var(--color-white);
	font-size: var(--text-base);
	transform: translateY(calc(-100% - 2rem));
}
.skip-link:focus {
	transform: translateY(0);
}


.site-header {
	position: absolute;
	inset: 0 0 auto;
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-block: clamp(1.25rem, 2vw, 2rem);
}
.site-header__logo {
	display: block;
	flex-shrink: 0;
	width: clamp(7rem, 10vw, 10.625rem);
}
.site-header__logo img {
	width: 100%;
	height: auto;
}
.contact-nav {
	display: flex;
	align-items: stretch;
	padding: 3px;
	border: 1px solid rgb(17 17 17 / 12%);
	border-radius: 999px;
	background: var(--color-white);
	box-shadow: 0 2px 8px rgb(17 17 17 / 12%);
}
.contact-nav__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
	min-height: 46px;
	padding: 0.625rem 1rem;
	border-radius: 999px;
	color: var(--color-primary);
	line-height: 1.25;
	white-space: nowrap;
}
.contact-nav__link--primary {
	background: var(--color-primary);
	color: var(--color-white);
}
.contact-nav__link svg {
	flex-shrink: 0;
}
.hero {
	isolation: isolate;
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: end;
	min-height: 100svh;
	padding-top: 10rem;
	padding-bottom: clamp(3rem, 14svh, 9rem);
	background: var(--color-primary);
	color: var(--color-white);
}
.hero__image,
.hero::before {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}
.hero__image {
	z-index: -2;
	object-fit: cover;
	object-position: center;
	filter: saturate(var(--image-saturation));
}
.hero::before {
	content: "";
	z-index: -1;
	background: rgb(0 0 0 / 41%);
}
.hero__content {
	grid-column: 2;
	grid-row: 1;
}
.hero__title {
	color: inherit;
}
.hero__content p {
	max-width:  forty;
}
.hero__content p {
	max-width: 40rem;
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
	text-wrap: pretty;
}
.hero__scroll {
	position: absolute;
	left: var(--content-padding);
	bottom: clamp(3rem, 14svh, 9rem);
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.875rem;
	padding-block: 0;
	color: inherit;
	font-size: var(--text-pill);
	line-height: var(--leading-text);
	letter-spacing: var(--tracking-text);
	text-underline-offset: 0.25em;
}
.hero__scroll-line {
	position: relative;
	display: block;
	width: 1px;
	height: 56px;
	overflow: hidden;
}
.hero__scroll-line::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--color-white);
	transform: translateY(-100%);
	animation: scroll-line 2.4s var(--ease-standard) infinite;
}
.site-header__logo:focus-visible,
.hero__scroll:focus-visible {
	outline-color: var(--color-white);
}
.contact-nav__link--primary:focus-visible {
	outline-offset: -4px;
	outline-color: var(--color-white);
}
@media (hover: hover) {
	.contact-nav__link:hover {
		background: #f0f0f0;
	}
	.contact-nav__link--primary:hover {
		background: var(--color-primary-hover);
	}
	.hero__scroll:hover {
		text-decoration: underline;
	}
}
@media (max-width: 47.99rem) {
	.hero {
		grid-template-columns: 1fr;
		gap: 2rem;
		align-content: end;
		padding-top: 9rem;
		padding-bottom: 2rem;
	}
	.hero__content {
		grid-column: 1;
	}
	.hero__scroll {
		grid-row: 2;
		bottom:2rem
	}
}
@media (max-width: 29.99rem) {
	.site-header__logo {
		width: 5.5rem;
	}
	.contact-nav__link {
		gap: 0.375rem;
		padding-inline: 0.625rem;
	}
	.contact-nav__link svg {
		width: 16px;
		height: 16px;
	}
}
@keyframes scroll-line {
	0% {
		transform: translateY(-100%);
		opacity: 0;
	}
	15% {
		opacity: 1;
	}
	75% {
		opacity: 1;
	}
	100% {
		transform: translateY(100%);
		opacity: 0;
	}
}
@media (max-width: 47.99rem) {
	.hero {
		padding-bottom: 10rem;
	}
}
@media (prefers-reduced-motion: reduce) {
	.hero__scroll-line::after {
		animation: none;
		transform: scaleY(0.4);
		transform-origin: top;
	}
}

.section__intro {
	display: grid;
	grid-template-columns: 1.65fr 1fr;
	align-items: end;
	gap: clamp(2rem, 5vw, 6rem);
	margin-bottom: clamp(2rem, 3.5vw, 4rem);
}
.section__intro .section__title {
	margin-top: 0.875rem;
}
.section__intro > p {
	max-width: 36rem;
	justify-self: end;
	text-align: right;
}
.pill--status {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	padding: 0.5rem 0.875rem;
	border: 1px solid var(--color-border);
	border-radius: 999px;
	color: var(--color-text);
	line-height: 1.3;
}
.pill__dot {
	display: block;
	flex: 0 0 auto;
	width: 0.75rem;
	height: 0.75rem;
	border-radius: 50%;
	background: var(--color-primary);
}
.pill.is-in-view .pill__dot {
	animation: pill-pulse 2.8s ease-in-out infinite;
}
.facts {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem;
}
.fact {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: clamp(1.25rem, 1.3vw, 1.75rem);
	border-radius: var(--radius-card);
	background: var(--color-grey);
}
.fact__icon {
	display: grid;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	margin-bottom: 1.5rem;
	border: 1px solid var(--color-border);
	border-radius: 0.5rem;
	background: var(--color-white);
	color: var(--color-primary);
}
.fact__value {
	color: var(--color-headlines);
	font-size: var(--text-fact);
	font-weight: var(--font-weight-medium);
	line-height: 1.1;
	letter-spacing: var(--tracking-headline);
	font-variant-numeric: tabular-nums;
}
.fact__title {
	margin-top: 1rem;
	margin-bottom: 1.75rem;
	font-size: var(--text-box);
	line-height: var(--leading-text);
	letter-spacing: var(--tracking-box);
}
.fact p {
	margin-top: auto;
	font-size: var(--text-pill);
	line-height: 1.55;
	letter-spacing: var(--tracking-text);
}
@keyframes pill-pulse {
	0%, 100% {
		transform: scale(1);
		opacity: 1;
	}
	50% {
		transform: scale(0.85);
		opacity: 0.65;
	}
}
@media (max-width: 63.99rem) {
	.section__intro {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
	.section__intro > p {
		justify-self: start;
		text-align: left;
	}
}
@media (max-width: 47.99rem) {
	.facts {
		grid-template-columns: 1fr;
	}
}
@media (prefers-reduced-motion: reduce) {
	.pill.is-in-view .pill__dot {
		animation: none;
	}
}
.section__intro--center {
	grid-template-columns: 1fr;
	justify-items: center;
	gap: 1.75rem;
	text-align: center;
}
.section__intro--center > p {
	max-width: 54rem;
	justify-self: center;
	text-align: center;
}
.section__intro--center .section__title > span {
	display: block;
	color: var(--color-secondary);
}
.services__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1rem, 1.4vw, 1.75rem);
}
.service-card {
	position: relative;
}
.service-card__media {
	overflow: hidden;
	aspect-ratio: 43 / 50;
	border-radius: 0.5rem;
	background: var(--color-grey);
}
.service-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(var(--image-saturation));
	transition: transform 0.65s var(--ease-standard);
}
.service-card__footer {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
	padding-top: 1rem;
}
.service-card__title {
	font-size: var(--text-box);
	line-height: var(--leading-text);
	letter-spacing: var(--tracking-text);
	overflow-wrap: anywhere;
}
.service-card__trigger {
	display: block;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	text-align: left;
}
.service-card__trigger::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: 0.5rem;
}
.service-card__trigger:focus-visible {
	outline: none;
}
.service-card__trigger:focus-visible::after {
	outline: 2px solid var(--color-primary);
	outline-offset: 5px;
}
.service-card__action {
	flex-shrink: 0;
	color: var(--color-secondary);
	font-size: var(--text-box);
	line-height: var(--leading-text);
	letter-spacing: var(--tracking-text);
	text-underline-offset: 0.25em;
	transition: color var(--transition-standard);
}
.service-card:focus-within .service-card__action {
	color: var(--color-primary);
	text-decoration: underline;
}
@media (hover: hover) and (pointer: fine) {
	.service-card:hover .service-card__media img {
		transform: scale(1.035);
	}
	.service-card:hover .service-card__action {
		color: var(--color-primary);
		text-decoration: underline;
	}
}
@media (max-width: 79.99rem) {
	.services__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem 1.25rem;
	}
}
@media (max-width: 47.99rem) {
	.section__intro--center > p br {
		display: none;
	}
}
@media (max-width: 35.99rem) {
	.services__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
}
@media (prefers-reduced-motion: reduce) {
	.service-card__media img,
	.service-card__action {
		transition: none;
	}
	.service-card:hover .service-card__media img {
		transform: none;
	}
}

button.contact-nav__link {
	border: 0;
}
.inquiry {
	position: fixed;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	height: 100dvh;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--color-overlay);
	color: var(--color-white);
	color-scheme: dark;
	opacity: 0;
	transform: translateY(1rem);
	transition: opacity var(--transition-standard), transform var(--transition-standard);
}
.inquiry::backdrop {
	background: rgb(0 0 0 / 70%);
	opacity: 0;
	transition: opacity var(--transition-standard);
}
.inquiry.is-open,
.inquiry.is-open::backdrop {
	opacity: 1;
}
.inquiry.is-open {
	transform: translateY(0);
}
.inquiry__inner {
	position: relative;
	padding-top: clamp(6rem, 8vw, 9rem);
	padding-bottom: max(3rem, env(safe-area-inset-bottom));
}
.inquiry__close {
	position: absolute;
	top: max(1.25rem, env(safe-area-inset-top));
	right: var(--content-padding);
	display: grid;
	place-items: center;
	width: clamp(3.5rem, 5vw, 4.5rem);
	height: clamp(3.5rem, 5vw, 4.5rem);
	padding: 0;
	border: 1px solid var(--color-overlay-border);
	border-radius: 50%;
	background: transparent;
	color: var(--color-white);
}
.inquiry__close svg {
	transition: transform var(--transition-standard);
}
.inquiry__header {
	display: grid;
	grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr);
	align-items: end;
	gap: 2rem;
	margin-bottom: clamp(2.5rem, 4vw, 4.5rem);
}
.inquiry__title {
	color: inherit;
	font-size: clamp(2rem, 3.5vw, 4rem);
	line-height: var(--leading-hero-title);
	letter-spacing: var(--tracking-hero-title);
}
.inquiry__header p {
	max-width: 43rem;
	margin-top: 1.5rem;
	color: var(--color-overlay-muted);
}
.inquiry__contact {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.75rem;
}
.inquiry__contact > span {
	color: var(--color-overlay-muted);
	font-size: var(--text-pill);
}
.inquiry__contact a {
	font-size: var(--text-contact);
	font-weight: var(--font-weight-medium);
	line-height: var(--leading-text);
	letter-spacing: var(--tracking-headline);
	text-underline-offset: 0.2em;
}
.form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.75rem 2rem;
}
.form-field {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}
.form-field--full {
	grid-column: 1 / -1;
}
.form-field label {
	font-size: var(--text-base);
	line-height: var(--leading-text);
	font-weight: var(--font-weight-medium);
}
.form-field label span {
	color: var(--color-overlay-muted);
}
.form-field input,
.form-field select,
.form-field textarea {
	display: block;
	width: 100%;
	padding: 1rem 1.125rem;
	border: 1px solid var(--color-overlay-border);
	border-radius: 0.5rem;
	background: var(--color-overlay-field);
	color: var(--color-white);
	font-size: var(--text-base);
	line-height: var(--leading-text);
	transition: border-color var(--transition-standard), background-color var(--transition-standard);
}
.form-field input,
.form-field select {
	min-height: 3.5rem;
}
.form-field textarea {
	resize: none;
}
.form-field textarea::placeholder {
	color: var(--color-overlay-muted);
	opacity: 1;
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
	border-color: var(--color-white);
}
.form-field__select {
	position: relative;
}
.form-field__select select {
	appearance: none;
	padding-right: 3.25rem;
	cursor: pointer;
}
.form-field__select svg {
	position: absolute;
	top: 50%;
	right: 1.125rem;
	transform: translateY(-50%);
	pointer-events: none;
}
.inquiry__submit {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 2rem;
	margin-top: 2rem;
}
.form-consent {
	display: flex;
	align-items: flex-start;
	gap: 0.875rem;
}
.form-consent input {
	appearance: none;
	flex-shrink: 0;
	display: grid;
	place-content: center;
	width: 1.5rem;
	height: 1.5rem;
	margin: 0.125rem 0 0;
	border: 1px solid var(--color-overlay-muted);
	border-radius: 0.25rem;
	background: transparent;
	cursor: pointer;
}
.form-consent input::before {
	content: "";
	width: 0.4rem;
	height: 0.75rem;
	border: solid var(--color-overlay);
	border-width: 0 2px 2px 0;
	transform: translateY(-0.1rem) rotate(45deg);
	opacity: 0;
}
.form-consent input:checked {
	border-color: var(--color-white);
	background: var(--color-white);
}
.form-consent input:checked::before {
	opacity: 1;
}
.form-consent label {
	max-width: 48rem;
	padding-block: 0.125rem;
	color: var(--color-overlay-muted);
	font-size: var(--text-pill);
	line-height: 1.5;
	cursor: pointer;
}
.form-consent a {
	color: var(--color-white);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
.inquiry__note {
	margin-top: 1rem;
	color: var(--color-overlay-muted);
	font-size: var(--text-pill);
}
.inquiry__send {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	min-height: 3.5rem;
	padding: 1rem 1.5rem;
	border: 1px solid var(--color-white);
	border-radius: 999px;
	background: var(--color-white);
	color: var(--color-primary);
	font-size: var(--text-base);
	font-weight: var(--font-weight-medium);
}
.inquiry__send svg {
	transition: transform var(--transition-standard);
}
.inquiry__status:not(:empty) {
	margin-top: 1.5rem;
}
.inquiry :focus-visible {
	outline: 2px solid var(--color-white);
	outline-offset: 4px;
}
@media (hover: hover) and (pointer: fine) {
	.inquiry__close:hover {
		border-color: var(--color-white);
		background: var(--color-white);
		color: var(--color-primary);
	}
	.inquiry__close:hover svg {
		transform: rotate(90deg);
	}
	.inquiry__contact a:hover {
		text-decoration: underline;
	}
	.inquiry__send:hover {
		background: var(--color-grey);
	}
	.inquiry__send:hover svg {
		transform: translateX(4px);
	}
}
@media (max-width: 63.99rem) {
	.inquiry__header {
		grid-template-columns: 1fr;
	}
	.inquiry__contact {
		align-items: flex-start;
	}
}
@media (max-width: 47.99rem) {
	.form-grid {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}
	.inquiry__submit {
		flex-direction: column;
	}
	.inquiry__send {
		width: 100%;
	}
}
@media (prefers-reduced-motion: reduce) {
	.inquiry,
	.inquiry::backdrop,
	.inquiry *,
	.inquiry *::before {
		transition: none;
	}
	.inquiry {
		transform: none;
	}
	.inquiry__close:hover svg,
	.inquiry__send:hover svg {
		transform: none;
	}
}
.form-field input,
.form-field select,
.form-field textarea {
	border: 0;
	border-bottom: 1px solid var(--color-overlay-border);
	border-radius: 0;
	background: transparent;
	padding-left: 0;
}
.form-field input:focus-visible,
.form-field select:focus-visible,
.form-field textarea:focus-visible {
	outline: none;
	border-bottom-color: var(--color-white);
	box-shadow: 0 1px 0 var(--color-white);
}
.form-field select option {
	background: var(--color-overlay);
	color: var(--color-white);
}
.contact-section {
	background: var(--color-grey);
}
.contact-section .section__intro {
	gap: 1rem;
}
.contact-section .section__title {
	margin-top: 0;
}
.contact-section .section__intro > p {
	max-width: 49rem;
}
.contact-section__media {
	overflow: hidden;
	aspect-ratio: 16 / 3;
	border-radius: var(--radius-card);
}
.contact-section__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	filter: saturate(var(--image-saturation));
}
.contact-section__action {
	display: flex;
	justify-content: center;
	margin-top: clamp(2rem, 3.2vw, 3.75rem);
}
.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	max-width: 100%;
	min-height: 3rem;
	padding: 0.75rem 1.25rem;
	border: 1px solid transparent;
	border-radius: 999px;
	font-family: var(--font-std);
	font-size: var(--text-pill);
	font-weight: var(--font-weight-text);
	line-height: var(--leading-text);
	letter-spacing: var(--tracking-pill);
	text-align: center;
	cursor: pointer;
}
.button svg {
	flex-shrink: 0;
	transition: transform var(--transition-standard);
}
.button--primary {
	background: var(--color-primary);
	color: var(--color-white);
	box-shadow: 0 14px 28px rgb(0 0 0 / 16%);
}
@media (hover: hover) and (pointer: fine) {
	.button--primary:hover {
		background: var(--color-primary-hover);
	}
	.button:hover svg {
		transform: translateX(3px);
	}
}
@media (max-width: 47.99rem) {
	.contact-section .section__title br {
		display: none;
	}
	.contact-section__media {
		aspect-ratio: 16 / 9;
	}
}
@media (prefers-reduced-motion: reduce) {
	.button,
	.button svg {
		transition: none;
	}
	.button:hover svg {
		transform: none;
	}
}

.site-footer {
	padding-top: clamp(3rem, 3.5vw, 4.5rem);
	padding-bottom: clamp(2rem, 3vw, 3.5rem);
	background: var(--color-overlay);
	color: var(--color-white);
}
.site-footer__top,
.site-footer__intro,
.site-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
}
.site-footer__year {
	color: var(--color-overlay-muted);
	font-size: var(--text-box);
}
.site-footer__address {
	font-size: var(--text-pill);
	font-style: normal;
	line-height: 1.5;
	text-align: right;
}
.site-footer__intro {
	margin-top: clamp(3rem, 4.5vw, 5.5rem);
}
.site-footer__intro p {
	font-size: var(--text-footer-claim);
	line-height: var(--leading-text);
	letter-spacing: var(--tracking-headline);
}
.site-footer__intro > a {
	color: var(--color-overlay-muted);
	font-size: var(--text-pill);
	overflow-wrap: anywhere;
}
.site-footer__nav {
	display: flex;
	justify-content: flex-end;
	gap: clamp(1.5rem, 2.5vw, 3rem);
	margin-top: clamp(3rem, 4.5vw, 5.5rem);
	margin-bottom: 1.25rem;
}
.site-footer__heading {
	color: inherit;
	font-size: var(--text-box);
	font-weight: var(--font-weight-text);
	line-height: var(--leading-text);
	letter-spacing: var(--tracking-text);
}
.site-footer__group ul {
	display: grid;
	gap: 0.25rem;
	margin: 0.875rem 0 0;
	padding: 0;
	list-style: none;
}
.site-footer__group a,
.site-footer__group button {
	display: inline-block;
	padding: 0.25rem 0;
	border: 0;
	background: transparent;
	color: var(--color-overlay-muted);
	font-size: var(--text-pill);
	font-weight: var(--font-weight-text);
	line-height: 1.5;
	text-align: left;
}
.site-footer a,
.site-footer button {
	text-underline-offset: 0.25em;
	text-decoration-thickness: 1px;
}
.site-footer__bottom {
	align-items: flex-end;
	padding-top: 1.25rem;
	border-top: 1px solid var(--color-overlay-border);
}
.site-footer__logo {
	display: block;
	width: clamp(12rem, 21vw, 24.375rem);
	max-width: 100%;
}
.site-footer__logo img {
	width: 80%;
	height: auto;
}
.site-footer__bottom small {
	color: var(--color-overlay-muted);
	font-size: var(--text-pill);
	line-height: 1.5;
	text-align: right;
}
.site-footer :focus-visible {
	outline-color: var(--color-white);
}
@media (hover: hover) and (pointer: fine) {
	.site-footer a:hover,
	.site-footer button:hover {
		color: var(--color-white);
		text-decoration: underline;
	}
}
@media (max-width: 47.99rem) {
	.site-footer__top {
		align-items: flex-start;
	}
	.site-footer__intro {
		flex-direction: column;
		align-items: flex-start;
		gap: 1rem;
	}
	.site-footer__nav {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem;
		margin-bottom: 2rem;
	}
	.site-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 1.5rem;
	}
	.site-footer__bottom small {
		text-align: left;
	}
}
@media (max-width: 25.99rem) {
	.site-footer__top {
		flex-direction: column;
		gap: 1rem;
	}
	.site-footer__address {
		text-align: left;
	}
	.site-footer__nav {
		grid-template-columns: 1fr;
	}
}
.contact-float {
	position: fixed;
	right: max(1rem, env(safe-area-inset-right));
	bottom: max(1rem, env(safe-area-inset-bottom));
	z-index: 50;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	pointer-events: none;
}
.contact-float__button {
	display: grid;
	place-items: center;
	width: clamp(3rem, 3.5vw, 3.5rem);
	height: clamp(3rem, 3.5vw, 3.5rem);
	padding: 0;
	border: 1px solid transparent;
	border-radius: 50%;
	background: var(--color-primary);
	color: var(--color-white);
	box-shadow: 0 4px 18px rgb(0 0 0 / 15%);
	pointer-events: auto;
}
.contact-float__button.is-on-dark {
	background: var(--color-white);
	color: var(--color-primary);
}
.contact-float__button:focus-visible {
	outline-color: var(--color-primary);
}
.contact-float__button.is-on-dark:focus-visible {
	outline-color: var(--color-white);
}
body.has-open-modal .contact-float {
	visibility: hidden;
	pointer-events: none;
}
@media (hover: hover) and (pointer: fine) {
	.contact-float__button:hover {
		transform: translateY(-3px);
		background: var(--color-primary-hover);
	}
	.contact-float__button.is-on-dark:hover {
		background: var(--color-grey);
	}
}
@media (prefers-reduced-motion: reduce) {
	.contact-float__button {
		transition: none;
	}
	.contact-float__button:hover {
		transform: none;
	}
}
.contact-float {
	bottom: max(1.5rem, 3vh, env(safe-area-inset-bottom));
	gap: 0.625rem;
	opacity: 0;
	visibility: hidden;
	transform: translateY(0.75rem);
	transition: opacity var(--transition-standard), transform var(--transition-standard), visibility 0s 0.35s;
}
.contact-float.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	transition-delay: 0s;
}
.contact-float__button {
	width: 44px;
	height: 44px;
}
.contact-float__button svg {
	width: 20px;
	height: 20px;
}
.contact-float:not(.is-visible) .contact-float__button {
	pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
	.contact-float {
		transition: none;
		transform: none;
	}
}
.site-header--light {
	position: relative;
	background: var(--color-white);
	color: var(--color-primary);
}
.site-header--light .contact-nav {
	border-color: var(--color-primary);
	background: var(--color-primary);
}
.site-header--light .contact-nav__link {
	color: var(--color-white);
}
.site-header--light .contact-nav__link--primary {
	background: var(--color-white);
	color: var(--color-primary);
}
.site-header--light .site-header__logo:focus-visible {
	outline-color: var(--color-primary);
}
.site-header--light .contact-nav__link:focus-visible {
	outline-color: var(--color-white);
	outline-offset: -4px;
}
.site-header--light .contact-nav__link--primary:focus-visible {
	outline-color: var(--color-primary);
}
.legal {
	padding-top: clamp(3rem, 5vw, 6rem);
	padding-bottom: var(--section-spacing);
}
.legal__title {
	margin-bottom: clamp(2.5rem, 4vw, 4rem);
	font-size: var(--text-headline);
	line-height: var(--leading-headline);
	letter-spacing: var(--tracking-headline);
	overflow-wrap: anywhere;
}
.legal__content {
	max-width: 58rem;
	overflow-wrap: anywhere;
}
.legal__content h2 {
	margin-top: 2.5rem;
	margin-bottom: 1rem;
	font-size: var(--text-box);
	line-height: var(--leading-text);
	letter-spacing: var(--tracking-text);
}
.legal__content > :first-child {
	margin-top: 0;
}
.legal__content p + p {
	margin-top: 1rem;
}
.legal__content a {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
@media (hover: hover) and (pointer: fine) {
	.site-header--light .contact-nav__link:hover {
		background: var(--color-primary-hover);
	}
	.site-header--light .contact-nav__link--primary:hover {
		background: var(--color-grey);
	}
	.legal__content a:hover {
		color: var(--color-primary);
	}
}
.inquiry [hidden] {
	display: none !important;
}
.inquiry__success {
	padding-block: clamp(2rem, 6vh, 5rem);
	animation: inquiry-success-in 0.45s var(--ease-standard) both;
}
.inquiry__success h2 {
	max-width: 60rem;
	color: var(--color-white);
	font-size: clamp(2.5rem, 5vw, 5rem);
	line-height: var(--leading-hero-title);
	letter-spacing: var(--tracking-hero-title);
}
.inquiry__success p {
	max-width: 40rem;
	margin-top: 1.5rem;
	color: var(--color-overlay-muted);
	font-size: var(--text-hero);
	line-height: var(--leading-text);
}
.inquiry__success-close {
	margin-top: 2rem;
	padding: 0.5rem 0;
	border: 0;
	background: transparent;
	color: var(--color-white);
	font-size: var(--text-base);
	text-decoration: underline;
	text-underline-offset: 0.3em;
}
.inquiry__send:disabled {
	opacity: 0.6;
	cursor: wait;
}
@keyframes inquiry-success-in {
	from {
		opacity: 0;
		transform: translateY(0.75rem);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
@media (hover: hover) and (pointer: fine) {
	.inquiry__success-close:hover {
		color: var(--color-overlay-muted);
	}
}
@media (prefers-reduced-motion: reduce) {
	.inquiry__success {
		animation: none;
	}
}
.error-page {
	min-height: 60svh;
}
.error-page__code {
	display: block;
	margin-bottom: 1.25rem;
	color: var(--color-secondary);
	font-size: var(--text-box);
	letter-spacing: var(--tracking-text);
}
.error-page .legal__title {
	margin-bottom: 1.5rem;
}
.error-page > p {
	max-width: 38rem;
}
.error-page__actions {
	margin-top: 2rem;
}