/*!
 * Styles for the jQuery Range Group plugin.
 * Adapted from the `<range-group>` Lit web component's shadow-DOM styles
 * (selectors un-scoped from :host/::part since this version renders in light DOM).
 */
.range-group {
    display: block;
    position: relative;
    --_thumb-size: var(--thumb-size, 16px);
    --_track-height: var(--track-height, 4px);
    --thumb-bg: var(--slider-thumb-color, #0a84ff);
    --track-bg: var(--slider-track-color, #d8d8de);
    --segment-bg: var(--slider-segment-color, #d8d8de);
    --fill-bg: var(--slider-fill-color, #0a84ff);
    --thumb-ring: var(--slider-thumb-ring-color, #9bc8ff);
    padding-block: calc(var(--_thumb-size) / 2);
}

.range-group .rg-wrapper {
    border: 0;
    padding: 0;
    margin: 0;
}

.range-group .rg-inputs {
    display: none;
}

.range-group .rg-container {
    position: relative;
    width: 100%;
    height: var(--_thumb-size);
}

.range-group .rg-track {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: var(--_track-height);
    transform: translateY(-50%);
    background-color: var(--track-bg);
    border-radius: 999px;
}

.range-group .rg-segment {
    position: absolute;
    top: 0;
    height: 100%;
    left: var(--segment-left);
    width: var(--segment-width);
    background-color: var(--segment-bg);
}

.range-group .rg-segment-fill {
    background-color: var(--fill-bg);
}

.range-group .rg-thumb {
    position: absolute;
    top: 50%;
    left: var(--thumb-left);
    width: var(--_thumb-size);
    height: var(--_thumb-size);
    background-color: var(--thumb-bg);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    cursor: pointer;
    touch-action: none;
    box-shadow:
        0 1px 2px rgba(0, 0, 0, 0.35),
        0 0 0 1px rgba(255, 255, 255, 0.8) inset;
    transition: transform 0.1s ease-in-out;
    border: 1px solid rgba(0, 0, 0, 0.18);
    padding: 0;
}

.range-group .rg-thumb::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: calc(var(--_thumb-size) + 20px);
    height: calc(var(--_thumb-size) + 20px);
    background: transparent;
    border-radius: 50%;
}

.range-group .rg-thumb:hover {
    transform: translate(-50%, -50%) scale(1.1);
}

.range-group .rg-thumb:focus-visible {
    outline: 3px solid var(--thumb-ring);
    outline-offset: 2px;
}

.range-group .rg-ticks-wrapper {
    position: absolute;
    top: calc(50% + var(--_track-height) / 2 + 4px);
    left: 0;
    right: 0;
    height: 20px;
    pointer-events: none;
}

.range-group .rg-tick-marks,
.range-group .rg-tick-labels {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.range-group .rg-tick {
    position: absolute;
    left: var(--tick-left);
    transform: translateX(-50%);
    width: 1px;
    height: 6px;
    background: var(--tick-color, currentColor);
}

.range-group .rg-tick-label {
    position: absolute;
    top: 10px;
    left: var(--tick-left);
    transform: translateX(-50%);
    font-size: 0.75rem;
    color: var(--tick-label-color, currentColor);
}

.range-group .rg-container.disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

.range-group .rg-thumb-disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

.range-group .rg-thumb-disabled:hover {
    transform: translate(-50%, -50%);
}
@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__container{position:relative;box-sizing:border-box}.splide__list{margin:0!important;padding:0!important;width:-webkit-max-content;width:max-content;will-change:transform}.splide.is-active .splide__list{display:flex}.splide__pagination{display:inline-flex;align-items:center;width:95%;flex-wrap:wrap;justify-content:center;margin:0}.splide__pagination li{list-style-type:none;display:inline-block;line-height:1;margin:0}.splide{visibility:hidden}.splide,.splide__slide{position:relative;outline:none}.splide__slide{box-sizing:border-box;list-style-type:none!important;margin:0;flex-shrink:0}.splide__slide img{vertical-align:bottom}.splide__slider{position:relative}.splide__spinner{position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;display:inline-block;width:20px;height:20px;border-radius:50%;border:2px solid #999;border-left-color:transparent;animation:splide-loading 1s linear infinite}.splide__track{position:relative;z-index:0;overflow:hidden}.splide--draggable>.splide__track>.splide__list>.splide__slide{-webkit-user-select:none;user-select:none}.splide--fade>.splide__track>.splide__list{display:block}.splide--fade>.splide__track>.splide__list>.splide__slide{position:absolute;top:0;left:0;z-index:0;opacity:0}.splide--fade>.splide__track>.splide__list>.splide__slide.is-active{position:relative;z-index:1;opacity:1}.splide--rtl{direction:rtl}.splide--ttb>.splide__track>.splide__list{display:block}.splide--ttb>.splide__pagination{width:auto}/* required styles */

.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
	position: absolute;
	left: 0;
	top: 0;
	}
.leaflet-container {
	overflow: hidden;
	}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
	-webkit-user-select: none;
	   -moz-user-select: none;
	        user-select: none;
	  -webkit-user-drag: none;
	}
/* Prevents IE11 from highlighting tiles in blue */
.leaflet-tile::selection {
	background: transparent;
}
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
.leaflet-safari .leaflet-tile {
	image-rendering: -webkit-optimize-contrast;
	}
/* hack that prevents hw layers "stretching" when loading new tiles */
.leaflet-safari .leaflet-tile-container {
	width: 1600px;
	height: 1600px;
	-webkit-transform-origin: 0 0;
	}
.leaflet-marker-icon,
.leaflet-marker-shadow {
	display: block;
	}
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container .leaflet-overlay-pane svg {
	max-width: none !important;
	max-height: none !important;
	}
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
	max-width: none !important;
	max-height: none !important;
	width: auto;
	padding: 0;
	}

.leaflet-container img.leaflet-tile {
	/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */
	mix-blend-mode: plus-lighter;
}

.leaflet-container.leaflet-touch-zoom {
	-ms-touch-action: pan-x pan-y;
	touch-action: pan-x pan-y;
	}
.leaflet-container.leaflet-touch-drag {
	-ms-touch-action: pinch-zoom;
	/* Fallback for FF which doesn't support pinch-zoom */
	touch-action: none;
	touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
	-ms-touch-action: none;
	touch-action: none;
}
.leaflet-container {
	-webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
	-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
	filter: inherit;
	visibility: hidden;
	}
.leaflet-tile-loaded {
	visibility: inherit;
	}
.leaflet-zoom-box {
	width: 0;
	height: 0;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	z-index: 800;
	}
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg {
	-moz-user-select: none;
	}

.leaflet-pane         { z-index: 400; }

.leaflet-tile-pane    { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane  { z-index: 500; }
.leaflet-marker-pane  { z-index: 600; }
.leaflet-tooltip-pane   { z-index: 650; }
.leaflet-popup-pane   { z-index: 700; }

.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg    { z-index: 200; }

.leaflet-vml-shape {
	width: 1px;
	height: 1px;
	}
.lvml {
	behavior: url(#default#VML);
	display: inline-block;
	position: absolute;
	}


/* control positioning */

.leaflet-control {
	position: relative;
	z-index: 800;
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}
.leaflet-top,
.leaflet-bottom {
	position: absolute;
	z-index: 1000;
	pointer-events: none;
	}
.leaflet-top {
	top: 0;
	}
.leaflet-right {
	right: 0;
	}
.leaflet-bottom {
	bottom: 0;
	}
.leaflet-left {
	left: 0;
	}
.leaflet-control {
	float: left;
	clear: both;
	}
.leaflet-right .leaflet-control {
	float: right;
	}
.leaflet-top .leaflet-control {
	margin-top: 10px;
	}
.leaflet-bottom .leaflet-control {
	margin-bottom: 10px;
	}
.leaflet-left .leaflet-control {
	margin-left: 10px;
	}
.leaflet-right .leaflet-control {
	margin-right: 10px;
	}


/* zoom and fade animations */

.leaflet-fade-anim .leaflet-popup {
	opacity: 0;
	-webkit-transition: opacity 0.2s linear;
	   -moz-transition: opacity 0.2s linear;
	        transition: opacity 0.2s linear;
	}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
	opacity: 1;
	}
.leaflet-zoom-animated {
	-webkit-transform-origin: 0 0;
	    -ms-transform-origin: 0 0;
	        transform-origin: 0 0;
	}
svg.leaflet-zoom-animated {
	will-change: transform;
}

.leaflet-zoom-anim .leaflet-zoom-animated {
	-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
	   -moz-transition:    -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
	        transition:         transform 0.25s cubic-bezier(0,0,0.25,1);
	}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
	-webkit-transition: none;
	   -moz-transition: none;
	        transition: none;
	}

.leaflet-zoom-anim .leaflet-zoom-hide {
	visibility: hidden;
	}


/* cursors */

.leaflet-interactive {
	cursor: pointer;
	}
.leaflet-grab {
	cursor: -webkit-grab;
	cursor:    -moz-grab;
	cursor:         grab;
	}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
	cursor: crosshair;
	}
.leaflet-popup-pane,
.leaflet-control {
	cursor: auto;
	}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
	cursor: move;
	cursor: -webkit-grabbing;
	cursor:    -moz-grabbing;
	cursor:         grabbing;
	}

/* marker & overlays interactivity */
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
	pointer-events: none;
	}

.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}

/* visual tweaks */

.leaflet-container {
	background: #ddd;
	outline-offset: 1px;
	}
.leaflet-container a {
	color: #0078A8;
	}
.leaflet-zoom-box {
	border: 2px dotted #38f;
	background: rgba(255,255,255,0.5);
	}


/* general typography */
.leaflet-container {
	font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 1.5;
	}


/* general toolbar styles */

.leaflet-bar {
	box-shadow: 0 1px 5px rgba(0,0,0,0.65);
	border-radius: 4px;
	}
.leaflet-bar a {
	background-color: #fff;
	border-bottom: 1px solid #ccc;
	width: 26px;
	height: 26px;
	line-height: 26px;
	display: block;
	text-align: center;
	text-decoration: none;
	color: black;
	}
.leaflet-bar a,
.leaflet-control-layers-toggle {
	background-position: 50% 50%;
	background-repeat: no-repeat;
	display: block;
	}
.leaflet-bar a:hover,
.leaflet-bar a:focus {
	background-color: #f4f4f4;
	}
.leaflet-bar a:first-child {
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	}
.leaflet-bar a:last-child {
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
	border-bottom: none;
	}
.leaflet-bar a.leaflet-disabled {
	cursor: default;
	background-color: #f4f4f4;
	color: #bbb;
	}

.leaflet-touch .leaflet-bar a {
	width: 30px;
	height: 30px;
	line-height: 30px;
	}
.leaflet-touch .leaflet-bar a:first-child {
	border-top-left-radius: 2px;
	border-top-right-radius: 2px;
	}
.leaflet-touch .leaflet-bar a:last-child {
	border-bottom-left-radius: 2px;
	border-bottom-right-radius: 2px;
	}

/* zoom control */

.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
	font: bold 18px 'Lucida Console', Monaco, monospace;
	text-indent: 1px;
	}

.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out  {
	font-size: 22px;
	}


/* layers control */

.leaflet-control-layers {
	box-shadow: 0 1px 5px rgba(0,0,0,0.4);
	background: #fff;
	border-radius: 5px;
	}
.leaflet-control-layers-toggle {
	background-image: url(/content/themes/cavi/js/libs/leaflet/images/layers.png?x83099);
	width: 36px;
	height: 36px;
	}
.leaflet-retina .leaflet-control-layers-toggle {
	background-image: url(/content/themes/cavi/js/libs/leaflet/images/layers-2x.png?x83099);
	background-size: 26px 26px;
	}
.leaflet-touch .leaflet-control-layers-toggle {
	width: 44px;
	height: 44px;
	}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
	display: none;
	}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
	display: block;
	position: relative;
	}
.leaflet-control-layers-expanded {
	padding: 6px 10px 6px 6px;
	color: #333;
	background: #fff;
	}
.leaflet-control-layers-scrollbar {
	overflow-y: scroll;
	overflow-x: hidden;
	padding-right: 5px;
	}
.leaflet-control-layers-selector {
	margin-top: 2px;
	position: relative;
	top: 1px;
	}
.leaflet-control-layers label {
	display: block;
	font-size: 13px;
	font-size: 1.08333em;
	}
.leaflet-control-layers-separator {
	height: 0;
	border-top: 1px solid #ddd;
	margin: 5px -10px 5px -6px;
	}

/* Default icon URLs */
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */
	background-image: url(/content/themes/cavi/js/libs/leaflet/images/marker-icon.png?x83099);
	}


/* attribution and scale controls */

.leaflet-container .leaflet-control-attribution {
	background: #fff;
	background: rgba(255, 255, 255, 0.8);
	margin: 0;
	}
.leaflet-control-attribution,
.leaflet-control-scale-line {
	padding: 0 5px;
	color: #333;
	line-height: 1.4;
	}
.leaflet-control-attribution a {
	text-decoration: none;
	}
.leaflet-control-attribution a:hover,
.leaflet-control-attribution a:focus {
	text-decoration: underline;
	}
.leaflet-attribution-flag {
	display: inline !important;
	vertical-align: baseline !important;
	width: 1em;
	height: 0.6669em;
	}
.leaflet-left .leaflet-control-scale {
	margin-left: 5px;
	}
.leaflet-bottom .leaflet-control-scale {
	margin-bottom: 5px;
	}
.leaflet-control-scale-line {
	border: 2px solid #777;
	border-top: none;
	line-height: 1.1;
	padding: 2px 5px 1px;
	white-space: nowrap;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	background: rgba(255, 255, 255, 0.8);
	text-shadow: 1px 1px #fff;
	}
.leaflet-control-scale-line:not(:first-child) {
	border-top: 2px solid #777;
	border-bottom: none;
	margin-top: -2px;
	}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
	border-bottom: 2px solid #777;
	}

.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	box-shadow: none;
	}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	border: 2px solid rgba(0,0,0,0.2);
	background-clip: padding-box;
	}


/* popup */

.leaflet-popup {
	position: absolute;
	text-align: center;
	margin-bottom: 20px;
	}
.leaflet-popup-content-wrapper {
	padding: 1px;
	text-align: left;
	border-radius: 12px;
	}
.leaflet-popup-content {
	margin: 13px 24px 13px 20px;
	line-height: 1.3;
	font-size: 13px;
	font-size: 1.08333em;
	min-height: 1px;
	}
.leaflet-popup-content p {
	margin: 17px 0;
	margin: 1.3em 0;
	}
.leaflet-popup-tip-container {
	width: 40px;
	height: 20px;
	position: absolute;
	left: 50%;
	margin-top: -1px;
	margin-left: -20px;
	overflow: hidden;
	pointer-events: none;
	}
.leaflet-popup-tip {
	width: 17px;
	height: 17px;
	padding: 1px;

	margin: -10px auto 0;
	pointer-events: auto;

	-webkit-transform: rotate(45deg);
	   -moz-transform: rotate(45deg);
	    -ms-transform: rotate(45deg);
	        transform: rotate(45deg);
	}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
	background: white;
	color: #333;
	box-shadow: 0 3px 14px rgba(0,0,0,0.4);
	}
.leaflet-container a.leaflet-popup-close-button {
	position: absolute;
	top: 0;
	right: 0;
	border: none;
	text-align: center;
	width: 24px;
	height: 24px;
	font: 16px/24px Tahoma, Verdana, sans-serif;
	color: #757575;
	text-decoration: none;
	background: transparent;
	}
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
	color: #585858;
	}
.leaflet-popup-scrolled {
	overflow: auto;
	}

.leaflet-oldie .leaflet-popup-content-wrapper {
	-ms-zoom: 1;
	}
.leaflet-oldie .leaflet-popup-tip {
	width: 24px;
	margin: 0 auto;

	-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
	filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
	}

.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
	border: 1px solid #999;
	}


/* div icon */

.leaflet-div-icon {
	background: #fff;
	border: 1px solid #666;
	}


/* Tooltip */
/* Base styles for the element that has a tooltip */
.leaflet-tooltip {
	position: absolute;
	padding: 6px;
	background-color: #fff;
	border: 1px solid #fff;
	border-radius: 3px;
	color: #222;
	white-space: nowrap;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	pointer-events: none;
	box-shadow: 0 1px 3px rgba(0,0,0,0.4);
	}
.leaflet-tooltip.leaflet-interactive {
	cursor: pointer;
	pointer-events: auto;
	}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	position: absolute;
	pointer-events: none;
	border: 6px solid transparent;
	background: transparent;
	content: "";
	}

/* Directions */

.leaflet-tooltip-bottom {
	margin-top: 6px;
}
.leaflet-tooltip-top {
	margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
	left: 50%;
	margin-left: -6px;
	}
.leaflet-tooltip-top:before {
	bottom: 0;
	margin-bottom: -12px;
	border-top-color: #fff;
	}
.leaflet-tooltip-bottom:before {
	top: 0;
	margin-top: -12px;
	margin-left: -6px;
	border-bottom-color: #fff;
	}
.leaflet-tooltip-left {
	margin-left: -6px;
}
.leaflet-tooltip-right {
	margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	top: 50%;
	margin-top: -6px;
	}
.leaflet-tooltip-left:before {
	right: 0;
	margin-right: -12px;
	border-left-color: #fff;
	}
.leaflet-tooltip-right:before {
	left: 0;
	margin-left: -12px;
	border-right-color: #fff;
	}

/* Printing */

@media print {
	/* Prevent printers from removing background-images of controls. */
	.leaflet-control {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
		}
	}
@font-face {
  font-family: 'fontello';
  src: url('/content/themes/cavi/fontello/font/fontello.eot?28302404&x83099');
  src: url('/content/themes/cavi/fontello/font/fontello.eot?28302404#iefix&x83099') format('embedded-opentype'),
       url('/content/themes/cavi/fontello/font/fontello.woff2?28302404') format('woff2'),
       url('/content/themes/cavi/fontello/font/fontello.woff?28302404&x83099') format('woff'),
       url('/content/themes/cavi/fontello/font/fontello.ttf?28302404&x83099') format('truetype'),
       url('/content/themes/cavi/fontello/font/fontello.svg?28302404#fontello&x83099') format('svg');
  font-weight: normal;
  font-style: normal;
}
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
  @font-face {
    font-family: 'fontello';
    src: url('/content/themes/cavi/fontello/font/fontello.svg?28302404#fontello&x83099') format('svg');
  }
}
*/
 
 [class^="icon-"]:before, [class*=" icon-"]:before {
  font-family: "fontello";
  font-style: normal;
  font-weight: normal;
  speak: none;
 
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  margin-right: .2em;
  text-align: center;
  /* opacity: .8; */
 
  /* For safety - reset parent styles, that can break glyph codes*/
  font-variant: normal;
  text-transform: none;
 
  /* fix buttons height, for twitter bootstrap */
  line-height: 1em;
 
  /* Animation center compensation - margins should be symmetric */
  /* remove if not needed */
  margin-left: .2em;
 
  /* you can be more comfortable with increased icons size */
  /* font-size: 120%; */
 
  /* Font smoothing. That was taken from TWBS */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
 
  /* Uncomment for 3D effect */
  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}
 
.icon-wp-edit:before { content: '\e811'; } /* '' */

@font-face {
    font-family:"Apercu Pro Bold";
    src:url("/content/themes/cavi/webfonts/apercu-bold-pro.woff2") format("woff2"),url("/content/themes/cavi/webfonts/apercu-bold-pro.woff?x83099") format("woff"),url("/content/themes/cavi/webfonts/apercu-bold-pro.otf?x83099") format("opentype");
    font-style:normal;font-weight:400;
    font-display: swap;
}
        

@font-face {
    font-family:"Apercu Pro Light";
    src:url("/content/themes/cavi/webfonts/apercu-light-pro.woff2") format("woff2"),url("/content/themes/cavi/webfonts/apercu-light-pro.woff?x83099") format("woff"),url("/content/themes/cavi/webfonts/apercu-light-pro.otf?x83099") format("opentype");
    font-style:normal;font-weight:400;
    font-display: swap;
}
        

@font-face {
    font-family:"SangBleu Kingdom Medium";
    src:url("/content/themes/cavi/webfonts/SangBleuKingdom-Medium.woff2") format("woff2"),url("/content/themes/cavi/webfonts/SangBleuKingdom-Medium.woff?x83099") format("woff"),url("/content/themes/cavi/webfonts/SangBleuKingdom-Medium.otf?x83099") format("opentype");
    font-style:normal;font-weight:400;
    font-display: swap;
}
        /*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */

/**
 * 1. Change the default font family in all browsers (opinionated).
 * 2. Correct the line height in all browsers.
 * 3. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */

/* Document
   ========================================================================== */

