/* Hansea Invest styles for Elementor pages: self-hosted brand fonts and the
   few details Elementor's free widgets can't express. Colors and type sizes
   live in the Elementor widgets themselves so they stay editable there. */

@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 300; font-display: swap; src: url(fonts/cormorant-garamond-latin-300-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 300; font-display: swap; src: url(fonts/cormorant-garamond-latin-ext-300-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/cormorant-garamond-latin-400-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/cormorant-garamond-latin-ext-400-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/cormorant-garamond-latin-ext-500-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/cormorant-garamond-latin-700-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/cormorant-garamond-latin-ext-700-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap; src: url(fonts/inter-latin-wght-normal.woff2) format("woff2-variations"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap; src: url(fonts/inter-latin-ext-wght-normal.woff2) format("woff2-variations"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

body.elementor-page {
	margin: 0;
	background: #fff;
	color: #2a2f52;
	font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
}
html { scroll-behavior: smooth; }
body.elementor-page [id] { scroll-margin-top: 84px; }
.elementor-page .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-page .elementor-heading-title { text-wrap: balance; font-variant-numeric: lining-nums; }

/* Sticky white header with a hairline, as on the rest of the site */
.hs-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid #e7e8ec;
	background: rgba(255, 255, 255, 0.92) !important;
	backdrop-filter: blur(10px);
}
@media (max-width: 1024px) {
	.hs-nav { display: none !important; }
}

/* Cards */
.hs-card { overflow: hidden; }
.hs-team-card .elementor-widget-image { position: relative; width: 100%; aspect-ratio: 4 / 5; }
.hs-team-card .elementor-widget-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; }

/* Image and logo slots still waiting for real files */
.hs-ph { position: relative; width: 100%; }
.hs-ph-4x3 { aspect-ratio: 4 / 3; }
.hs-ph-2x3 { aspect-ratio: 2 / 3; }
.hs-ph-16x10 { aspect-ratio: 16 / 10; }
.hs-ph-4x5 { aspect-ratio: 4 / 5; }
.hs-ph-16x9 { aspect-ratio: 16 / 9; }
.hs-case-img img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
/* Before/after photo: labels on both halves (the split sits at 48.4 % of the image) */
.hs-ba { position: relative; }
.hs-ba::before, .hs-ba::after {
	position: absolute; top: 14px; z-index: 1; padding: 5px 10px; border-radius: 4px;
	background: rgba(20, 26, 70, 0.85); color: #fff; font: 600 11px/1.2 "Inter", sans-serif;
	letter-spacing: 0.08em; text-transform: uppercase; pointer-events: none;
}
.hs-ba::before { content: "Vorher"; left: 14px; }
.hs-ba::after { content: "Nachher"; left: calc(51.6% + 14px); }
.hs-ph-3x2 { aspect-ratio: 3 / 2; }
.hs-placeholder {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 8px;
}
.hs-card .hs-placeholder { border-radius: 0; }

/* Contact form shortcode */
.hs-form { display: grid; gap: 18px; padding: 32px; border: 1px solid #e7e8ec; border-radius: 8px; background: #fff; font-family: "Inter", sans-serif; }
.hs-form__row { display: grid; gap: 18px; grid-template-columns: 1fr 1fr; }
@media (max-width: 600px) { .hs-form { padding: 22px; } .hs-form__row { grid-template-columns: 1fr; } }
.hs-form label { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 600; color: #141a46; }
.hs-form input, .hs-form select {
	width: 100%; box-sizing: border-box; height: 48px; padding: 0 14px;
	border: 1px solid #d2d4da; border-radius: 4px; background: #fff;
	font: 16px "Inter", sans-serif; color: #141a46;
}
.hs-form input:focus, .hs-form select:focus { outline: none; border-color: #141a46; box-shadow: 0 0 0 3px rgba(221, 184, 81, 0.45); }
.hs-form [aria-invalid="true"] { border-color: #e85a49; }
.hs-form__error { margin: 6px 0 0; font-size: 13px; color: #e85a49; }
.hs-form button {
	height: 52px; border: 0; border-radius: 4px; cursor: pointer;
	background: #ddb851; color: #141a46; font: 600 16px "Inter", sans-serif;
}
.hs-form button:hover { background: #c6a248; }
.hs-form button[disabled] { opacity: 0.6; cursor: default; }
.hs-form__note { margin: 0; font-size: 12px; color: #7a7d89; }
.hs-form__note a { color: #141a46; }
.hs-form__done { padding: 24px; border-radius: 8px; background: #e6f2ec; color: #141a46; }
.hs-form__done strong { display: block; font-size: 18px; margin-bottom: 6px; }
.hs-form__hp { position: absolute; left: -9999px; }

/* Header: nav takes the free space so the actions sit at the right edge */
.hs-nav { flex: 1 1 auto; padding-left: 16px; }

/* Phones: stacked items keep their height (otherwise image slots overlap
   the text below them) */
@media (max-width: 767px) {
	.elementor-page .e-con > .elementor-element { flex-shrink: 0; }
}
.hs-header-actions { margin-left: auto; justify-content: flex-end !important; }

/* ---------------------------------------------------------------------------
 * Layout v2: clean tiles, split bands, hairlines
 * ------------------------------------------------------------------------ */

/* White tiles with a soft shadow; flat variant for logo slots */
.hs-tile { overflow: hidden; box-shadow: 0 1px 2px rgba(20, 26, 70, 0.04), 0 14px 36px -12px rgba(20, 26, 70, 0.12); }
.hs-tile--flat { box-shadow: none; }

/* Split bands: the outer edge of a panel lines up with the 1180px content grid */
.hs-panel-l { padding-left: max(20px, calc((100vw - 1180px) / 2)) !important; }
.hs-panel-r { padding-right: max(20px, calc((100vw - 1180px) / 2)) !important; }
@media (max-width: 767px) {
	.hs-panel-l, .hs-panel-r { padding-left: 16px !important; padding-right: 16px !important; }
}

/* Hairline separators inside navy tiles and the hero facts */
.hs-split-line, .hs-facts { border-top: 1px solid rgba(255, 255, 255, 0.14); padding-top: 20px !important; }
.hs-facts { padding-top: 24px !important; }

/* Gold circle arrow button */
.hs-circle .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	padding: 0 !important;
	border-radius: 50% !important;
}
.hs-circle { flex: 0 0 auto; width: auto !important; }

/* Book cover centred in its navy panel */
.hs-book { align-self: center !important; margin-left: auto !important; margin-right: auto !important; }
.hs-book .hs-placeholder { border-radius: 4px; box-shadow: 0 24px 48px -16px rgba(0, 0, 0, 0.45); }

/* Photo panel that shows the whole image (e.g. the film poster) */
.hs-photo--contain { background-size: contain !important; }

/* Image that fills the full height of its tile */
.hs-fill { display: flex; }
.hs-fill .hs-ph { flex: 1 1 auto; aspect-ratio: auto; min-height: 320px; }

/* Video box in the webinar band */
.hs-video { width: 100%; }
.hs-video .elementor-wrapper, .hs-video .elementor-custom-embed-image-overlay { border-radius: 4px; overflow: hidden; }
.hs-video-frame { width: 100%; box-shadow: 0 1px 2px rgba(20, 26, 70, 0.06), 0 22px 48px -16px rgba(20, 26, 70, 0.30); }
.hs-video .elementor-custom-embed-play i, .hs-video .elementor-custom-embed-play svg { filter: drop-shadow(0 4px 16px rgba(20, 26, 70, 0.35)); }

/* Images that open in the lightbox */
.hs-zoom a { display: inline-block; cursor: zoom-in; transition: transform 0.25s ease; }
.hs-zoom a:hover, .hs-zoom a:focus-visible { transform: scale(1.05); }

/* Lightbox: solid navy backdrop, brand caption */
.elementor-lightbox { background-color: #0e1338 !important; }
.elementor-lightbox .elementor-slideshow__title { font-family: "Inter", sans-serif; font-weight: 600; color: #fff; }
.elementor-lightbox .elementor-slideshow__description { display: none; }

/* So funktioniert's: four steps on one line. The gold line fills while scrolling (hansea-motion.js sets --hs-tl);
   horizontal on desktop, vertical on phones. */
.hs-timeline { position: relative; }
.hs-timeline::before, .hs-timeline::after {
	content: ""; position: absolute; top: 25px; left: 26px; right: calc(23% - 26px); height: 2px; border-radius: 2px;
}
.hs-timeline::before { background: #e7e8ec; }
.hs-timeline::after { background: #ddb851; transform-origin: left; transform: scaleX(var(--hs-tl, 1)); }
.hs-tl-step { position: relative; z-index: 1 !important; } /* above the line (Elementor sets z-index on containers) */
.hs-tl-marker { width: auto !important; margin-bottom: 16px; }
.hs-tl-dot {
	display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%;
	background: #ddb851; color: #141a46; font: 700 16px/1 "Inter", sans-serif; font-variant-numeric: tabular-nums;
	box-shadow: 0 0 0 8px #f5f5f5; /* ring in the band colour, so the line stops short of the dot */
}
@media (max-width: 767px) {
	.hs-timeline { gap: 32px !important; }
	.hs-timeline::before, .hs-timeline::after { top: 26px; bottom: auto; left: 25px; right: auto; width: 2px; height: calc(100% - 26px); }
	.hs-timeline::after { transform-origin: top; transform: scaleY(var(--hs-tl, 1)); }
	.hs-tl-step { padding-left: 76px !important; }
	.hs-tl-marker { position: absolute !important; left: 0; top: 0; }
}

/* Hero headline in a solid navy box on the photo */
.hs-hero-title { width: auto !important; max-width: 720px; box-shadow: 0 24px 60px -24px rgba(14, 19, 56, 0.55); }

/* Press: newspaper clipping, square, opens in the lightbox */
.hs-press-img img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: top; }

/* Book band: the book visual is the background, text sits on the sky on the right */
.hs-book-band { background-size: cover !important; }
.hs-book-text {
	padding: 40px 44px !important; border-radius: 8px;
	background: rgba(14, 19, 56, 0.72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
@media (max-width: 767px) {
	/* Phones: the whole visual on top, the text below on the matching blue */
	.hs-book-band { background-size: 100% auto !important; background-position: top center !important; padding-top: 34.6vw !important; } /* = image height / width */
	.hs-book-space { display: none !important; }
	.hs-book-text { padding: 28px 22px !important; margin-top: 16px; }
}

/* Sponsoring: handball player line art as a watermark */
.hs-sponsor-band { position: relative; overflow: hidden !important; }
.hs-sponsor-band > .e-con-inner { position: relative; }
.hs-watermark { position: absolute !important; inset: 0; pointer-events: none; z-index: 0; width: auto !important; overflow: hidden; }
.hs-sponsor-band > .e-con-inner > .e-con { position: relative; z-index: 1; }
.hs-wm-player {
	position: absolute; left: 34%; top: 50%; width: 560px; max-width: 70%; transform: translate(-50%, -50%) rotate(-4deg);
	color: #ddb851; opacity: 0.07;
}
@media (max-width: 767px) { .hs-wm-player { left: 70%; top: 18%; width: 340px; max-width: none; } }

/* Tochterunternehmen: logo tiles */
.hs-sub-tile { transition: transform 0.25s ease, box-shadow 0.25s ease; }
.hs-sub-tile:hover { transform: translateY(-4px); }
.hs-sub-logo { height: 130px; display: flex !important; align-items: center; justify-content: center; }
.hs-sub-logo .elementor-widget-container, .hs-sub-logo a { display: flex !important; align-items: center; justify-content: center; width: 100%; height: 100%; }
.hs-sub-logo img { max-height: 110px; max-width: 92%; width: auto; height: auto; object-fit: contain; }
@media (max-width: 767px) { .hs-sub-logo { height: 84px; } .hs-sub-logo img { max-height: 72px; } }

/* Floating project label on the hero photo */
.hs-chip { width: auto !important; }

/* FAQ: separate white rows */
.hs-faq-tiles .elementor-accordion-item { border: 1px solid #e7e8ec !important; border-radius: 8px; overflow: hidden; background: #fff; }
.hs-faq-tiles .elementor-accordion-item + .elementor-accordion-item { margin-top: 10px; }
.hs-faq-tiles .elementor-tab-title { border: 0 !important; }
.hs-faq-tiles .elementor-tab-content { border-top: 0 !important; }

/* Header: logo and login button stay on one row on phones */
.hs-header .e-con-inner { flex-wrap: nowrap !important; }
.hs-header .elementor-widget-image { flex: 0 0 auto; width: auto !important; }
.hs-header-actions { flex: 0 0 auto; width: auto !important; }
.hs-header .elementor-button { white-space: nowrap; }

/* ---------------------------------------------------------------------------
 * Case study chart (navy band). Blue = Kaufpreis/Bankdarlehen/Investition,
 * gold = Sanierung/Eigenkapital/Wertsteigerung (validated for the navy surface).
 * ------------------------------------------------------------------------ */
.hs-chart { margin: 0; font-family: "Inter", sans-serif; color: #e3e4ee; }
.hs-chart__legend { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-bottom: 28px; font-size: 13px; color: #bfc2d6; }
.hs-chart__legend span { display: inline-flex; align-items: center; gap: 8px; }
.hs-sw { display: inline-block; width: 12px; height: 12px; border-radius: 3px; }
.hs-sw--base, .hs-seg--base { background: #6c78c9; }
.hs-sw--gold, .hs-seg--gold { background: #ae8c3a; }
.hs-chart__plot { position: relative; padding-top: 22px; }
.hs-chart__grid { position: absolute; inset: 0; pointer-events: none; }
.hs-chart__grid span {
	position: absolute; top: 0; bottom: 0; border-left: 1px solid rgba(255, 255, 255, 0.08);
	padding-left: 6px; font-size: 11px; line-height: 1; color: #8a8fb2; white-space: nowrap;
}
.hs-chart__grid .hs-tick--end { border-left: 0; border-right: 1px solid rgba(255, 255, 255, 0.08); padding: 0 6px 0 0; transform: translateX(-100%); }
.hs-chart__row { position: relative; margin-bottom: 26px; }
.hs-chart__row:last-child { margin-bottom: 8px; }
.hs-chart__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; font-size: 14px; }
.hs-chart__head strong { white-space: nowrap; font-family: "Inter", sans-serif; font-weight: 600; font-size: 20px; color: #fff; line-height: 1; font-variant-numeric: tabular-nums; }
.hs-chart__row:last-child .hs-chart__head strong { color: #e6c978; }
.hs-chart__bar { display: flex; gap: 2px; height: 34px; }
.hs-seg { position: relative; display: block; height: 100%; border-radius: 4px; outline: none; transform-origin: left center; }
.hs-seg:focus-visible { box-shadow: 0 0 0 2px #141a46, 0 0 0 4px #e6c978; }
.hs-seg::after {
	content: attr(data-tip); position: absolute; left: 50%; bottom: calc(100% + 8px); transform: translateX(-50%);
	white-space: normal; width: max-content; max-width: min(300px, 78vw); line-height: 1.4; padding: 6px 10px; border-radius: 4px; background: #fff; color: #141a46;
	font-size: 12px; font-weight: 600; opacity: 0; pointer-events: none; transition: opacity 0.15s; z-index: 2;
}
.hs-seg:hover::after, .hs-seg:focus-visible::after { opacity: 1; }
/* Edge segments: tooltips open inwards so they never stick out of the chart (or widen the page on phones) */
.hs-seg:first-child::after { left: 0; transform: none; }
.hs-seg:last-child::after { left: auto; right: 0; transform: none; }
.hs-chart__labels { position: relative; height: 18px; margin-top: 8px; }
.hs-seg-label { position: absolute; top: 0; font-size: 12px; color: #bfc2d6; white-space: nowrap; }
.hs-seg-label--end { display: flex; justify-content: flex-end; } /* long labels extend to the left, never past the bar end */
.hs-chart__note { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, 0.14); font-size: 13px; line-height: 1.5; color: #bfc2d6; }
.hs-sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.hs-sr-only table { width: 1px; table-layout: fixed; } /* tables otherwise grow to their content and widen the page */
/* Bars grow in when the chart scrolls into view */
html.hs-motion .hs-chart-widget .hs-seg { transform: scaleX(0); transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1) calc(var(--hs-delay, 0ms) + 200ms + var(--d, 0ms)); }
html.hs-motion .hs-chart-widget.hs-in .hs-seg { transform: none; }

/* Sponsoring: hero image and swipeable gallery on navy */
.hs-spons-hero img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; display: block; }
@media (max-width: 767px) { .hs-spons-hero img { aspect-ratio: 4 / 3; } }
.hs-gallery .swiper-slide-image { aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 15%; width: 100%; } /* portrait photos keep faces in view */
/* Sponsoring photo: upright 4:5 (portrait photos stay whole); dots sit on the photo */
.hs-spons-media .swiper-slide-image { aspect-ratio: 4 / 5; object-position: 50% 30%; }
.hs-spons-media .swiper, .hs-spons-media .elementor-image-carousel-wrapper { padding-bottom: 0 !important; }
.hs-spons-media .swiper-pagination { position: absolute !important; bottom: 16px !important; margin: 0; }
}
.hs-gallery .elementor-swiper-button {
	width: 48px; height: 48px; border-radius: 50%; background: rgba(20, 26, 70, 0.72);
	display: flex; align-items: center; justify-content: center; backdrop-filter: blur(6px);
}
.hs-gallery .elementor-swiper-button:hover { background: #ddb851; }
.hs-gallery .elementor-swiper-button:hover svg { fill: #141a46; }
.hs-gallery .swiper-pagination { position: static; margin-top: 18px; }

/* ---------------------------------------------------------------------------
 * Testimonials (cream band, three standout cards)
 * ------------------------------------------------------------------------ */
.hs-center, .hs-center .elementor-heading-title { text-align: center; }
.hs-quote { position: relative; box-shadow: 0 2px 4px rgba(20, 26, 70, 0.05), 0 28px 60px -20px rgba(20, 26, 70, 0.28); }
@media (min-width: 768px) {
	.hs-quote--gold { transform: translateY(-20px); }
	html.hs-motion .hs-quote--gold.hs-rise { transform: translate3d(0, 44px, 0); }
	html.hs-motion .hs-quote--gold.hs-rise.hs-in { transform: translateY(-20px); }
}
.hs-quote .elementor-heading-title { text-wrap: pretty; }
.hs-quote-author { border-top: 1px solid rgba(20, 26, 70, 0.12); padding-top: 20px !important; }
.hs-quote--navy .hs-quote-author { border-top-color: rgba(255, 255, 255, 0.16); }
.hs-quote-author .elementor-widget-html { flex: 0 0 auto; width: auto !important; }

/* ---------------------------------------------------------------------------
 * Scroll animations (elementor/hansea-motion.js). Only active while
 * html.hs-motion is set; without JavaScript or with reduced motion the page
 * shows everything at once.
 * ------------------------------------------------------------------------ */
.hs-header { transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1); }
.hs-header.hs-header--hidden { transform: translateY(-100%); }

html.hs-motion .hs-rise {
	opacity: 0;
	transform: translate3d(0, 64px, 0);
	transition:
		opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1) var(--hs-delay, 0ms),
		transform 1.2s cubic-bezier(0.16, 1, 0.3, 1) var(--hs-delay, 0ms);
	will-change: opacity, transform;
}
html.hs-motion .hs-rise.hs-in { opacity: 1; transform: none; }

/* Each heading word sits in a mask; the padding keeps ascenders and descenders visible */
.hs-wm {
	display: inline-block;
	overflow: hidden;
	vertical-align: top;
	padding: 0.1em 0 0.14em;
	margin: -0.1em 0 -0.14em;
}
.hs-wi { display: inline-block; }
html.hs-motion .hs-lines .hs-wi {
	transform: translate3d(0, 115%, 0);
	transition: transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
	transition-delay: calc(var(--hs-delay, 0ms) + var(--hs-line, 0ms));
	will-change: transform;
}
html.hs-motion .hs-lines.hs-in .hs-wi { transform: none; }

html.hs-motion .hs-done,
html.hs-motion .hs-done .hs-wi { will-change: auto; }

/* Brochure sections: label/value lists, tables, map, steps */
.hs-wide-img img { display: block; width: 100%; aspect-ratio: 21 / 8; object-fit: cover; }
.hs-project-img img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
@media (max-width: 767px) { .hs-wide-img img { aspect-ratio: 16 / 9; } .hs-project-img img { aspect-ratio: 4 / 3; } }

.hs-kv { font-family: "Inter", sans-serif; color: #2a2f52; }
.hs-kv__title { margin: 0 0 14px; font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: #a9863a; }
.hs-kv dl { margin: 0; }
.hs-kv dl > div { display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 1fr); gap: 16px; padding: 11px 0; border-top: 1px solid #e7e8ec; }
.hs-kv dl > div:last-child { border-bottom: 1px solid #e7e8ec; }
.hs-kv dt { font-size: 13px; color: #7a7d89; }
.hs-kv dd { margin: 0; font-size: 14px; font-weight: 600; color: #141a46; line-height: 1.5; }
.hs-kv dd small { display: block; font-size: 12px; font-weight: 400; color: #7a7d89; }
.hs-kv--dark .hs-kv__title { color: #e6c978; }
.hs-kv--dark dl > div, .hs-kv--dark dl > div:last-child { border-color: rgba(255, 255, 255, 0.14); }
.hs-kv--dark dt { color: #bfc2d6; }
.hs-kv--dark dd { color: #fff; }
.hs-kv--dark dd small { color: #bfc2d6; }

.hs-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.hs-table { width: 100%; border-collapse: collapse; font-family: "Inter", sans-serif; font-size: 15px; color: #2a2f52; }
.hs-table caption { text-align: left; caption-side: top; padding: 0 0 14px; font-family: "Cormorant Garamond", serif; font-size: 28px; color: #141a46; line-height: 1.2; }
.hs-table th, .hs-table td { text-align: left; padding: 13px 16px 13px 0; border-bottom: 1px solid #e7e8ec; vertical-align: top; }
.hs-table thead th { font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #7a7d89; }
.hs-table tbody th { font-weight: 600; color: #141a46; }
.hs-table--num td, .hs-table--num tbody th { font-variant-numeric: tabular-nums; white-space: nowrap; }
.hs-table--num th:not(:first-child), .hs-table--num td { text-align: right; padding: 13px 0 13px 16px; }
.hs-table-note { margin: 14px 0 0; font-family: "Inter", sans-serif; font-size: 12px; line-height: 1.5; color: #7a7d89; }
@media (max-width: 767px) {
	.hs-table { font-size: 13px; }
	.hs-table caption { font-size: 24px; }
	.hs-table th, .hs-table td { padding: 10px 10px 10px 0; }
	.hs-table--num th:not(:first-child), .hs-table--num td { padding: 10px 0 10px 8px; }
	.hs-table:not(.hs-table--num) { min-width: 520px; }
}

.hs-map { margin: 0; }
.hs-map svg { display: block; width: 100%; max-width: 460px; height: auto; margin: 0 auto; overflow: visible; }
.hs-map-land { fill: #e3e5ee; stroke: #fff; stroke-width: 2; }
.hs-map-halo { fill: rgba(221, 184, 81, 0.28); }
.hs-map-dot { fill: #141a46; stroke: #fff; stroke-width: 2.5; }
.hs-map-city text { font-family: "Inter", sans-serif; font-size: 19px; font-weight: 600; fill: #141a46; paint-order: stroke; stroke: #f5f5f5; stroke-width: 5px; stroke-linejoin: round; }
.hs-map figcaption { margin-top: 12px; text-align: center; font-family: "Inter", sans-serif; font-size: 13px; color: #7a7d89; }
html.hs-motion .hs-map-city { opacity: 0; transition: opacity 0.6s ease; }
html.hs-motion .hs-in .hs-map-city, html.hs-motion .hs-map-widget.hs-in .hs-map-city { opacity: 1; }
.hs-map-city:nth-of-type(2) { transition-delay: 0.1s; } .hs-map-city:nth-of-type(3) { transition-delay: 0.2s; }
.hs-map-city:nth-of-type(4) { transition-delay: 0.3s; } .hs-map-city:nth-of-type(5) { transition-delay: 0.4s; }
.hs-map-city:nth-of-type(6) { transition-delay: 0.5s; } .hs-map-city:nth-of-type(7) { transition-delay: 0.6s; }
.hs-map-city:nth-of-type(8) { transition-delay: 0.7s; }

.hs-step-num { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: #ddb851; color: #141a46; font-family: "Inter", sans-serif; font-size: 15px; font-weight: 700; }
.hs-step > .elementor-widget-html { flex: 0 0 auto; width: auto; }
.hs-path-step { position: relative; }

/* Editorial pieces: full-width photo breaks, one-sentence statements */
.hs-photo-break { background-size: cover; }
.hs-statement .elementor-heading-title { max-width: 900px; }

/* Sports club logos: same box height as the placeholders next to them */
.hs-club-logo { height: 100% !important; min-height: 100px; }
.hs-club-logo img { max-height: 84px; }

/* Project cases (Pinneberg, Borgfelde): key numbers under the result figure, navy rule on top; white gap between two cases */
.hs-case-next { margin-top: 56px !important; }
@media (max-width: 767px) { .hs-case-next { margin-top: 32px !important; } }
.hs-figures { margin: 20px 0 0; border-top: 2px solid #141a46; font-family: "Inter", sans-serif; }
.hs-figures > div { display: flex; justify-content: space-between; gap: 16px; padding: 16px 0; border-bottom: 1px solid #e7e8ec; }
.hs-figures dt { color: #7a7d89; font-size: 15px; }
.hs-figures dd { margin: 0; color: #141a46; font-size: 17px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }

.hs-case-photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

/* Team photo under the contact details */
.hs-contact-img img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 30%; }
@media (max-width: 767px) { .hs-contact-img img { aspect-ratio: 4 / 3; } }

/* White gap between the book photo band and the video band */
.hs-video-band { margin-top: 56px !important; }
@media (max-width: 767px) { .hs-video-band { margin-top: 32px !important; } }

/* Press clipping in a browser-window mockup: navy title bar with window dots and address bar, slight 3D tilt */
.hs-browser {
	background-color: #1b2354 !important; border-radius: 10px !important; overflow: hidden;
	box-shadow: 0 40px 80px -30px rgba(14, 19, 56, 0.5), 0 0 0 1px rgba(20, 26, 70, 0.08) !important;
	transform: perspective(1400px) rotateY(-9deg) rotateX(2deg); transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.hs-browser:hover { transform: perspective(1400px) rotateY(0) rotateX(0); }
.hs-browser-bar { position: relative; display: flex; align-items: center; gap: 6px; height: 38px; padding: 0 16px; }
.hs-browser-bar i { width: 10px; height: 10px; border-radius: 50%; background: #ff5f57; }
.hs-browser-bar i:nth-child(2) { background: #febc2e; }
.hs-browser-bar i:nth-child(3) { background: #28c840; }
.hs-browser-bar span {
	position: absolute; left: 50%; top: 9px; transform: translateX(-50%); width: 52%; height: 20px; border-radius: 6px;
	background: rgba(255, 255, 255, 0.12); color: #bfc2d6; font: 500 11px/20px "Inter", sans-serif; text-align: center;
}
.hs-browser .hs-press-img img { aspect-ratio: 4 / 3; }
@media (max-width: 767px) { .hs-browser { transform: none; } }
@media (prefers-reduced-motion: reduce) { .hs-browser, .hs-browser:hover { transform: none; transition: none; } }

@media (prefers-reduced-motion: reduce) {
	.hs-header { transition: none; }
}
@media print {
	html.hs-motion .hs-rise, html.hs-motion .hs-lines .hs-wi { opacity: 1 !important; transform: none !important; }
}
