/* Kitanelle static snapshot: additions on top of the captured Wix CSS.
   Licensed fonts are aliased to free lookalikes under the same family names,
   so the captured CSS keeps working. To use the real fonts later, replace the
   src URLs below with licensed files.
   The lookalikes' vertical metrics (ascent/descent, line gap 0) are baked into the font files with
   tools/fonts.py, because Safari ignores ascent-override/descent-override and would lay text out
   differently from Chrome otherwise. */

@font-face { font-family: 'brandon-grot-w01-light'; src: url('/assets/fonts/LeagueSpartan-Light-brandon.woff2') format('woff2'); font-weight: 400; font-display: swap; size-adjust: 98.3%; }
@font-face { font-family: 'brandon-grot-w05-light'; src: url('/assets/fonts/LeagueSpartan-Light-brandon-w05.woff2') format('woff2'); font-weight: 400; font-display: swap; size-adjust: 76.5%; }
@font-face { font-family: 'futura-lt-w01-light';    src: url('/assets/fonts/Jost-Light-futura.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'futura-lt-w01-book';     src: url('/assets/fonts/Jost-Light-futura-book.woff2') format('woff2'); font-weight: 400; font-display: swap; size-adjust: 105.5%; }

/* Parallax backgrounds (Wix used a scroll-driven ViewTimeline; keyframes captured in data-parallax) */
@keyframes kn-parallax { from { transform: translateY(20svh); } to { transform: translateY(calc(-20% + 40lvh)); } }
@supports (animation-timeline: view()) {
  [data-parallax] { animation: kn-parallax linear both; animation-timeline: --kn-parallax; animation-range: cover; }
  [data-parallax-section] { view-timeline: --kn-parallax block; }
}

/* Entrance animation for elements Wix animated on scroll */
[data-motion-enter].kn-hidden { opacity: 0; transform: translateY(24px); }
[data-motion-enter] { transition: opacity .9s ease-out, transform .9s ease-out; }

/* Language dropdown: open state (Wix toggled this with JS) */
[data-testid="languages-dropdown-handle"][aria-expanded="true"] + [role="menu"] { display: flex !important; visibility: visible !important; opacity: 1 !important; }
[data-testid="languages-dropdown-handle"][aria-expanded="true"] .YvJYK8 svg { transform: rotate(180deg); }
[role="menu"] [role="menuitem"] { cursor: pointer; }

/* Mobile menu open state, mirrors the classes Wix adds */
.kn-menu-open { overflow: hidden; }

/* Other licensed families referenced by the captured CSS: use the system font where present, else the free lookalike */
@font-face { font-family: 'helvetica-w01-light'; src: local('Helvetica Neue Light'), local('HelveticaNeue-Light'), local('Helvetica Light'), local('Arial'); font-weight: 400; }
@font-face { font-family: 'helvetica-w01-roman'; src: local('Helvetica Neue'), local('HelveticaNeue'), local('Helvetica'), local('Arial'); font-weight: 400; }
@font-face { font-family: 'avenir-lt-w01_35-light1475496'; src: local('Avenir Light'), local('Avenir-Light'), url('/assets/fonts/Jost-Light.woff2') format('woff2'); font-weight: 400; }
@font-face { font-family: 'din-next-w01-light'; src: local('DIN Next LT Pro Light'), url('/assets/fonts/Jost-Light-din.woff2') format('woff2'); font-weight: 400; size-adjust: 98.3%; }

/* --- Improvement over Wix: compact sticky mobile header (logo + name + burger in one 72px bar; tagline moves into the menu) --- */
body.device-mobile-optimized #SITE_HEADER, body.device-mobile-optimized #SITE_HEADER > .XgJ1FR,
body.device-mobile-optimized #SITE_HEADER [data-mesh-id="SITE_HEADERinlineContent-gridContainer"],
body.device-mobile-optimized #comp-jx09038y, body.device-mobile-optimized #comp-jx090j3a { height: 72px !important; min-height: 0 !important; }
body.device-mobile-optimized #comp-kg9ezjlu, body.device-mobile-optimized #comp-lvgy51yy,
body.device-mobile-optimized #comp-jx09ff31, body.device-mobile-optimized #comp-jx09hm6t { display: none !important; }
.kn-mbar { position: fixed; top: 0; left: 0; right: 0; height: 72px; z-index: 100000; background: #fff; box-shadow: 0 1px 0 rgba(0, 0, 0, .06); display: flex; align-items: center; padding: 0 10px 0 16px; gap: 12px; box-sizing: border-box; }
.kn-mbar a { text-decoration: none; color: inherit; }
.kn-mbar img { height: 44px; width: auto; display: block; }
.kn-mbar .kn-mtitle { font-family: brandon-grot-w01-light, sans-serif; line-height: 1.15; color: #1a1a1a; }
.kn-mbar .kn-mtitle small { display: block; font-size: 12px; letter-spacing: .02em; }
.kn-mbar .kn-mtitle strong { display: block; font-size: 19px; font-weight: 400; }
.kn-mbar #MENU_AS_CONTAINER_TOGGLE { position: static !important; margin: 0 0 0 auto !important; width: 56px !important; height: 56px !important; display: flex !important; align-items: center; justify-content: center; }
.kn-mbar #MENU_AS_CONTAINER_TOGGLE.d0L2ow { position: static !important; }
body.kn-menu-open #inlineContentParent-MENU_AS_CONTAINER { padding-top: 72px; }
.kn-mtagline { padding: 28px 24px 40px; text-align: center; font-family: brandon-grot-w01-light, sans-serif; font-size: 13px; line-height: 1.5; color: #666; }

/* Desktop menu: measured by cap height, the labels sit ~1px above the pill's centre (Chromium and WebKit alike); move them down 1px */
body:not(.device-mobile-optimized) #comp-jx096exq .qMvpu5 { transform: translateY(1px); }

/* --- Bilingual header (markup from tools/polish.mjs): "Deutsch · Français" pair instead of the Wix dropdown, tagline in both languages --- */
#comp-m268jj8m > .kn-hidden { display: none !important; }
body:not(.device-mobile-optimized) #comp-m268jj8m { width: auto !important; }
.kn-lang { height: 43px; display: flex; align-items: center; gap: 10px; margin-left: -12px; font-family: var(--kn-sans); font-size: 15px; letter-spacing: .02em; white-space: nowrap; }
@media (max-width: 1239px) { .kn-lang { margin-left: -22px; gap: 8px; letter-spacing: 0; font-size: 14px; } } /* header is zoomed to 0.88 here; keep the pair inside the canvas */
.kn-lang a { color: var(--kn-ink); text-decoration: none; padding: 5px 0 2px; /* text 1px down, like the menu labels */ border-bottom: 2px solid transparent; transition: color .3s; }
.kn-lang a:hover { color: rgb(195, 75, 19); }
.kn-lang a[aria-current] { color: rgb(195, 75, 19); border-bottom-color: var(--kn-accent); }
.kn-lang .kn-sep, .kn-tagline .kn-sep, .kn-mtagline .kn-sep { color: var(--kn-accent); }
.kn-tagline .kn-sep, .kn-mtagline .kn-sep { margin: 0 .35em; }
.kn-tagline .kn-other, .kn-mtagline .kn-other { color: inherit; } /* Lydia: all black, the accent looked like an active tab */
body:not(.device-mobile-optimized) #comp-kg9ezjlu { width: 800px !important; }
body:not(.device-mobile-optimized) .kn-tagline { white-space: nowrap; }
body:not(.device-mobile-optimized) .kn-tagline span { font-size: 15px !important; }
/* phone: the pair sits in the sticky bar (site.js); Wix's language select in the menu is redundant */
body.device-mobile-optimized #comp-m268jj8m { display: none !important; }
.kn-mbar .kn-lang-m { margin-left: auto; display: flex; gap: 6px; font-family: var(--kn-sans); font-size: 14px; letter-spacing: .04em; }
.kn-mbar .kn-lang-m a { color: #1a1a1a; text-decoration: none; padding: 3px 0 2px; border-bottom: 2px solid transparent; }
.kn-mbar .kn-lang-m a[aria-current] { color: rgb(195, 75, 19); border-bottom-color: var(--kn-accent); }
.kn-mbar .kn-lang-m + #MENU_AS_CONTAINER_TOGGLE { margin-left: 4px !important; }

/* Logo block: explicit line heights (with line-height: normal Safari and Chrome place the two name lines differently), both lines on the ladybird's axis */
body:not(.device-mobile-optimized) #comp-jx09ff31 { margin-top: 8px !important; }
body:not(.device-mobile-optimized) #comp-jx09ff31 p { line-height: 20px !important; }
body:not(.device-mobile-optimized) #comp-jx09hm6t { margin-top: 2px !important; left: 0 !important; width: 195px !important; }
body:not(.device-mobile-optimized) #comp-jx09hm6t p { line-height: 26px !important; }
body:not(.device-mobile-optimized) #SITE_HEADER #comp-m42lo28f { margin-bottom: 62px !important; } /* keeps the header height */

/* Keyboard focus ring (Wix applied this from its runtime) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline: none; box-shadow: #fff 0 0 0 2px, #116dff 0 0 0 4px; }

/* While the gallery lightbox is open (markup + styles come from assets/css/wix-imagezoom.css) */
html.kn-lightbox-open { overflow: hidden; }

/* --- Improvement over Wix: on wide screens, limit content to the header's width (1063px) and centre header + content --- */
@media (min-width: 1240px) {
  .kn-content-strip, .kn-content-line { max-width: 1063px !important; width: 1063px !important; margin-left: auto !important; margin-right: auto !important; }
  /* The header is laid out on Wix's 980px grid with the logo overhanging 94px to the left, so its visual centre sits 52px left of the page centre.
     Shift the nav/language grid and the logo block by 52px so the header shares the content's axis. (IDs are this site's header components.) */
  #SITE_HEADER [data-mesh-id="comp-jx090j3ainlineContent-gridContainer"] { width: calc(100% - 104px) !important; margin-left: 104px !important; grid-template-columns: 100% !important; }
  #SITE_HEADER #comp-m42lo28f { transform: translateX(52px); }
  /* Alltag: photos are sized for the wide layout; clip them to their columns */
  #comp-mp2yz679 .wixui-column-strip__column, #comp-mp2yz67e .wixui-column-strip__column { overflow: hidden; }
}
/* Narrow desktops and tablets (below 1240px): Wix's header is 1063px wide on a 980px grid, so the logo was cut off at the left.
   Scale the header content down and shift it so it fits with a 16px margin. Below 980px the whole canvas is scaled (next rule), so the header still sees 980px. */
@media (max-width: 1239px) {
  body:not(.device-mobile-optimized) #SITE_HEADER [data-mesh-id="SITE_HEADERinlineContent-gridContainer"] { zoom: 0.88; width: calc(100% - 91px) !important; margin-left: 91px !important; grid-template-columns: 100% !important; }
  /* the logo block (ladybird + name) keeps its full size: counter-zoom it and move it right so it is not cut off at 980px */
  body:not(.device-mobile-optimized) #SITE_HEADER #comp-m42lo28f { zoom: 1.13636; margin-top: 33px !important; left: -46px !important; }
}
/* Windows narrower than the 980px canvas (iPad portrait, phones in landscape, small desktop windows; 768-979px): scale the whole canvas to the window,
   which is what Wix does on tablets. --kn-fit = window width / 980, set by the inline script in every page's <head>. Below 768px the mobile layout (/m/) takes over. */
@media (max-width: 979px) {
  body:not(.device-mobile-optimized) #SITE_CONTAINER { zoom: var(--kn-fit, 1); }
}

/* ===================== Design polish (consistency pass, 2026-09-20) ===================== */
:root { --kn-serif: 'cormorantgaramond-semibold', 'cormorant garamond', Georgia, serif; --kn-sans: 'brandon-grot-w01-light', sans-serif; --kn-ink: #0c0c0c; --kn-accent: #c98b73; --kn-link: #9a5b40; --kn-green: #3f7652; --kn-grey: #fafafa; --kn-rule: #dcd5d0; }

/* Typography scale (desktop) */
#PAGES_CONTAINER h1, #PAGES_CONTAINER h1 *, .kn-title-band h1 { font-family: var(--kn-serif) !important; font-size: 58px !important; line-height: 1.2 !important; font-weight: 400 !important; color: var(--kn-ink) !important; letter-spacing: 0 !important; }
#PAGES_CONTAINER h2.kn-h2, #PAGES_CONTAINER h2.kn-h2 *, .kn-band-h2 h2, .kn-contact-extra h2 { font-family: var(--kn-serif) !important; font-size: 44px !important; line-height: 1.2 !important; font-weight: 400 !important; color: var(--kn-ink) !important; letter-spacing: 0 !important; }
#PAGES_CONTAINER h3.kn-h3, #PAGES_CONTAINER h3.kn-h3 * { font-family: var(--kn-serif) !important; font-size: 26px !important; line-height: 1.25 !important; font-weight: 600 !important; color: var(--kn-ink) !important; letter-spacing: 0 !important; }
#PAGES_CONTAINER p, #PAGES_CONTAINER li, #PAGES_CONTAINER p *, #PAGES_CONTAINER li * { font-family: var(--kn-sans) !important; font-size: 18px !important; line-height: 1.6 !important; color: var(--kn-ink) !important; text-align: left !important; }
#PAGES_CONTAINER p strong, #PAGES_CONTAINER p b, #PAGES_CONTAINER li strong { font-weight: 700 !important; }
#PAGES_CONTAINER p.kn-lead, #PAGES_CONTAINER p.kn-lead * { font-size: 21px !important; line-height: 1.5 !important; }
/* short blocks that should stay centred */
#comp-k5126mu1 p, #comp-k5126mu1 p *, #PAGES_CONTAINER .kn-contact-extra p, #PAGES_CONTAINER .kn-contact-extra p *, #PAGES_CONTAINER .kn-contact-extra h2, #comp-lvggmuz7 p, #comp-lvggmuz7 p * { text-align: center !important; }
#comp-jxe9ahjc p, #comp-jxe9ahjc p *, #comp-jxe9ahjc h3 { text-align: left !important; }
/* hero keeps its own sizes (home) */
#comp-jx0apbn5 h1, #comp-jx0apbn5 h1 * { font-size: 52px !important; }
#comp-lt8r16nw p, #comp-lt8r16nw p * { text-align: center !important; }
/* hero card text and the "Coccinelle auf einen Blick" card stay centred as designed */
#comp-mp2gve057 h2, #comp-mp2gve057 h2 * { text-align: center !important; }
/* team names and the Alltag schedule heading centred */
#PAGES_CONTAINER h3.kn-h3, #PAGES_CONTAINER h3.kn-h3 *, #comp-mp2z1f2u h2, #comp-mp2z1f2u h2 * { text-align: center !important; }

/* Title bands: one look everywhere */
.kn-title-band { background: var(--kn-grey); text-align: center; padding: 56px 24px 48px; }
.kn-title-band h1, .kn-title-band h2 { margin: 0; }
.kn-title-band h1::after, .kn-title-band h2::after { content: ''; display: block; width: 72px; height: 2px; background: var(--kn-accent); margin: 18px auto 0; }
#PAGES_CONTAINER .kn-title-band .kn-subtitle, #PAGES_CONTAINER .kn-title-band .kn-subtitle * { font-family: var(--kn-sans) !important; font-size: 18px !important; color: #444 !important; margin: 16px 0 0; text-align: center !important; }
.kn-band-h2 { margin-top: 40px; }
/* Wix heading underlines and page-wide rules are replaced by the band underline and the footer border */
#PAGES_CONTAINER .wixui-horizontal-line:not(#comp-jx0aroqg) { display: none !important; }

/* Links */
#PAGES_CONTAINER p a, #PAGES_CONTAINER li a, .kn-footer a, .kn-contact-extra a { color: var(--kn-link) !important; text-decoration: underline !important; text-underline-offset: 3px; text-decoration-thickness: 1px; }
#PAGES_CONTAINER p a:hover, .kn-footer a:hover { color: var(--kn-ink) !important; }
#PAGES_CONTAINER a.kn-btn, a.kn-btn { display: inline-block; background: var(--kn-green); color: #fff !important; text-decoration: none !important; border-radius: 50px; padding: 12px 28px; font-family: var(--kn-sans); font-size: 16px; letter-spacing: .1em; }
#PAGES_CONTAINER a.kn-btn:hover, a.kn-btn:hover { background: #33613f; color: #fff !important; }

/* Photos: one treatment, no polaroid frames */
#PAGES_CONTAINER [id^="comp-"] > div.v9ZE1l, #PAGES_CONTAINER .hhxEkR > div { border: 0 !important; box-shadow: none !important; background: transparent !important; }

/* Dead space: sections with fixed grid rows take their content height */

/* Anmeldung: the site's own form (markup from tools/polish.mjs, submit logic in site.js) */
#PAGES_CONTAINER .kn-form { width: 100%; max-width: 760px; box-sizing: border-box; justify-self: center; margin: 0 auto; padding: 8px 16px 32px; font-family: var(--kn-sans); color: var(--kn-ink); }
#PAGES_CONTAINER .kn-form fieldset { border: 0; padding: 0; margin: 0 0 28px; min-width: 0; }
#PAGES_CONTAINER .kn-form legend { font-family: var(--kn-serif); font-size: 26px; font-weight: 600; padding: 0; margin: 0 0 14px; }
#PAGES_CONTAINER .kn-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; }
#PAGES_CONTAINER .kn-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
#PAGES_CONTAINER .kn-field.kn-wide { grid-column: 1 / -1; }
#PAGES_CONTAINER .kn-field label { font-size: 15px; line-height: 1.35; color: #333; }
#PAGES_CONTAINER .kn-field small { font-size: 13px; color: #666; }
#PAGES_CONTAINER .kn-req { color: var(--kn-link); }
#PAGES_CONTAINER .kn-form input, #PAGES_CONTAINER .kn-form select, #PAGES_CONTAINER .kn-form textarea { font: 17px/1.4 var(--kn-sans); color: var(--kn-ink); background: #fff; border: 1px solid var(--kn-rule); border-radius: 4px; padding: 10px 12px; width: 100%; box-sizing: border-box; -webkit-appearance: none; appearance: none; }
#PAGES_CONTAINER .kn-form select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23555' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 32px; }
#PAGES_CONTAINER .kn-form textarea { resize: vertical; min-height: 140px; }
#PAGES_CONTAINER .kn-form input:focus, #PAGES_CONTAINER .kn-form select:focus, #PAGES_CONTAINER .kn-form textarea:focus { outline: none; border-color: var(--kn-accent); box-shadow: 0 0 0 3px rgba(201, 139, 115, .25); }
#PAGES_CONTAINER .kn-form .kn-invalid input, #PAGES_CONTAINER .kn-form .kn-invalid select, #PAGES_CONTAINER .kn-form .kn-invalid textarea { border-color: #b3352b; }
#PAGES_CONTAINER .kn-form .kn-invalid label { color: #b3352b; }
#PAGES_CONTAINER .kn-form-note { font-size: 14px !important; line-height: 1.5 !important; color: #555 !important; margin: 0 0 20px; }
#PAGES_CONTAINER .kn-form-actions { text-align: center !important; margin: 8px 0 0; }
#PAGES_CONTAINER .kn-form button.kn-btn { display: inline-block; border: 0; cursor: pointer; background: var(--kn-green); color: #fff !important; border-radius: 50px; font-family: var(--kn-sans); font-size: 17px !important; font-weight: 500; letter-spacing: .1em; text-align: center !important; line-height: 1.2; padding: 16px 44px; box-shadow: 0 2px 6px rgba(0, 0, 0, .15); transition: background .15s, transform .15s; }
#PAGES_CONTAINER .kn-form button.kn-btn:hover { background: #33613f; transform: translateY(-1px); }
#PAGES_CONTAINER .kn-form button.kn-btn[disabled] { opacity: .6; cursor: default; transform: none; }
body.device-mobile-optimized #PAGES_CONTAINER .kn-form button.kn-btn { width: 100%; padding: 16px 20px; }
#PAGES_CONTAINER .kn-form-msg { text-align: center !important; margin: 16px 0 0; font-size: 17px !important; }
#PAGES_CONTAINER .kn-form-msg.kn-error { color: #b3352b !important; }
#PAGES_CONTAINER .kn-form-msg.kn-success { font-size: 19px !important; padding: 24px; background: var(--kn-grey); }
#PAGES_CONTAINER .kn-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
/* phone: the Wix form component is a 280px column; let the form use the whole width, one column of fields */
body.device-mobile-optimized #PAGES_CONTAINER #comp-lvffuhi0 { width: 100% !important; left: 0 !important; margin-left: 0 !important; }
body.device-mobile-optimized #PAGES_CONTAINER #comp-lvffuhi0 [data-mesh-id$="inlineContent"], body.device-mobile-optimized #PAGES_CONTAINER #comp-lvffuhi0 [data-mesh-id$="gridContainer"] { width: 100% !important; grid-template-columns: 100% !important; }
body.device-mobile-optimized #PAGES_CONTAINER #comp-lvffuhi0 .kn-form { width: 100% !important; max-width: none; }
body.device-mobile-optimized #PAGES_CONTAINER .kn-form { padding: 8px 16px 24px; }
body.device-mobile-optimized #PAGES_CONTAINER .kn-fields { grid-template-columns: 1fr; }
body.device-mobile-optimized #PAGES_CONTAINER .kn-form legend { font-size: 22px; }

/* Kontakt extras */
.kn-contact-extra { padding: 8px 24px 32px; text-align: center; }
.kn-contact-extra h2 { margin: 32px 0 12px; }
.kn-contact-extra p { margin: 0 0 16px; }

/* Footer */
#SITE_FOOTER .kn-hidden { display: none !important; }
.kn-footer { background: var(--kn-grey); border-top: 1px solid var(--kn-rule); padding: 56px 24px 32px; font-family: var(--kn-sans); color: var(--kn-ink); }
.kn-footer-inner { max-width: 1063px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.kn-footer h2 { font-family: var(--kn-serif); font-size: 26px; font-weight: 600; margin: 0 0 12px; }
.kn-footer p { font-size: 17px; line-height: 1.7; margin: 0 0 10px; }
.kn-footer .kn-copyright { max-width: 1063px; margin: 40px auto 0; font-size: 14px; color: #666; }

/* Mobile scale */
body.device-mobile-optimized #PAGES_CONTAINER h1, body.device-mobile-optimized #PAGES_CONTAINER h1 *, body.device-mobile-optimized .kn-title-band h1 { font-size: 36px !important; }
body.device-mobile-optimized #PAGES_CONTAINER h2.kn-h2, body.device-mobile-optimized #PAGES_CONTAINER h2.kn-h2 *, body.device-mobile-optimized .kn-band-h2 h2, body.device-mobile-optimized .kn-contact-extra h2 { font-size: 30px !important; }
body.device-mobile-optimized #PAGES_CONTAINER h3.kn-h3, body.device-mobile-optimized #PAGES_CONTAINER h3.kn-h3 * { font-size: 22px !important; }
body.device-mobile-optimized #PAGES_CONTAINER p, body.device-mobile-optimized #PAGES_CONTAINER li, body.device-mobile-optimized #PAGES_CONTAINER p *, body.device-mobile-optimized #PAGES_CONTAINER li * { font-size: 17px !important; line-height: 1.6 !important; }
body.device-mobile-optimized #PAGES_CONTAINER p.kn-lead, body.device-mobile-optimized #PAGES_CONTAINER p.kn-lead * { font-size: 19px !important; }
body.device-mobile-optimized #comp-jx0apbn5 h1, body.device-mobile-optimized #comp-jx0apbn5 h1 * { font-size: 32px !important; }
body.device-mobile-optimized .kn-title-band { padding: 36px 20px 32px; }
body.device-mobile-optimized #PAGES_CONTAINER .kn-title-band .kn-subtitle, body.device-mobile-optimized #PAGES_CONTAINER .kn-title-band .kn-subtitle * { font-size: 16px !important; }
body.device-mobile-optimized .kn-footer { padding: 40px 20px 24px; }
body.device-mobile-optimized .kn-footer-inner { grid-template-columns: 1fr; gap: 24px; }
body.device-mobile-optimized .kn-footer h2 { font-size: 22px; }

/* Alltag: daily schedule table */
#PAGES_CONTAINER .kn-schedule { max-width: 1063px; margin: 0 auto !important; padding: 16px 24px 48px; box-sizing: border-box; }
#PAGES_CONTAINER #comp-mp2z1f0u { padding-top: 8px; }
#PAGES_CONTAINER .kn-schedule h2 { text-align: center !important; margin: 0 0 28px; }
#PAGES_CONTAINER .kn-schedule-all { display: flex; gap: 20px; justify-content: center; align-items: baseline; max-width: 780px; margin: 0 auto 32px; padding: 16px 28px; background: var(--kn-grey); border-radius: 999px; font-family: var(--kn-sans) !important; font-size: 18px !important; line-height: 1.5 !important; text-align: center !important; }
#PAGES_CONTAINER .kn-schedule-all .t { font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 700; }
#PAGES_CONTAINER .kn-schedule-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: start; }
#PAGES_CONTAINER .kn-schedule-cols > div { background: var(--kn-grey); padding: 28px 32px 16px; }
#PAGES_CONTAINER .kn-schedule h3 { text-align: center !important; margin: 0 0 18px; }
#PAGES_CONTAINER .kn-schedule dl { margin: 0; }
#PAGES_CONTAINER .kn-schedule .row { display: grid; grid-template-columns: 118px 1fr; gap: 16px; padding: 10px 0; border-top: 1px solid #e7e1dc; font-family: var(--kn-sans); font-size: 17px; line-height: 1.5; color: var(--kn-ink); }
#PAGES_CONTAINER .kn-schedule .row:first-child { border-top: 0; }
#PAGES_CONTAINER .kn-schedule dt { font-variant-numeric: tabular-nums; white-space: nowrap; color: #555; }
#PAGES_CONTAINER .kn-schedule dd { margin: 0; }
body.device-mobile-optimized #PAGES_CONTAINER .kn-schedule { padding: 8px 16px 32px; }
body.device-mobile-optimized #PAGES_CONTAINER .kn-schedule-all { flex-direction: column; gap: 4px; border-radius: 16px; font-size: 16px !important; }
body.device-mobile-optimized #PAGES_CONTAINER .kn-schedule-cols { grid-template-columns: 1fr; gap: 20px; }
body.device-mobile-optimized #PAGES_CONTAINER .kn-schedule-cols > div { padding: 20px 18px 10px; }
body.device-mobile-optimized #PAGES_CONTAINER .kn-schedule .row { grid-template-columns: 104px 1fr; gap: 12px; font-size: 16px; }

/* ===== Whitespace: sections take their content height; one rhythm between sections =====
   Marker classes set by tools/polish.mjs:
     .kn-keep        section keeps Wix's fixed rows on desktop (deliberate overlaps: hero, home card, Élysée, Elterninitiative)
     .kn-keep-mobile section keeps them on phones too (only the hero; Wix stacks everything else)
   The desktop rules are scoped to body:not(.device-mobile-optimized) so the two regimes never overlap. */
:root { --kn-section-pad: 32px; --kn-row-gap: 32px; }
body.device-mobile-optimized { --kn-section-pad: 24px; --kn-row-gap: 24px; }
#PAGES_CONTAINER section.kn-spacer { display: none; }

/* --- Desktop --- */
body:not(.device-mobile-optimized) #PAGES_CONTAINER section.wixui-section:not(.kn-keep) { padding: var(--kn-section-pad) 0 !important; min-height: 0 !important; }
body:not(.device-mobile-optimized) #PAGES_CONTAINER section.wixui-section:not(.kn-keep) [data-mesh-id$="gridContainer"] { grid-template-rows: auto !important; min-height: 0 !important; }
body:not(.device-mobile-optimized) #PAGES_CONTAINER section.wixui-section:not(.kn-keep) [data-mesh-id$="inlineContent"],
body:not(.device-mobile-optimized) #PAGES_CONTAINER section.wixui-section:not(.kn-keep) .wixui-column-strip__column { min-height: 0 !important; }
body:not(.device-mobile-optimized) #PAGES_CONTAINER section.wixui-section:not(.kn-keep) > [data-mesh-id$="inlineContent"] > [data-mesh-id$="gridContainer"] { row-gap: var(--kn-row-gap); }
/* Wix positioning leftovers: strip margins, wrapper margins, outer element margins, reserved min-heights on paragraph blocks */
body:not(.device-mobile-optimized) #PAGES_CONTAINER section.wixui-section:not(.kn-keep) > [data-mesh-id$="inlineContent"],
body:not(.device-mobile-optimized) #PAGES_CONTAINER section.wixui-section:not(.kn-keep) > [data-mesh-id$="inlineContent"] > [data-mesh-id$="gridContainer"],
body:not(.device-mobile-optimized) #PAGES_CONTAINER section.wixui-section:not(.kn-keep) > [data-mesh-id$="inlineContent"] > [data-mesh-id$="gridContainer"] > .wixui-column-strip { margin-top: 0 !important; margin-bottom: 0 !important; }
body:not(.device-mobile-optimized) #PAGES_CONTAINER section.wixui-section:not(.kn-keep) [data-mesh-id$="gridContainer"] > :first-child { margin-top: 0 !important; }
body:not(.device-mobile-optimized) #PAGES_CONTAINER section.wixui-section:not(.kn-keep) [data-mesh-id$="gridContainer"] > :last-child { margin-bottom: 0 !important; }
body:not(.device-mobile-optimized) #PAGES_CONTAINER section.wixui-section:not(.kn-keep) .wixui-rich-text:not(:has(h1,h2,h3,h4,h5,h6)) { min-height: 0 !important; } /* heading blocks size their grid rows */
#PAGES_CONTAINER #comp-jxe9ahjc { min-height: 0 !important; } /* Anmeldung paragraph block reserved 200px below the pill; kept separate so browsers without :has() still get it */

/* --- Mobile: same idea; image and gallery columns keep their fixed height because it sizes the picture --- */
body.device-mobile-optimized #PAGES_CONTAINER section.wixui-section:not(.kn-keep-mobile) { padding: var(--kn-section-pad) 0 !important; min-height: 0 !important; height: auto !important; }
body.device-mobile-optimized #PAGES_CONTAINER section.wixui-section:not(.kn-keep-mobile) > [data-mesh-id$="inlineContent"] > [data-mesh-id$="gridContainer"] { grid-template-rows: auto !important; min-height: 0 !important; row-gap: var(--kn-row-gap); }
body.device-mobile-optimized #PAGES_CONTAINER section.wixui-section:not(.kn-keep-mobile) > [data-mesh-id$="inlineContent"],
body.device-mobile-optimized #PAGES_CONTAINER section.wixui-section:not(.kn-keep-mobile) .wixui-column-strip { min-height: 0 !important; height: auto !important; }
body.device-mobile-optimized #PAGES_CONTAINER section.wixui-section:not(.kn-keep-mobile) .wixui-column-strip__column:not(:has(img, wow-image, .wixui-gallery)),
body.device-mobile-optimized #PAGES_CONTAINER section.wixui-section:not(.kn-keep-mobile) .wixui-column-strip__column:has(.wixui-gallery) { min-height: 0 !important; height: auto !important; }
body.device-mobile-optimized #PAGES_CONTAINER section.wixui-section:not(.kn-keep-mobile) .wixui-column-strip__column:not(:has(img, wow-image, .wixui-gallery)) [data-mesh-id$="gridContainer"] { grid-template-rows: auto !important; min-height: 0 !important; }
body.device-mobile-optimized #PAGES_CONTAINER section.wixui-section:not(.kn-keep-mobile) [data-mesh-id$="inlineContent"],
body.device-mobile-optimized #PAGES_CONTAINER section.wixui-section:not(.kn-keep-mobile) [data-mesh-id$="gridContainer"],
body.device-mobile-optimized #PAGES_CONTAINER section.wixui-section:not(.kn-keep-mobile) .wixui-column-strip,
body.device-mobile-optimized #PAGES_CONTAINER section.wixui-section:not(.kn-keep-mobile) .wixui-column-strip__column { margin-top: 0 !important; margin-bottom: 0 !important; }
body.device-mobile-optimized #PAGES_CONTAINER section.wixui-section:not(.kn-keep-mobile) [data-mesh-id$="gridContainer"] > :first-child { margin-top: 0 !important; }
body.device-mobile-optimized #PAGES_CONTAINER section.wixui-section:not(.kn-keep-mobile) [data-mesh-id$="gridContainer"] > :last-child { margin-bottom: 0 !important; }
body.device-mobile-optimized #PAGES_CONTAINER section.wixui-section:not(.kn-keep-mobile) .wixui-rich-text { min-height: 0 !important; }

/* Home band (kn-keep so the card keeps overlapping the photo) still needs its outer row trimmed; Élysée block gets the same top spacing */
#comp-mp2gvdz6 > [data-mesh-id$="inlineContent"] > [data-mesh-id$="gridContainer"] { grid-template-rows: auto !important; min-height: 0 !important; }
#comp-mp2gvdz6, #comp-mp2gvdz6 > [data-mesh-id$="inlineContent"] { min-height: 0 !important; height: auto !important; }
#comp-mp2gve03 { margin-bottom: 48px !important; }
#comp-modd57ce, #comp-mp2xghwy { margin-top: 48px !important; }
#comp-modd11gl { padding-bottom: 16px; }

/* ===== Layout system: rows and cards built by tools/polish.mjs step 2c from tools/layout.json =====
   Wix placed every block with its own pixel offsets; these blocks now follow one set of tokens.
     .kn-flow            replaces a run of Wix strips; stacks rows (or wraps cards) with one gap
     .kn-row             two columns a | b (--kn-cols), optional .kn-row__head above a ("head-over" pages)
     .kn-flow--panel     column b is a grey panel, rows centred vertically (Gruppen)
     .kn-flow--tiles     photo and text touch, rows touch: a checkerboard (Alltag)
     .kn-flow--panels    self-contained grey boxes side by side, button on the common bottom line (Jobs)
     .kn-pair            two overlapping photos in one column (Unser Ansatz, Sprache & Kultur)
     .kn-card            image box of fixed height (drawings sit on its bottom line), name, role, text, credit; cards share row tracks */
:root { --kn-content: 1063px; --kn-gutter: 24px; --kn-flow-pad: 48px; --kn-flow-gap: 96px; --kn-col-gap: 64px; --kn-stack: 20px; --kn-media-s: 360px; --kn-panel-pad: 48px; --kn-card-img: 190px; --kn-card-gap: 40px; }
body.device-mobile-optimized { --kn-gutter: 16px; --kn-flow-pad: 24px; --kn-flow-gap: 56px; --kn-col-gap: 0px; --kn-stack: 16px; --kn-panel-pad: 24px; --kn-card-img: 170px; }

#PAGES_CONTAINER .kn-flow { box-sizing: border-box; width: min(var(--kn-content), 100%) !important; height: auto !important; min-height: 0 !important; margin: 0 auto !important; padding: var(--kn-flow-pad) var(--kn-gutter); position: relative !important; left: auto !important; top: auto !important; justify-self: center !important; align-self: start !important; display: flex !important; flex-direction: column; gap: var(--kn-flow-gap); }
/* the Wix section around a flow adds no padding of its own, so every flow page has the same top and bottom space */
#PAGES_CONTAINER section:has(> [data-mesh-id$="inlineContent"] > [data-mesh-id$="gridContainer"] > .kn-flow) { padding: 0 !important; }
/* moved Wix components drop their hand-set geometry */
#PAGES_CONTAINER .kn-flow [id^="comp-"] { position: relative !important; left: auto !important; top: auto !important; margin: 0 !important; grid-area: auto !important; justify-self: stretch !important; align-self: auto !important; width: auto !important; height: auto !important; min-height: 0 !important; min-width: 0 !important; }

#PAGES_CONTAINER .kn-row { display: grid; grid-template-columns: var(--kn-cols, 1fr 1fr); grid-template-areas: "a b"; column-gap: var(--kn-col-gap); row-gap: var(--kn-stack); align-items: start; }
#PAGES_CONTAINER .kn-flow--head-over .kn-row { grid-template-areas: "head ." "a b"; }
#PAGES_CONTAINER .kn-row--flip { grid-template-areas: "b a"; }
#PAGES_CONTAINER .kn-row__head { grid-area: head; }
#PAGES_CONTAINER .kn-row__a { grid-area: a; }
#PAGES_CONTAINER .kn-row__b { grid-area: b; }
#PAGES_CONTAINER .kn-row__a, #PAGES_CONTAINER .kn-row__b { display: flex; flex-direction: column; gap: var(--kn-stack); min-width: 0; }
#PAGES_CONTAINER .kn-flow--panel .kn-row { align-items: center; }
#PAGES_CONTAINER .kn-flow--panel .kn-row__b { background: var(--kn-grey); padding: var(--kn-panel-pad); }
#PAGES_CONTAINER .kn-flow h2, #PAGES_CONTAINER .kn-flow h2 * { text-align: left !important; }
#PAGES_CONTAINER .kn-flow--tiles { gap: 0; }
#PAGES_CONTAINER .kn-flow--tiles .kn-row { column-gap: 0; row-gap: 0; align-items: stretch; }
#PAGES_CONTAINER .kn-flow--tiles .kn-row__b { padding: var(--kn-panel-pad); justify-content: center; }
#PAGES_CONTAINER .kn-flow--tiles .kn-row__a > * { flex: 1; min-height: 360px; }
#PAGES_CONTAINER .kn-flow--tiles .kn-row .wixui-image, #PAGES_CONTAINER .kn-flow--tiles .kn-img { aspect-ratio: auto; height: 100% !important; }

/* photos and galleries fill their column at their own aspect ratio (--kn-ar, set by polish) */
#PAGES_CONTAINER .kn-row .wixui-image, #PAGES_CONTAINER .kn-row .wixui-gallery, #PAGES_CONTAINER .kn-img { width: 100% !important; height: auto !important; aspect-ratio: var(--kn-ar, 1 / 1); }
#PAGES_CONTAINER .kn-row .wixui-image > div, #PAGES_CONTAINER .kn-row .wixui-image img, #PAGES_CONTAINER .kn-img img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
#PAGES_CONTAINER .kn-pair { display: grid !important; grid-template-columns: repeat(12, 1fr); }
#PAGES_CONTAINER .kn-pair > :first-child { grid-area: 1 / 5 / 2 / 13 !important; }
#PAGES_CONTAINER .kn-pair > :last-child { grid-area: 1 / 1 / 2 / 9 !important; margin-top: 22% !important; z-index: 1; }

#PAGES_CONTAINER .kn-flow--panels { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); column-gap: var(--kn-card-gap); align-items: stretch; }
#PAGES_CONTAINER .kn-panel { background: var(--kn-grey); padding: var(--kn-panel-pad); display: flex; flex-direction: column; gap: var(--kn-stack); }
#PAGES_CONTAINER .kn-panel h2, #PAGES_CONTAINER .kn-panel h2 * { font-size: 36px !important; }
#PAGES_CONTAINER .kn-panel__cta { margin-top: auto !important; padding-top: 12px; }
/* cards share row tracks (subgrid): drawing baseline, name, role and text line up across each row even when a role wraps */
#PAGES_CONTAINER .kn-flow--cards { display: grid !important; grid-template-columns: repeat(6, 1fr); column-gap: var(--kn-card-gap); row-gap: 0; }
#PAGES_CONTAINER .kn-card { grid-column: span 2; grid-row: span 4; display: grid; grid-template-rows: subgrid; align-content: start; padding-bottom: 72px; }
#PAGES_CONTAINER .kn-card:nth-child(3n+1):nth-last-child(2) { grid-column: 2 / span 2; } /* a last row of two is centred */
#PAGES_CONTAINER .kn-card:nth-child(3n+1):last-child { grid-column: 3 / span 2; }          /* a last row of one too */
#PAGES_CONTAINER .kn-card__img { height: var(--kn-card-img); display: flex; align-items: flex-end; justify-content: center; margin-bottom: 18px; }
#PAGES_CONTAINER .kn-card .kn-card__role { padding-top: 6px; }
#PAGES_CONTAINER .kn-card__img .wixui-image { width: auto !important; height: 100% !important; aspect-ratio: var(--kn-ar); }
#PAGES_CONTAINER .kn-card__img .wixui-image > div, #PAGES_CONTAINER .kn-card__img img { width: 100% !important; height: 100% !important; object-fit: contain; display: block; }
#PAGES_CONTAINER .kn-card p, #PAGES_CONTAINER .kn-card p * { text-align: center !important; }
#PAGES_CONTAINER .kn-card .kn-card__text { margin-top: 14px !important; }
#PAGES_CONTAINER .kn-card p.kn-credit { margin-top: 16px !important; }
#PAGES_CONTAINER .kn-card p.kn-credit, #PAGES_CONTAINER .kn-card p.kn-credit * { font-style: italic; font-size: 16px !important; }

body.device-mobile-optimized #PAGES_CONTAINER .kn-flow--tiles .kn-row__a > * { min-height: 0; aspect-ratio: 4 / 3; }
body.device-mobile-optimized #PAGES_CONTAINER .kn-flow--tiles .kn-row__b { padding: var(--kn-panel-pad) 0 calc(2 * var(--kn-panel-pad)); } /* text on the photo's edge */
body.device-mobile-optimized #PAGES_CONTAINER .kn-row, body.device-mobile-optimized #PAGES_CONTAINER .kn-flow--head-over .kn-row { grid-template-columns: 100%; grid-template-areas: "head" "a" "b"; }
body.device-mobile-optimized #PAGES_CONTAINER .kn-flow--cards, body.device-mobile-optimized #PAGES_CONTAINER .kn-flow--panels { grid-template-columns: 100%; row-gap: var(--kn-card-gap); }
body.device-mobile-optimized #PAGES_CONTAINER .kn-panel h2, body.device-mobile-optimized #PAGES_CONTAINER .kn-panel h2 * { font-size: 30px !important; }
body.device-mobile-optimized #PAGES_CONTAINER .kn-card, body.device-mobile-optimized #PAGES_CONTAINER .kn-card:nth-child(n) { grid-column: 1; padding-bottom: 48px; }