html {
  font-family: sans-serif; /* 1 */
  line-height: 1.15; /* 2 */
  -ms-text-size-adjust: 100%; /* 3 */
  -webkit-text-size-adjust: 100%; /* 3 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers (opinionated).
 */

body {
  margin: 0;
}

/**
 * Add the correct display in IE 9-.
 */

article,
aside,
footer,
header,
nav,
section {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in IE.
 */

figcaption,
figure,
main { /* 1 */
  display: block;
}

/**
 * Add the correct margin in IE 8.
 */

figure {
  margin: 1em 40px;
}

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */

a {
  background-color: transparent; /* 1 */
  -webkit-text-decoration-skip: objects; /* 2 */
}

/**
 * Remove the outline on focused links when they are also active or hovered
 * in all browsers (opinionated).
 */

a:active,
a:hover {
  outline-width: 0;
}

/**
 * 1. Remove the bottom border in Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */

b,
strong {
  font-weight: inherit;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font style in Android 4.3-.
 */

dfn {
  font-style: italic;
}

/**
 * Add the correct background and color in IE 9-.
 */

mark {
  background-color: #ff0;
  color: #000;
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Add the correct display in IE 9-.
 */

audio,
video {
  display: inline-block;
}

/**
 * Add the correct display in iOS 4-7.
 */

audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Remove the border on images inside links in IE 10-.
 */

img {
  border-style: none;
}

/**
 * Hide the overflow in IE.
 */

svg:not(:root) {
  overflow: hidden;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */

button,
html [type="button"], /* 1 */
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; /* 2 */
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Change the border, margin, and padding in all browsers (opinionated).
 */

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * 1. Add the correct display in IE 9-.
 * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  display: inline-block; /* 1 */
  vertical-align: baseline; /* 2 */
}

/**
 * Remove the default vertical scrollbar in IE.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 */

details, /* 1 */
menu {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Scripting
   ========================================================================== */

/**
 * Add the correct display in IE 9-.
 */

canvas {
  display: inline-block;
}

/**
 * Add the correct display in IE.
 */

template {
  display: none;
}

/* Hidden
   ========================================================================== */

/**
 * Add the correct display in IE 10-.
 */

[hidden] {
  display: none;
}





html,
button,
input,
select,
textarea {
    color: #222;
}

body {
    font-size: 1em;
    line-height: 1.4;
}

::-moz-selection {
    background: #000;
    color: #fff;
    text-shadow: none;
}

::selection {
    background: #000;
    color: #fff;
    text-shadow: none;
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0;
}

img {
    vertical-align: middle;
}

fieldset, iframe, figure, blockquote {
    border: 0;
    margin: 0;
    padding: 0;
}

textarea {
    resize: vertical;
}

.chromeframe {
    margin: 0.2em 0;
    background: #ccc;
    color: #000;
    padding: 0.2em 0;
}

ul, ol, h1, h2, h3, h4, h5, h6, p {
  margin: 0;
  padding: 0;
  list-style: none;
}

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

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

[class^="icon-"]:before, [class*=" icon-"]:before {
  width: auto;
  margin-right: 0;
  margin-left: 0;
}

select::-ms-expand {
    display: none;
}






/* Slider */
.slick-slider
{
    position: relative;

    display: block;
    box-sizing: border-box;

    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;

    -webkit-touch-callout: none;
    -khtml-user-select: none;
    -ms-touch-action: pan-y;
        touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}

.slick-list
{
    position: relative;

    display: block;
    overflow: hidden;

    margin: 0;
    padding: 0;
}
.slick-list:focus
{
    outline: none;
}
.slick-list.dragging
{
    cursor: pointer;
    cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list
{
    -webkit-transform: translate3d(0, 0, 0);
       -moz-transform: translate3d(0, 0, 0);
        -ms-transform: translate3d(0, 0, 0);
         -o-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
}

.slick-track
{
    position: relative;
    top: 0;
    left: 0;

    display: block;
}
.slick-track:before,
.slick-track:after
{
    display: table;

    content: '';
}
.slick-track:after
{
    clear: both;
}
.slick-loading .slick-track
{
    visibility: hidden;
}

.slick-slide
{
    display: none;
    float: left;

    height: 100%;
    min-height: 1px;
}
[dir='rtl'] .slick-slide
{
    float: right;
}
.slick-slide img
{
    display: block;
}
.slick-slide.slick-loading img
{
    display: none;
}
.slick-slide.dragging img
{
    pointer-events: none;
}
.slick-initialized .slick-slide
{
    display: block;
}
.slick-loading .slick-slide
{
    visibility: hidden;
}
.slick-vertical .slick-slide
{
    display: block;

    height: auto;

    border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
    display: none;
}

.slick-slide {
  outline: 0;
}


.btn-wp-edit {
  display: block;
  float: left;
  position: fixed;
  bottom: 1rem;
  left: 1rem;
  z-index: 10000;
  color: #fff;
  background: #222;
  min-width: 1.875rem;
  height: 1.875rem;
  line-height: 1.875rem;
  text-align: center;
  border-radius: .9375rem;
  white-space: nowrap;
  font-family: Arial;
  text-transform: uppercase;
}

.btn-wp-edit i {
  position: absolute;
  top: 0;
  left: 0.55rem;
}

.btn-wp-edit > span {
  display: inline-block;
  position: relative;
  overflow: hidden;
  max-width: 0;
  -webkit-transition: max-width 150ms;
  -moz-transition: max-width 150ms;
  -ms-transition: max-width 150ms;
  -o-transition: max-width 150ms;
  transition: max-width 150ms;
  margin-left: 1.875rem;
}

.btn-wp-edit:hover > span {
  max-width: 12.5rem;
}

.btn-wp-edit > span > span {
  display: inline-block;
  padding-right: 0.55rem;
  font-size: .75rem;
}

.btn-wp-edit {
	font-size: 16px;
	bottom: 0;
	left: 0;
	min-width: 2.275em;
	height: 2.275em;
	line-height: 2.275em;
	border-radius: 0;
}

.btn-wp-edit i {
	left: 0.65em;
}

.btn-wp-edit > span {
	margin-left: 2.275em;
}

.btn-wp-edit > span > span {
	font-size: .75em;
	padding-right: .65em;
}

.btn-wp-edit:hover > span {
	max-width: 12.5em;
}

.sn-col-set {
  letter-spacing:-.31em;
  *letter-spacing:normal;
  *word-spacing:-.43em;
  text-rendering:optimizespeed;
  display:-webkit-flex;
  display: flex;
  -webkit-flex-flow:row wrap;
  display:-ms-flexbox;
  -ms-flex-flow:row wrap;
  flex-flow: row wrap;
  -ms-align-content:flex-start;
  -webkit-align-content:flex-start;
  align-content:flex-start;
}

.sn-col-set-nowrap {
  -webkit-flex-flow: row nowrap;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
}

.sn-col-set > * {
  display:inline-block;
  *display:inline;
  zoom:1;
  letter-spacing:normal;
  word-spacing:normal;
  vertical-align:top;
  text-rendering:auto;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  background-clip: padding-box;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
          
}

.sn-col-set-1 > * {
  width: 100%;
  margin-right: 0;
}

.sn-col-set-2 > * {
  width: 50%;
}

.sn-col-set-3 > * {
  width: 33.33333333333333333333%;
}

.sn-col-set-4 > * {
  width: 25%;
}

.sn-col-set-5 > * {
  width: 20%;
}

.sn-col-set-6 > * {
  width: 16.66666666666666666666%;
}

.sn-col-set > .sn-col-auto,
.sn-col-set-footer > * {
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}

html:not(.explorer) .sn-col-set .sn-col-equal-height {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
}

.sn-col-set .sn-col-space-between {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-flex-flow: column nowrap;
      -ms-flex-flow: column nowrap;
          flex-flow: column nowrap;
}

.sn-col-set .sn-col-valigned {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-flex-flow: column nowrap;
      -ms-flex-flow: column nowrap;
          flex-flow: column nowrap;
}

.pull-left {
  float: left;
}

.pull-right {
  float: right;
}

.btn {
  border: 0;
  border-radius: 0;
  display: inline-block;
  white-space: nowrap;
  font-size: 1rem;
  background: transparent;
  position: relative;
}

button.btn {
  -webkit-appearance: none;
  appearance: none;
}

.btn-set {
  margin-top: 1.2em;
}

span.loading {
  height: 0;
  width: 0;
  display: inline-block;
  vertical-align: bottom;
  position: relative;
  transition: all 150ms;
  transform: scale(0);
}

span.loading img {
  width: 100%;
  padding: 0.75rem;
  position: absolute;
  top: -0.9rem;
  left: 0;
  animation: spin .4s infinite linear;
}

span.loading.now {
  height: 1.3rem;
  width: 1.3rem;
  transform: scale(1);
}

img.ajax-loader {
  display: none !important;
}

button.btn {
  -webkit-appearance: none;
  appearance: none;
  box-shadow: none;
}

.lnk {
  display: inline-block;
  transition: opacity 250ms;
}

.btn:hover,
.lnk:hover,
a:hover span.btn {
}

.btn span.icon {
  margin: 0 .875rem;
}

.btn span.icon,
.btn span.label,
.lnk span.icon,
.lnk span.label {
  display: inline-block;
  line-height: 1.4;
  vertical-align: top;
  white-space: normal;
}

.lnk span.icon {
  margin: 0 .875em;
}

.btn span.icon:last-child,
.lnk span.icon:last-child {
  margin-right: 0;
}

.btn span.icon:first-child,
.lnk span.icon:first-child {
  margin-left: 0;
}

.spanned > span {
  display: block;
}

.figure-cover {
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.figure-contain {
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
}

.figure-cover img,
.figure-contain img {
  display: none;
}

img.rounded {
  display: inline-block;
  border-radius: 50%;
}

.to-be-added {
	transform: translateY(60px);
  opacity: 0;
  transition: transform 1.2s, opacity 1.2s;
	transition-timing-function: cubic-bezier(0.19,1,.22,1);
}

.just-added {
	transform: translateY(0px);
	opacity: 1;
}

button.link {
	all: inherit;
	cursor: pointer;
}










address {
  font-style: normal;
}

a {
	text-decoration-skip: ink;
}

:focus:not(:focus-visible) { outline: none }

html {
  overflow-y: scroll;
  -webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.wysiwyg a {
  word-wrap: break-word;
}







/* DEV */

#breakpoints {
	position: fixed;
	bottom: 0;
	right: 0;
	background: #000;
	padding: 0.5em .75em;
	font-size: 16px;
	color: #fff;
	z-index: 20000;
}

#breakpoints::after {
	content: 'max';
}








	/* ROOT */

	:root {
    
    --base-font-1: "Apercu Pro Light", sans-serif;
    --base-font-1-bold: "Apercu Pro Bold", sans-serif;
    
    --base-font-2: "SangBleu Kingdom Medium", serif;
    
    --base-unit-x: 0vw;
    --base-unit-y: 0vw;
    --base-unit: .06944444444444444444vw;
    --px: var(--base-unit);
    --base-unit-mobile: .26666666666666666666vw;
	
		--ttf: cubic-bezier(0.19,1,.22,1);
    --ttf-2: cubic-bezier(0.075, 0.820, 0.165, 1.000);
    --ttf-3: cubic-bezier(0.64, 0, 0.78, 0);
    --ttf-4: cubic-bezier(0.8, 0, 0.2, 1);
    --ttf-5: cubic-bezier(0.165, 0.84, 0.4, 1);
    --ttf-6: cubic-bezier(0.6, 0.07, 0.17, 1);
    --ttf-7: cubic-bezier(0.247, 0.75, 0.187, 1);
    --ttf-8: cubic-bezier(1, 0, 0, 1);
    --ttf-9: cubic-bezier(.47, 3.64, .41, .8);
    
		--page-padding-top: max(9.375rem, calc(250 * var(--base-unit)));
    --page-padding-left: calc(30 * var(--base-unit));
    --page-padding-right: var(--page-padding-left);
    
    --page-padding-m-left: calc(77 * var(--px));
    --page-padding-m-right: var(--page-padding-m-left);
    
    --site-title-width: max(85px, calc(194 * var(--base-unit)));
    --site-title-offset-left: calc(57 * var(--base-unit));
    
		--module-margin: 8.125em; /* 130px */
		--module-margin: max(3.9375em, min(9.02777777777777777777vw, 8.125em)); /* 130px */
	
		--mrgn: 12em;
		--mrgn-20: calc(var(--mrgn) * 0.2);
		--mrgn-30: calc(var(--mrgn) * 0.3);
		--mrgn-40: calc(var(--mrgn) * 0.4);
		--mrgn-50: calc(var(--mrgn) * 0.5);
	
		--grid-column: 9.58333333333333333333vw;
		--grid-column-fixed: 8.625rem;
		--grid-gap: 2.70833333333333333333vw;
		--grid-gap-fixed: 2.4375rem;
		--grid-item: calc(var(--grid-column) + var(--grid-gap));
		--grid-item-fixed: calc(var(--grid-column-fixed) + var(--grid-gap-fixed));
	
		--grid-1: var(--grid-item);
		--grid-1-: calc(var(--grid-item) - var(--grid-gap));
	
		--grid-1-fixed: var(--grid-item-fixed);
		--grid-1-fixed-: calc(var(--grid-item-fixed) - var(--grid-gap-fixed));
	
		--grid-2: calc(var(--grid-item) * 2);
		--grid-2-: calc(var(--grid-item) * 2 - var(--grid-gap));
	
		--grid-2-fixed: calc(var(--grid-item-fixed) * 2);
		--grid-2-fixed-: calc(var(--grid-item-fixed) * 2 - var(--grid-gap-fixed));
	
		--grid-3: calc(var(--grid-item) * 3);
		--grid-3-: calc(var(--grid-item) * 3 - var(--grid-gap));
	
		--grid-3-fixed: calc(var(--grid-item-fixed) * 3);
		--grid-3-fixed-: calc(var(--grid-item-fixed) * 3 - var(--grid-gap-fixed));
	
		--grid-4: calc(var(--grid-item) * 4);
		--grid-4-: calc(var(--grid-item) * 4 - var(--grid-gap));
	
		--grid-4-fixed: calc(var(--grid-item-fixed) * 4);
		--grid-4-fixed-: calc(var(--grid-item-fixed) * 4 - var(--grid-gap-fixed));
	
		--grid-5: calc(var(--grid-item) * 5);
		--grid-5-: calc(var(--grid-item) * 5 - var(--grid-gap));
	
		--grid-5-fixed: calc(var(--grid-item-fixed) * 5);
		--grid-5-fixed-: calc(var(--grid-item-fixed) * 5 - var(--grid-gap-fixed));
	
		--grid-6: calc(var(--grid-item) * 6);
		--grid-6-: calc(var(--grid-item) * 6 - var(--grid-gap));
	       
		--grid-6-fixed: calc(var(--grid-item-fixed) * 6);
		--grid-6-fixed-: calc(var(--grid-item-fixed) * 6 - var(--grid-gap-fixed));
    
		--grid-7: calc(var(--grid-item) * 7);
		--grid-7-: calc(var(--grid-item) * 7 - var(--grid-gap));
	       
		--grid-7-fixed: calc(var(--grid-item-fixed) * 7);
		--grid-7-fixed-: calc(var(--grid-item-fixed) * 7 - var(--grid-gap-fixed));
    
		--grid-8: calc(var(--grid-item) * 8);
		--grid-8-: calc(var(--grid-item) * 8 - var(--grid-gap));
	       
		--grid-8-fixed: calc(var(--grid-item-fixed) * 8);
		--grid-8-fixed-: calc(var(--grid-item-fixed) * 8 - var(--grid-gap-fixed));
	
		--base-color-white: #f1f0eb;
    --base-color-dark-gray: #383c41;
    --base-color-light-blue: #d9e2e3;
	  --base-color-light-green: #d5dad1;
    --base-color-gray: #c8ccc7;
  
	}

  * {
    text-decoration-thickness: from-font !important;
    text-underline-offset: 0.1em;
  }
  
  
  
  
  


  @media (min-width: 1920px) {
    
    :root {
      --site-title-width: 258px;
      --site-title-offset-left: 76px;
  		--page-padding-top: 333px;
      --page-padding-left: 40px;
    }
    
  }







  @media (max-width: 1000px) {
    
    :root {
      --site-title-offset-left: 0;
    }
    
  }






  @media (max-width: 500px) {
    
    :root {
      --page-padding-left: calc(15 * var(--base-unit-mobile));
      --page-padding-right: var(--page-padding-left);
    }
    
  }









 
 
	/* BASE */

	html {
		scroll-behavior: smooth;
	}

	html.is-transitioning,
	html.is-forced-scrolling {
		scroll-behavior: auto;
	}

	body {
	  font-size: 100%;
		font-family: var(--base-font-1);
		font-weight: 400;
	  color: var(--base-color-dark-gray);
	  line-height: 1.3;
	  background: var(--page-background-color, var(--base-color-white));
    -webkit-hyphenate-character: "-";
	}

	input, textarea, select, button {
		font-family: var(--base-font-1);
		font-weight: 400;
	  color: var(--base-color-dark-gray);
	}

	img {
	  max-width: 100%;
    height: auto;
	}  

	*:not(.has-component-inner) .module-inner,
	header.main > .inner,
  footer.main > .inner,
  div.flyout > .inner,
	.cookie-bar > .inner,
	*.has-component-inner .component-inner {
	  position: relative;
	  margin: 0 auto;
	  padding-left: var(--page-padding-left);
	  padding-right: var(--page-padding-right);
	  -moz-box-sizing: border-box;
	  box-sizing: border-box;
	}

	.module-full-width .module-inner {
	  max-width: none;
	  padding-left: 0;
	  padding-right: 0;
	}

	.load-more {
	  text-align: center;
	}

	.wysiwyg a {
	  transition: box-shadow 500ms;
		transition-timing-function: var(--ttf);
	  text-decoration: none;
		box-shadow: 0 -8px 0 0 rgba(56, 60, 65, 0.1) inset; 
	}

	.wysiwyg a:hover {
	  text-decoration: none;
		box-shadow: 0 -8px 0 0 rgba(56, 60, 65, 0.2) inset; 
	}

	.wysiwyg > *:not(:last-child) {
	  margin-bottom: 1em;
	}

	.wysiwyg strong {
	}

	.wysiwyg > ul:not(.plain),
	.wysiwyg > ol:not(.plain) {
	  counter-reset: supernovae;
	}

	.wysiwyg > ul:not(.plain) li,
	.wysiwyg > ol:not(.plain) li {
	  position: relative;
	  padding-left: 1.5em;
	}

	.wysiwyg > ul:not(.plain) li:not(:last-child),
	.wysiwyg > ol:not(.plain) li:not(:last-child) {
	}

	.wysiwyg > ul:not(.plain) li::before {
	  content: '—';
	  position: absolute;
	  left: 0;
	}

	.wysiwyg > ol:not(.plain) li::before {
		content: counter(supernovae) '.';
		counter-increment: supernovae;
	  position: absolute;
	  left: 0;
	}

	.wysiwyg > ul ul li::before {
	}

	.wysiwyg > ul ul,
	.wysiwyg > ol ol {
	}

	.wysiwyg table {
	  width: auto !important;
	}

	.wysiwyg table td {
	  width: auto !important;
	  height: auto !important;
	}

	@keyframes spin {
	    from {transform:rotate(0deg);}
	    to {transform:rotate(360deg);}
	}

	span.loading img {
		top: -12px;
	}

	span.loading {
		vertical-align: middle;
	}

  .skip-link {
    position: absolute;
    top: 0;
    left: -10000em;
    background: #000;
    color: #fff;
    padding: 1rem;
    z-index: 10000;
  }
  
  .skip-link:focus {
    left: 0;
  }

	.btn-menu {
		appearance: none;
		-webkit-appearance: none;
		-moz-appearance: none;
		margin: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		cursor: pointer;
		color: inherit;
	}






  /* HEADLINES */

  *[class*="hdln-"] {
		font-family: var(--base-font-2);
    font-size: var(--font-size);
    font-size: max(var(--min-font-size, 1rem), min(var(--this-font-size), var(--max-font-size, var(--this-font-size))));
    --this-font-size: calc(var(--font-size) * (100 / var(--scale-breakpoint)) * 1vw);
    --scale-breakpoint: 900;
  }
  
  .hdln-110 {
  	--font-size: 110;
    --min-font-size: 30px;
    --max-font-size: calc(110 * var(--base-unit));
    line-height: 1.18181818181818181818;
  }

  .hdln-80 {
  	--font-size: 80;
    --min-font-size: 30px;
    --max-font-size: calc(80 * var(--base-unit));
    line-height: 1.125;
  }

  .hdln-60 {
  	--font-size: 60;
    --min-font-size: 20px;
    --max-font-size: calc(60 * var(--base-unit));
  }
  
  .hdln-40 {
  	--font-size: 40;
    --min-font-size: 20px;
    --max-font-size: calc(40 * var(--base-unit));
  }
  
  .hdln-30 {
  	--font-size: 30;
    --min-font-size: 20px;
    --max-font-size: calc(30 * var(--base-unit));
  }
  
  .hdln-28 {
  	--font-size: 28;
    --min-font-size: 20px;
    --max-font-size: calc(28 * var(--base-unit));
  }




  @media (min-width: 1920px) {
    
    *[class*="hdln-"] {
      --base-unit: 1.328px;
    }
    
  }

	
	
	/* COPIES */

	*[class*="cpy-"] {
		font-family: var(--base-font-1);
    font-size: var(--font-size);
    font-size: max(var(--min-font-size, 1rem), min(var(--this-font-size), var(--max-font-size, var(--this-font-size))));
    --this-font-size: calc(var(--font-size) * (100 / var(--scale-breakpoint)) * 1vw);
    --scale-breakpoint: 900;
	}

	*[class*="cpy-"][class*="-b"] {
		font-family: var(--base-font-1-bold);
	}

	.cpy-20 {
		--font-size: 20;
    --min-font-size: 12px;
    --max-font-size: calc(20 * var(--base-unit));
    line-height: 1.35;
	}

	.cpy-16 {
		--font-size: 16;
    --min-font-size: 12px;
    --max-font-size: calc(16 * var(--base-unit));
    line-height: 1.375;
	}

	.cpy-13 {
		--font-size: 13;
    --min-font-size: 13px;
    --max-font-size: 13px;
	}
  
	.cpy-12.cpy-b {
		--font-size: 12;
    --min-font-size: 12px;
    --max-font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
	}
  
  
  
  
  @media (min-width: 1920px) {
    
    *[class*="cpy-"] {
      --base-unit: 1.328px;
    }
    
  }





	/* PAGE TRANSITIONS */

	.transitioner {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		pointer-events: none;
		z-index: 998;
	}

	.transitioner::before {
		content: '';
		position: absolute;
		display: block;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background: #fff;
		opacity: 0;
		z-index: 1;
		will-change: transform;
	}

	.barba-outer,
	.sn-pt-leave-active,
	.sn-pt-enter-active {
		transition: opacity;
		transition-duration: 1.2s;
		opacity: 1;
	}

	.sn-pt-leave-active .module,
	.sn-pt-enter-active .module,
	.barba-once-active .module {
		transition: opacity 1s, transform 1s;
		transition-timing-function: cubic-bezier(0.19,1,.22,1);
	}

	.sn-pt-leave-active .transitioner::before,
	.sn-pt-enter-active .transitioner::before,
	.barba-once-active .transition::before {
		transition: opacity .75s;
		transition-timing-function: cubic-bezier(0.19,1,.22,1);
	}	
	.sn-pt-enter-active .transitioner::before {
		transition-delay: .15s;
	}

	/* Starting state for leave */
	.sn-pt-leave .module {
		opacity: 1;
	}
	.sn-pt-leave .transitioner::before {
		opacity: 0;
	}

	/* Ending state for leave */
	.sn-pt-leave-to .module {
		opacity: 1;
	}
	.sn-pt-leave-to .transitioner::before {
		opacity: 1;
	}

	/* Starting state for enter */
	.sn-pt-enter .module,
	.barba-once .module {
		/*opacity: 0;*/
		transform: translateY(80px);
	}
	.sn-pt-enter .transitioner::before,
	.barba-once .transitioner::before {
		opacity: 1;
	}

	/* Ending state for enter */
	.sn-pt-enter-to .module,
	.barba-once-to .module {
		opacity: 1;
		transform: none;
	}
	.sn-pt-enter-to .transitioner::before,
	.barba-once-to .transitioner::before {
		opacity: 0;
	}













	/* ON SCREEN */


	/* clip left to right */
	*[data-ios] *[data-ios-item="a"] {
		opacity: 0;
		-webkit-clip-path: inset(0% 100% 0% 0%);
		clip-path: inset(0% 100% 0% 0%);
		transition: clip-path 1.5s, -webkit-clip-path 1.5s, opacity 1.5s;
		transition-timing-function: cubic-bezier(.075, .82, .165, 1);
		transition-delay: calc((var(--ios-item-index) * 100ms) + var(--ios-delay, 0ms));
		will-change: opacity;
	}

	*[data-ios].is-on-screen *[data-ios-item="a"] {
		opacity: 1;
		-webkit-clip-path: inset(0% 0% 0% 0%);
		clip-path: inset(0% 0% 0% 0%);
	}


	/* clip top to bottom */
	*[data-ios] *[data-ios-item="b"] {
		opacity: 0;
		-webkit-clip-path: inset(0% 0% 100% 0%);
		clip-path: inset(0% 0% 100% 0%);
		transition: clip-path 1.5s, -webkit-clip-path 1.5s, opacity 1.5s;
		transition-timing-function: cubic-bezier(.075, .82, .165, 1);
		transition-delay: calc((var(--ios-item-index) * 100ms) + var(--ios-delay, 0ms));
		will-change: opacity;
	}

	*[data-ios].is-on-screen *[data-ios-item="b"] {
		opacity: 1;
		-webkit-clip-path: inset(0% 0% 0% 0%);
		clip-path: inset(0% 0% 0% 0%);
	}


	/* pop randomly */
	*[data-ios] *[data-ios-item="c"] {
		transform: scale(0.8);
		opacity: 0;
		transition: transform 1s, opacity 1s;
		transition-timing-function: cubic-bezier(.075, .82, .165, 1);
		transition-delay: calc((var(--ios-random) * 30ms) + var(--ios-delay, 0ms));
		will-change: opacity;
	}

	*[data-ios].is-on-screen *[data-ios-item="c"] {
		opacity: 1;
		transform: none;
	}


	/* clip vertically from center */
	*[data-ios] *[data-ios-item="d"] {
		opacity: 0;
		-webkit-clip-path: inset(50% 0% 50% 0%);
		clip-path: inset(50% 0% 50% 0%);
		transition: clip-path 1.5s, -webkit-clip-path 1.5s, opacity 1.5s;
		transition-timing-function: cubic-bezier(.075, .82, .165, 1);
		transition-delay: calc((var(--ios-item-index) * 100ms) + var(--ios-delay, 0ms));
		will-change: opacity;
	}

	*[data-ios].is-on-screen *[data-ios-item="d"] {
		opacity: 1;
		-webkit-clip-path: inset(0% 0% 0% 0%);
		clip-path: inset(0% 0% 0% 0%);
	}


	/* move in from bottom */
	*[data-ios] *[data-ios-item="e"] {
		opacity: 0;
		transform: translateY(2vw);
		transition: opacity 1.5s, transform 1.5s;
		transition-timing-function: cubic-bezier(.075, .82, .165, 1);
		transition-delay: calc((var(--ios-item-index) * 100ms) + var(--ios-delay, 0ms));
		will-change: opacity;
	}

	*[data-ios].is-on-screen *[data-ios-item="e"] {
		opacity: 1;
		transform: none;
	}


	/* move in from right */
	*[data-ios] *[data-ios-item="f"] {
		opacity: 0;
		transform: translateX(20vw);
		transition: opacity 1.5s, transform 1.5s;
		transition-timing-function: cubic-bezier(.075, .82, .165, 1);
		transition-delay: calc((var(--ios-item-index) * 100ms) + var(--ios-delay, 0ms));
		will-change: opacity;
	}

	*[data-ios].is-on-screen *[data-ios-item="f"] {
		opacity: 1;
		transform: none;
	}






	/* clip image */
	*[data-ios] *[data-ios-item="clip-image"] {
		opacity: 0;
		-webkit-clip-path: inset(0% 0% 100% 0%);
		clip-path: inset(0% 0% 100% 0%);
		transition: clip-path 1.5s, -webkit-clip-path 1.5s, opacity 1.5s;
		transition-timing-function: cubic-bezier(.075, .82, .165, 1);
		transition-delay: calc((var(--ios-item-index) * 100ms) + var(--ios-delay, 0ms));
		will-change: opacity;
	}

	*[data-ios].is-on-screen *[data-ios-item="clip-image"] {
		opacity: 1;
		-webkit-clip-path: inset(0% 0% 0% 0%);
		clip-path: inset(0% 0% 0% 0%);
	}
  




	/* BUTTONS */

  :root {
    --round-button-size: max(44px, calc(50 * var(--base-unit)));
  }
  
	button,
  .btn,
  .lnk {
		margin: 0;
		border: 0;
		padding: 0;
		border-radius: 0;
		box-shadow: none;
		background: transparent;
		display: inline-block;
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
		cursor: pointer;
    font-size: var(--font-size);
    font-size: max(var(--min-font-size, 1rem), min(var(--this-font-size), var(--max-font-size, var(--this-font-size))));
    --this-font-size: calc(var(--font-size) * (100 / var(--scale-breakpoint)) * 1vw);
    --scale-breakpoint: 900;
    color: inherit;
	}
	
	.btn-a {
    --font-size: 20;
    --min-font-size: 12px;
    --max-font-size: min(26px, calc(20 * var(--base-unit)));
		display: inline-flex;
    flex-flow: row nowrap;
    align-items: center;
    border-top-left-radius: 100px;
    border-bottom-left-radius: 100px;
	}
  
  .btn-a.small {
    --font-size: 16;
    --min-font-size: 16px;
    --max-font-size: min(21px, calc(16 * var(--base-unit)));
    --round-button-size: max(44px, calc(53 * var(--px)));
  }
  
  .btn-a span.icon {
    width: var(--round-button-size);
    height: var(--round-button-size);
    border-radius: 50%;
    border: 1px solid currentColor;
    position: relative;
    margin-right: 1.5em;
    z-index: 2;
    overflow: hidden;
    flex-shrink: 0;
  }
  
  .btn-a svg {
    position: absolute;
    display: block;
    top: calc(50% - (var(--height) / 2));
    left: calc(50% - (var(--width) / 2));
    --width: max(.75rem, calc(19 * var(--base-unit)));
    --height: var(--width);
    width: var(--width);
    height: var(--height);
  }
  
  .btn-a span.icon svg path {
    fill: currentColor;
  }
  
  .btn-no-label {
    border-top-right-radius: 100px;
    border-bottom-right-radius: 100px;
  }
  
  .btn-no-label span.label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px; 
  }
  
  .btn-no-label span.icon {
    margin-right: 0 !important;
  }
  
  .btn-plus svg,
  .btn-icon svg {
    --width: max(18px, calc(19 * var(--base-unit)));
  }
  
  .btn-arrow-v svg {
    --width: max(18px, calc(18 * var(--base-unit)));
    --height: max(18px, calc(24 * var(--base-unit)));
  }

  .btn-arrow-h svg {
    --width: max(18px, calc(24 * var(--base-unit)));
    --height: max(18px, calc(18 * var(--base-unit)));
  }
  
  .btn-toggle-filter svg {
    --width: max(20px, calc(33 * var(--px)));
  }
  
  .btn-close-filter svg {
    --width: max(28px, calc(36 * var(--px)));
  }
  
  .btn-reset-filter svg {
    --width: max(25px, calc(34 * var(--px)));
  }
  
  
  .btn-flyout-address {
    --font-size: 20;
    --min-font-size: 12px;
    --max-font-size: calc(20 * var(--base-unit));
  }
  
  .btn-flyout-address > span {
    vertical-align: middle !important;
  }
  
  .btn-flyout-address svg {
    vertical-align: middle;
    height: auto;
  }
  
  .btn-flyout-address.btn-phone svg {
    width: 1.25em;
  }

  .btn-flyout-address.btn-email svg {
    width: 2.45em;
  }

  .btn-flyout-address {
    margin-right: 2em;
  }
  
  
  
  
  
  
  
  .btn-slider-control {
    display: block;
    --round-button-size: calc(53 * var(--px));
    width: var(--round-button-size);
    height: var(--round-button-size);
    border-radius: 50%;
    background: var(--base-color-dark-gray);
    position: relative;
  }
  
  .btn-slider-control svg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: block;
    width: 18px;
    height: auto;
  }
  
  
  
  
  
  
  
  .btn-icon-only {
    position: relative;
  }

  .btn-icon-only span.label {
    display: block;
    position: absolute;
    left: -10000em;
    width: 1px;
    height: 1px;
    overflow: hidden;
  }

  .btn-icon-only svg {
    display: block;
    width: max(var(--min-width, 0px), calc(var(--icon-width) * var(--px)));
    height: auto;
  }

  .btn-icon-only[data-icon="email-2"] svg { --min-width: 16px; }
  .btn-icon-only[data-icon="view-floor-plan"] svg { --min-width: 18px; }
  .btn-icon-only[data-icon="download-floor-plan"] svg { --min-width: 16px; }

  .btn-icon-only svg,
  .btn-icon-only svg path {
    fill: currentColor;
  }







  .btn span.icon-hover {
    position: absolute;
    top: 0;
    left: 0;
    margin-left: 0;
    pointer-events: none;
    z-index: 2;
    border-color: transparent;
    background: var(--base-color-dark-gray);
    opacity: 0;
    clip-path: circle(0% at 50% 50%);
    transition: 
      clip-path 0ms var(--ttf-7) 750ms,
      opacity 250ms var(--ttf-7) 0ms;
  }
  
  .btn:hover span.icon-hover {
    opacity: 1;
    clip-path: circle(100% at 50% 50%);
    transition: var(--ttf-2);
    transition-duration: 1000ms;
    transition-delay: 0ms;
    transition-property: opacity, clip-path;
  }
  
  .btn span.icon-hover svg path {
    fill: var(--base-color-white);
  }





	/* LINKS */

	.lnk-a {
    --font-size: 20;
    --min-font-size: 12px;
    --max-font-size: min(26px, calc(20 * var(--base-unit)));
    position: relative;
    padding-left: 2.7em;
    transition: padding-left 150ms;
	}
  
  .lnk-a:hover {
    padding-left: 3em;
  }
  
  .lnk-a::after {
    content: '';
    display: block;
    position: absolute;
    top: 0.55em;
    left: 0;
    width: 2em;
    height: 1px;
    background: currentColor;
    transition: width 150ms;
  }
  
  .lnk-a:hover::after {
    width: 2.3em;
  }










  
  
  
  
  
  
  
	.btn-b {
    --font-size: 16;
    --min-font-size: 12px;
    --max-font-size: min(20px, calc(16 * var(--base-unit)));
		display: inline-flex;
    flex-flow: row nowrap;
    align-items: center;
    border-radius: 100px;
    background: #fcfbfa;
    height: var(--burger-button-size);
    padding-inline: 1.5em;
	}
  
  .btn-b.black {
    background: var(--base-color-dark-gray);
    color: var(--base-color-white);
  }
  
  
  
  
  
  
  
  .btn-set.multiple {
    display: flex;
    flex-flow: row wrap;
    gap: calc(40 * var(--px)) calc(80 * var(--px));
  }

	/* FORMS */
  
  input:-webkit-autofill,
  input:-webkit-autofill:hover, 
  input:-webkit-autofill:focus,
  textarea:-webkit-autofill,
  textarea:-webkit-autofill:hover,
  textarea:-webkit-autofill:focus,
  select:-webkit-autofill,
  select:-webkit-autofill:hover,
  select:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--color);
    -webkit-box-shadow: 0 0 0px 1000px #000 inset;
    transition: background-color 5000s ease-in-out 0s;
  }
  
  ::-webkit-input-placeholder {
    color: var(--color);
    transition: color 150ms;
  }
  ::placeholder {
    color: var(--color);
    transition: color 150ms;
  }
  :focus::placeholder,
  :focus::-webkit-input-placeholder {
    color: transparent;
  }

	.styled-select,
	.styled-search {
		position: relative;
	}

	.styled-select select,
	li.search input {
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
	}

	.styled-select select {
		cursor: pointer;
	}

	.styled-select .styled-select-icon {
		position: absolute;
		right: 1rem;
		top: 50%;
		z-index: 2;
		pointer-events: none;
		color: #fff;
		transform: translateY(-50%);
	}
  
  .styled-select .styled-select-icon > span {
    display: block;
    line-height: 0;
  }
  
  .form-list > li + li {
    margin-top: max(2.5rem, calc(40 * var(--base-unit)));
  }
  
  .form-list > li + li.submit {
    margin-top: max(2.5rem, calc(60 * var(--base-unit)));
  }

  .form-list li.input input,
  .form-list li.input textarea,
  .form-list li.input .multiselect-toggle,
  .form-list li.select select {
    
		font-family: var(--base-font-1);
    font-size: var(--font-size);
    font-size: max(var(--min-font-size, 1rem), min(var(--this-font-size), var(--max-font-size, var(--this-font-size))));
    --this-font-size: calc(var(--font-size) * (100 / var(--scale-breakpoint)) * 1vw);
    --scale-breakpoint: 900;
    
		--font-size: 40;
    --min-font-size: 18px;
    --max-font-size: min(53px, calc(40 * var(--base-unit)));
    
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0 !important;
    display: inline-block;
    width: 100%;
    box-sizing: border-box;
    padding: 0.15em 0;
    line-height: 1.15;
    
    --color: var(--base-color-dark-gray);
    color: var(--color);
    border-bottom: 2px solid var(--base-color-gray);
    
  }
  
  .form-list li.input textarea {
    min-height: max(140px, calc(250 * var(--base-unit)));
    height: max(140px, calc(250 * var(--base-unit)));
  }
  
  .form-list li.select select {
    cursor: pointer;
  }
  
  .form-list li.select .wpcf7-form-control-wrap {
    display: block;
    background: url(/content/themes/cavi/imgs/icons/dropdown.svg?x83099) no-repeat right center;
    background-size: auto 50%;
  }



  .multiselect {
    position: relative;
  }

  .form-list li.input .multiselect-toggle {
    display: block;
    text-align: left;
    cursor: pointer;
    padding-right: 2em;
    background: url(/content/themes/cavi/imgs/icons/dropdown.svg?x83099) no-repeat right center;
    background-size: auto 50%;
  }

  .multiselect.is-open .multiselect-toggle {
    border-color: #949696;
  }

  .multiselect-summary {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  
  .multiselect-summary:empty::before {
    content: "\00a0";
  }

  .multiselect-panel {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 20;
    box-sizing: border-box;
    padding: max(16px, calc(24 * var(--base-unit)));
    max-height: 50vh;
    overflow: auto;
    overscroll-behavior: contain;
    background: var(--page-background-color, var(--base-color-white));
    border: 1px solid var(--base-color-gray);
    border-top: 0;
  }

  .multiselect-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-flow: column nowrap;
    gap: max(12px, calc(18 * var(--base-unit)));
  }

  .multiselect-list label {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    gap: 0 0.75em;
    cursor: pointer;
    user-select: none;
  }

  .multiselect-list input {
    --foreground-color: var(--base-color-gray);
    --background-color: var(--base-color-dark-gray);
  }

  .multiselect-list .label {
    display: block;
  }

  .form-list li.input .multiselect-list input {
    --size: max(19px, calc(19 * var(--base-unit)));
    appearance: none;
    display: block;
    flex-shrink: 0;
    width: var(--size);
    height: var(--size);
    margin: 0;
    padding: 0;
    border: 1px solid var(--foreground-color);
    border-radius: 0;
    background: var(--foreground-color);
    box-shadow: 0 0 0 var(--size) var(--background-color) inset;
    transition: box-shadow 150ms;
    cursor: pointer;
  }

  .form-list li.input .multiselect-list input:checked {
    box-shadow: 0 0 0 3px var(--background-color) inset;
  }



  .form-list li.gdpr {
    --copy-color: var(--base-color-dark-gray);
  }
  
  .form-list li.gdpr .sn-col-set {
    flex-flow: row nowrap;
  }
  
  .form-list li.gdpr .sn-col-set div:first-child {
    margin-right: 1em;
  }
  
  .form-list li.gdpr .sn-col-set div:last-child {
    width: 100%;
    color: var(--copy-color);
    font-size: 13px;
    line-height: 1.38461538461538461538;
  }

  .form-list li.gdpr input,
  .form-list li.checkboxes input {
    --foreground-color: var(--base-color-gray);
    --background-color: var(--base-color-dark-gray);
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
    border: 1px solid var(--foreground-color);
    background: var(--foreground-color);
    --size: max(19px, calc(19 * var(--base-unit)));
    width: var(--size);
    height: var(--size);
    cursor: pointer;
    box-shadow: 0 0 0 var(--size) var(--background-color) inset;
    transition: box-shadow 150ms; 
    border-radius: 0;
  }
  
  .form-list li.gdpr input:checked,
  .form-list li.checkboxes input:checked {
    box-shadow: 0 0 0 3px var(--background-color) inset;
  }
  
  .form-list li.gdpr label,
  .form-list li.checkboxes label {
    display: block;
    cursor: pointer;
    user-select: none;
  }
  
  .form-list li.gdpr a:hover {
    text-decoration: underline;
  }




  .newsletter-form-list li.gdpr {
    --copy-color: var(--base-color-gray);
  }

  .newsletter-form-list li.input input {
    --color: var(--base-color-white);
    color: var(--color);
    border-bottom: 1px solid var(--base-color-gray);
  }
  

  



  .standard-form-list li.input input:focus {
    border-color: #949696;
  }
  
  li.float-label > label {
    
		font-family: var(--base-font-1);
    font-size: var(--font-size);
    font-size: max(var(--min-font-size, 1rem), min(var(--this-font-size), var(--max-font-size, var(--this-font-size))));
    --this-font-size: calc(var(--font-size) * (100 / var(--scale-breakpoint)) * 1vw);
    --scale-breakpoint: 900;
    
		--font-size: 20;
    --min-font-size: 16px;
    --max-font-size: min(26px, calc(20 * var(--base-unit)));
    
    position: relative;
    display: inline-block;
    transform-origin: left top;
    pointer-events: none;
  }
  
  li.float-label.is-ready label {
    transition: transform 500ms var(--ttf);
  }
  
  li.float-label.is-not-empty > label {
    
  }
  
  li.float-label.is-empty > label {
    --label-offset: 0.5em;
    --label-scale: 2;
    transform: translateY(calc(100% + var(--label-offset))) scale(var(--label-scale));
  }
  
  
  @media (max-width: 1100px) {
    li.float-label.is-empty > label {
      --label-offset: 0.2em;
    }
  }
  
  @media (max-width: 900px) {
    li.float-label.is-empty > label {
      --label-offset: 0em;
    }
  }
  
  @media (max-width: 800px) {
    li.float-label.is-empty > label {
      --label-offset: 0em;
      --label-scale: 1.5;
    }
  }
  
  @media (max-width: 750px) {
    li.float-label.is-empty > label {
      --label-scale: 1.2;
    }
  }
  
  
  
  
  
  .form-list li.checkboxes .wpcf7-list-item {
    display: block;
    margin-bottom: calc(22 * var(--base-unit));
  }
  
  .form-list li.checkboxes .wpcf7-list-item > label {
    position: relative;
    padding-left: 2em;
  }
  






  @media (max-width: 500px) {
    
    .module-newsletter {
      background-position: calc(294 * var(--base-unit)) 6vw;
      background-size: auto 56%;
    }
    
    .form-list li.input input,
    .form-list li.input textarea,
    .form-list li.select select {
      padding: 0.5em 0;
    }
    
    .form-list li.input .multiselect-toggle {
      padding-block: 0.5em;
    }
    
    .form-list li.checkboxes .wpcf7-list-item > label {
      min-height: 20px;
      padding-left: 3em;
      padding-top: 0.2em;
    }
    
    .form-list li.checkboxes .wpcf7-list-item {
      margin-bottom: calc(18 * var(--base-unit-mobile));
    }
    
  }






	/* HEADER */
  
  :root {
    --header-padding-top: max(33px, calc(64 * var(--base-unit)));
    --burger-button-size: var(--round-button-size);
    --header-buttons-offset: 0px;
  }
  
  header.main {
    padding-top: var(--header-padding-top);
    pointer-events: none;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
  }

  .site-title,
  .flyout-site-title {
    display: flex;
    flex-flow: column nowrap;
    width: var(--site-title-width);
    padding-left: var(--site-title-offset-left);
    min-height: var(--round-button-size);
  }
  
  .site-title a,
  .flyout-site-title a {
    display: block;
    pointer-events: all;
    margin-top: auto;
    margin-bottom: auto;
  }
  
  .flyout-site-title a {
    pointer-events: none;
  }
  
  body.menu .flyout-site-title a {
    pointer-events: all;
  }
  
  .site-title svg,
  .flyout-site-title svg {
    width: 100%;
    height: auto;
    display: block;
  }

	.site-title svg path,
  .flyout-site-title svg path {
	  fill: var(--base-color-dark-gray);
	}
  
  .flyout-site-title svg path {
    fill: var(--base-color-white);
  }
  
  .header-col-set {
    display: flex;
    flex-flow: row nowrap;
  }
  
  .header-col-set .col-1 {
    margin-right: auto;
  }
  
  .header-col-set .address-and-language {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    position: fixed;
    top: var(--header-padding-top);
    right: max(80px, calc(160 * var(--px)));
    z-index: 10;
  }
  
  .header-col-set .address-and-language > ul,
  .header-buttons ul {
    display: flex;
    flex-flow: row nowrap;
    pointer-events: all;
    align-items: center;
    min-height: var(--burger-button-size);
  }
  
  .header-col-set .address-and-language > ul > li + li,
  .header-buttons ul > li + li {
    margin-left: calc(30 * var(--base-unit));
  }
  
  .header-col-set .address-and-language > ul > li:last-child {
    margin-left: calc(50 * var(--px));
  }

  .header-buttons .li-back-to-top,
  .header-buttons li.is-current {
    display: none;
  }

  .header-col-set .col-3 {
    width: calc(var(--grid-1-));
  }
  
  
  .btn-burger {
    width: var(--burger-button-size);
    height: var(--burger-button-size);
    border-radius: 50%;
    background: var(--base-color-dark-gray);
    color: var(--base-color-white);
    pointer-events: all;
    display: block;
    position: fixed;
    top: var(--header-padding-top);
    right: var(--page-padding-right);
    z-index: 1000;
  }
  
  .btn-burger .bar-wrap {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: calc(var(--burger-button-size) * .41666666666666666666);
    height: calc(var(--burger-button-size) * .16666666666666666666);
  }
  
  .btn-burger .bar-wrap > span {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: currentColor;
    transform-origin: center;
    transition: transform, top;
    transition-duration: 500ms;
    transition-timing-function: var(--ttf);
  }
  
  .btn-burger .bar-wrap > span.bar-2 {
    top: 100%;
  }
  
  body.menu .btn-burger .bar-wrap > span.bar-1 {
    transform: rotate(45deg);
    top: 50%;
  }
  
  body.menu .btn-burger .bar-wrap > span.bar-2 {
    transform: rotate(-45deg);
    top: 50%;
  }
  
  .btn-burger::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border: 1px solid var(--base-color-white);
    border-radius: 50%;
    z-index: 1;
    opacity: 0;
    transition: opacity 250ms;
  }
  
  body.menu .btn-burger::after {
    opacity: 1;
  }
  
  
  
  
  
  
  
  
  
  
  div.flyout {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 999;
    overflow: auto;
    color: var(--base-color-white);
    pointer-events: none;
    --flyout-duration: 750ms;
    
    --initial-delay: 200ms;
    --delay-base: 40ms;
    
  }
  
  body.menu div.flyout {
    pointer-events: all;
  }
  
  div.flyout > .inner {
    display: flex;
    flex-flow: column nowrap;
    height: 100%;
    position: relative;
    z-index: 3;
  }
  
  .flyout-site-title {
    padding-top: var(--header-padding-top);
    opacity: 0;
    transition: opacity;
    transition-duration: 1500ms;
    transition-timing-function: var(--ttf);
  }
  
  body.menu .flyout-site-title {
    opacity: 1;
  }
  
  .flyout-body {
    width: 100%;
    max-width: calc(750 * var(--base-unit));
    margin: 0 auto;
    flex-grow: 1;
    display: flex;
    flex-flow: column nowrap;
  }
  
  
  
  
  nav.header {
    margin: auto 0;
    counter-reset: supernovae;
  }
  
  nav.header .menu > li.btn-small {
    font-size: 0.5em;
    padding-left: 1.5em;
  }
  
  nav.header .menu > li:not(.btn-small) {
    position: relative;
    padding-left: .75em;
  }
  
  nav.header .menu > li + li {
    margin-top: 0.2em;
  }
  
  nav.header .menu > li:not(.btn-small) + li.btn-small {
    margin-top: 7vh;
  }
  
  nav.header .menu > li:not(.btn-small)::before {
		content: '0' counter(supernovae);
		counter-increment: supernovae;
	  position: absolute;
	  left: 0;
    top: 0.5em;
    font-family: var(--base-font-1-bold);
    font-size: .33333333333333333333em;
    color: var(--base-color-gray);
  }
  
  nav.header .menu > li {
    transform-origin: center top;
    transition: opacity, transform;
    transition-duration: 1000ms;
    transition-timing-function: var(--ttf);
    transition-delay: var(--delay);
    transform: translateY(20px);
    opacity: 0;
    --delay: -1s;
  }
  
  body.menu nav.header .menu > li { --delay: calc(var(--delay-base) + var(--initial-delay)); }
  body.menu nav.header .menu > li:nth-child(2) { --delay: calc(var(--initial-delay) + (var(--delay-base) * 2)); }
  body.menu nav.header .menu > li:nth-child(3) { --delay: calc(var(--initial-delay) + (var(--delay-base) * 3)); }
  body.menu nav.header .menu > li:nth-child(4) { --delay: calc(var(--initial-delay) + (var(--delay-base) * 4)); }
  
  body.menu nav.header .menu > li {
    transform: none;
    opacity: 1;
  }
  
  nav.header a {
    transition: opacity 250ms;
  }
  
  nav.header a:hover {
    opacity: 0.5;
  }
  
  
  
  
  
  .flyout-address {
    --delay: -1s;
    transition: opacity, transform;
    transition-duration: 1000ms;
    transition-timing-function: var(--ttf);
    transition-delay: var(--delay, 0ms);
    transform: translateY(20px);
    opacity: 0;
    padding-bottom: 5vh;
    margin-top: 2em;
  }
  
  body.menu .flyout-address {
    --delay: calc(var(--initial-delay) + (var(--delay-base) * 5));
    transform: none;
    opacity: 1;
  }
  
  div.flyout .hdln-60 {
    --min-font-size: 60px;
  }
  
  
  div.flyout::after {
    content: '';
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    background: var(--base-color-dark-gray);
    transform: scaleY(0);
    transform-origin: center top;
    transition: transform var(--flyout-duration);
    transition-timing-function: var(--ttf);
  }
  
  body.menu div.flyout::after {
    transform: none;
  }
  
  div.flyout::before {
    content: '';
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    background: rgba(0,0,0,0.2);
    opacity: 0;
    transition: opacity;
    transition-duration: var(--flyout-duration);
    transition-timing-function: var(--ttf);
  }
  
  body.menu div.flyout::before {
    opacity: 1;
  }
  
  @media (prefers-reduced-motion: reduce) {
    
    .btn-burger .bar-wrap > span,
    .flyout-site-title,
    nav.header .menu > li,
    .flyout-address,
    div.flyout::after,
    div.flyout::before {
      transition-duration: 1ms;
      transition-delay: 0ms;
    }
    
    nav.header .menu > li,
    .flyout-address {
      transform: none;
    }
    
  }






  @media (min-width: 1920px) {
    
    :root {
      --header-padding-top: 85px;
    }
    
  }






  @media (max-width: 1000px) {
    
    div.flyout .hdln-60 {
      --min-font-size: 50px;
    }
    
    .flyout-body {
      max-width: none;
      width: auto;
      margin: auto;
    }
    
  }





  @media (max-width: 650px) {
    
    :root {
      --header-buttons-offset: calc(var(--round-button-size) + 40px);
    }
    
    .header-col-set .address-and-language > ul > li:last-child {
      margin-left: 0;
    }
    
    .header-col-set .col-3 {
      width: calc(var(--round-button-size) + 30px);
    }
    
    .header-buttons {
      position: fixed;
      left: 0;
      right: 0;
      bottom: calc(20px + env(safe-area-inset-bottom, 0px));
      z-index: 10;
      padding-inline: 7px;
      pointer-events: none;
      transition: visibility 0ms linear 0ms;
    }

    body:not(.scrolled-viewport) .header-buttons {
      visibility: hidden;
      transition: visibility 0ms linear 400ms;
    }

    .header-buttons ul > li {
      transition:
        opacity 400ms var(--ttf-7) calc(var(--stagger, 0) * 70ms),
        transform 800ms var(--ttf-7) calc(var(--stagger, 0) * 70ms);
    }

    .header-buttons ul > li:nth-child(2 of :not(.is-current)) { --stagger: 1; }
    .header-buttons ul > li:nth-child(3 of :not(.is-current)) { --stagger: 2; }
    .header-buttons ul > li:nth-child(4 of :not(.is-current)) { --stagger: 3; }

    body:not(.scrolled-viewport) .header-buttons ul > li {
      opacity: 0;
      transform: translateY(12px);
      transition:
        opacity 300ms var(--ttf-7),
        transform 300ms var(--ttf-7);
    }

    .header-buttons .li-back-to-top {
      display: list-item;
    }

    .header-buttons .btn-back-to-top {
      position: relative;
      width: var(--burger-button-size);
      padding-inline: 0;
      vertical-align: top;
    }

    .header-buttons .btn-back-to-top span.icon {
      display: block;
      width: 100%;
      height: 100%;
    }

    .header-buttons .btn-back-to-top svg {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      display: block;
      width: 18px;
      height: 18px;
    }

    .header-buttons .btn-back-to-top svg path {
      fill: currentColor;
    }

    .header-buttons ul {
      justify-content: flex-end;
      align-items: stretch;
      min-height: 0;
    }
    
    .header-buttons ul > li + li {
      margin-left: 7px;
    }
    
    .header-buttons .btn-b {
      box-sizing: border-box;
      justify-content: center;
      white-space: nowrap;
      background: var(--base-color-dark-gray);
      color: var(--base-color-white);
    }
    
  }







  @media (max-width: 650px) and (prefers-reduced-motion: reduce) {

    body:not(.scrolled-viewport) .header-buttons ul > li {
      transform: none;
    }

  }







  @media (max-width: 500px) {

    .header-buttons ul > li {
      flex: 1 1 0;
      min-width: 0;
    }
    
    .header-buttons .btn-b {
      width: 100%;
      padding-inline: .5em;
    }

    .header-buttons ul > li.li-back-to-top {
      flex: 0 0 auto;
    }

    .header-buttons .btn-back-to-top {
      width: var(--burger-button-size);
      padding-inline: 0;
    }
    
    div.flyout .hdln-60 {
      --min-font-size: 30px;
      --max-font-size: calc(30 * var(--base-unit-mobile));
    }
    
    .header-col-set .col-3 {
      width: calc(var(--round-button-size) + (30 * var(--base-unit-mobile)));
    }
    
    nav.header .menu > li + li {
      margin-top: calc(24 * var(--base-unit-mobile));
    }
    
    .flyout-body {
      width: 100%;
      box-sizing: border-box;
      padding-left: calc(38 * var(--base-unit-mobile));
    }
    
    .btn-flyout-address {
      display: block;
    }
    
    .btn-flyout-address + .btn-flyout-address {
      margin-top: calc(24 * var(--base-unit-mobile));
    }
    
    .btn-flyout-address span.icon {
      width: 3em;
      text-align: center;
    }
    
    .btn-flyout-address span.icon svg {
      transform: scale(1.2);
    }
    
    .btn-flyout-address.btn-email span.icon svg {
      margin-left: -1em;
    }
    
  }








	/* FOOTER */	
	
	footer.main {
	  background: var(--base-color-light-blue);
	}
  
  footer.main > .inner {
    padding-top: max(64px, calc(180 * var(--base-unit)));
    padding-bottom: calc(max(50px, calc(90 * var(--base-unit))) + var(--header-buttons-offset, 0px));
  }
  
  .footer-site-title {
    width: var(--site-title-width);
    padding-left: var(--site-title-offset-left);
  }
  
  .footer-site-title svg {
    display: block;
    width: 100%;
    height: auto;
  }
  
  .footer-site-title svg path {
    fill: currentColor;
  }
  
  footer.main .row-1 {
    display: flex;
    flex-flow: row nowrap;
    position: relative;
  }
  
  footer.main .row-1 .col-1,
  footer.main .row-1 .col-2 {
    margin-right: calc(120 * var(--base-unit));
  }
  
  footer.main .row-1 .col-2,
  footer.main .row-1 .col-3 {
    width: var(--grid-2);
    display: flex;
    flex-flow: column nowrap;
  }
  
  footer.main .row-1 .button {
    margin-top: auto;
    padding-top: 1.5em;
  }
  
  footer.main .row-2 {
    margin-top: max(38px, calc(177 * var(--base-unit)));
    display: flex;
    flex-flow: row nowrap;
  }
  
  footer.main .row-2 > .col-1 {
    display: flex;
    flex-flow: column nowrap;
    width: calc(var(--site-title-width) + var(--site-title-offset-left) + (120 * var(--base-unit)));
    flex-shrink: 0;
    box-sizing: border-box;
  }
  
  footer.main .row-2 > .col-2 {
    display: flex;
    flex-flow: column nowrap;
    gap: 70px 0;
    width: 100%;
  }
  
  footer.main .row-2-col-2--col-set {
    display: flex;
    flex-flow: row nowrap;
    align-items: end;
  }
  
  footer.main .row-2-col-2--col-set .col-2 {
    margin-left: auto;
  }

  .back-to-top-slot {
    --round-button-size: max(44px, calc(53 * var(--px)));
    width: var(--round-button-size);
    height: var(--round-button-size);
  }

  .back-to-top-slot .btn-back-to-top svg {
    --arrow-size: max(18px, calc(19 * var(--base-unit)));
    --width: calc(var(--arrow-size) * 19 / 26);
    --height: calc(var(--arrow-size) * 25 / 26);
  }

  .back-to-top-slot .btn-back-to-top {
    position: fixed;
    right: var(--back-to-top-right, var(--page-padding-right));
    bottom: var(--back-to-top-bottom, 0px);
    z-index: 10;
    transition:
      opacity 400ms var(--ttf),
      visibility 0ms linear 0ms;
  }

  body:not(.scrolled-viewport) .back-to-top-slot:not(.is-docked) .btn-back-to-top {
    opacity: 0;
    visibility: hidden;
    transition:
      opacity 400ms var(--ttf),
      visibility 0ms linear 400ms;
  }
  
  nav.footer {
    margin: auto 0;
  }
  
  nav.footer ul {
    display: flex;
    flex-flow: row nowrap;
  }
  
  nav.footer ul > li + li {
    margin-left: 1em;
  }
  
  
  
  
  
  
  .coords {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: calc(100vh - var(--ios-vh-issue, 0px));
    z-index: 999;
    pointer-events: none;
    transition: opacity 1s var(--ttf);
  }
  
  .coords > span {
    display: block;
    position: absolute;
    bottom: calc(var(--page-padding-right) * 2);
    right: calc(var(--page-padding-right) + (var(--burger-button-size) / 2));
    transform: translateX(45%);
    writing-mode: tb;
  }
  
  body:not(.page-home) .coords {
    opacity: 0;
  }
  
  @media (max-width: 500px) {
    body .coords {
      opacity: 0;
    }
  }
  
  
  
  
  
  
  
  footer.main .row-2 > .col-1 {
    padding-left: var(--site-title-offset-left);
    display: flex;
    flex-flow: column nowrap;
    gap: 22px;
  }
  
  footer.main .row-2 > .col-1 figure {
    width: max(74px, calc(129 * var(--px)));
  }
  
  @media (max-width: 1000px) {
    
    footer.main .row-2 > .col-1 {
      width: calc(var(--site-title-width) + (120 * var(--px)));
    }
    
  }
  
  
  
  
  
  
  footer.main .row-1 .col-4 {
    position: absolute;
    right: 0;
    top: 0;
  }
  
  nav.social--footer svg path {
    stroke: currentColor;
    stroke-width: 2px;
  }
  
  nav.social--footer {
    width: 29px;
  }
  
  nav.social--footer svg {
    width: 100%;
    height: auto;
    display: block;
  }
  
  nav.social--footer a {
    position: relative;
    display: block;
  }
  
  nav.social--footer a span.title-wrap {
    position: absolute;
    left: -100000em;
    top: 0;
    width: 1px;
    height: 1px;
    overflow: hidden;
  }
  
  nav.social--footer .menu {
    display: flex;
    flex-flow: column nowrap;
    gap: 27px 0;
  }




  @media (max-width: 650px) {

    .back-to-top-slot {
      display: none;
    }

  }




  @media (max-width: 500px) {


    footer.main .row-1 {
      flex-flow: row wrap;
    }
    
    footer.main .row-1 {
      width: 100%;
    }
    
    footer.main .row-2 .col-1 {
      width: calc(90 * var(--base-unit-mobile));
    }
    
    footer.main .row-1 .col-2, footer.main .row-1 .col-3 {
      width: 100%;
      box-sizing: border-box;
      padding-left: calc(90 * var(--base-unit-mobile));
      margin-right: 0;
      padding-top: calc(25 * var(--base-unit-mobile));
    }
    
    footer.main .row-1 .col-3 {
      padding-top: calc(38 * var(--base-unit-mobile));
    }
    
    footer.main .row-1 .button {
      padding-top: 0.5em;
    }
    
    
    footer.main .row-2 .col-1 {
      padding-left: 0;
      justify-content: end;
    }
    
    footer.main .row-2 > .col-2 {
      gap: 140px;
    }
    
    nav.footer ul {
      display: block;
    }
    
    nav.footer ul > li {
      display: block;
      white-space: nowrap;
    }
    
    nav.footer ul > li + li {
      margin: 0;
    }
    
    
    .coords > span {
      right: var(--page-padding-right);
      transform: none;
    }
    
    
    footer.main .form-list li.gdpr .sn-col-set {
      position: relative;
    }
    
    footer.main .form-list li.gdpr .sn-col-set div:first-child {
      position: absolute;
      top: 0;
      right: 100%;
    }
    
  }/*
Theme Name: CAVI
Author: SUPERNOVÆ
Author URI: https://www.supernov.ae/
Version: 2021
*/





	

	

	
	








  /* GRID */

  #grid {
    position: fixed;
    top: 0;
    left: var(--page-padding-left);
    right: 0;
    bottom: 0;
    z-index: 999;
    pointer-events: none;
    display: none;
  }
  
  #grid > span {
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(var(--grid-1) * var(--index));
    width: var(--grid-column);
    background: rgba(255,40,40,0.08);
  }





