/* v6.35 homepage highlights: bolder type, topography, numbers, image strip,
 * configurator and free dates. Everything is switched in the admin
 * (SCHMITTWERK → Highlights & Preise); empty blocks are never rendered. */

/* ---------- Bolder headlines ---------- */
/* The second line starts quiet and gains strength while it scrolls in
 * (driven by --sw-ink from home-highlights.js). */
.sw-type-bold.sw-motion-v591 .h2 { font-weight: 640; letter-spacing: -.058em; }
.sw-type-bold .sw-h2-soft { opacity: var(--sw-ink, 1); }
.sw-accent { font-style: normal; color: var(--red, #e20816); }
@media (max-width: 760px) {
	.sw-type-bold.sw-motion-v591 .h2 { font-size: clamp(42px, 12.4vw, 66px); letter-spacing: -.05em !important; }
}

/* 7.9.43 no contour lines behind the contact section: plain and calm */

/* ---------- Numbers ---------- */
.sw-stats { padding: clamp(56px, 8vw, 120px) 0; background: #0a0a0b; color: #f4f4f1; overflow: hidden; }
.sw-kicker { margin: 0 0 clamp(26px, 4vw, 48px); font: 700 11px/1.2 var(--mono, ui-monospace, "SFMono-Regular", Menlo, monospace); letter-spacing: .2em; text-transform: uppercase; color: var(--red, #e20816); }
.sw-stats__list { display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; }
.sw-stat { display: grid; gap: 14px; align-content: start; padding: 4px clamp(16px, 2.4vw, 34px) 0; border-left: 1px solid rgba(244, 244, 241, .16); }
.sw-stat:first-child { padding-left: 0; border-left: 0; }
.sw-stat__value { display: flex; align-items: baseline; gap: .04em; font-size: clamp(3.4rem, 7.6vw, 8.4rem); font-weight: 640; line-height: .86; letter-spacing: -.065em; font-variant-numeric: tabular-nums; }
.sw-stat__suffix { color: var(--red, #e20816); }
.sw-stat__label { max-width: 18ch; color: rgba(244, 244, 241, .62); font-size: clamp(.95rem, 1.2vw, 1.1rem); line-height: 1.4; }
@media (max-width: 860px) {
	.sw-stats__list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
	.sw-stat:nth-child(odd) { padding-left: 0; border-left: 0; }
}

/* ---------- Image strip ---------- */
.sw-strip { overflow: hidden; padding: clamp(10px, 1.4vw, 18px) 0; background: #0a0a0b; }
.sw-strip__track { display: flex; gap: clamp(10px, 1.4vw, 18px); width: max-content; padding-left: clamp(16px, 4vw, 56px); will-change: transform; }
.sw-strip__item { flex: 0 0 auto; width: clamp(240px, 34vw, 560px); aspect-ratio: 21 / 9; margin: 0; overflow: hidden; border-radius: clamp(10px, 1.2vw, 18px); background: #1a1a1c; }
.sw-strip__item:nth-child(3n+2) { width: clamp(180px, 22vw, 360px); aspect-ratio: 4 / 3; }
.sw-strip__media { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 760px) {
	.sw-strip__item { width: 72vw; }
	.sw-strip__item:nth-child(3n+2) { width: 46vw; }
}

/* ---------- Configurator ---------- */
.sw-motion-v591 .sw-cfg { background: var(--paper, #f4f4f1); color: var(--ink, #0a0a0b); }
.sw-cfg__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 110px); align-items: start; }
.sw-cfg__head { position: sticky; top: 120px; }
.sw-cfg__head .lead { max-width: 36ch; margin-top: 22px; color: var(--muted, #6c6c67); }
.sw-cfg__panel { display: grid; gap: 26px; padding: clamp(20px, 3vw, 34px); border: 1px solid var(--line, rgba(10, 10, 11, .13)); border-radius: 24px; background: #fff; }
.sw-cfg__group[hidden] { display: none; }
.sw-cfg__label { margin: 0 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted, #6c6c67); }
.sw-cfg__label span { margin-left: 6px; font-weight: 500; letter-spacing: .04em; text-transform: none; }
.sw-cfg__tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.sw-cfg__tab { min-height: 44px; padding: 0 18px; border: 1px solid var(--line, rgba(10, 10, 11, .16)); border-radius: 99px; background: #fff; color: inherit; font: inherit; font-size: .98rem; font-weight: 600; cursor: pointer; transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease, transform 160ms cubic-bezier(.23, 1, .32, 1); }
.sw-cfg__tab[aria-checked="true"] { background: var(--ink, #0a0a0b); border-color: var(--ink, #0a0a0b); color: #fff; }
.sw-cfg__tab:active, .sw-cfg__package:active { transform: scale(.98); }
.sw-cfg__packages { display: grid; gap: 8px; }
.sw-cfg__package { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 14px; align-items: center; width: 100%; padding: 14px 16px; border: 1px solid var(--line, rgba(10, 10, 11, .13)); border-radius: 16px; background: #fff; color: inherit; font: inherit; text-align: left; cursor: pointer; transition: border-color 160ms ease, transform 160ms cubic-bezier(.23, 1, .32, 1); }
.sw-cfg__package::before { content: ""; width: 18px; height: 18px; border: 1.5px solid #b9b9b3; border-radius: 50%; transition: border-color 160ms ease, border-width 160ms ease; }
.sw-cfg__package[aria-checked="true"] { border-color: var(--ink, #0a0a0b); box-shadow: inset 0 0 0 1px var(--ink, #0a0a0b); }
.sw-cfg__package[aria-checked="true"]::before { border: 5.5px solid var(--red, #e20816); }
.sw-cfg__package b { display: block; font-size: 1rem; font-weight: 640; letter-spacing: -.01em; }
.sw-cfg__package small { display: block; margin-top: 3px; color: var(--muted, #6c6c67); font-size: .88rem; line-height: 1.4; }
.sw-cfg__package em { font-style: normal; font-weight: 640; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sw-cfg__tab:focus-visible, .sw-cfg__package:focus-visible, .sw-cfg__extra:focus-within { outline: 2px solid var(--red, #e20816); outline-offset: 3px; }
@media (hover: hover) and (pointer: fine) {
	.sw-cfg__tab:not([aria-checked="true"]):hover, .sw-cfg__package:hover { border-color: rgba(10, 10, 11, .42); }
}
.sw-cfg__extras { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.sw-motion-v591 .sw-cfg__extra { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 10px; align-items: center; margin: 0; padding: 12px 14px; border: 1px solid var(--line, rgba(10, 10, 11, .13)); border-radius: 14px; color: var(--ink, #0a0a0b); font-size: .94rem; font-weight: 500; letter-spacing: normal; text-transform: none; line-height: 1.35; cursor: pointer; }
.sw-cfg__extra input { width: 18px; height: 18px; margin: 0; accent-color: var(--red, #e20816); }
.sw-cfg__extra b { font-weight: 600; font-variant-numeric: tabular-nums; color: var(--muted, #6c6c67); white-space: nowrap; }
.sw-cfg__extra:has(input:checked) { border-color: var(--ink, #0a0a0b); }
.sw-cfg__result { position: sticky; bottom: 12px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 20px; padding: 18px 20px; border-radius: 18px; background: var(--paper, #f4f4f1); }
.sw-cfg__result small { display: block; color: var(--muted, #6c6c67); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.sw-cfg__result strong { display: block; margin: 4px 0 2px; font-size: clamp(1.8rem, 3.2vw, 2.6rem); font-weight: 650; line-height: 1.05; letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.sw-cfg__result [data-sw-cfg-summary] { color: var(--muted, #6c6c67); font-size: .88rem; }
.sw-cfg__note { margin: -8px 0 0; color: var(--muted, #6c6c67); font-size: .82rem; line-height: 1.5; }
@media (max-width: 860px) {
	.sw-cfg__grid { grid-template-columns: 1fr; gap: 28px; }
	.sw-cfg__head { position: static; }
	.sw-cfg__extras { grid-template-columns: 1fr; }
	.sw-cfg__result .btn { width: 100%; justify-content: center; }
}

/* ---------- Free dates ---------- */
.sw-avail { margin: 0 0 clamp(28px, 4vw, 40px); padding: clamp(18px, 2.4vw, 26px); border: 1px solid var(--line, rgba(10, 10, 11, .13)); border-radius: 20px; background: rgba(255, 255, 255, .6); }
.sw-avail__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 18px; margin-bottom: 14px; }
.sw-avail__head h3 { margin: 0; font-size: 1.15rem; font-weight: 650; letter-spacing: -.02em; }
.sw-avail__head p { margin: 0; color: var(--muted, #6c6c67); font-size: .9rem; }
.sw-avail__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.sw-avail__item { display: grid; gap: 4px; padding: 12px 14px; border-radius: 14px; background: #fff; }
.sw-avail__item b { font-size: 1rem; font-weight: 640; }
.sw-avail__item span { display: flex; align-items: center; gap: 7px; font-size: .88rem; color: var(--muted, #6c6c67); }
.sw-avail__item small { color: var(--muted, #6c6c67); font-size: .8rem; }
.sw-avail__item i,
.sw-avail-pill i { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; background: #2fa66a; }
.sw-avail__item.is-few i,
.sw-avail-pill.is-few i { background: #e8a10e; }
.sw-avail__item.is-booked i { background: var(--red, #e20816); }
.sw-avail__item.is-booked b { color: var(--muted, #6c6c67); text-decoration: line-through; text-decoration-thickness: 1px; }
.sw-avail-pill { display: inline-flex; align-items: center; gap: 9px; width: fit-content; margin: 0 0 16px; padding: 8px 14px; border: 1px solid rgba(255, 255, 255, .22); border-radius: 99px; background: rgba(10, 10, 11, .38); color: #fff; font-size: 13px; font-weight: 600; text-decoration: none; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.sw-avail-pill i { box-shadow: 0 0 0 0 rgba(47, 166, 106, .6); animation: sw-pulse 2.4s ease-out infinite; }
.sw-avail-pill.is-few i { box-shadow: 0 0 0 0 rgba(232, 161, 14, .6); }
@keyframes sw-pulse { 70% { box-shadow: 0 0 0 7px rgba(47, 166, 106, 0); } 100% { box-shadow: 0 0 0 0 rgba(47, 166, 106, 0); } }

/* ---------- Dark mode ---------- */
@media (prefers-color-scheme: dark) {
	html:not([data-theme="light"]) .sw-motion-v591 .sw-cfg { background: #000; color: #f4f4f1; }
	html:not([data-theme="light"]) .sw-cfg__panel { background: #0a0a0a; border-color: rgba(255, 255, 255, .12); }
	html:not([data-theme="light"]) .sw-cfg__tab,
	html:not([data-theme="light"]) .sw-cfg__package,
	html:not([data-theme="light"]) .sw-motion-v591 .sw-cfg__extra { background: #000; border-color: rgba(255, 255, 255, .14); color: #f4f4f1; }
	html:not([data-theme="light"]) .sw-cfg__tab[aria-checked="true"] { background: #f4f4f1; border-color: #f4f4f1; color: #0a0a0b; }
	html:not([data-theme="light"]) .sw-cfg__package[aria-checked="true"],
	html:not([data-theme="light"]) .sw-cfg__extra:has(input:checked) { border-color: #f4f4f1; box-shadow: inset 0 0 0 1px #f4f4f1; }
	html:not([data-theme="light"]) .sw-cfg__result { background: #121212; }
	html:not([data-theme="light"]) .sw-avail { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .12); }
	html:not([data-theme="light"]) .sw-avail__item { background: rgba(255, 255, 255, .06); }
}

@media (prefers-reduced-motion: reduce) {
	.sw-avail-pill i { animation: none; }
	.sw-cfg__tab, .sw-cfg__package { transition: none; }
	.sw-type-bold .sw-h2-soft { opacity: 1 !important; }
	.sw-strip__track { transform: none !important; }
}

/* ---------- Project mosaic (v6.38) ---------- */
/* Extra projects: landscape covers span the row, others pair up. The PHP side
 * guarantees an even number of half tiles, so the grid closes as a rectangle. */
.sw-motion-v591 .projectgrid[data-project-layout="extended"] { grid-auto-flow: row; }
.sw-motion-v591 .projectgrid[data-project-layout="extended"] .project.project--extra { grid-column: auto; grid-row: auto; }
.sw-motion-v591 .projectgrid[data-project-layout="extended"] .project.project--full { grid-column: 1 / -1; min-height: clamp(380px, 40vw, 620px); }
.sw-motion-v591 .projectgrid[data-project-layout="extended"] .project.project--half { min-height: clamp(440px, 46vw, 680px); }
@media (max-width: 760px) {
	.sw-motion-v591 .projectgrid[data-project-layout="extended"] .project.project--full,
	.sw-motion-v591 .projectgrid[data-project-layout="extended"] .project.project--half { grid-column: auto; min-height: 520px; }
}

/* ---------- Mobile layer (v6.40) ---------- */
.sw-cfg__btn-short { display: none; }

@media (max-width: 760px) {
	/* Price bar: one compact row instead of a block covering a quarter of the screen. */
	.sw-cfg__result { flex-wrap: nowrap; gap: 12px; padding: 12px 12px 12px 16px; bottom: max(10px, env(safe-area-inset-bottom, 0px)); box-shadow: 0 10px 30px -12px rgba(10, 10, 11, .35); }
	.sw-cfg__result > div { min-width: 0; }
	.sw-cfg__result small { display: none; }
	.sw-cfg__result strong { margin: 0; font-size: 1.32rem; letter-spacing: -.035em; white-space: nowrap; }
	.sw-cfg__result [data-sw-cfg-summary] { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: .78rem; }
	.sw-cfg__result .btn { flex: 0 0 auto; width: auto; min-height: 46px; padding: 0 18px; }
	.sw-cfg__btn-long { display: none; }
	.sw-cfg__btn-short { display: inline; }
	/* Packages: price next to the name, description across the full width. */
	.sw-cfg__package { grid-template-columns: 20px minmax(0, 1fr) auto; grid-template-areas: "dot name price" "dot text text"; row-gap: 4px; padding: 14px; }
	.sw-cfg__package::before { grid-area: dot; align-self: start; margin-top: 2px; }
	.sw-cfg__package > span { display: contents; }
	.sw-cfg__package b { grid-area: name; }
	.sw-cfg__package small { grid-area: text; margin-top: 0; }
	.sw-cfg__package em { grid-area: price; align-self: start; }
	.sw-cfg__panel { padding: 18px; gap: 22px; }
	/* Footer: link groups side by side instead of one long column. */
	.sw-motion-v591 .footer .footgrid { grid-template-columns: 1fr 1fr !important; gap: 28px 20px !important; }
	.sw-motion-v591 .footer .footgrid > :first-child { grid-column: 1 / -1; }
}

/* ---------- Native feel on touch devices ---------- */
html { -webkit-tap-highlight-color: transparent; -webkit-text-size-adjust: 100%; }
a, button, [role="button"], summary, label { touch-action: manipulation; }
.btn, button, [role="button"], .sw-cfg__tab, .sw-cfg__package, .project-tap, .service-row { -webkit-user-select: none; user-select: none; }
/* The menu and sheets follow the visible viewport while the URL bar moves. */
.sw-motion-v591 .mobile { height: 100dvh !important; }
/* Touch screens: no sticky hover states, press feedback instead. */
@media (hover: none) {
	.sw-motion-v591 .btn:hover, .sw-motion-v591 .btn.red:hover, .sw-motion-v591 .btn.line:hover, .sw-motion-v591 .btn.black:hover { transform: none; }
	.sw-motion-v591 .project[role=button]:hover, .sw-motion-v591 .project:hover { transform: none; box-shadow: none; }
	.sw-motion-v591 .project:hover img, .sw-motion-v591 .project:hover > video { transform: none; }
	.sw-motion-v591 .reference-logos-preview div:hover > img { transform: none; }
	.sw-motion-v591 .btn:active, .sw-motion-v591 .sw-cfg__tab:active, .sw-motion-v591 .sw-cfg__package:active { transform: scale(.97); transition: transform 100ms ease-out; }
	.sw-motion-v591 .project:active { transform: scale(.985); transition: transform 140ms ease-out; }
}

/* ---------- Legal popup (v6.40): same language as the other sheets ---------- */
#legalOverlay { background: rgba(8, 8, 9, .62) !important; -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
#legalOverlay .legal-modal { width: min(880px, 100%); height: min(900px, calc(100dvh - 32px)); border-radius: 24px; background: #f6f6f3; box-shadow: 0 40px 120px rgba(0, 0, 0, .35); }
#legalOverlay .modaltop { gap: 14px; padding: 12px 12px 12px 18px; background: #f6f6f3; border-bottom: 1px solid rgba(10, 10, 11, .1); }
#legalOverlay .modaltop .ey { font: 700 11px/1 var(--mono, ui-monospace, "SFMono-Regular", Menlo, monospace); letter-spacing: .16em; color: var(--red, #e20816); }
#legalOverlay .close { flex: 0 0 auto; display: grid; place-items: center; width: 44px; height: 44px; border: 0; background: #0a0a0b; color: #fff; cursor: pointer; transition: transform 120ms ease-out; }
#legalOverlay .close:active { transform: scale(.94); }
#legalOverlay iframe { background: #f6f6f3; }
.sw-legal-tabs { display: flex; gap: 4px; min-width: 0; margin-right: auto; padding: 4px; overflow-x: auto; border-radius: 99px; background: rgba(10, 10, 11, .06); scrollbar-width: none; overscroll-behavior-x: contain; }
.sw-legal-tabs::-webkit-scrollbar { display: none; }
.sw-legal-tabs button { flex: 0 0 auto; min-height: 36px; padding: 0 14px; border: 0; border-radius: 99px; background: transparent; color: #4a4a47; font: 600 13.5px/1 inherit; font-family: inherit; cursor: pointer; touch-action: manipulation; -webkit-user-select: none; user-select: none; transition: background-color 160ms ease, color 160ms ease; }
.sw-legal-tabs button[aria-selected="true"] { background: #fff; color: #0a0a0b; box-shadow: 0 1px 3px rgba(10, 10, 11, .12); }
.sw-legal-tabs + .ey, #legalOverlay .modaltop.has-tabs .ey { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (hover: hover) and (pointer: fine) { .sw-legal-tabs button:not([aria-selected="true"]):hover { color: #0a0a0b; } }
@media (max-width: 760px) {
	#legalOverlay.open { align-items: end; padding: 0 !important; }
	#legalOverlay .legal-modal { width: 100%; height: calc(100dvh - max(12px, env(safe-area-inset-top, 0px))); border-radius: 22px 22px 0 0; }
	#legalOverlay .modaltop { padding: 10px 10px 10px 12px; }
	.sw-legal-tabs button { padding: 0 12px; font-size: 13px; }
}
@media (prefers-color-scheme: dark) {
	html:not([data-theme="light"]) #legalOverlay .legal-modal,
	html:not([data-theme="light"]) #legalOverlay .modaltop,
	html:not([data-theme="light"]) #legalOverlay iframe { background: #0e0e10; }
	html:not([data-theme="light"]) #legalOverlay .modaltop { border-bottom-color: rgba(255, 255, 255, .1); }
	html:not([data-theme="light"]) #legalOverlay .close { background: #f4f4f1; color: #0a0a0b; }
	html:not([data-theme="light"]) .sw-legal-tabs { background: rgba(255, 255, 255, .08); }
	html:not([data-theme="light"]) .sw-legal-tabs button { color: #b9b9b3; }
	html:not([data-theme="light"]) .sw-legal-tabs button[aria-selected="true"] { background: #2a2a2e; color: #fff; box-shadow: none; }
}

/* ---------- Service area line (v6.41) ---------- */

/* ---------- Price calculator on phones (v6.41) ---------- */
/* Phones skip the calculator: the contact form and the service sheets cover the same need with less scrolling. */
@media (max-width: 760px) {
	.sw-motion-v591 #konfigurator,
	.sw-motion-v591 #swNavMobilePreise { display: none !important; }
}

/* v6.43 footer: AGB as its own legal column, evenly spaced. */
@media (min-width: 981px) {
	.footer .footer-bottom-grid.has-agb { grid-template-columns: minmax(260px, 1.35fr) repeat(4, minmax(110px, .5fr)) !important; }
}

/* v6.44.2 mobile menu button: lines and the close cross exactly centred in the circle. */
.sw-motion-v591 #menuBtn { padding: 0 !important; }
.sw-motion-v591 #menuBtn span,
.sw-motion-v591 #menuBtn::before,
.sw-motion-v591 #menuBtn::after { left: 50% !important; top: 50% !important; right: auto !important; bottom: auto !important; width: 16px !important; height: 1.5px !important; margin: 0 !important; border-radius: 2px; transform-origin: center !important; }
.sw-motion-v591 #menuBtn span { transform: translate(-50%, -50%) !important; }
.sw-motion-v591 #menuBtn::before { transform: translate(-50%, calc(-50% - 5px)) !important; }
.sw-motion-v591 #menuBtn::after { transform: translate(-50%, calc(-50% + 5px)) !important; }
.sw-motion-v591 #menuBtn[aria-expanded="true"] span { opacity: 0 !important; }
.sw-motion-v591 #menuBtn[aria-expanded="true"]::before { transform: translate(-50%, -50%) rotate(45deg) !important; }
.sw-motion-v591 #menuBtn[aria-expanded="true"]::after { transform: translate(-50%, -50%) rotate(-45deg) !important; }

/* v6.45.4 image strip: swipeable on touch screens and with reduced motion, so every image can be seen. */
@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
	.sw-strip { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.sw-strip::-webkit-scrollbar { display: none; }
	.sw-strip__track { transform: none !important; padding-right: clamp(16px, 4vw, 56px); }
	.sw-strip__item { scroll-snap-align: center; }
}

/* v6.46 "Einmal live" on phones: the picture stays free, the text sits below it. */
@media (max-width: 760px) {
	.sw-motion-v591 .cinematic .cin-card { min-height: 0 !important; height: auto !important; display: flex; flex-direction: column; background: #0a0a0b; }
	.sw-motion-v591 .cinematic .cin-card::after { display: none !important; }
	.sw-motion-v591 .cinematic .cin-card > img, .sw-motion-v591 .cinematic .cin-card > video { position: relative !important; inset: auto !important; width: 100% !important; height: auto !important; aspect-ratio: 4 / 5; object-fit: cover; }
	.sw-motion-v591 .cinematic .cin-content { position: relative !important; inset: auto !important; width: auto !important; padding: 24px 22px 26px; color: #f4f4f1; gap: 18px; }
}

/* v6.46.2 services on phones: the background picture stays on screen while the list scrolls,
   so every service (also Live & Events at the end) shows its image full size. */
@media (max-width: 980px) {
	.sw-motion-v591 section.services { overflow: clip !important; overflow-x: clip !important; }
	.sw-motion-v591 section.services .service-media { overflow: clip !important; top: 0 !important; bottom: 0 !important; height: auto !important; min-height: 100% !important; }
	.sw-motion-v591 .services .service-media .service-media-sticky { position: sticky !important; top: 0 !important; height: 100svh !important; transform: none !important; }
}

/* 6.86 note under the packages (e.g. hosting & care) */
.sw-cfg__svc-note{margin:12px 0 0;padding:10px 14px;border-radius:12px;background:rgba(215,25,32,.06);color:#3d3d39;font-size:14px;line-height:1.5}
.sw-cfg__svc-note[hidden]{display:none}

/* 6.90 recommended package */
.sw-cfg__tag{display:inline-block;margin:0 0 0 8px;position:relative;top:-1px;padding:2px 8px;border-radius:999px;background:#d71920;color:#fff;font-style:normal;font-size:11px;font-weight:700;letter-spacing:.04em;vertical-align:middle}

/* ---------- 7.5 Free dates as an own section ---------- */
.sw-dates { padding: clamp(70px, 9vw, 130px) 0 clamp(40px, 5vw, 70px); background: #0b0b0c; color: #f4f4f1; }
.sw-dates__head { display: grid; gap: 10px; max-width: 760px; margin-bottom: clamp(26px, 3.4vw, 44px); }
.sw-dates__kicker { font-size: 12px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #ff3b45; }
.sw-dates__head h2 { margin: 0; font-size: clamp(38px, 6vw, 76px); line-height: .98; letter-spacing: -.05em; font-weight: 700; }
.sw-dates__head p { margin: 0; max-width: 560px; color: rgba(244, 244, 241, .66); font-size: clamp(15px, 1.3vw, 17px); }
.sw-dates__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.sw-dates__item > a, .sw-dates__item.is-booked { display: flex; flex-direction: column; gap: 10px; height: 100%; box-sizing: border-box; padding: 22px 20px 20px; border-radius: 22px; border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .04); color: inherit; text-decoration: none; transition: transform .25s cubic-bezier(.2, .8, .2, 1), border-color .25s, background .25s; }
.sw-dates__item > a:hover, .sw-dates__item > a:focus-visible { transform: translateY(-4px); border-color: rgba(255, 255, 255, .4); background: rgba(255, 255, 255, .08); outline: none; }
.sw-dates__month { font-size: 15px; font-weight: 650; letter-spacing: -.01em; }
.sw-dates__big { display: flex; align-items: baseline; gap: 8px; margin: 6px 0 2px; font-size: clamp(44px, 5vw, 64px); line-height: 1; font-weight: 700; letter-spacing: -.05em; }
.sw-dates__big small { font-size: 15px; font-weight: 500; letter-spacing: 0; color: rgba(244, 244, 241, .6); }
.sw-dates__state { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: rgba(244, 244, 241, .78); }
.sw-dates__state i { flex: 0 0 auto; width: 9px; height: 9px; border-radius: 50%; background: #2fa66a; box-shadow: 0 0 0 0 rgba(47, 166, 106, .6); animation: sw-pulse 2.4s ease-out infinite; }
.sw-dates__item.is-few .sw-dates__state i { background: #f0a91a; box-shadow: 0 0 0 0 rgba(240, 169, 26, .6); }
.sw-dates__item.is-few > a { border-color: rgba(240, 169, 26, .45); }
.sw-dates__item.is-booked { opacity: .5; }
.sw-dates__item.is-booked .sw-dates__state i { background: #e20816; animation: none; }
.sw-dates__note { font-size: 12.5px; color: rgba(244, 244, 241, .55); }
.sw-dates__cta { margin-top: auto; padding-top: 8px; font-size: 13px; font-weight: 650; color: #fff; opacity: .55; transition: opacity .25s; }
.sw-dates__item > a:hover .sw-dates__cta { opacity: 1; }
@media (max-width: 560px) { .sw-dates__list { grid-template-columns: 1fr 1fr; } .sw-dates__item > a, .sw-dates__item.is-booked { padding: 18px 16px; border-radius: 18px; } }
@media (prefers-reduced-motion: reduce) { .sw-dates__state i { animation: none; } .sw-dates__item > a { transition: none; } }

/* 7.9.42 budget taken from the project configurator: shown, not changeable */
select[data-locked]{pointer-events:none;cursor:default;opacity:.9}
.sw-budget-note{display:block;margin-top:6px;font-size:12px;opacity:.65}
/* 7.9.82 the headline always fits its column ("zusammen." was cut off): size follows the column width */
.sw-cfg__head { container-type: inline-size; }
.sw-cfg__head .h2, .sw-motion-v591 .sw-cfg__head .h2 { font-size: min(6.3rem, 19cqi) !important; }