/* ==========================================================================
   Media Queries
   ========================================================================== */



@media only screen and (max-width: 1600px) {

	#breakpoints::after {
		content: '1600px';
	}

}

/* 1600 */
















@media print,
       (-o-min-device-pixel-ratio: 5/4),
       (-webkit-min-device-pixel-ratio: 1.25),
       (min-resolution: 120dpi) {

}

/* ==========================================================================
   Helper classes
   ========================================================================== */

.ir {
    background-color: transparent;
    border: 0;
    overflow: hidden;
    *text-indent: -9999px;
}

.ir:before {
    content: "";
    display: block;
    width: 0;
    height: 150%;
}

.hidden {
    display: none !important;
    visibility: hidden;
}

.visuallyhidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    width: auto;
}

.invisible {
    visibility: hidden;
}

.clearfix:before,
.clearfix:after {
    content: " ";
    display: table;
}

.clearfix:after {
    clear: both;
}

.clearfix {
    *zoom: 1;
}

/* ==========================================================================
   Print styles
   ========================================================================== */

@media print {

  * {
      background: transparent !important;
      color: #000 !important;
      box-shadow: none !important;
      text-shadow: none !important;
  }

  a,
  a:visited {
      text-decoration: underline;
  }

  .ir a:after,
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
      content: "";
  }

  pre,
  blockquote {
      border: 1px solid #999;
      page-break-inside: avoid;
  }

  thead {
      display: table-header-group;
  }

  tr,
  img {
      page-break-inside: avoid;
  }

  img {
      max-width: 100% !important;
  }

  @page {
      margin: 1cm;
  }

  p,
  h2,
  h3 {
      orphans: 3;
      widows: 3;
  }

  h2,
  h3 {
      page-break-after: avoid;
  }
  
  .cookie-bar,
  .btn-wp-edit {
    display: none !important;
  }
  
  header.main,
  footer.main {
    display: none;
  }
    
}





  @media (min-width: 501px) {

    *[data-basic-scroll*="parallax-y"] .teaser-headline .hdln-110 {
      transform: translateY(calc(var(--parallax-y, 0) * (100 * var(--base-unit))));
    }
  
    *[data-basic-scroll*="parallax-y"] .teaser-headline .no {
      transform: translateY(calc(var(--parallax-y, 0) * (50px * var(--base-unit))));
    }
  

    *[data-basic-scroll*="parallax-y"].module-subpage-hero .hdln-110,
    *[data-basic-scroll*="parallax-y"].module-image-copy .headline {
      transform: translateY(calc(var(--parallax-y, 0) * (25px * var(--base-unit))));
    }
    
  }

  /* CUSTOM POINTER */

  *[data-custom-pointer] {
  	cursor: none;
  }

  #pointer-overlay {
  	position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    pointer-events: none;
    --pointer-size: min(100px, calc(100 * var(--base-unit)));
    margin: 0;
    padding: 0;
    border: 0;
    width: auto;
    height: auto;
    background: transparent;
    overflow: hidden;
  }

  #pointer-overlay::backdrop {
    display: none;
  }

  #pointer-overlay[data-pointer-type="close"] {
    --pointer-size: min(70px, calc(70 * var(--base-unit)));
  }

  #pointer-overlay svg {
    display: block;
  	width: var(--pointer-size);
  	height: var(--pointer-size);
  }

  #pointer-overlay svg path {
    fill: var(--base-color-white);
  }

  #pointer-overlay > div {
  	position: absolute;
  	top: calc(var(--pointer-size) / -2);
  	left: calc(var(--pointer-size) / -2);
  	width: var(--pointer-size);
  	height: var(--pointer-size);
  	cursor: none;
  	transform: translate(var(--pointer-left, 0px), var(--pointer-top, 0px)) rotate(var(--pointer-angle, 0deg));
  	transition: transform 75ms, opacity 250ms;
  }

  #pointer-overlay[data-pointer-type="close"] > div {
    transform: translate(var(--pointer-left, 0px), var(--pointer-top, 0px));
  }

  #pointer-overlay > div > div {
  	width: 100%;
  	height: 100%;
  	transition: transform 250ms, opacity 250ms;
  	transition-timing-function: var(--ttf);
  	opacity: 0;
  	transform: scale(0.5);
  }

  #pointer-overlay > div > div > div {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transition: transform 150ms;
  }

  #pointer-overlay[data-pointer-type="arrow-left"] > div > div .arrow,
  #pointer-overlay[data-pointer-type="arrow-right"] > div > div .arrow {
    opacity: 1;
  }

  #pointer-overlay[data-pointer-type="arrow-left"] > div > div .arrow {
    transform: rotateY(-180deg);
  }

  #pointer-overlay[data-pointer-type="close"] > div > div .close {
    opacity: 1;
  }

  #pointer-overlay[data-state="on"] > div > div {
  	opacity: 1;
  	transform: none;
  }






  .hero-headline {
    margin-bottom: max(1.125rem, calc(47 * var(--base-unit)));
  }


  .listings-filter {
    --filter-checkbox-border: #969696;
    --filter-checkbox-checked: #c4c4c4;
    --filter-hint-color: #a2aaa0;
    --filter-track-color: #2b2d31;
    --filter-fill-color: #f2f1ec;
    --filter-thumb-color: #f2f1ec;
  }

  .listings-filter[data-theme="light"] {
    --filter-checkbox-border: #3b3e43;
    --filter-checkbox-checked: #3b3e43;
    --filter-hint-color: #969696;
    --filter-track-color: #c4c4c4;
    --filter-fill-color: #3b3e43;
    --filter-thumb-color: #3b3e43;
  }



  .listings-filter .filter-box-headline {
    margin-bottom: 1.75em;
  }

  .listings-filter .checkbox-list {
    display: flex;
    flex-flow: column nowrap;
    gap: max(10px, calc(16 * var(--px)));
  }

  .listings-filter .checkbox-list label {
    display: flex;
    flex-flow: row nowrap;
    gap: 0 13px;
    cursor: pointer;
    user-select: none;
  }

  .listings-filter .checkbox-list .label {
    display: block;
  }

  .listings-filter .checkbox-list .label > span {
    display: block;
  }

  .listings-filter .checkbox-list .label > span:first-child {
    display: flex;
    align-items: center;
    min-height: 23px;
  }

  .listings-filter .checkbox-list .label .hint {
    color: var(--filter-hint-color);
  }

  .listings-filter .checkbox-list .input {
    display: block;
    width: 23px;
    height: 23px;
    flex-shrink: 0;
    border: 1px solid var(--filter-checkbox-border);
    border-radius: 3px;
    position: relative;
  }

  .listings-filter .checkbox-list .input input {
    appearance: none;
    display: block;
    width: auto;
    height: auto;
    margin: 0;
    position: absolute;
    inset: 0;
    padding: 7px;
    background-color: transparent;
    background-clip: content-box;
    cursor: pointer;
    transition: 250ms var(--ttf-2);
    transition-property: padding, background-color;
  }

  .listings-filter .checkbox-list .input input:checked {
    padding: 3px;
    background-color: var(--filter-checkbox-checked);
  }



  .listings-filter .filter-box--range .filter-box-headline {
    float: left;
    margin-top: 0;
    margin-bottom: 0;
  }

  .listings-filter .filter-box--range .range-value {
    display: block;
    text-align: right;
    white-space: nowrap;
  }

  @media (min-width: 1251px) {

    .listings-filter .filter-box--range .range-value {
      margin-top: -0.25em;
    }

  }

  @media (max-width: 1250px) {

    .listings-filter .filter-box--range .filter-box-headline {
      line-height: 1.4;
    }

  }

  .listings-filter .range-slider {
    clear: both;
    margin-top: calc(10 * var(--px));
    padding-inline: calc(var(--_thumb-size) / 2);
    --thumb-size: 16px;
    --track-height: 2px;
    --slider-track-color: var(--filter-track-color);
    --slider-segment-color: var(--filter-track-color);
    --slider-fill-color: var(--filter-fill-color);
    --slider-thumb-color: var(--filter-thumb-color);
  }

  .listings-filter .range-slider .rg-thumb {
    border: 0;
    box-shadow: none;
  }

  .listings-filter .range-slider .rg-ticks-wrapper {
    visibility: hidden;
  }






  :root {
    --module-margin: max(5rem, calc(200 * var(--base-unit)));
  }
  
  .module.mrgn-100 {
    margin-bottom: var(--module-margin);
  }
  
  .module.mrgn-0-if-last:last-child {
    margin-bottom: 0;
  }

  .module:first-child .module-inner {
    padding-top: var(--page-padding-top);
  }





  article .specs {
    margin-top: calc(40 * var(--base-unit));
    --margin: calc(27 * var(--base-unit));
    margin-bottom: calc(var(--margin) * -1);
    --cell-padding-right: calc(66 * var(--base-unit));
  }
  
  article.finished-project-article .specs {
    --cell-padding-right: 1em;
    margin-top: var(--margin);
  }

  article .specs tbody {
    display: flex;
    flex-flow: row wrap;
  }

  article .specs tr {
    width: 40%;
    margin-bottom: var(--margin);
  }

  article .specs tr:nth-child(2n+2) {
    width: 60%;
    --cell-padding-right: 0;
  }

  article .specs th {
    display: block;
    padding-right: var(--cell-padding-right);
    font-weight: normal;
    padding-bottom: 2px;
    text-align: left;
  }

  article .specs td {
    display: block;
    padding-right: var(--cell-padding-right);
  }
  
  
  
  
  
  
  
  .gallery-nav {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
  }
  
  html.touchevents .gallery-nav {
    display: none;
  }
  
  .gallery-nav button {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 50%;
    height: 100%;
  }
  
  .gallery-nav button.btn-next {
    left: 50%;
  }
  
  *[data-splide-position="start"] .gallery-nav button.btn-prev {
    display: none;
  }
  
  *[data-splide-position="end"] .gallery-nav button.btn-next {
    display: none;
  }
  
  *[data-splide-position="none"] .gallery-nav {
    display: none;
  }
  
  
  
  
  
  
  :is(.badge, .col--badge, .badge-slider-item) svg {
    --badge-stroke-width: 1px;
    display: block;
    width: 100%;
    height: auto;
  }
  
  :is(.badge, .col--badge, .badge-slider-item) svg :is(path, circle, line, polyline, polygon) {
    stroke: currentColor;
    stroke-width: var(--badge-stroke-width);
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
  }
  
  :is(.badge, .col--badge, .badge-slider-item) svg [stroke="none"] path {
    fill: currentColor;
  }



  /* SN OVERLAY */

  html.overlay-shown {
    overflow: clip;
  }



  dialog.sn-overlay {

    --overlay-duration-backdrop:   350;
    --overlay-delay-backdrop:      0;
    --overlay-duration-background: 0;
    --overlay-delay-background:    0;
    --overlay-duration-content:    450;
    --overlay-delay-content:       100;

    --overlay-duration-backdrop-out:   300;
    --overlay-delay-backdrop-out:      0;
    --overlay-duration-background-out: 0;
    --overlay-delay-background-out:    0;
    --overlay-duration-content-out:    250;
    --overlay-delay-content-out:       0;

    --overlay-easing: var(--ttf-2);

    --overlay-padding-top: var(--page-padding-left);
    --overlay-padding-bottom: var(--page-padding-left);
    --overlay-radius: max(20px, calc(45 * var(--px)));
    --overlay-content-padding: max(20px, calc(30 * var(--px)));

    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    overflow: hidden;
    overscroll-behavior: none;
    color: var(--base-color-dark-gray);
  }

  dialog.sn-overlay::backdrop {
    display: none;
  }

  dialog.sn-overlay .overlay-outer {
    position: fixed;
    inset: 0;
    display: grid;
  }

  dialog.sn-overlay .backdrop,
  dialog.sn-overlay .overlay-inner {
    grid-area: 1 / 1;
  }

  dialog.sn-overlay .backdrop { z-index: 1; }
  dialog.sn-overlay .overlay-inner { z-index: 2; }

  dialog.sn-overlay.is-closing .overlay-outer {
    pointer-events: none;
  }



  dialog.sn-overlay .backdrop {
    background: rgba(56, 60, 65, 0.6);
    pointer-events: auto;
    opacity: 0;
    transition-property: opacity;
    transition-timing-function: var(--overlay-easing);
    transition-duration: calc(var(--overlay-duration-backdrop) * 1ms);
    transition-delay: calc(var(--overlay-delay-backdrop) * 1ms);
  }

  dialog.sn-overlay.is-visible .backdrop {
    opacity: 1;
  }

  dialog.sn-overlay.is-closing .backdrop {
    opacity: 0;
    transition-duration: calc(var(--overlay-duration-backdrop-out) * 1ms);
    transition-delay: calc(var(--overlay-delay-backdrop-out) * 1ms);
  }



  dialog.sn-overlay .overlay-inner {
    box-sizing: border-box;
    min-width: 0;
    min-height: 0;
    padding: var(--overlay-padding-top) var(--page-padding-right) var(--overlay-padding-bottom) var(--page-padding-left);
    pointer-events: none;
    opacity: 0;
    transform: translateY(max(20px, calc(40 * var(--px))));
    will-change: transform;
    transition-property: opacity, transform;
    transition-timing-function: var(--overlay-easing);
    transition-duration: calc(var(--overlay-duration-content) * 1ms);
    transition-delay: calc(var(--overlay-delay-content) * 1ms);
  }

  dialog.sn-overlay.is-visible .overlay-inner {
    opacity: 1;
    transform: none;
  }

  dialog.sn-overlay.is-closing .overlay-inner {
    opacity: 0;
    transform: none;
    transition-property: opacity;
    transition-duration: calc(var(--overlay-duration-content-out) * 1ms);
    transition-delay: calc(var(--overlay-delay-content-out) * 1ms);
  }



  dialog.sn-overlay .overlay-wrap {
    pointer-events: auto;
    position: relative;
    height: 100%;
    box-sizing: border-box;
    background: #ffffff;
    border-radius: var(--overlay-radius);
    overflow: hidden;
    display: flex;
    flex-flow: column nowrap;
  }

  dialog.sn-overlay .overlay-header {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    padding: var(--overlay-content-padding);
    pointer-events: none;
  }

  dialog.sn-overlay .overlay-header .col--button {
    pointer-events: auto;
  }

  dialog.sn-overlay .overlay-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    isolation: isolate;
    padding: calc(var(--overlay-content-padding) + var(--round-button-size) + max(15px, calc(20 * var(--px))) + max(20px, calc(30 * var(--px)))) var(--overlay-content-padding) var(--overlay-content-padding);
  }



  dialog.sn-overlay .btn-close-overlay {
    width: var(--round-button-size);
    height: var(--round-button-size);
    border: 1px solid currentColor;
    border-radius: 50%;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    color: inherit;
    background: #ffffff;
    transition: background 250ms var(--ttf), color 250ms var(--ttf);
  }

  dialog.sn-overlay .btn-close-overlay:hover,
  dialog.sn-overlay .btn-close-overlay:focus-visible {
    background: var(--base-color-dark-gray);
    color: #ffffff;
  }
  
  dialog.sn-overlay .btn-close-overlay span.icon {
    margin-right: 0;
  }

  dialog.sn-overlay .btn-close-overlay span.icon,
  dialog.sn-overlay .btn-close-overlay span.icon > span {
    display: block;
  }

  dialog.sn-overlay .btn-close-overlay svg {
    display: block;
    width: max(20px, calc(30 * var(--px)));
    height: auto;
  }

  dialog.sn-overlay .btn-close-overlay svg path {
    fill: currentColor;
  }



  .status-legend {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    gap: 0.5em 2em;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }

  .status-legend .legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.8em;
  }

  .status-legend .legend-item > * {
    display: block !important;
    line-height: 1;
  }

  .status-legend .legend-item span.label {
    transform: translateY(0.1em);
  }




  dialog.sn-overlay--units .listings-filter {
    margin-bottom: max(40px, calc(70 * var(--px)));
  }

  dialog.sn-overlay--units .listings-filter .col-set {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 40px max(20px, calc(40 * var(--px)));
  }

  dialog.sn-overlay--units .listings-filter .filter-ranges {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: max(193px, calc(193 * var(--px)));
    column-gap: max(40px, calc(69 * var(--px)));
    align-content: start;
  }

  dialog.sn-overlay--units .status-legend {
    margin-bottom: max(30px, calc(55 * var(--px)));
  }

  dialog.sn-overlay--units .empty-state-message p {
    padding: var(--page-padding-left);
    text-align: center;
  }

  dialog.sn-overlay--units .units:has(.empty-state-message) .status-legend {
    display: none;
  }

  dialog.sn-overlay--units .units-results {
    transition: 250ms opacity var(--ttf-4);
    opacity: 1;
  }

  dialog.sn-overlay--units .units.is-loading .units-results {
    opacity: 0.5;
    cursor: wait;
  }

  dialog.sn-overlay--units .units.is-loading .units-results > * {
    interactivity: inert;
    pointer-events: none;
  }

  dialog.sn-overlay--units .listings-table :is(.th-inquiry, .td-inquiry) {
    text-align: right;
  }

  dialog.sn-overlay--units .listings-table .td-inquiry .btn {
    margin-left: auto;
  }

  @media (min-width: 751px) {

    dialog.sn-overlay--units .listings-table .td-inquiry .btn {
      display: inline-block;
    }

  }



  @media (max-width: 1300px) {

    dialog.sn-overlay--units .listings-filter .filter-ranges {
      grid-auto-flow: row;
      grid-template-columns: repeat(2, max(193px, calc(193 * var(--px))));
      row-gap: max(32px, calc(52 * var(--px)));
    }

  }



  @media (max-width: 750px) {

    dialog.sn-overlay--units .listings-filter .col-set {
      grid-template-columns: minmax(0, 1fr);
    }

    dialog.sn-overlay--units .listings-filter .filter-box--occupancy .checkbox-list {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      column-gap: 20px;
    }

    dialog.sn-overlay--units .listings-filter .filter-ranges {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      column-gap: 40px;
    }

  }



  @media (max-width: 700px) {

    dialog.sn-overlay {
      --overlay-padding-top: calc(var(--header-padding-top) + var(--round-button-size) + 20px);
      --overlay-padding-bottom: 10px;
      --overlay-content-padding: 15px;
    }

    dialog.sn-overlay .overlay-inner {
      padding-inline: 10px;
    }

    .status-legend {
      gap: 0.5em 1em;
    }

  }



  @media (max-width: 500px) {

    dialog.sn-overlay--units {
      --overlay-padding-top: 10px;
      --overlay-padding-bottom: 10px;
    }

    dialog.sn-overlay--units .listings-filter .filter-box--occupancy .checkbox-list {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    dialog.sn-overlay--units .status-legend {
      font-family: var(--base-font-1);
      text-transform: none;
      letter-spacing: 0;
    }

  }



  .sn-slider {
    --gap: calc(40 * var(--px));
    user-select: none;
  }

  .sn-slider-track {
    width: 100%;
    position: relative;
    overflow: hidden;
    overflow-x: scroll;
    -ms-overflow-style: none;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }

  .sn-slider-track::-webkit-scrollbar {
    display: none;
  }




  .sn-slider-slides {
    display: flex;
    flex-flow: row nowrap;
    width: max-content;
    padding-left: var(--page-padding-left);
    padding-right: var(--page-padding-right);
    gap: 0px var(--gap);
  }

  .sn-slider-slide {
    width: max(312px, calc(540 * var(--px)));
    scroll-margin-inline-start: var(--page-padding-left);
  }

  .sn-slider:not(.is-scrolling) .sn-slider-slide {
    scroll-snap-align: start;
  }

  .sn-slider:not(.is-scrolling) .sn-slider-track {
    scroll-snap-type: x mandatory;
  }




  .sn-slider-progress {
    display: none;
  }

  .sn-slider-progress span {
    display: block;
    position: absolute;
    left: 0;
    height: 100%;
    width: var(--sn-slider-progress, 0%);
    background: var(--base-color-black);
  }






  .sn-slider-wrap {
    position: relative;
    --transition-duration: 1000;
  }

  .sn-slider--visible {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    overflow-x: hidden;
    overflow-x: clip;
  }

  .sn-slider--visible .sn-slider-track {
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    transform: translateX(var(--sn-slider-scroll-left, 0px));
    width: auto;
    will-change: transform;
    transition: transform calc(var(--transition-duration, 0) * 1ms) var(--ttf-5);
  }

  @media (hover: none) {
    .sn-slider--visible .sn-slider-track {
      transition: none;
    }
  }

  .sn-slider-wrap.is-wheeling .sn-slider--visible .sn-slider-track {
    --transition-duration: 500;
    transition: transform calc(var(--transition-duration, 0) * 1ms) var(--ttf-5);
  }

  .sn-slider-wrap.is-teleporting .sn-slider--visible .sn-slider-track {
    transition: none;
  }

  .sn-slider--ghost {
    position: relative;
    z-index: 2;
    opacity: 0;
  }








  nav.sn-slider-pagination {
    position: absolute;
    top: calc(100% + (25 * var(--px)));
    left: 0;
    width: 100%;
  }

  nav.sn-slider-pagination ul {
    display: flex;
    flex-flow: row nowrap;
    gap: 0 9px;
    justify-content: center;
  }

  nav.sn-slider-pagination button {
    display: block;
    background: currentColor;
    width: 10px;
    height: 10px;
    border-radius: 5px;
    transition: width calc(var(--transition-duration, 0) * 1ms) var(--ttf-2);
  }

  nav.sn-slider-pagination button[aria-current="true"] {
    width: 40px;
    interactivity: inert;
  }



  .teaser-headline {
    margin-bottom: max(.625rem, calc(53 * var(--base-unit)));
  }
  
  .teaser-copy {
    max-width: max(306px, calc(306 * var(--base-unit)));
  }
  
  .teaser-btn-set {
    margin-top: calc(44 * var(--base-unit));
  }
  
  .teaser-no {
    display: block;
    position: absolute;
    top: 1em;
    right: calc(100% + 1rem);
    letter-spacing: .1em;
  }
  
  
  
  
  
  
  @media (max-width: 500px) {
    
    .teaser-no {
      top: 0;
      right: calc(100% + 0.6rem);
    }
    
    .teaser-btn-set {
      margin-top: calc(19 * var(--base-unit-mobile));
    }
    
  }



  .module-about-teaser {
    background: var(--base-color-light-green);
  }

  .module-about-teaser .module-wrap {
    padding-top: calc(220 * var(--base-unit));
    padding-bottom: calc(300 * var(--base-unit));
  }

  .module-about-teaser .row-1 {
    display: flex;
    flex-flow: row nowrap;
    max-width: calc(1103 * var(--base-unit));
    margin: 0 auto;
  }
  
  .module-about-teaser .row-1 figure.col-1 {
    width: calc(710 * var(--base-unit));
    flex-shrink: 0;
    position: relative;
    order: 2;
  }
  
  .module-about-teaser .row-1 .col-2 {
    --padding-left: calc(61 * var(--base-unit));
    width: 100%;
    box-sizing: border-box;
    position: relative;
    z-index: 2;
    padding-left: var(--padding-left);
    order: 1;
  }
  
  .module-about-teaser .row-1 .col-2 .headline {
    position: relative;
    margin-left: calc(var(--padding-left) * -1);
    margin-top: calc(50 * var(--base-unit));
    margin-right: calc(-240 * var(--base-unit));
  }
  
  
  .module-about-teaser .row-2 {
    margin-top: calc(190 * var(--base-unit));
    margin-left: calc(var(--page-padding-left) * -1);
    margin-right: calc(var(--page-padding-left) * -1);
    position: relative;
    text-align: center;
  }
  
  .module-about-teaser .copy {
    padding-right: calc(50 * var(--base-unit));
  }
  
  
  
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-about-teaser .row-1 {
      max-width: calc(285 * var(--base-unit-mobile));
      flex-flow: row wrap;
      flex-direction: column-reverse;
    }
    
    .module-about-teaser .row-1 figure.col-1,
    .module-about-teaser .row-1 .col-2 {
      width: 100%;
    }
    
    .module-about-teaser .row-1 .col-2 {
      --padding-left: 0;
      padding-left: calc(40 * var(--base-unit-mobile));
    }
    
    .module-about-teaser .row-1 .col-2 .headline {
      margin-right: 0;
      margin-top: calc(35 * var(--base-unit-mobile));
      margin-bottom: calc(12 * var(--base-unit-mobile));
    }
    
  }


  .badge-slider {
    --gap: calc(64 * var(--base-unit));
    user-select: none;
    margin-left: calc(var(--page-padding-left) * -1);
    margin-right: calc(var(--page-padding-left) * -1);
    margin-top: calc(320 * var(--base-unit));
    overflow: hidden;
  }
  
  .module-badge-slider.is-after-teaser {
    background: var(--background-color, transparent);
    margin-bottom: 0;
    padding-bottom: var(--module-margin);
  }
  
  .module-badge-slider.is-after-teaser .badge-slider {
    margin-top: 0;
  }

  .badge-slider .badge-slider-item {
    width: calc(180 * var(--base-unit));
    margin-right: var(--gap);
  }

  .badge-slider svg {
    color: var(--base-color-dark-gray);
  }

  .badge-slider .js-marquee {
    display: flex;
    flex-flow: row nowrap;
  }

  @media (prefers-reduced-motion: reduce) {

    .badge-slider {
      display: flex;
      flex-flow: row nowrap;
    }

    .badge-slider .badge-slider-item {
      flex-shrink: 0;
    }

  }
  
  
  
  
  
  
  
  .module-badge-slider.module-image-slider {
    margin-bottom: 0;
  }
  
  .module-badge-slider.module-image-slider .module-inner {
    padding-top: 0;
  }

  .module-badge-slider.module-image-slider .badge-slider {
    margin-top: 0;
    --gap: max(26px, calc(36 * var(--base-unit)));
  }
  
  .module-badge-slider.module-image-slider .badge-slider .badge-slider-item {
    width: max(355px, calc(475 * var(--px)));
  }
  
  
  
  
  
  
  
  
  
  
  @media (max-width: 500px) {
    
    .badge-slider {
      --gap: calc(27 * var(--base-unit-mobile));
    }
    
    .badge-slider .badge-slider-item {
      width: calc(77 * var(--base-unit-mobile));
    }
    
    .module-badge-slider.is-after-teaser {
      padding-bottom: calc(52 * var(--base-unit-mobile));
    }
    
  }




  @keyframes shake {
    10%, 90% { transform: translate3d(-3px, 0, 0); }
    20%, 80% { transform: translate3d(6px, 0, 0); }
    30%, 50%, 70% { transform: translate3d(-12px, 0, 0); }
    40%, 60% { transform: translate3d(12px, 0, 0); }
  }


  .module-contact .module-wrap {
    max-width: calc(1105 * var(--base-unit));
    margin: 0 auto;
  }

  .module-contact .row-1 {
    margin-bottom: calc(116 * var(--base-unit));
  }

  .module-contact .row-1 .wysiwyg {
    max-width: max(333px, calc(533 * var(--base-unit)));
    margin-top: calc(32 * var(--base-unit));
  }
  
  
  .multistep-contact-form {
    display: flex;
    flex-flow: row nowrap;
  }
  
  .multistep-contact-form .step {
    width: calc(220 * var(--base-unit));
    flex-shrink: 0;
    position: relative;
  }
  
  .multistep-contact-form .step > div {
    position: relative;
    float: left;
  }
  
  .multistep-contact-form .step > div::after {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    left: -25%;
    width: 150%;
    height: 3px;
    background: var(--base-color-dark-gray);
    transform: rotate(-45deg);
  }
  
  .multistep-contact-form .step .current {
    position: relative;
    top: 0;
    left: 0;
    margin-bottom: 1em;
    margin-right: 1.25em;
  }
  
  .multistep-contact-form .step .max {
    position: absolute;
    bottom: 0;
    right: 0;
  }

  .multistep-contact-form .contact-form-wrap {
    width: 100%;
  }

  .multistep-contact-form legend {
    display: block;
    margin-bottom: calc(32 * var(--base-unit));
  }
  
  
  
  
  .multistep-contact-form .screen-reader-response,
  .multistep-contact-form .wpcf7-not-valid-tip,
  .multistep-contact-form .wpcf7-response-output {
    display: none;
  }
  
  .multistep-contact-form .fieldset-body {
    display: flex;
    flex-flow: row nowrap;
  }
  
  .multistep-contact-form .fieldset-body .form-list {
    width: calc(550 * var(--base-unit));
    flex-shrink: 0;
  }
  
  .multistep-contact-form .fieldset-body .step-button {
    width: 100%;
    margin-top: auto;
    text-align: right;
  }
  
  .multistep-contact-form .fieldset-body .step-button .btn {
    width: calc(260 * var(--base-unit));
  }
  
  .multistep-contact-form .fieldset-body .step-button > div + div {
    margin-top: calc(20 * var(--base-unit));
  }
  
  .multistep-contact-form .fieldset-body .step-button .btn-back {
    opacity: 0.4;
  }
  
  .multistep-contact-form li.error {
    animation: shake .5s;
  }
  
  
  
  
  
  .multistep-contact-form span.loading img {
    top: 0;
    padding: 0;
  }
  
  .multistep-contact-form span.loading {
    --size: max(18px, calc(26 * var(--base-unit)));
    height: var(--size);
    width: var(--size);
    top: calc(50% - var(--size) / 2);
    left: calc(50% - var(--size) / 2);
    position: absolute;
  }
  
  .multistep-contact-form .btn.now span.loading {
    transform: scale(1);
  }
  
  .multistep-contact-form .btn span.icon svg {
    transition: opacity 150ms;
  }
  
  .multistep-contact-form .btn.now span.icon svg {
    opacity: 0;
  }
  
  .multistep-contact-form .btn-prev {
    opacity: 0.4;
  }
  
  
  
  
  
  .multistep-contact-form li.checkboxes input {
    --foreground-color: var(--base-color-dark-gray);
    --background-color: var(--base-color-white);
    position: absolute;
    top: calc(2 * var(--base-unit));
    left: 0;
  }
  
  .multistep-contact-form li.gdpr input {
    --foreground-color: var(--base-color-dark-gray);
    --background-color: var(--base-color-white);
  }

  .multistep-contact-form .form-list li.input .multiselect-list input {
    --foreground-color: var(--base-color-dark-gray);
    --background-color: var(--base-color-white);
  }
  
  
  
  
  .multistep-contact-form fieldset legend,
  .multistep-contact-form .fieldset-body > .hdln-60 { --delay-index: 1; }
  .multistep-contact-form fieldset .form-list { --delay-index: 2; }
  .multistep-contact-form fieldset .step-button { --delay-index: 3; }
  
  .multistep-contact-form.off fieldset legend,
  .multistep-contact-form.off .fieldset-body > .hdln-60,
  .multistep-contact-form.off fieldset .form-list,
  .multistep-contact-form.off fieldset .step-button {
    opacity: 0;
    transform: translateY(20px);
  }
  
  .multistep-contact-form.on fieldset legend,
  .multistep-contact-form.on .fieldset-body > .hdln-60,
  .multistep-contact-form.on fieldset .form-list,
  .multistep-contact-form.on fieldset .step-button {
    transition: opacity, transform;
    transition-duration: 1000ms;
    transition-timing-function: var(--ttf);
    transition-delay: calc(var(--delay-index) * 75ms);
    transform: none;
    opacity: 1;
  }
  
  
  
  
  
  
  
  
  @media (max-width: 750px) {
    
    .multistep-contact-form {
      display: block;
      position: relative;
    }
    
    .multistep-contact-form .step {
      position: absolute;
      top: 0;
      left: 0;
    }
    
    .multistep-contact-form fieldset legend, 
    .multistep-contact-form .fieldset-body > .hdln-60 {
      padding-left: 14vw;
      padding-top: 4vw;
      margin-bottom: 6vw;
    }
    
    .multistep-contact-form .fieldset-body {
      display: block;
    }
    
    .multistep-contact-form .fieldset-body .form-list {
      width: 100%;
    }
    
    .multistep-contact-form .fieldset-body .step-button {
      margin-top: 6vw;
      display: flex;
      flex-flow: row nowrap;
    }
    
    .multistep-contact-form .fieldset-body .step-button > div {
      width: 50%;
      box-sizing: border-box;
      margin-left: auto;
      display: flex;
      flex-flow: row nowrap;
      padding: 0 1em;
    }
    
    .multistep-contact-form .fieldset-body .step-button > div + div {
      margin-top: 0;
    }
    
    .multistep-contact-form .fieldset-body .step-button .btn {
      width: auto;
      margin-right: auto;
    }
    
    .multistep-contact-form .btn-prev {
      opacity: 1;
      flex-direction: row-reverse;
      margin-left: auto;
      margin-right: 0 !important;
    }
    
    .multistep-contact-form .btn-prev span.icon {
      margin-right: 0;
      margin-left: 1.5em;
    }

    
    
  }
  
  
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-contact .row-1 {
      margin-bottom: calc(45 * var(--base-unit-mobile));
    }
    
    li.float-label > label {
      font-size: 12px;
      --label-scale: 1.7 !important;
      --label-offset: 0.7em !important;
    }
    
    .module-contact .module-wrap {
      max-width: none;
    }
    
    .multistep-contact-form .step > div::after {
      height: 2px;
    }
    
    .multistep-contact-form fieldset legend, 
    .multistep-contact-form .fieldset-body > .hdln-60 {
      margin-bottom: calc(48 * var(--base-unit-mobile));
      padding-left: 17vw;
    }
    
    .form-list > li + li {
      margin-top: calc(20 * var(--base-unit-mobile));
    }
    
    .multistep-contact-form .fieldset-body .step-button {
      margin-top: calc(50 * var(--base-unit-mobile));
    }
    
  }


  .contact-teaser-card {
    max-width: calc(1022 * var(--base-unit));
    margin: 0 auto;
    position: relative;
    box-sizing: border-box;
    padding: calc(60 * var(--base-unit));
    padding-bottom: calc(75 * var(--base-unit));
    padding-left: calc(95 * var(--base-unit));
    --exclamation-size: calc(140 * var(--base-unit));
  }
  
  .contact-teaser-card::before,
  .contact-teaser-card::after {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    pointer-events: none;
    user-select: none;
    border: 1px solid var(--base-color-dark-gray);
    clip-path: polygon(0% var(--clip-amount), var(--clip-amount) var(--clip-amount), var(--clip-amount) 0%, 105% 0, 105% 105%, 0 105%);
  }
  
  .contact-teaser-card::before {
    top: 0;
    left: 0;
    --clip-amount: calc(0% + (var(--exclamation-size) / 1.5));
  }
  
  .contact-teaser-card::after {
    top: -15px;
    left: -15px;
    --clip-amount: calc(((var(--exclamation-size) / 1.5) + 15px));
  }
  
  .contact-teaser-card .headline {
    margin-bottom: calc(25 * var(--base-unit));
  }
  
  .contact-teaser-card .wysiwyg {
    max-width: 670px;
  }
  
  .contact-teaser-card .btn-set {
    margin-top: calc(45 * var(--base-unit));
  }
  
  .contact-teaser-card .btn-set > div {
    display: inline;
  }
  
  .contact-teaser-card .btn-set > div + div {
    margin-left: calc(90 * var(--base-unit));
  }
  
  .contact-teaser-card .exclamation-mark {
    position: absolute;
    top: calc(var(--exclamation-size) / -2);
    left: calc(var(--exclamation-size) / -1.8);
    width: var(--exclamation-size);
    pointer-events: none;
    user-select: none;
  }
  
  .contact-teaser-card .exclamation-mark .ring {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    animation: rotate linear infinite 10s;
  }
  
  .contact-teaser-card .exclamation-mark svg {
    display: block;
    width: 100%;
    height: auto;
  }
  
  @keyframes rotate {
    0% { transform: rotate(0turn); }
    100% { transform: rotate(1turn); }
  }
  
  
  
  
  
  
  
  
  @media (max-width: 750px) {
    
    .contact-teaser-card {
      max-width: none;
      padding: 0;
      margin-left: calc(160 * var(--base-unit));
      padding-left: calc(120 * var(--base-unit));
      margin-right: calc(100 * var(--base-unit));
    }
    
    .contact-teaser-card::before,
    .contact-teaser-card::after {
      display: none;
    }
    
  }
  
  
  
  
  
  
  
  @media (max-width: 600px) { 
    
    .contact-teaser-card .btn-set {
      margin-top: calc(24 * var(--base-unit-mobile));
    }
    
    .contact-teaser-card .btn-set > div {
      display: block;
    }
    
    .contact-teaser-card .btn-set > div + div {
      margin-left: 0;
      margin-top: calc(10 * var(--base-unit-mobile));
    }
    
    .contact-teaser-card .exclamation-mark {
      top: calc(var(--exclamation-size) / -4);
    }
  
  }
  
  
  
  
  
  
  
  
  @media (max-width: 500px) { 
    
    .contact-teaser-card {
      --exclamation-size: calc(70 * var(--base-unit-mobile));
      padding-left: calc(90 * var(--base-unit-mobile));
      margin-left: 0;
      margin-right: 0;
    }

    .contact-teaser-card .exclamation-mark {
      left: 0;
      top: calc(var(--exclamation-size) / -3);
    }
  
  }
  


  .module-contact-teasers .contact-teasers-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 calc(75 * var(--px));
    max-width: calc(1150 * var(--px));
    margin-inline: auto;
  }
  
  .module-contact-teasers .contact-teasers-grid > li:nth-child(2) {
    padding-top: calc(100 * var(--px));
  }
  
  .module-contact-teasers .contact-teasers-grid > li:nth-child(2) {
    .contact-teaser-card::before, .contact-teaser-card::after {
      clip-path: none;
    }
  }
  
  .module-contact-teasers .contact-teasers-grid > li:nth-child(2) .exclamation-mark {
    display: none;
  }
  
  .module-contact-teasers .contact-teasers-grid .contact-teaser-card {
    padding: calc(40 * var(--px));
    padding-left: calc(75 * var(--px));
  }
  
  
  
  @media (max-width: 750px) {
    
    .module-contact-teasers .contact-teasers-grid {
      grid-template-columns: repeat(1, minmax(0, 1fr));
      max-width: none;
    }
    
    .module-contact-teasers .contact-teasers-grid .contact-teaser-card {
      margin-left: calc(160 * var(--base-unit));
      margin-right: calc(100 * var(--base-unit));
      padding: 0;
      padding-left: calc(120 * var(--base-unit));
    }
    
  }
  
  
  
  @media (max-width: 500px) {
    
    .module-contact-teasers .contact-teasers-grid {
      gap: calc(var(--module-margin) / 2);
    }
    
    .module-contact-teasers .contact-teasers-grid .contact-teaser-card {
      --exclamation-size: calc(70 * var(--base-unit-mobile));
      padding-left: calc(90 * var(--base-unit-mobile));
      margin-left: 0;
      margin-right: 0;
    }
    
  }





  .module-copy .module-wrap {
    width: 100%;
    max-width: calc(1024 * var(--base-unit));
    margin: 0 auto;
  }
  
  .module-copy .copy-1 .headline {
    margin-bottom: calc(32 * var(--base-unit));
  }
  
  .module-copy .copy-1 .intro {
    margin-bottom: calc(80 * var(--base-unit));
  }
  
  
  
  
  .module-copy .copy-2 {
    margin-top: calc(60 * var(--base-unit));
    max-width: calc(500 * var(--base-unit));
    margin-left: auto;
  }
  
  .module-copy .copy-2 .headline:not(:first-child) {
    margin-top: 2em;
  }
  
  .module-copy .wysiwyg strong {
    font-weight: normal;
    font-family: var(--base-font-1-bold);
  }
  
  .module-copy .wysiwyg em {
    font-style: normal;
  }
  
  
  
  
  
  
  @media (max-width: 1000px) {
    
    .module-copy .copy-2 {
      max-width: 350px;
    }
    
  }
  
  
  
  
  
  @media (max-width: 650px) {
    
    .module-copy .copy-2 {
      max-width: none;
      margin-left: 0;
    }
    
  }
  
  
  
  
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-copy .module-wrap {
      max-width: calc(270 * var(--base-unit-mobile));
    }
    
    .module-copy .copy-2 {
      margin-top: calc(45 * var(--base-unit-mobile));
    }
    
    .module-copy .copy-1 .headline {
      margin-bottom: calc(20 * var(--base-unit-mobile));
    }
    
  }
  
  






  .module-current-listings {
    --col-left-width: max(215px, calc(315 * var(--px)));
    --col-left-gap: calc(40 * var(--px));
    --filter-duration: 750;
    --filter-easing: var(--ttf-4);
  }
  
  .module-current-listings .row--header {
    max-width: calc(1105 * var(--px));
    margin: 0 auto;
  }
  
  .module-current-listings .row--header .headline {
    margin-bottom: 0.7em;
  }
  
  .module-current-listings .row--header .intro-copy {
    max-width: 26.65em;
  }
  
  .module-current-listings .row--header .btn-set {
    margin-top: max(30px, calc(38 * var(--px)));
    overflow: hidden;
    max-height: var(--max-height, 200px);
    opacity: 1;
    transition: calc(var(--filter-duration) * 1ms) var(--filter-easing);
    transition-property: max-height, margin-top, opacity;
  }

  .module-current-listings .row--header .btn-set:has(.btn-toggle-filter[aria-expanded="true"]) {
    max-height: 0px;
    opacity: 0;
  }
  
  
  
  
  
  
  
  .module-current-listings .row--listings {
    margin-top: calc(120 * var(--px));
  }











  .module-current-listings .filter-panel {
    overflow: hidden;
    max-height: var(--max-height, 2000px);
    opacity: 1;
    transition: calc(var(--filter-duration) * 1ms) var(--filter-easing);
    transition-property: max-height, opacity;
  }

  .module-current-listings .filter-panel[inert] {
    max-height: 0px;
    opacity: 0;
  }

  .module-current-listings .btn-toggle-filter[aria-expanded="true"] {
    pointer-events: none;
    interactivity: inert;
  }

  .module-current-listings form.listings-filter .btn-reset-filter {
    opacity: 0.4;
    pointer-events: none;
    interactivity: inert;
    transition: opacity calc(var(--filter-duration) * 0.5ms) var(--filter-easing);
  }

  .module-current-listings form.listings-filter[data-has-filters="true"] .btn-reset-filter {
    opacity: 1;
    pointer-events: auto;
    interactivity: auto;
  }







  .module-current-listings .filter-panel-inner {
    background: #3b3e43;
    color: var(--base-color-white);
    padding-block: max(32px, calc(48 * var(--px))) max(32px, calc(44 * var(--px)));
    padding-inline: max(20px, calc(36 * var(--px))) max(20px, calc(42 * var(--px)));
  }

  .module-current-listings .filter-panel-inner .col-set {
    display: grid;
    grid-template-columns: minmax(0, 431fr) minmax(0, 341fr) auto;
    gap: 40px max(20px, calc(20 * var(--px)));
  }

  .module-current-listings .filter-ranges {
    --range-width: max(193px, calc(193 * var(--px)));
    display: grid;
    grid-template-columns: repeat(2, var(--range-width));
    gap: max(32px, calc(52 * var(--px))) max(40px, calc(95 * var(--px)));
    align-content: start;
  }

  .module-current-listings .filter-box--sold {
    grid-column: 1 / -1;
  }

  .module-current-listings .district-list {
    display: grid;
    grid-template-columns: minmax(0, 204fr) minmax(0, 232fr);
    column-gap: 10px;
    grid-template-rows: repeat(var(--rows), auto);
    grid-auto-flow: column;
  }

  .module-current-listings .col--buttons {
    margin-top: max(40px, calc(85 * var(--px)));
  }

  .module-current-listings .col--buttons .btn-set {
    display: flex;
    flex-flow: row nowrap;
    gap: 0 calc(72 * var(--px));
  }





  .module-current-listings .listings {
    transition: 250ms opacity var(--ttf-4);
    opacity: 1;
  }

  .module-current-listings .listings .empty-state-message p {
    padding: var(--page-padding-left);
    text-align: center;
  }

  .module-current-listings .row--listings:has(.empty-state-message) div.legend {
    display: none;
  }

  .module-current-listings.is-loading .listings {
    opacity: 0.5;
    cursor: wait;
  }

  .module-current-listings.is-loading .listings > * {
    interactivity: inert;
    pointer-events: none;
  }

  .module-current-listings .listings-more {
    display: flex;
    justify-content: center;
  }

  .module-current-listings.is-loading-more .listings-more {
    opacity: 0.5;
    cursor: wait;
  }












  :is(.listings-table, .legend, .status-legend) .status {
    --status-color: currentColor;
    display: inline-block;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--status-color);
    vertical-align: middle;
  }

  :is(.listings-table, .legend, .status-legend) .status--available { --status-color: #3fb950; }
  :is(.listings-table, .legend, .status-legend) .status--reserved { --status-color: #f2c94c; }
  :is(.listings-table, .legend, .status-legend) .status--sold { --status-color: #e5383b; }









  .module-current-listings div.listings {
    margin-top: max(30px, calc(30 * var(--px)));
    margin-inline: calc(var(--page-padding-left) * -1);
  }
  
  .listings-table {
    width: 100%;
    border-spacing: 0;
    border-collapse: collapse;
  }
  
  .listings-table :is(td, th) {
    padding: 0;
  }
  
  .listings-table :is(td, th):not(:last-child) {
    padding-right: 1em;
  }
  
  .listings-table thead th {
    border-bottom: 1px solid currentColor;
    text-align: left;
    font-weight: normal;
    padding-bottom: 0.5em;
  }
  
  .listings-table tbody :is(td, th) {
    border-bottom: 1px solid #d7d7d7;
    text-align: left;
    font-weight: normal;
    padding-block: 0.6em;
    vertical-align: middle;
  }
  
  .listings-table span[aria-hidden="true"],
  .listings-table span[aria-hidden="true"] *,
  .listings-table td .btn,
  .listings-table td .btn * {
    display: block;
  }
  
  .listings-table td span.unit,
  .listings-table th abbr.label-short {
    display: none;
  }
  
  .listings-table .floorplan-links {
    display: flex;
    flex-flow: row nowrap;
    gap: 1.5em;
    align-items: center;
  }
  
  .listings-table .btn span.icon {
    margin-right: 0;
  }
  
  
  






  .module-current-listings article.listing {
    display: grid;
    grid-template-columns: var(--col-left-width) minmax(0, 1fr);
    gap: 0 var(--col-left-gap);
    padding-block: calc(64 * var(--px)) calc(70 * var(--px));
    padding-inline: var(--page-padding-left);
  }
  
  .module-current-listings article.listing:nth-child(even) {
    background: #e7e8e1;
  }
  
  .module-current-listings article.listing .col--project-details {
    position: sticky;
    top: var(--header-padding-top);
    align-self: start;
  }

  .module-current-listings article.listing .badge {
    max-width: 86px;
    margin-bottom: 1em;
  }
  
  .module-current-listings article.listing .badge svg {
    display: block;
    width: 100%;
    height: auto;
  }
  
  .module-current-listings article.listing .headline {
    margin-bottom: 0.25em;
  }
  
  .module-current-listings article.listing figure.image {
    margin-top: calc(52 * var(--px));
  }
  
  .module-current-listings article.listing figure.image img {
    width: 100%;
    height: auto;
    aspect-ratio: 1240 / 940;
    object-fit: cover;
  }
  
  .module-current-listings article.listing address {
    margin-top: 1.5em;
  }
  
  
  
  
  
  
  
  
  
  
  
  
  
  .module-current-listings div.legend {
    margin-left: calc(var(--col-left-width) + var(--col-left-gap));
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 calc(39 * var(--px));
  }
  
  div.legend .legend-headline {
    margin-bottom: 2em;
  }
  
  div.legend dl {
    margin: 0;
    display: flex;
    flex-flow: column nowrap;
    gap: 1.5em;
  }
  
  div.legend .legend--occupancy .legend-item {
    position: relative;
    padding-left: 2.125em;
  }
  
  div.legend .legend-item svg {
    position: absolute;
    left: 0;
  }
  
  div.legend .legend-item dd {
    margin-left: 0;
    margin-top: 0.25em;
  }
  
  div.legend .legend--status ul {
    display: flex;
    flex-flow: column nowrap;
    gap: 1em;
  }
  
  div.legend .legend--status .status {
    margin-right: 1em;
  }
   
   
   
   
  
  
  
  
  
  
  
  
  
  
  
  @media (max-width: 1000px) {
    
    .listings-table th .label-long {
      position: absolute;
      width: 1px;
      height: 1px;
      margin: -1px;
      padding: 0;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }
    
    .listings-table th abbr.label-short {
      display: inline;
      text-decoration: none;
      cursor: help;
    }
    
    .module-current-listings .listings-table :is(td, th):not(:last-child) {
      padding-right: 0.5em;
    }
    
  }
  
  
  
  
  
  @media (max-width: 1250px) {

    .module-current-listings .filter-panel-inner .col-set {
      grid-template-columns: minmax(0, 3fr) minmax(0, 1fr);
    }

    .module-current-listings .district-list {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      grid-template-rows: repeat(var(--rows-3), auto);
    }

    .module-current-listings .filter-ranges {
      grid-column: span 2;
      grid-template-columns: repeat(4, var(--range-width));
      justify-content: space-between;
      column-gap: 40px;
    }

  }





  @media (max-width: 1000px) {

    .module-current-listings .filter-ranges {
      grid-template-columns: repeat(2, var(--range-width));
      justify-content: start;
    }

  }





  @media (max-width: 800px) {

    .module-current-listings .filter-panel-inner .col-set {
      grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    }

    .module-current-listings .district-list {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      grid-template-rows: repeat(var(--rows), auto);
    }

  }
  
  
  
  
  
  @media (max-width: 750px) {
    
    .module-current-listings .row--header {
      margin-left: 0;
      max-width: 580px;
    }

    .module-current-listings div.legend {
      margin-left: 0;
    }

    .listings-table {
      display: block;
      position: relative;
    }
    
    .listings-table thead {
      position: absolute;
      width: 1px;
      height: 1px;
      margin: -1px;
      padding: 0;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }
    
    .listings-table tbody {
      display: block;
    }
    
    .listings-table tbody tr {
      display: flex;
      flex-flow: row wrap;
      align-items: center;
      gap: 0.2em 0.4em;
      padding-block: 0.75em;
      border-bottom: 1px solid #d7d7d7;
    }
    
    .listings-table tbody tr::before {
      content: "";
      display: block;
      flex-basis: 100%;
      order: 5;
    }
    
    .listings-table tbody :is(td, th),
    .listings-table tbody :is(td, th):not(:last-child) {
      display: block;
      border: 0;
      padding: 0;
    }
    
    .listings-table tbody :is(td, th):empty {
      display: none;
    }
    
    .listings-table td span.unit {
      display: inline;
    }
    
    .listings-table .td-unit {
      order: 1;
      margin-right: 0.5em;
      font-family: var(--base-font-1-bold);
      text-transform: uppercase;
      letter-spacing: 0.12em;
    }
    
    .listings-table .td-occupancy { order: 2; }
    .listings-table .td-status { order: 3; }
    .listings-table .td-floorplan { order: 4; }
    .listings-table .td-rooms { order: 6; }
    .listings-table .td-space { order: 7; }
    .listings-table .td-floor { order: 8; }
    .listings-table .td-price { order: 9; }
    .listings-table .td-inquiry { order: 10; }
    
    .listings-table :is(.td-floorplan, .td-inquiry) {
      margin-left: auto;
    }
    
    .listings-table :is(.td-space, .td-floor, .td-price)::before {
      content: "– " / "";
    }
    
    .listings-table td .btn-icon-only {
      display: flex;
      align-items: center;
      gap: 0.5em;
      min-height: 24px;
      width: 75px;
    }
    
    .listings-table td .btn-icon-only span.label {
      position: static;
      width: auto;
      height: auto;
      overflow: visible;
      white-space: nowrap;
      margin-top: 2px;
    }
    
    .listings-table .floorplan-links > span:has(.btn-floorplan-download) {
      display: none;
    }
    
    .module-current-listings .listings-table :is(td, th):not(:last-child) {
      padding-right: 0;
    }
    
    .btn-icon-only[data-icon="view-floor-plan"] svg {
      --min-width: 16px;
    }
    
    .occupancy--vacant svg {
      width: 15px;
    }
    
    .occupancy--notice-period svg {
      width: 15px;
    }
    
    .occupancy--lock-period svg {
      width: 12px;
      margin-left: 2px;
    }
    
    .td-occupancy > span.occupancy {
      display: block;
      width: 16px;
    }
    
  }
  
  
  
  
  
  
  @media (max-width: 650px) {
    
    .module-current-listings .filter-panel-inner .col-set {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .module-current-listings .district-list {
      grid-template-columns: minmax(0, 1fr);
      grid-template-rows: none;
      grid-auto-flow: row;
    }

    .module-current-listings .filter-ranges {
      grid-template-columns: repeat(2, minmax(0, var(--range-width)));
    }

  }
  
  
  
  
  
  @media (max-width: 600px) {
    
    .module-current-listings article.listing {
      grid-template-columns: minmax(0, 1fr);
      gap: 40px 0;
      padding-block: 40px 45px;
    }
    
    .module-current-listings article.listing .col--project-details {
      position: static;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: start;
    }
    
    .module-current-listings article.listing .col--project-details > * {
      grid-column: 1 / -1;
    }
    
    .module-current-listings article.listing .badge {
      grid-column: 1;
      grid-row: 1;
    }
    
    .module-current-listings article.listing .col--project-details .btn-set {
      grid-column: 2;
      grid-row: 1;
      justify-self: end;
      margin: 0;
    }
    
    .module-current-listings article.listing .badge {
      max-width: 52px;
    }
    
    .module-current-listings article.listing address {
      margin-top: 0.5em;
    }
    
    .module-current-listings article.listing figure.image {
      margin-top: 20px;
    }
    
    .module-current-listings div.legend {
      margin-left: 0;
    }
    
  }
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-current-listings .row--filter {
      margin-inline: calc(var(--page-padding-left) * -1);
    }
    
    .module-current-listings div.legend .legend-headline,
    .module-current-listings .filter-box-headline {
      margin-bottom: 1.25em;
    }

    .module-current-listings .filter-ranges {
      grid-template-columns: minmax(0, 1fr);
    }
    
    .module-current-listings div.legend {
      display: flex;
      flex-flow: column nowrap;
      gap: 30px;
    }
    
    :is(.listings-table, .legend, .status-legend) .status {
      width: 10px;
      height: 10px;
    }
    
  }



  .module-current-projects-teaser .row-1 {
    display: grid;
    grid-template-columns: calc(395 * var(--px)) minmax(0, auto);
    margin-left: calc(63 * var(--px));
  }

  .module-current-projects-teaser .row-1 .col-1 .badge {
    width: calc(208 * var(--px));
    pointer-events: none;
  }

  .module-current-projects-teaser .row-1 .col-1 .badge svg {
    display: block;
    width: 100%;
    height: auto;
  }

  .module-current-projects-teaser .row-1 .col-1 .badge svg path {
    stroke: var(--base-color-dark-gray);
  }

  .module-current-projects-teaser .row-1 .col-2 {
    padding-top: calc(115 * var(--px));
  }

  .module-current-projects-teaser .row-1 .col-2 .headline {
    position: relative;
  }

  .module-current-projects-teaser .row-1 .col-2 .row--copy {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    gap: max(20px, calc(20 * var(--px))) max(40px, calc(40 * var(--px)));
  }

  .module-current-projects-teaser .row-1 .col-2 .row--copy .btn-set {
    margin-top: 0;
  }


  .module-current-projects-teaser .row-2 {
    margin-top: calc(53 * var(--px));
    margin-left: calc(var(--page-padding-left) * -1);
    margin-right: calc(var(--page-padding-right) * -1);
  }

  .current-projects-teaser-slider {
    --gap: calc(38 * var(--px));
    user-select: none;
    overflow: hidden;
  }

  .current-projects-teaser-slider .js-marquee {
    display: flex;
    flex-flow: row nowrap;
  }

  .current-projects-teaser-item {
    width: calc(513 * var(--px));
    margin-right: var(--gap);
    flex-shrink: 0;
  }

  @media (prefers-reduced-motion: reduce) {

    .current-projects-teaser-slider {
      display: flex;
      flex-flow: row nowrap;
      overflow-x: auto;
      padding-inline: var(--page-padding-left) var(--page-padding-right);
    }

  }

  .current-projects-teaser-item figure a {
    display: block;
  }

  .current-projects-teaser-item figure img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 900 / 680;
    object-fit: cover;
  }

  .current-projects-teaser-item .article-body {
    padding-top: calc(15 * var(--px));
  }

  .current-projects-teaser-item .headline {
    hyphens: auto;
    margin-bottom: 0.1em;
  }

  .current-projects-teaser-item .btn-set {
    margin-top: calc(22 * var(--px));
  }









  @media (max-width: 500px) {

    .module-current-projects-teaser .row-1 {
      grid-template-columns: minmax(0, auto);
      margin-left: 0;
      position: relative;
    }
    
    .module-current-projects-teaser .row-1 .col-1 {
      position: absolute;
      right: 0;
      top: 0;
    }

    .module-current-projects-teaser .row-1 .col-1 .badge {
      width: 76px;
    }

    .module-current-projects-teaser .row-1 .col-2 {
      padding-top: 45px;
      padding-left: 40px;
    }
    
    .module-current-projects-teaser .row-1 .col-2 .hdln-110 {
      padding-right: 100px;
    }

    .module-current-projects-teaser .row-2 {
      margin-top: 35px;
    }

    .current-projects-teaser-slider {
      --gap: 15px;
    }

    .current-projects-teaser-item {
      width: 285px;
    }

    .current-projects-teaser-item .article-body {
      padding-top: 10px;
    }

    .current-projects-teaser-item .btn-set {
      margin-top: 15px;
    }
    
    

  }




  .module-finished-projects .row-1 {
    margin-left: calc(134 * var(--base-unit));
    margin-bottom: calc(70 * var(--base-unit));
  }
  
  .module-finished-projects .row-2 {
    margin-left: calc(var(--page-padding-left) * -1);
    margin-right: calc(var(--page-padding-right) * -1);
  }
  
  .module-finished-projects .splide__slide {
    margin-right: 6px;
    width: calc(450 * var(--base-unit));
  }
  
  .finished-projects-list {
    position: relative;
  }
  
  .finished-projects-list .gallery-nav {
    height: var(--article-image-height, 50%);
  }
  
  article.finished-project-article {
    background: var(--base-color-dark-gray);
    color: var(--base-color-white);
    --padding-y: 20px;
    --padding-x: 30px;
    display: flex;
    flex-flow: column nowrap;
    height: 100%;
  } 
  
  article.finished-project-article figure img {
    width: 100%;
    height: auto;
    aspect-ratio: 900 / 680;
    object-fit: cover;
    display: block;
  }
  
  article.finished-project-article .article-body {
    padding: var(--padding-y) var(--padding-x);
    flex-grow: 1;
    display: flex;
    flex-flow: column nowrap;
  }
  
  article.finished-project-article .btn-set {
    margin-top: auto;
    padding-top: 29px;
  }
  
  article.finished-project-article .headline {
    margin-bottom: 8px;
  }
  
  
  article.finished-project-article .btn .icon-hover {
    display: none;
  }
  
  
  
  
  
  
  
  
  
  @media (max-width: 750px) {
    
    .module-finished-projects .splide__slide {
      width: 46vw;
      margin-right: var(--page-padding-left);
    }
    
  }
  
  
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-finished-projects .splide__slide {
      width: calc(330 * var(--base-unit-mobile));
      margin-right: var(--page-padding-left);
    }
    
    .module-finished-projects .row-1 {
      margin-left: 0;
      margin-bottom: calc(35 * var(--base-unit-mobile));
    }
    
    article.finished-project-article {
      --padding-y: 24px;
      --padding-x: 15px;
    } 
    
  }



  .module-hero {
    isolation: isolate;
    position: relative;
    --overlap: min(-2.3125rem, calc(-95 * var(--base-unit)));
  }
  
  .module-hero .module-background {
    z-index: -1;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: calc(var(--overlap) * -1);
    background: var(--base-color-light-blue);
  }

  .module-hero .row-1 {
    max-width: max(64.0625rem, calc(1025 * var(--base-unit)));
    margin: 0 auto;
  }
  
  .module-hero .row-2 {
    margin-top: max(40px, calc(80 * var(--base-unit)));
    margin-left: calc(var(--page-padding-left) * -1);
    margin-bottom: var(--overlap);
    width: max(20.625rem, calc(1275 * var(--base-unit)));
  }
  
  .module-hero .row-2 img,
  .module-hero .row-2 video {
    max-width: none;
    width: 100%;
    height: auto;
    display: block;
  }
  
  .module-hero .row-2 video {
    pointer-events: none;
  }
  
  .module-hero .btn-set  {
    margin-top: max(20px, calc(40 * var(--px)));
  }
  
  .module-hero .copy {
    margin-top: 1em;
  }
  
  
  




  @media (max-width: 500px) {
    
    .module-hero .row-2 {
      width: auto;
      margin-inline: calc(var(--page-padding-left) * -1);
    }
    
    .module-hero .row-2 video {
      aspect-ratio: 4 / 3;
      object-fit: cover;
    }
    
  }





  .module-image-copy {
    --figure-order: 1;
    --copy-order: 2;
    --copy-padding: calc(76 * var(--base-unit));
  }
  
  .module-image-copy[data-layout="copy-image"] {
    --figure-order: 2;
    --copy-order: 1;
  }

  .module-image-copy .module-wrap {
    max-width: calc(1126 * var(--base-unit));
    margin: 0 auto;
  }
  
  .image-copy-col-set {
    display: flex;
    flex-flow: row nowrap;
    
  }
  
  .image-copy-col-set figure.col-1 {
    flex-shrink: 0;
    width: calc(533 * var(--base-unit));
    order: var(--figure-order);
  }
  
  .image-copy-col-set .col-2 {
    width: 100%;
    box-sizing: border-box;
    padding-right: var(--copy-padding);
    order: var(--copy-order);
    padding-top: calc(50 * var(--base-unit));
  }
  
  .module-image-copy[data-layout="image-copy"] .image-copy-col-set .col-2 {
    padding-left: var(--copy-padding);
    padding-right: 0;
  }
  
  .image-copy-col-set .wysiwyg {
    margin-left: calc(67 * var(--base-unit));
    margin-top: calc(38 * var(--base-unit));
  }









  @media (max-width: 750px) {
    
    .image-copy-col-set .wysiwyg {
      margin-left: 0;
    }
    
  }
  
  
  
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-image-copy .module-wrap {
      max-width: calc(257 * var(--base-unit-mobile));
    }
    
    .image-copy-col-set {
      flex-flow: row wrap;
    }
    
    .module-image-copy {
      --figure-order: 1 !important;
      --copy-order: 2 !important;
      --copy-padding: 0;
    }
    
    .image-copy-col-set figure.col-1 {
      width: 100%;
    }
    
    .image-copy-col-set .col-2 {
      padding-top: calc(36 * var(--base-unit-mobile));
    }
    
    .image-copy-col-set .wysiwyg {
      margin-top: calc(29 * var(--base-unit-mobile));
    }
    
    .module-image-copy .spanned > span {
      display: inline;
    }
    
  }




  .module-newsletter {
    background: url(/content/themes/cavi/imgs/berlin.svg?x83099) no-repeat;
    background-position: calc(604 * var(--base-unit)) center;
    background-size: auto calc(100% - (60 * var(--base-unit)));
    background-color: var(--base-color-dark-gray);
    color: var(--base-color-white);
  }
  
  .module-newsletter:has(+ .module-social-media) {
    margin-bottom: 0;
  }
  
  .module-newsletter .module-inner {
    padding-top: calc(136 * var(--base-unit));
    padding-bottom: calc(80 * var(--base-unit));
  }
  
  .module-newsletter .module-wrap {
    max-width: calc(1075 * var(--base-unit));
    margin: 0 auto;
  }
  
  .module-newsletter .row-1 {
    max-width: calc(464 * var(--base-unit));
    margin-bottom: calc(62 * var(--base-unit));
  }
  
  .module-newsletter .headline {
    margin-bottom: calc(34 * var(--base-unit));
  }
  
  .module-newsletter .copy {
    max-width: calc(414 * var(--base-unit));
    margin-left: auto;
  }
  
  .module-newsletter .row-2 {
    margin-left: auto;
    max-width: calc(705 * var(--base-unit));
  }
  
  
  
  
  
  
  
  
  
  footer.main .newsletter-form-list {
    max-width: 562px;
  }
  
  footer.main .newsletter-form-list li.gdpr {
    --copy-color: currentColor;
  }
  
  footer.main .form-list li.gdpr input, 
  footer.main .form-list li.checkboxes input {
    --background-color: #d9e2e3;
    --foreground-color: currentColor;
  } 
  
  footer.main .newsletter-form-list li.input input {
    --color: currentColor;
    border-bottom-color: currentColor;
    --font-size: 20;
    --min-font-size: 16px;
    --max-font-size: calc(20 * var(--base-unit));
  }
  
  footer.main .newsletter-form-list {
    margin-top: 0.5em;
  }
  
  footer.main .form-list > li + li.submit {
    margin-top: 1.5em;
  }
  
  footer.main .form-list li.gdpr .sn-col-set div:last-child {
    font-size: 11px;
    line-height: 1.7;
  }
  
  
  
  
  
  
  @media (max-width: 800px) {
    
    .module-newsletter .row-1 {
      max-width: calc(600 * var(--base-unit));
      margin-bottom: calc(110 * var(--base-unit));
    }
    
    .module-newsletter .copy {
      max-width: none;
      margin-left: 0;
    }
    
    .module-newsletter .row-2 {
      max-width: calc(885 * var(--base-unit));
    }
    
  }
  
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-newsletter .module-inner {
      padding-top: calc(60 * var(--base-unit-mobile));
      padding-bottom: calc(60 * var(--base-unit-mobile));
    }
    
    .module-newsletter .module-wrap {
      max-width: none;
    }
    
    .module-newsletter .row-1 {
      max-width: none;
      margin-bottom: calc(120 * var(--base-unit-mobile));
    }
    
    .module-newsletter .row-2 {
      max-width: none;
    }
    
  }





  .module-project-facts section.project-facts-1 {
    max-width: calc(1025 * var(--px));
    margin-inline: auto;
  }

  .module-project-facts .teaser-headline {
    position: relative;
  }
  
  .module-project-facts .hdln-60 {
    --min-font-size: 30px;
  }




  .module-project-facts :is(.row-2, .row-3) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 calc(40 * var(--px));
  }
  
  
  



  .module-project-facts .highlights-list {
  	list-style: none;
  	counter-reset: item;
    border-top: 1px solid currentColor;
  }

  .module-project-facts .highlights-list > li {
    position: relative;
    padding-left: 2.1em;
    counter-increment: item;
    padding-block: 1.3em;
    border-bottom: 1px solid currentColor;
  }

  .module-project-facts .highlights-list > li::before {
    content: counter(item) '.';
    font-family: var(--base-font-2);
    list-style-type: decimal;
    position: absolute;
    left: 0;
  }
  
  
  
  
  
  
  
  .module-project-facts .col--facts {
    display: flex;
    flex-flow: column nowrap;
  }
  
  .module-project-facts .facts-list {
    display: flex;
    flex-flow: column nowrap;
    gap: 1.1em;
  }
  
  .module-project-facts .facts-list > li {
    display: flex;
    flex-flow: column-reverse nowrap;
  }
  
  .module-project-facts .commission-copy {
    margin-top: auto;
    padding-top: 1em;
  }
  
  
  
  
  
  
  
  .module-project-facts .project-facts-2 {
    margin-inline: calc(var(--page-padding-left) * -1);
  }
  
  .module-project-facts .module-slideshow .splide__pagination button {
    --page-background-color: var(--base-color-gray);
  }
  
  .module-project-facts .module-slideshow .splide {
    --splide-gap: max(25px, calc(128 * var(--px)));
  }
  
  .module-project-facts .module-slideshow .splide img {
    width: auto;
    height: calc(700 * var(--px));
  }
  
  .module-project-facts .module-slideshow .splide [data-size="small"] img {
    width: auto;
    height: calc(490 * var(--px));
  }
  
  .module-project-facts .module-slideshow .splide__slide {
    display: grid;
    place-items: center;
  }
  
  
  
  
  
  @media (max-width: 700px) {
    
    .module-project-facts :is(.row-2, .row-3) {
      display: flex;
      flex-flow: column nowrap;
      gap: 0;
    }
    
    .module-project-facts .facts-list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    
    .module-project-facts .commission-copy {
      margin-top: 2em;
    }
    
    .module-project-facts .col--highlights {
      margin-top: 70px;
    }
    
  }
  
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-project-facts .highlights-list > li::before {
      font-size: 15px;
      top: 0.8em;
    }
    
    .module-project-facts .facts-list .value {
      font-size: 17px;
    }
    
    .module-project-facts section.project-facts-1 {
      max-width: none;
      margin-left: 45px;
    }
    
    .module-project-facts .module-slideshow .splide img {
      width: 75vw;
      height: auto;
    }
  
    .module-project-facts .module-slideshow .splide [data-size="small"] img {
      width: 75vw;
      height: auto;
    }
    
  }


  .module-project-header {
    position: relative;
  }
  
  .module-project-header .module-inner {
    position: relative;
    z-index: 2;
    padding-inline: var(--page-padding-m-left);
  }
  
  .module-project-header .module-background {
    position: absolute;
    inset: 0;
    bottom: calc(218 * var(--px));
    background: var(--base-color-gray);
    z-index: 1;
  }
  
  
  
  
  .module-project-header .module-wrap {
    display: flex;
    flex-flow: column nowrap;
    gap: max(45px, calc(90 * var(--px)));
  }
  
  
  
  
  
  
  .module-project-header .row--copy {
    display: grid;
    grid-template-columns: calc(149 * var(--px)) minmax(0, auto);
    gap: 0 calc(158 * var(--px));
  }
  
  .module-project-header .row--headline .headline {
    max-width: 9.66666666666666666666em;
    margin-bottom: 0.25em;
  }
  
  .module-project-header .row--address address {
    margin-top: 1em;
  }
  
  .module-project-header .row--address address a {
    text-decoration: underline;
    display: inline-block;
    
    @media (hover: hover) {
      &:is(:focus-visible, :hover) {
        text-decoration: none;
      }
    }
    
  }
  
  
  
  
  
  .module-project-header .row--image {
    margin-left: calc(var(--page-padding-m-left) * -1);
    max-width: calc(1230 * var(--px));
  }
  
  .module-project-header .row--image img {
    display: block;
    max-width: none;
    width: 100%;
    height: auto;
    aspect-ratio: 1240 / 940;
    object-fit: cover;
  }
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-project-header .row--image {
      margin-inline: calc(var(--page-padding-m-left) * -1);
      width: auto;
      max-width: none;
    }
    
    .module-project-header .hdln-60 {
      --min-font-size: 30px;
    }
    
    .module-project-header .row--copy {
      display: flex;
      flex-flow: column nowrap;
      gap: 21px;
    }
    
    .module-project-header .row--copy .col--headline-and-address {
      padding-left: 45px;
    }
    
    .module-project-header .row--copy .col--badge svg {
      width: 63px;
      height: auto;
      display: block;
    }
    
  }








  .module-project-location .row-1 {
    max-width: calc(1025 * var(--px));
    margin-inline: auto;
  }
  
  .module-project-location .hdln-60 {
    --min-font-size: 30px;
  }
  
  .module-project-location .module-wrap {
    position: relative;
    z-index: 2;
    display: flex;
    flex-flow: column nowrap;
    gap: calc(200 * var(--px));
  }

  .module-project-location .teaser-headline {
    position: relative;
  }

  .module-project-location .row-1 {
    display: grid;
    grid-template-columns: calc(324 * var(--px)) minmax(0, auto);
    gap: 0 calc(36 * var(--px));
  }
  





  .module-project-location .row--image-slider {
    margin-inline: calc(var(--page-padding-left) * -1);
  }
  
  
  
  
  
  
  
  
  
  
  
  


  @media (max-width: 600px) {
    
    .module-project-location .row-1 {
      display: flex;
      flex-flow: column nowrap;
      max-width: none;
      margin-left: 45px;
    }
    
  }







  .module:has(+ .module-project-property) {
    position: relative;
    z-index: 2;
  }

  .module-project-property {
    position: relative;
  }
  
  .module-project-property .hdln-60 {
    --min-font-size: 30px;
  }
  
  .module-project-property .module-background {
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(490 * var(--px));
    top: calc(-600 * var(--px));
    background: var(--base-color-gray);
  }

  .module-project-property .row-1 {
    max-width: calc(1025 * var(--px));
    margin-inline: auto;
  }
  
  .module-project-property .module-wrap {
    position: relative;
    z-index: 2;
    display: flex;
    flex-flow: column nowrap;
    gap: calc(188 * var(--px));
  }

  .module-project-property .teaser-headline {
    position: relative;
  }

  .module-project-property .row-1 {
    display: grid;
    grid-template-columns: calc(324 * var(--px)) minmax(0, auto);
    gap: 0 calc(36 * var(--px));
  }
  
  .module-project-property .btn-set {
    margin-top: 0;
  }
  
  .module-project-property .more-wrap {
    margin-top: calc(55 * var(--px));
  }
  
  .module-project-property .more-wrap .wysiwyg {
    transition: 750ms var(--ttf-2);
    transition-property: opacity, max-height, transform;
    max-height: var(--max-height, 2000px);
    opacity: 1;
    transform: none;
    overflow: hidden;
  }

  .module-project-property .more-wrap .wysiwyg[inert] {
    max-height: 0px;
    opacity: 0;
    transform: translateY(-20px);
  }






  @media (max-width: 600px) {
    
    .module-project-property .row-1 {
      display: flex;
      flex-flow: column nowrap;
      max-width: none;
      margin-left: 45px;
    }
    
  }








  .module-project-recommendations .module-inner {
    padding-right: 0;
  }

  .module-project-recommendations .row-1 {
    max-width: calc(1233 * var(--px));
    margin-left: auto;
  }
  
  .module-project-recommendations .hdln-60 {
    --min-font-size: 30px;
  }

  .module-project-recommendations .teaser-headline {
    position: relative;
  }

  .module-project-recommendations .row-1 {
    display: grid;
    grid-template-columns: calc(355 * var(--px)) minmax(0, auto);
    gap: 0 calc(64 * var(--px));
  }
  
  
  
  
  
  
  .module-project-recommendations {
    --marker-color-1: #bfc8b9;
    --marker-color-2: #c9d8ec;
    --marker-color-3: #c6cbc6;
    --marker-color-4: #e1d6b9;
    --marker-color-5: #a4a5a9;
    --marker-color-6: #9bbb85;
  }
  
  .project-recommendations-list ol {
    list-style: none;
    counter-reset: recommendations;
    margin: 0;
    padding: 0;
    display: flex;
    flex-flow: column nowrap;
    gap: 1.75em;
  }

  .project-recommendations-list ol > li {
    counter-increment: recommendations;
    position: relative;
    padding-left: 40px;
  }

  .project-recommendations-list ol > li::before {
    content: counter(recommendations);
    position: absolute;
    top: -0.25em;
    left: 0;
    width: 1.75em;
    height: 1.75em;
    border-radius: 50%;
    background: var(--marker-color-1);
    display: grid;
    place-items: center;
  }

  .project-recommendations-list ol > li:nth-child(2)::before,
  .project-recommendations-marker.marker-2 {
    background: var(--marker-color-2);
  }

  .project-recommendations-list ol > li:nth-child(3)::before,
  .project-recommendations-marker.marker-3 {
    background: var(--marker-color-3);
  }

  .project-recommendations-list ol > li:nth-child(4)::before,
  .project-recommendations-marker.marker-4 {
    background: var(--marker-color-4);
  }
  
  .project-recommendations-list ol > li:nth-child(5)::before,
  .project-recommendations-marker.marker-5 {
    background: var(--marker-color-5);
  }
  
  .project-recommendations-list ol > li:nth-child(6)::before,
  .project-recommendations-marker.marker-6 {
    background: var(--marker-color-6);
  }






  .project-recommendations-map {
    aspect-ratio: 814 / 706;
    background: #fff;
    overflow: hidden;
    pointer-events: none;
  }

  .project-recommendations-map.leaflet-container {
    font: inherit;
    background: #fff;
    cursor: default;
  }

  .project-recommendations-marker {
    width: 1.75em;
    height: 1.75em;
    margin: -0.875em 0 0 -0.875em;
    border-radius: 50%;
    background: var(--marker-color-1);
    display: grid;
    place-items: center;
    pointer-events: none;
  }

  .project-recommendations-marker > span {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: block;
    line-height: 1;
  }
  
  
  
  
  
  
  @media (max-width: 750px) {
    
    .module-project-recommendations .row-1 {
      display: flex;
      flex-flow: column nowrap;
      gap: 50px;
    }
    
    .project-recommendations-list .row-1 .col-1 {
      padding-right: var(--page-padding-left);
    }
    
    @media (min-width: 501px) {
    
      .project-recommendations-list ol {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      
    }
    
  }
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-project-recommendations .teaser-headline {
      margin-bottom: 2em;
    }
    
    .module-project-recommendations .row-1 {
      max-width: none;
      margin-left: 45px;
    }
    
    .module-project-recommendations .row-1 .col-2 {
      display: none;
    }
    
    .module-project-recommendations:has(+ .module-contact-teasers) {
      margin-bottom: calc(var(--module-margin) * 1.5);
    }
    
  }




  .module-projects-overview header.row-1 {
    max-width: calc(1105 * var(--base-unit));
    margin: 0 auto;
    margin-bottom: calc(130 * var(--base-unit));
  }
  
  .module-projects-overview header.row-1 .headline {
    margin-bottom: calc(27 * var(--base-unit));
  }
  
  .module-projects-overview header.row-1 .wysiwyg {
    max-width: max(350px, calc(540 * var(--base-unit)));
  }
  
  
  
  
  
  
  
  nav.districts-filter {
    margin-top: calc(50 * var(--base-unit));
  }
  
  nav.districts-filter .select {
    display: none;
  }
  
  nav.districts-filter ul {
    display: flex;
    flex-flow: row wrap;
    color: #c8ccc7;
  }
  
  nav.districts-filter ul li {
    margin-right: 0.9em;
  }
  
  nav.districts-filter a {
    transition: color 150ms;
  }
  
  nav.districts-filter a[aria-current="true"],
  nav.districts-filter a:hover {
    color: var(--base-color-dark-gray);
  }
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  @media (max-width: 1000px) {
    
    nav.districts-filter ul {
      display: none;
    }
    
    nav.districts-filter .select {
      display: block;
    }
    
    nav.districts-filter .styled-select {
      display: inline-block;
    }
    
    nav.districts-filter .styled-select svg {
      width: 17px;
    }

    nav.districts-filter .select select {
      background: transparent;
      border-radius: 5px;
      padding: 0.75em 1em;
      padding-right: 4em;
    }
    
  }
  
  


  
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-projects-overview header.row-1 {
      max-width: none;
      margin-bottom: calc(50 * var(--base-unit-mobile));
    }
    
    .module-projects-overview header.row-1 .headline {
      margin-bottom: calc(18 * var(--base-unit-mobile));
    }
    
    nav.districts-filter {
      margin-top: calc(25 * var(--base-unit-mobile));
    }
    
    nav.districts-filter .styled-select {
      display: block;
    }
    
    nav.districts-filter .select select {
      width: 100%;
      padding: 0.55em 0.6em;
      padding-right: 3em;
    }

    
  }
  
  
  
  
  
  
  
  
  
  
  
  
  
  ul.projects-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--page-padding-left);
  }
  
  ul.projects-list > li {
    display: flex;
    flex-flow: column nowrap;
  }
  
  
  @media (max-width: 500px) {
    
    ul.projects-list {
      grid-template-columns: repeat(1, minmax(0, 1fr));
    }
    
  }
  
  
  
  
  
  
  
  article.project-article {
    background: var(--base-color-dark-gray);
    color: var(--base-color-white);
    padding: max(20px, calc(44 * var(--px)));
    padding-bottom: max(30px, calc(52 * var(--px)));
    display: flex;
    flex-flow: column nowrap;
    flex-grow: 1;
  }
  
  article.project-article .headline {
    hyphens: auto;
    margin-bottom: 0.5em;
  }
  
  .project-article-header, .project-article-body, .project-article-footer {
    display: grid;
    grid-template-columns: calc(82 * var(--px)) minmax(0, auto);
    gap: calc(50 * var(--px));
  }
  
  article.project-article .project-article-body {
    margin-top: auto;
    padding-top: max(30px, calc(30 * var(--px)));
  }
  
  article.project-article .project-article-footer {
    margin-top: max(30px, calc(41 * var(--px)));
  }
  
  
  @media (max-width: 750px) {
    
    article.project-article .project-article-header {
      display: flex;
      flex-flow: column nowrap;
      gap: 10px;
    }
    
    article.project-article .project-article-header .col-1 {
      width: 64px;
    }
    
    article.project-article .project-article-body {
      display: flex;
      flex-flow: column nowrap;
      gap: 30px;
    }
    
    article.project-article .project-article-body .col-1 {
      display: none;
    }
    
    article.project-article .project-article-footer {
      display: flex;
      flex-flow: column nowrap;
    }
    
    article.project-article .project-article-footer .col-1 {
      display: none;
    }
    
    article.project-article .sn-slider-footer {
      display: none;
    }
    
  }
  
  
  
  
  
  
  
  
  article.project-article .row--slider {
    grid-column: span 2;
    container-type: inline-size;
  }
  
  article.project-article .sn-slider {
    --gap: 0px;
  }
  
  article.project-article .sn-slider-slides {
    padding-inline: 0;
  }
  
  article.project-article .sn-slider-slide {
    width: 100cqw;
    scroll-margin-inline-start: 0px;
  }
  
  article.project-article .sn-slider-slide img {
    max-width: none;
    width: 100%;
    height: auto;
    aspect-ratio: 1240 / 940;
    object-fit: cover;
  }
  
  article.project-article .sn-slider--ghost {
    opacity: 1;
  }
  
  article.project-article .sn-slider--ghost .sn-slider-track {
    opacity: 0;
  }
  
  article.project-article .sn-slider-footer {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 2;
  }
  
  article.project-article .sn-slider--visible .sn-slider-footer {
    display: none;
  }
  
  article.project-article .sn-slider-footer .btn {
    position: absolute;
    top: 0;
  }
  
  article.project-article .sn-slider-wrap[data-position="end"] .btn-next,
  article.project-article .sn-slider-wrap[data-position="start"] .btn-prev {
    pointer-events: none;
    interactivity: inert;
  }
  
  article.project-article .sn-slider-wrap[data-position="end"] .btn-next svg,
  article.project-article .sn-slider-wrap[data-position="start"] .btn-prev svg {
    opacity: 0.15;
  }
  
  article.project-article .sn-slider-footer .btn-prev {
    left: 0;
    transform: translate(-50%, -50%);
  }
  
  article.project-article .sn-slider-footer .btn-next {
    right: 0;
    transform: translate(50%, -50%);
  }
  




  .module-projects-teaser {
    background: var(--base-color-white);
  }

  .module-projects-teaser .module-wrap {
    padding-top: calc(420 * var(--base-unit));
    padding-bottom: calc(190 * var(--base-unit));
  }

  .module-projects-teaser .row-1 {
    display: flex;
    flex-flow: row nowrap;
    max-width: calc(1043 * var(--base-unit));
    margin: 0 auto;
  }
  
  .module-projects-teaser .row-1 figure.col-1 {
    width: calc(533 * var(--base-unit));
    flex-shrink: 0;
    position: relative;
  }
  
  .module-projects-teaser .row-1 figure.col-1 .image {
    z-index: 2;
    position: relative;
    pointer-events: none;
  }
  
  .module-projects-teaser .row-1 figure.col-1 .image > div {
    position: relative;
    z-index: 2;
  }
  
  .module-projects-teaser .row-1 figure.col-1 .image img {
    position: relative;
    z-index: 2;
  }
  
  .module-projects-teaser .row-1 figure.col-1 .image::after {
    content: '';
    display: block;
    position: absolute;
    top: -15px;
    left: -15px;
    right: 0;
    bottom: 0;
    background: var(--base-color-white);
    z-index: 1;
  }
  
  .module-projects-teaser .row-1 figure.col-1 .badge {
    position: absolute;
    right: 100%;
    bottom: 100%;
    width: calc(208 * var(--base-unit));
    transform: translate(50%, 33%);
    pointer-events: none;
    z-index: 1;
  }
  
  .module-projects-teaser .row-1 figure.col-1 .badge svg {
    display: block;
    width: 100%;
    height: auto;
  }
  
  .module-projects-teaser .row-1 figure.col-1 .badge svg path {
    stroke: var(--base-color-dark-gray);
  }
  
  .module-projects-teaser .row-1 .col-2 {
    --padding-left: calc(70 * var(--base-unit));
    width: 100%;
    box-sizing: border-box;
    position: relative;
    z-index: 2;
    padding-left: var(--padding-left);
  }
  
  .module-projects-teaser .row-1 .col-2 .headline {
    position: relative;
    margin-left: calc((var(--padding-left) + (50 * var(--base-unit))) * -1);
    margin-top: calc(-66 * var(--base-unit));
  }
  
  
  .module-projects-teaser .row-2 {
    margin-top: calc(190 * var(--base-unit));
    margin-left: calc(var(--page-padding-left) * -1);
    margin-right: calc(var(--page-padding-left) * -1);
    position: relative;
    text-align: center;
  }
  
  
  
  
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-projects-teaser .module-wrap {
      padding-top: calc(160 * var(--base-unit-mobile));
    }
    
    .module-projects-teaser .row-1 {
      max-width: calc(285 * var(--base-unit-mobile));
      flex-flow: row wrap;
      padding-left: 0;
    }
    
    .module-projects-teaser .row-1 figure.col-1,
    .module-projects-teaser .row-1 .col-2 {
      width: 100%;
    }
    
    .module-projects-teaser .row-1 .col-2 {
      --padding-left: 0;
      padding-left: calc(40 * var(--base-unit-mobile));
    }
    
    .module-projects-teaser .row-1 .col-2 .headline {
      margin-right: 0;
      margin-top: calc(35 * var(--base-unit-mobile));
      margin-bottom: calc(12 * var(--base-unit-mobile));
    }
    
    .module-projects-teaser .row-1 figure.col-1 .badge {
      width: calc(76 * var(--base-unit-mobile));
      right: 98%;
    }
    
    .module-projects-teaser .row-1 figure.col-1 .image::after {
      top: -6px;
      left: -6px;
    }
    
  }
  
  
  
  
  
  
  





  .module-slideshow {
    --offset-left: max(20px, calc(123 * var(--base-unit)));
  }

  .module-slideshow .splide img {
    max-width: none;
    width: calc(1110 * var(--base-unit));
    height: auto;
    display: block;
  }
  
  .module-slideshow .splide__pagination {
    display: flex;
    flex-flow: row nowrap;
    width: auto;
    margin-top: max(20px, calc(32 * var(--base-unit)));
    align-items: flex-start;
    justify-content: flex-start;
    margin-left: calc(var(--offset-left) + (60 * var(--base-unit)));
  }
  
  .module-slideshow .splide__pagination button {
    --size: max(10px, calc(19 * var(--base-unit)));
    width: var(--size);
    height: var(--size);
    display: block;
    border-radius: 50%;
    border: 1px solid var(--base-color-dark-gray);
    background: var(--base-color-dark-gray);
    box-shadow: 0 0 0 var(--size) var(--page-background-color) inset;
    transition: box-shadow 150ms; 
  }
  
  .module-slideshow .splide__pagination button:hover,
  .module-slideshow .splide__pagination button.is-active {
    box-shadow: 0 0 0 0 var(--page-background-color) inset;
  }
  
  .module-slideshow .splide__pagination > li + li {
    margin-left: max(7px, calc(14 * var(--base-unit)));
  }
  
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-slideshow {
      --offset-left: 20px;
    }
    
    .module-slideshow .splide img {
      width: calc(347 * var(--base-unit-mobile));
    }
    
    .module-slideshow .splide__pagination {
      margin-left: var(--page-padding-left);
      margin-right: var(--page-padding-right);
      justify-content: center;
    }
    
  }


  .module-social-media {
    background: var(--base-color-white);
  }
  
  .module-social-media .module-inner {
    padding-top: max(3.125rem, calc(120 * var(--base-unit)));
    padding-bottom: max(3.125rem, calc(132 * var(--base-unit)));
  }
  
  .module-social-media .module-wrap {
    max-width: calc(1200 * var(--base-unit));
    margin: 0 auto;
  }
  
  .module-social-media .headline {
    margin-bottom: calc(64 * var(--base-unit));
  }
  
  nav.social ul {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
  }
  
  nav.social a {
    display: inline-block;
  }
  
  nav.social .title-wrap {
    text-decoration: underline;
    display: inline-block;
    padding-top: .25em;
  }
  
  nav.social a:hover .title-wrap,
  nav.social a:focus .title-wrap {
    text-decoration: none;
  }
  
  nav.social .icon-wrap {
    display: inline-block;
    margin-right: .23333333333333333333em;
    vertical-align: top;
  }
  
  nav.social svg {
    display: block;
    --size: max(1.4375rem, calc(48 * var(--base-unit)));
    width: var(--size);
    height: var(--size);
  }
  
  nav.social svg path {
    stroke: currentColor;
  }
  
  
  
  
  
  
  @media (max-width: 750px) {
    
    nav.social ul > li {
      width: 50%;
      margin-bottom: 20px;
    }
    
  }
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-social-media .module-wrap {
      max-width: none;
    }
    
    .module-social-media .headline {
      margin-bottom: calc(38 * var(--base-unit-mobile));
    }
    
    nav.social ul > li {
      margin-bottom: calc(34 * var(--base-unit-mobile));
    }
    
    nav.social .icon-wrap {
      margin-right: 0.5em;
    }
    
  }



  .module-subpage-hero .module-wrap {
    max-width: calc(1230 * var(--base-unit));
    margin-left: auto;
  }
  
  .subpage-hero-col-set {
    display: flex;
    flex-flow: row nowrap;
  }
  
  .subpage-hero-col-set .col-1 {
    position: relative;
    z-index: 2;
    padding-right: calc(70 * var(--base-unit));
    box-sizing: border-box;
    width: 100%;
  }
  
  .subpage-hero-col-set .headline {
    position: relative;
    margin-top: calc(40 * var(--base-unit));
    margin-right: calc(-400 * var(--base-unit));
  }
  
  .subpage-hero-col-set .col-2 {
    width: calc(824 * var(--base-unit));
    flex-shrink: 0;
  }
  
  
  
  
  
  
  @media (max-width: 1100px) {
    
    .module-subpage-hero .module-wrap {
      max-width: none;
      margin-left: calc(114 * var(--base-unit));
    }
    
    .subpage-hero-col-set {
      flex-flow: row wrap;
    }
    
    .subpage-hero-col-set .col-2 {
      margin-left: calc((-114 * var(--base-unit)) - var(--page-padding-left));
      margin-top: calc(40 * var(--base-unit));
      width: calc(1000 * var(--base-unit));
    }
    
    .subpage-hero-col-set .headline {
      margin-right: 0;
    }
    
  }
  
  
  
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-subpage-hero .module-wrap {
      max-width: none;
      margin-left: 0;
    }
    
    .subpage-hero-col-set .col-2 {
      margin: 0;
      width: 100%;
      margin-top: calc(46 * var(--base-unit-mobile));
    }
    
  }




  .module-subpage-teaser {
    background: var(--base-color-light-blue);
  }
  
  .module-subpage-teaser:has(+ .module-newsletter) {
    margin-bottom: 0;
  }
  
  .module-subpage-teaser .module-inner {
    padding-top: calc(112 * var(--base-unit));
    padding-bottom: calc(130 * var(--base-unit));
  }
  
  .subpage-teaser-list {
    display: flex;
    flex-flow: row nowrap;
  }
  
  .subpage-teaser-list > li {
    width: calc(100% / 3);
    position: relative;
    display: flex;
    flex-flow: column nowrap;
    flex-grow: 1;
  }
  
  .subpage-teaser-list > li + li::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 1px;
    background: var(--base-color-dark-gray);
    pointer-events: none;
  }
  
  .subpage-teaser-list a {
    display: flex;
    flex-flow: column nowrap;
    flex-grow: 1;
    padding-left: calc(80 * var(--base-unit));
    padding-top: calc(40 * var(--base-unit));
    padding-bottom: calc(5 * var(--base-unit));
  }
  
  .subpage-teaser-list .btn-set {
    margin-top: auto;
    padding-top: calc(31 * var(--base-unit));
  }
  
  .subpage-teaser-list .name > div {
    text-decoration: underline;
  }
  
  .subpage-teaser-list a:hover .name > div,
  .subpage-teaser-list a:focus .name > div {
    text-decoration: none;
  }
  
  
  
  
  
  
  
  @media (max-width: 600px) {
    
    .subpage-teaser-list > li + li::before {
      display: none;
    }
    
    .subpage-teaser-list {
      display: block;
      max-width: calc(1075 * var(--base-unit));
      margin: 0 auto;
    }
    
    .subpage-teaser-list > li {
      width: 100%;
    }
    
    .subpage-teaser-list > li + li {
      margin-top: calc(75 * var(--base-unit));
    }
    
    .subpage-teaser-list a {
      padding: 0;
      display: flex;
      flex-flow: row nowrap;
      width: 100%;
      height: var(--round-button-size);
    }
    
    .subpage-teaser-list .btn-set {
      padding-top: 0;
      margin-left: auto;
      padding-left: 1em;
    }
    
    .subpage-teaser-list .name {
      display: flex;
      flex-flow: column nowrap;
    }
    
    .subpage-teaser-list .name > div {
      margin: auto 0;
    }
    
    .subpage-teaser-list .name > div > span {
      display: inline;
    }
    
  }
  
  
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-subpage-teaser .module-inner {
      padding-top: calc(55 * var(--base-unit-mobile));
      padding-bottom: calc(55 * var(--base-unit-mobile));
    }
    
    .subpage-teaser-list {
      max-width: calc(285 * var(--base-unit-mobile));
    }
    
    .subpage-teaser-list > li + li {
      margin-top: calc(31 * var(--base-unit-mobile));
    }
    
  }



  .module-team .module-wrap {
    max-width: calc(1140 * var(--base-unit));
    margin-left: auto;
    margin-right: calc(75 * var(--base-unit));
  }

  .team-col-set {
    display: flex;
    flex-flow: row nowrap;
  }
  
  .team-col-set > * {
    width: calc(504 * var(--base-unit));
  }
  
  .team-col-set .col-1 {
    margin-right: auto;
  }
  
  .team-col-set .col-2 {
    padding-top: calc(204 * var(--base-unit));
  }

  .team-list > li + li {
    margin-top: calc(130 * var(--base-unit));
  }
  
  article.team-article {
    --padding-left: calc(42 * var(--base-unit));
    --max-width: calc(440 * var(--base-unit));; 
  }
  
  article.team-article figure {
    padding-left: var(--padding-left);
    max-width: var(--max-width);
    position: relative;
    margin-bottom: 1.5625rem;
  }
  
  article.team-article figure .image {
    border-radius: 50%;
    overflow: hidden;
    position: relative;
  }
  
  article.team-article figure .image img {
    transform-origin: center top;
    transition: transform 750ms;
    transition-timing-function: var(--ttf-2);
  }
  
  article.team-article.opened figure .image img {
    transform: scale(1.1);
  }
  
  article.team-article .description {
    max-height: 0;
    overflow: hidden;
    position: relative;
    transform: translateY(-20px);
    transition: transform, opacity, max-height;
    transition-duration: 750ms;
    transition-timing-function: var(--ttf-2);
    opacity: 0;
  }
  
  article.team-article.opened .description {
    max-height: var(--max-height, 200px);
    opacity: 1;
    transform: none;
  }
  
  article.team-article .description > div {
    padding-left: var(--padding-left);
    max-width: var(--max-width);
  }
  
  article.team-article .role {
    margin-bottom: .75em;
  }
  
  article.team-article .name {
    position: relative;
    z-index: 2;
    transition: transform 750ms;
    transition-timing-function: var(--ttf-2);
  }
  
  article.team-article.opened .name {
    transform: translateY(-2vh);
  }
  
  article.team-article .name h2 {
    height: 1.1em;
  }
  
  article.team-article .btn-set {
    margin-top: 0;
    position: absolute;
    bottom: 0;
    right: calc(-25 * var(--base-unit));
    z-index: 2;
  }
  
  article.team-article .btn {
    display: flex;
  }
  
  article.team-article .btn span.icon svg {
    transition: transform 750ms;
    transition-timing-function: var(--ttf-2);
  }
  
  article.team-article.opened .btn span.icon svg {
    transform: rotate(135deg);
  }
  
  .team-list-wrapper.mobile-only {
    display: none;
  }
  
  
  
  
  
  
  
  
  
  @media (max-width: 750px) {
    
    .module-team .module-wrap {
      margin: 0 auto;
    }
    
  }
  
  
  
  
  
  
  
  
  @media (max-width: 500px) {
    
    .module-team .module-wrap {
      max-width: none;
    }
    
    .team-col-set {
      display: none;
    }
    
    .team-list-wrapper.mobile-only {
      display: block;
    }
    
    article.team-article {
      --max-width: calc(285 * var(--base-unit-mobile));
      --padding-left: calc(30 * var(--base-unit-mobile));
    }
    
    .team-list > li + li {
      margin-top: calc(78 * var(--base-unit-mobile));
    }
    
    article.team-article .name {
      transform: none !important;
    }
    
    article.team-article .name h2 {
      height: auto;
    }
    
    article.team-article .name h2 > span {
      display: inline;
    }
    
    article.team-article figure {
      margin-top: calc(24 * var(--base-unit-mobile));
    }
    
  }



  .module-team-teaser {
    background: var(--base-color-gray);
  }

  .module-team-teaser .module-wrap {
    padding-top: calc(250 * var(--base-unit));
    padding-bottom: calc(190 * var(--base-unit));
  }

  .module-team-teaser .row-1 {
    display: flex;
    flex-flow: row nowrap;
    max-width: calc(1043 * var(--base-unit));
    padding-left: calc(180 * var(--base-unit));
    margin: 0 auto;
  }
  
  .module-team-teaser .row-1 figure.col-1 {
    width: calc(533 * var(--base-unit));
    flex-shrink: 0;
    position: relative;
  }
  
  .module-team-teaser .row-1 .col-2 {
    --padding-left: calc(70 * var(--base-unit));
    width: 100%;
    box-sizing: border-box;
    position: relative;
    z-index: 2;
    padding-left: var(--padding-left);
  }
  
  .module-team-teaser .row-1 .col-2 .headline {
    position: relative;
    margin-left: calc((var(--padding-left) + (50 * var(--base-unit))) * -1);
    margin-top: calc(33 * var(--base-unit));
  }








  @media (max-width: 500px) {
    
    .module-team-teaser .row-1 {
      max-width: calc(285 * var(--base-unit-mobile));
      flex-flow: row wrap;
      padding-left: 0;
    }
    
    .module-team-teaser .row-1 figure.col-1,
    .module-team-teaser .row-1 .col-2 {
      width: 100%;
    }
    
    .module-team-teaser .row-1 .col-2 {
      --padding-left: 0;
      padding-left: calc(40 * var(--base-unit-mobile));
    }
    
    .module-team-teaser .row-1 .col-2 .headline {
      margin-right: 0;
      margin-top: calc(35 * var(--base-unit-mobile));
      margin-bottom: calc(12 * var(--base-unit-mobile));
    }
    
  }


  .ticker-slider {
    user-select: none;
    margin-left: calc(var(--page-padding-left) * -1);
    margin-right: calc(var(--page-padding-left) * -1);
    margin-top: calc(320 * var(--base-unit));
    min-height: 1.3em;
    border: 1px solid var(--base-color-dark-gray);
    border-width: 1px 0;
    padding: 0.3em 0 0.2em;
    overflow: hidden;
  }
  
  body.single-project .ticker-slider {
    margin-top: 0;
  }
  
  .module-ticker.is-after-teaser {
    background: var(--background-color, transparent);
    margin-bottom: 0;
    padding-bottom: var(--module-margin);
  }
  
  .module-ticker.is-after-teaser .ticker-slider {
    margin-top: 0;
  }
  
  .ticker-slider .ticker-copy {
    white-space: nowrap;
  }
  
  .ticker-items-list {
    display: flex;
    flex-flow: row nowrap;
  }
  
  .ticker-slider a {
    text-decoration: underline;
  }
  
  .ticker-slider a:hover {
    text-decoration: none;
  }

  @media (prefers-reduced-motion: reduce) {

    .ticker-items-list {
      flex-wrap: wrap;
      padding-inline: var(--page-padding-left) var(--page-padding-right);
    }

    .ticker-slider .ticker-copy {
      white-space: normal;
    }

  }




  .module-usps .module-wrap {
    max-width: calc(1230 * var(--base-unit));
    margin-left: auto;
  }
  
  .module-usps .no.hdln-60 {
    --min-font-size: 45px;
  }



  .module-usps .row-1,
  .module-usps .row-2 {
    max-width: calc(1150 * var(--px));
  }

  .module-usps .row-1 {
    margin-bottom: calc(130 * var(--px));
  }

  .module-usps .row-1 .headline {
    max-width: calc(960 * var(--px));
  }



  .module-usps .usps-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: calc(60 * var(--px)) max(25px, calc(38 * var(--px)));
  }

  .module-usps .usps-grid > li {
    display: flex;
    flex-flow: column nowrap;
    opacity: 0;
    transform: translateY(30%);
    will-change: transform;
    transition: 1000ms var(--ttf-5);
    transition-delay: calc(var(--ios-item-index, 0) * 200ms);
    transition-property: transform, opacity;
  }
  
  .module-usps .is-on-screen .usps-grid > li {
    opacity: 1;
    transform: none;
  }

  .usp-card {
    --frame-offset: max(11px, calc(22 * var(--px)));
    position: relative;
    box-sizing: border-box;
    flex-grow: 1;
    display: flex;
    flex-flow: column nowrap;
    background: var(--base-color-white);
    padding: max(30px, calc(40 * var(--px))) max(30px, calc(44 * var(--px))) max(30px, calc(50 * var(--px)));
  }

  .usp-card::after {
    content: '';
    display: block;
    position: absolute;
    top: calc(var(--frame-offset) * -1);
    left: var(--frame-offset);
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    border: 1px solid var(--base-color-dark-gray);
    pointer-events: none;
    user-select: none;
  }

  .usp-card .no {
    display: block;
    line-height: 1;
    margin-bottom: max(12px, calc(24 * var(--px)));
  }

  .usp-card .headline {
    hyphens: auto;
    margin-bottom: max(40px, calc(60 * var(--px)));
  }

  .usp-card .copy {
    margin-top: auto;
    opacity: 0;
    will-change: opacity;
    transition: 1000ms var(--ttf-5);
    transition-delay: calc(var(--ios-item-index, 0) * 400ms);
    transition-property: opacity;
  }

  .module-usps .is-on-screen .usp-card .copy {
    opacity: 1;
  }





  @media (max-width: 900px) {
    
    .module-usps .module-wrap,
    .module-usps .row-1, .module-usps .row-2 {
      max-width: none;
    }
    
    .module-usps .usps-grid {
      padding-right: var(--page-padding-left);
    }
    
  }
  
  
  
  
  
  @media (max-width: 700px) {
    
    .module-usps .row-2 {
      overflow: auto;
      margin-inline: calc(var(--page-padding-left) * -1);
      padding-block: 15px;
  		-ms-overflow-style: none;
  		scrollbar-width: none;
  		-webkit-overflow-scrolling: touch;
      scroll-snap-type: x mandatory;
    }
    
  	.module-usps .row-2::-webkit-scrollbar {
  		display: none;
  	}
    
    .module-usps .row-2 .usps-grid {
      display: flex;
      flex-flow: row nowrap;
      gap: 0 25px;
      padding-inline: var(--page-padding-left) calc(var(--page-padding-left) + 15px);
      width: max-content;
    }
    
    .module-usps .row-2 .usps-grid > * {
      width: 274px;
      flex-shrink: 0;
      scroll-snap-align: start;
      scroll-margin-left: var(--page-padding-left);
    }
    
  }/* These styles are used in the backend editor AND in the Theme (frontend) */

/* Most themes nowadays provide an extra stylesheet of classes which WordPress itself then */
/* applies to the backend editor TinyMCE. However, custom CSS - set in Plugins, in the WP  */
/* Customizer or in Theme options, will normally not be reflected to TinyMCE. So better to */
/* put such styles all here, where they will apply to TinyMCE *and* the frontend.          */

/* The goal is not only to make the visual editor display look as much like the frontend as    */
/* possible, but also to make sure that all important CSS classes are available for convenient */
/* selection in TinyMCEs "Formats" dropdown - so do not forget to configure the TinyMCE styles */
/* dropdown with elements to match those here.                                                 */

/* If you do not need this file then upload an empty one (zero bytes) which will not be loaded at all. */

/* Suggested general non-tag-specific visual styles */
