/* profetas · Stylesheet der Startseite (erzeugt von wordpress/bau/css_port.py aus quelle.css – nicht von Hand ändern) */

/* ===== Elementor-Grundlage neutralisieren (steht vor allen Regeln unten; aus foerdergesuche/kmu-wert übernommen) =====
   .e-con gibt allen Containern position:relative und width:100% (0,1,0) — hier (0,1,1), damit die Regeln unten
   (mindestens 0,1,2) gewinnen. Innenabstände und Knopf-/Feld-Grundstile setzt Elementor mit (0,2,0). */
/* Das Theme setzt scroll-behavior: smooth auf html: damit misst ScrollTrigger beim Neu-Vermessen mitten auf der Seite
   falsch. Weiches Scrollen macht mit Skript Lenis. */
html.js { scroll-behavior: auto !important; }
html .e-con:where(.e-atomic-element) { position: static; width: auto; height: auto; min-height: 0; overflow: visible; z-index: auto; margin: 0; border-radius: 0; transition: none; }
/* Elementor braucht .e-con::before für Hintergrund-Overlays (content: var(--background-overlay), position:absolute,
   volle Masse, Rahmen, Deckkraft, Übergang). Die atomaren Elemente hier haben kein Overlay; ::before gehört den Regeln
   unten (Nummern, Linien, Icons) – sonst landen z. B. die FAQ-Nummern absolut oben links auf der Seite (30.09.). */
html .e-con:where(.e-atomic-element)::before { all: unset; }
html .elementor .e-div-block-base { padding: 0; min-width: 0; }
html .elementor .e-button-base, html .elementor .e-form-submit-button-base { background: none; padding: 0; border: 0; border-radius: 0; color: inherit; font: inherit; text-align: inherit; transition: none; }
html .elementor .e-accordion-item-header-base { padding: 0; gap: 0; }
html .elementor .e-accordion-item-content-base { padding: 0; min-width: 0; }
html .elementor .e-form-base { display: block; padding: 0; gap: 0; }
html .elementor .e-form-input-base, html .elementor .e-form-textarea-base, html .elementor .e-form-select-base { height: auto; font-size: inherit; color: inherit; border-radius: 0; }
html .elementor .e-form-label-base { display: block; font-size: inherit; color: inherit; line-height: inherit; }
html .elementor :is(h1, h2, h3, h4, h5, h6) { font-size: revert; font-weight: revert; line-height: revert; color: inherit; margin: 0; }
html .elementor a { text-decoration: none; }
/* ==========================================================================
   profetas – Stylesheet für die Elementor-Fassung (Quelle, ohne Präfix).
   Gestaltung 1:1 wie website/assets/css/styles.css; Selektoren angepasst an die Elementor-Ausgabe:
   Listen stehen als <ul>/<ol> in einem Textelement, Nummern, Pfeile und Icons zeichnet dieses Stylesheet.
   css_port.py setzt jeder Regel `html .elementor` voran (höheres Gewicht als Elementors `.elementor .x`).
   ========================================================================== */

:root {
  --teal: #0b7a88;
  --teal-dark: #053c43;
  --teal-deep: #032a2f;
  --teal-light: #7dcdd7;
  --white: #ffffff;
  --ink: #053c43;
  --ink-soft: #24545a;
  --muted: #56777b;
  --paper: #f2f6f6;
  --mist: #e2eef0;
  --line: rgba(5, 60, 67, 0.13);
  --line-strong: rgba(5, 60, 67, 0.26);
  --font: "Manrope", "Helvetica Neue", Arial, sans-serif;
  --maxw: 1440px;
  --gutter: clamp(16px, 3.4vw, 48px);
  --header-h: 84px;
  --sp: clamp(64px, 7.5vw, 120px);
  --pillars-h: 132px;
  --pillars-gap: 20px;
  --ease: cubic-bezier(0.2, 0.7, 0.1, 1);
  --i-pfeil: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --i-extern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E");
  --i-hoch: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M12 19V5M6 11l6-6 6 6'/%3E%3C/svg%3E");
  --i-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23053c43' stroke-width='1.8'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --i-zeichen-weiss: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' version='1.1' viewBox='35.726 8.191 113.462 129.777'%3E%3Cg%3E%3Cg%3E%3Cpath transform='matrix(1,0,0,-1,115.4269,41.123208)' d='M0 0C-13.428 15.101-37.3 13.822-48.902-2.717-63.167-23.047-49.459-50.94-24.891-52.244 2.747-53.712 18.538-20.847 0 0M-54.804-82.447C-56.247-96.047-76.205-96.345-77.996-82.731-77.996-63.518-79.201-42.944-78.01-23.723-75.734 13.07-31.156 32.432-2.629 8.755 33.261-21.031 7.774-79.255-38.589-72.817-44.281-72.027-49.646-69.813-54.804-67.412-55.176-72.21-54.304-77.738-54.804-82.447' fill='%23ffffff'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");   /* echtes profetas-Zeichen (website/assets/logo/profetas-mark-white.svg) */
  /* Icons der Kennzahlen und der Know-how-Liste (Strich-Icons, 24er Raster) */
  --i-stat-1: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M3 21h18M4 10h16M12 3l8.5 5h-17L12 3zM6 10v8M10 10v8M14 10v8M18 10v8'/%3E%3C/svg%3E");
  --i-stat-2: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M12 21v-9M12 12c0-4 3-6.5 7.5-6.5 0 4.2-3 6.5-7.5 6.5zM12 14.5C12 11.3 9.8 9 5.5 9c0 3.3 2.3 5.5 6.5 5.5z'/%3E%3C/svg%3E");
  --i-stat-3: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Cpath d='M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6'/%3E%3Ccircle cx='17' cy='9' r='2.4'/%3E%3Cpath d='M16.5 14c2.5 0 4.5 2 4.5 5'/%3E%3C/svg%3E");
  --i-stat-4: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 3v9l-5.8 6.9'/%3E%3C/svg%3E");
  --i-stat-5: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cellipse cx='12' cy='12' rx='4' ry='9'/%3E%3Cpath d='M3 12h18'/%3E%3C/svg%3E");
  --i-stat-6: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M12 20s-7.5-4.6-7.5-10.2A4.2 4.2 0 0 1 12 7.3a4.2 4.2 0 0 1 7.5 2.5C19.5 15.4 12 20 12 20z'/%3E%3C/svg%3E");
  --i-know-1: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M3 20h18v-4H3zM6 16v-4h12v4M9 12V8h6v4'/%3E%3C/svg%3E");
  --i-know-2: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Ccircle cx='12' cy='7' r='2.6'/%3E%3Ccircle cx='5' cy='10' r='2'/%3E%3Ccircle cx='19' cy='10' r='2'/%3E%3Cpath d='M7.5 20c0-3 2-5.2 4.5-5.2s4.5 2.2 4.5 5.2M2.5 19c0-2.4 1.1-4 2.8-4.4M21.5 19c0-2.4-1.1-4-2.8-4.4'/%3E%3C/svg%3E");
  --i-know-3: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M3 21h18M6 17v-5M11 17V7M16 17v-8M20 4l-5 4-4-2-6 4'/%3E%3C/svg%3E");
  --i-know-4: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M6 3h9l4 4v14H6zM15 3v4h4M9.2 14l2 2 3.8-4'/%3E%3C/svg%3E");
  --i-know-5: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Ccircle cx='12' cy='12' r='1' fill='black'/%3E%3C/svg%3E");
  --i-know-6: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M4.5 12a7.5 7.5 0 0 1 13-5.1M18 3v4h-4M19.5 12a7.5 7.5 0 0 1-13 5.1M6 21v-4h4'/%3E%3C/svg%3E");
}
/* ---------- Grundlagen ---------- */
html { -webkit-text-size-adjust: 100%; }
html.lenis, html.lenis body { height: auto; }
html.lenis.lenis-smooth { scroll-behavior: auto !important; }
html body {
  margin: 0; font-family: var(--font); font-size: 17px; line-height: 1.6; color: var(--ink); background: var(--white);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; overflow-x: clip;
}
html .elementor * { box-sizing: border-box; }
html .elementor img, html .elementor svg { display: block; max-width: 100%; }
html .elementor a { color: inherit; text-decoration: none; }
html .elementor p, html .elementor figure, html .elementor blockquote { margin: 0; }
html .elementor ul, html .elementor ol { margin: 0; padding: 0; list-style: none; }
::selection { background: var(--teal); color: #fff; }
:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; }
html .elementor section[id] { scroll-margin-top: var(--header-h); }
html .elementor .container { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
/* ---------- Schrift ---------- */
html .elementor .eyebrow {
  display: inline-flex; align-items: center; gap: .75em;
  font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; line-height: 1.6; color: var(--teal);
}
html .elementor .eyebrow::before { content: ""; width: 8px; height: 8px; background: currentColor; flex: none; }
html .elementor .eyebrow--light { color: var(--teal-light); }
html .elementor .h2 { font-size: clamp(2.15rem, 4.4vw, 4.3rem); font-weight: 700; line-height: 1.02; letter-spacing: -.038em; text-wrap: balance; }
html .elementor .h3 { font-size: clamp(1.25rem, 1.6vw, 1.5rem); font-weight: 700; line-height: 1.2; letter-spacing: -.018em; }
html .elementor .lead { font-size: clamp(1.05rem, 1.25vw, 1.22rem); line-height: 1.6; color: var(--muted); }
/* Wort-Einblendung (Skript) */
html .elementor .w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .22em; margin-bottom: -.22em; }
html .elementor .wi { display: inline-block; will-change: transform; }
/* ---------- Knöpfe und Links ---------- */
html .elementor .btn {
  position: relative; isolation: isolate; overflow: hidden;
  display: inline-flex; align-items: center; gap: .85rem;
  padding: 1.05rem 1.35rem 1.05rem 1.5rem;
  font-size: .95rem; font-weight: 700; letter-spacing: -.005em; line-height: 1.2;
  background: var(--ink); color: #fff; cursor: pointer;
  transition: color .45s var(--ease), box-shadow .45s var(--ease);
}
html .elementor .btn::before {
  content: ""; position: absolute; inset: 0; z-index: -1; background: var(--teal);
  transform: scaleX(0); transform-origin: right; transition: transform .6s var(--ease);
}
html .elementor .btn:hover::before, html .elementor .btn:focus-visible::before { transform: scaleX(1); transform-origin: left; }
html .elementor .btn--pfeil::after {
  content: ""; flex: none; width: 18px; height: 18px; background: currentColor;
  -webkit-mask: var(--i-pfeil) center / contain no-repeat; mask: var(--i-pfeil) center / contain no-repeat;
  transition: transform .5s var(--ease);
}
html .elementor .btn--pfeil:hover::after { transform: translateX(4px); }
html .elementor .btn--sm { padding: .8rem 1.05rem .8rem 1.2rem; font-size: .88rem; }
html .elementor .btn--sm::after {
  content: ""; flex: none; width: 18px; height: 18px; background: currentColor;
  -webkit-mask: var(--i-pfeil) center / contain no-repeat; mask: var(--i-pfeil) center / contain no-repeat;
  transition: transform .5s var(--ease);
}
html .elementor .btn--white { background: rgba(255, 255, 255, .92); color: var(--ink); }
html .elementor .btn--white:hover { color: #fff; }
html .elementor .btn--ghost { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1px var(--line-strong); }
html .elementor .btn--ghost::before { background: var(--ink); }
html .elementor .btn--ghost:hover { color: #fff; box-shadow: inset 0 0 0 1px var(--ink); }
html .elementor .btn--light { background: #fff; color: var(--ink); }
html .elementor .btn--light:hover { color: #fff; }
html .elementor .link-arrow {
  display: inline-flex; align-items: center; gap: .6rem;
  font-size: .92rem; font-weight: 700; color: var(--ink);
  padding-bottom: .3rem; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat;
  transition: color .3s;
}
html .elementor .link-arrow::after {
  content: ""; flex: none; width: 17px; height: 17px; background: currentColor;
  -webkit-mask: var(--i-pfeil) center / contain no-repeat; mask: var(--i-pfeil) center / contain no-repeat;
  transition: transform .5s var(--ease);
}
html .elementor .link-arrow:hover { color: var(--teal); }
html .elementor .link-arrow:hover::after { transform: translateX(4px); }
/* ---------- Kopfzeile (Site Part) ---------- */
html .elementor .site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 100; height: var(--header-h);
  background: rgba(255, 255, 255, .96);
  transition: transform .6s var(--ease), box-shadow .4s, background .4s;
}
html .elementor .site-header.is-scrolled {
  background: rgba(255, 255, 255, .86);
  -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
  box-shadow: 0 1px 0 var(--line);
}
html .elementor .site-header.is-hidden { transform: translateY(-100%); }
/* Offenes Handy-Menü: backdrop-filter/transform der Kopfzeile würden zum Bezugsrahmen des position:fixed-Menüs –
   es wäre dann nur so hoch wie die Kopfzeile (Kai, iPhone, nach dem Scrollen). Solange es offen ist: beides aus. */
html.menu-open .elementor .site-header, html.menu-open .elementor .site-header.is-scrolled { -webkit-backdrop-filter: none; backdrop-filter: none; transform: none; background: #fff; }
html .elementor .site-header__progress { position: absolute; left: 0; bottom: -1px; width: 100%; height: 2px; background: var(--teal); transform-origin: left; transform: scaleX(0); }
html .elementor .site-header__inner { height: 100%; display: flex; align-items: center; gap: clamp(20px, 2.6vw, 40px); }
html .elementor .brand { display: flex; align-items: center; gap: 11px; margin-right: auto; }
html .elementor .brand__mark { width: 25px; height: auto; transition: transform .8s var(--ease); }
html .elementor .brand:hover .brand__mark { transform: rotate(-12deg); }
html .elementor .brand__word { width: 104px; height: auto; }
html .elementor .brand__claim { display: block; margin-left: 12px; padding-left: 16px; border-left: 1px solid var(--line); font-size: .7rem; line-height: 1.35; font-weight: 600; color: var(--muted); }
html .elementor .nav { display: flex; align-items: center; }
html .elementor .nav__links { display: flex; align-items: center; gap: clamp(18px, 2.2vw, 34px); }
html .elementor .nav__links a { position: relative; padding: 6px 0; font-size: .92rem; font-weight: 600; }
html .elementor .nav__links a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1.5px; background: var(--teal);
  transform: scaleX(0); transform-origin: right; transition: transform .5s var(--ease);
}
html .elementor .nav__links a:hover::after, html .elementor .nav__links a.is-current::after { transform: scaleX(1); transform-origin: left; }
html .elementor .nav__links a.is-current { color: var(--teal); }
html .elementor .menu-toggle {
  display: none; position: relative; width: 46px; height: 46px; flex: none;
  box-shadow: inset 0 0 0 1px var(--line-strong); font-size: 0; color: transparent; cursor: pointer;
}
html .elementor .menu-toggle::before, html .elementor .menu-toggle::after {
  content: ""; position: absolute; left: 13px; right: 13px; height: 1.8px; background: var(--ink);
  transition: transform .5s var(--ease), top .5s var(--ease);
}
html .elementor .menu-toggle::before { top: 18px; }
html .elementor .menu-toggle::after { top: 26px; }
html.menu-open .elementor .menu-toggle::before { top: 22px; transform: rotate(45deg); }
html.menu-open .elementor .menu-toggle::after { top: 22px; transform: rotate(-45deg); }
html .elementor .mobile-menu {
  display: none; position: fixed; inset: var(--header-h) 0 0 0; z-index: 99;
  background: var(--ink); color: #fff; padding: 24px var(--gutter) 32px;
  flex-direction: column; justify-content: space-between; overflow-y: auto;
}
html.menu-open .elementor .mobile-menu { display: flex; }
html .elementor .mobile-menu__nav a {
  display: flex; align-items: baseline; gap: 16px; padding: 12px 0; border-bottom: 1px solid rgba(255, 255, 255, .12);
  font-size: clamp(1.9rem, 7.5vw, 2.8rem); font-weight: 700; letter-spacing: -.035em; line-height: 1.25;
}
html .elementor .mobile-menu__nav a span { font-size: .78rem; font-weight: 700; letter-spacing: .08em; color: var(--teal-light); }
html .elementor .mobile-menu__foot { padding-top: 32px; font-size: .9rem; color: rgba(255, 255, 255, .7); }
html .elementor .mobile-menu__foot a { color: #fff; font-weight: 700; }
/* ---------- Hero ---------- */
html .elementor .hero { position: relative; padding-top: var(--header-h); }
html .elementor .hero__stage { position: relative; height: calc(100svh - var(--header-h) - var(--pillars-h) - var(--pillars-gap)); min-height: 560px; max-height: 900px; }
/* Beschneidung aus zwei Variablen: --clip-top (Einblendung von oben) und --clip-side (beim Scrollen randlos) – so laufen
   beide Animationen gleichzeitig, ohne sich gegenseitig zu überschreiben (profetas.js) */
html .elementor .hero__frame { position: absolute; inset: 0; overflow: hidden; clip-path: inset(var(--clip-top, 0%) var(--clip-side, var(--gutter)) 0 var(--clip-side, var(--gutter))); background: var(--mist); }
html .elementor .hero__frame::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(246, 250, 250, .78) 0%, rgba(246, 250, 250, .42) 34%, rgba(246, 250, 250, 0) 60%),
    linear-gradient(0deg, rgba(246, 250, 250, .55) 0%, rgba(246, 250, 250, 0) 36%);
}
html .elementor .hero__poster { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 0% 50%; will-change: transform; transform-origin: 60% 50%; }
html .elementor .hero__content {
  position: relative; z-index: 2; height: 100%;
  display: flex; flex-direction: column; justify-content: center; align-items: flex-start;
  padding-inline: calc(var(--gutter) + clamp(20px, 4vw, 72px)); padding-bottom: 56px;
}
html .elementor .hero__title { margin: 26px 0 30px; font-size: clamp(2.7rem, 6.3vw, 5.9rem); font-weight: 700; line-height: .98; letter-spacing: -.048em; color: var(--ink); }
html .elementor .hero__title .line { display: block; overflow: hidden; padding-bottom: .22em; margin-bottom: -.22em; }
html .elementor .hero__title .line > span { display: inline-block; }
html .elementor .hero__title .line:last-child > span { color: var(--teal); }
html .elementor .hero__lead { max-width: 34rem; font-size: clamp(1.02rem, 1.2vw, 1.18rem); line-height: 1.6; color: var(--ink-soft); font-weight: 500; }
html .elementor .hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 34px; }
html .elementor .hero__facts { position: absolute; z-index: 2; left: 0; right: 0; bottom: 46px; padding-inline: calc(var(--gutter) + clamp(20px, 4vw, 72px)); font-size: .8rem; font-weight: 600; color: var(--ink-soft); }
html .elementor .hero__facts ul { display: flex; flex-wrap: wrap; gap: 10px 32px; }
html .elementor .hero__facts li { display: flex; align-items: center; gap: 10px; }
html .elementor .hero__facts li::before { content: ""; width: 14px; height: 1.5px; background: var(--teal); }
html .elementor .badge {
  position: absolute; z-index: 5; display: grid; place-items: center;
  width: clamp(112px, 10.5vw, 152px); aspect-ratio: 1; border-radius: 50%;
  background: var(--ink); color: #fff; transition: transform .6s var(--ease), background .4s;
}
html .elementor .badge:hover { transform: scale(1.06); background: var(--teal); }
html .elementor .badge__ring { position: absolute; inset: 0; width: 100%; height: 100%; animation: spin 24s linear infinite; }
html .elementor .badge__ring svg { width: 100%; height: 100%; }
html .elementor .badge__ring text { font-family: var(--font); font-size: 14.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; fill: currentColor; }
html .elementor .badge__mark { width: 27%; height: auto; }
html .elementor .hero__badge { right: calc(var(--gutter) + clamp(20px, 3vw, 48px)); bottom: clamp(20px, 3vw, 40px); }
/* drei Bereiche: Nummer (Zähler, Kontur) · Titel und Text · Pfeil */
/* Kein Abstand zum Hero: Trennlinien und die grüne Hover-Linie setzen direkt an der Hero-Unterkante an,
   der Abstand steckt oben im Bereich selbst (Text steht wie vorher) */
html .elementor .pillars { margin-top: 0; border-bottom: 1px solid var(--line); }
html .elementor .pillars__grid { display: grid; grid-template-columns: repeat(3, 1fr); counter-reset: bereich; }
html .elementor .pillar {
  position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: 14px;
  min-height: calc(var(--pillars-h) + var(--pillars-gap)); padding: calc(22px + var(--pillars-gap)) clamp(16px, 2vw, 32px) 22px; border-left: 1px solid var(--line);
  counter-increment: bereich;
  background: linear-gradient(var(--teal), var(--teal)) 0 -1px / 0% 3px no-repeat;
  transition: background-size .7s var(--ease);
}
html .elementor .pillar:first-child { border-left: 0; padding-left: 0; }
html .elementor .pillar:hover { background-size: 100% 3px; }
html .elementor .pillar::before {
  content: "0" counter(bereich); display: block; margin-top: -.06em;
  font-size: calc(clamp(1.1rem, 1.35vw, 1.3rem) * 1.62); font-weight: 800; line-height: 1; letter-spacing: -.05em;
  color: transparent; -webkit-text-stroke: 1px rgba(11, 122, 136, .45); transition: -webkit-text-stroke-color .5s var(--ease);
}
html .elementor .pillar:hover::before { -webkit-text-stroke-color: var(--teal); }
html .elementor .pillar::after {
  content: ""; align-self: center; width: 20px; height: 20px; background: var(--ink);
  -webkit-mask: var(--i-pfeil) center / contain no-repeat; mask: var(--i-pfeil) center / contain no-repeat;
  transition: transform .5s var(--ease), background .3s;
}
html .elementor .pillar:hover::after { transform: translateX(5px); background: var(--teal); }
html .elementor .pillar__txt { display: grid; gap: 4px; }
html .elementor .pillar__txt strong { font-size: clamp(1.1rem, 1.35vw, 1.3rem); font-weight: 700; line-height: 1.2; letter-spacing: -.02em; }
html .elementor .pillar__txt span { font-size: .92rem; line-height: 1.45; color: var(--muted); max-width: 40ch; }
/* ---------- Abschnittskopf ---------- */
html .elementor .section-head { display: grid; grid-template-columns: 1.25fr 1fr; gap: clamp(28px, 6vw, 120px); align-items: end; margin-bottom: clamp(36px, 4.5vw, 64px); }
html .elementor .section-head .h2 { margin-top: 22px; }
html .elementor .section-head--top { align-items: start; }
html .elementor .section-head--top .section-head__side { padding-top: 38px; }
html .elementor .for-whom { display: block; margin-top: 30px; }
html .elementor .for-whom > strong { display: block; margin-bottom: 10px; font-size: .98rem; font-weight: 700; }
html .elementor .for-whom li { display: grid; grid-template-columns: minmax(150px, 38%) 1fr; gap: 16px; align-items: baseline; padding: 11px 0; border-top: 1px solid var(--line); font-size: .92rem; color: var(--muted); }
html .elementor .for-whom li:last-child { border-bottom: 1px solid var(--line); }
html .elementor .for-whom li strong { color: var(--ink); font-weight: 700; }
/* ---------- Leistungen ---------- */
html .elementor .services { padding: var(--sp) 0; }
html .elementor .service-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 2.4vw, 40px); align-items: start; }
html .elementor .service-card { display: block; }
html .elementor .service-card:nth-child(2) { margin-top: 56px; }
html .elementor .service-card:nth-child(3) { margin-top: 112px; }
html .elementor .service-card__media { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--mist); }
html .elementor .service-card__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); transition: transform 1.4s var(--ease); }
html .elementor .service-card:hover .service-card__media img { transform: scale(1.08); }
html .elementor .service-card__media::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--teal);
  transform: scaleX(0); transform-origin: left; transition: transform .7s var(--ease);
}
html .elementor .service-card:hover .service-card__media::after { transform: scaleX(1); }
html .elementor .service-card__no { position: absolute; left: 0; top: 0; padding: 12px 16px; background: #fff; font-size: .82rem; font-weight: 800; letter-spacing: .06em; }
html .elementor .service-card__title { margin-top: 26px; }
html .elementor .service-card__title span { display: block; margin-bottom: 10px; font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--teal); }
html .elementor .service-card__text { margin: 8px 0 22px; font-size: .95rem; color: var(--muted); max-width: 40ch; }
html .elementor .service-card__text strong { display: inline-block; margin-bottom: 6px; font-weight: 600; font-size: .98rem; color: var(--ink-soft); }
html .elementor .service-card:hover .link-arrow { color: var(--teal); }
html .elementor .service-card:hover .link-arrow::after { transform: translateX(4px); }
/* ---------- Mandate ---------- */
html .elementor .mandates { padding: clamp(40px, 4.5vw, 60px) 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
html .elementor .mandates__head { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: clamp(32px, 4vw, 48px); }
html .elementor .mandates__title { font-size: clamp(1.15rem, 1.5vw, 1.35rem); font-weight: 700; letter-spacing: -.015em; }
html .elementor .marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
html .elementor .marquee__track { display: flex; align-items: center; width: max-content; animation: marquee 55s linear infinite; }
html .elementor .marquee:hover .marquee__track { animation-play-state: paused; }
html .elementor .marquee__logo {
  flex: none; box-sizing: content-box; height: 42px; width: auto; max-width: 170px; object-fit: contain;
  padding-right: clamp(48px, 5.5vw, 96px);
  filter: grayscale(1) contrast(1.05); opacity: .55; transition: filter .5s, opacity .5s;
}
html .elementor .marquee__logo:hover { filter: none; opacity: 1; }
/* ---------- Unser Verständnis ---------- */
html .elementor .manifest { padding: var(--sp) 0; }
html .elementor .manifest__text { margin: 24px 0 clamp(32px, 4vw, 56px); max-width: 19ch; font-size: clamp(2.3rem, 5.6vw, 5.8rem); font-weight: 700; line-height: 1.02; letter-spacing: -.045em; }
html .elementor .manifest__text span { color: inherit; }
/* Akzentwörter; .w sind die Wort-Hüllen der Scroll-Animation (profetas.js) und bleiben in der Grundfarbe */
html .elementor .manifest__text > span:not(.w) { color: var(--teal); }
html .elementor .manifest__cols { display: grid; grid-template-columns: 1fr 1fr auto; gap: clamp(24px, 4vw, 64px); align-items: start; padding-top: 32px; border-top: 1px solid var(--line); }
html .elementor .manifest__cols > p { color: var(--muted); max-width: 44ch; }
/* ---------- Bereiche Ansiedlung, Governance, Toolbox ---------- */
html .elementor .area { position: relative; padding: var(--sp) 0; overflow: hidden; }
html .elementor .area--paper { background: var(--paper); }
html .elementor .area--n1::before, html .elementor .area--n2::before, html .elementor .area--n3::before {
  position: absolute; top: clamp(20px, 3vw, 48px); left: -.05em; z-index: 0;
  font-size: clamp(9rem, 26vw, 25rem); font-weight: 800; line-height: .8; letter-spacing: -.07em;
  color: transparent; -webkit-text-stroke: 1px rgba(11, 122, 136, .17); pointer-events: none; user-select: none;
}
html .elementor .area--n1::before { content: "01"; }
html .elementor .area--n2::before { content: "02"; left: auto; right: -.03em; }
html .elementor .area--n3::before { content: "03"; }
html .elementor .area .container { position: relative; z-index: 1; }
html .elementor .area__split { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(40px, 7vw, 120px); align-items: start; }
html .elementor .area__head { position: sticky; top: calc(var(--header-h) + 40px); }
html .elementor .area__head--static { position: static; }
html .elementor .area__head .h2 { margin: 22px 0 26px; }
html .elementor .area__note { margin: 26px 0 34px; padding-left: 16px; border-left: 2px solid var(--teal); font-weight: 600; font-size: .95rem; }
html .elementor .area__foot { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-top: clamp(32px, 3.5vw, 48px); }
html .elementor .area__foot > p { font-size: clamp(1.05rem, 1.4vw, 1.25rem); font-weight: 700; letter-spacing: -.015em; max-width: 36ch; }
/* Bausteine (Ansiedlung) */
html .elementor .stack { position: relative; display: flex; flex-direction: column-reverse; gap: 10px; padding: 30px 0 0; }
html .elementor .slab { position: relative; padding: clamp(24px, 3vw, 42px); display: grid; gap: 10px; }
html .elementor .slab--1 { background: var(--ink); color: #fff; }
html .elementor .slab--2 { background: var(--teal); color: #fff; margin-left: 6%; }
html .elementor .slab--3 { background: #fff; color: var(--ink); margin-left: 12%; box-shadow: inset 0 0 0 1px var(--line); }
html .elementor .slab__title { font-size: clamp(1.35rem, 2vw, 1.9rem); font-weight: 700; line-height: 1.15; letter-spacing: -.025em; }
html .elementor .slab__title span { display: block; margin-bottom: 10px; font-size: .74rem; font-weight: 800; letter-spacing: .14em; line-height: 1.6; text-transform: uppercase; opacity: .9; }
html .elementor .slab--3 .slab__title span { color: var(--teal); opacity: 1; }
html .elementor .slab__text { max-width: 54ch; font-size: .97rem; line-height: 1.6; opacity: .84; }
html .elementor .slab--3 .slab__text { color: var(--muted); opacity: 1; }
/* Organigramm */
html .elementor .gov-top { display: grid; grid-template-columns: 1fr 1.08fr; gap: clamp(40px, 6vw, 100px); align-items: center; margin-bottom: clamp(40px, 5vw, 72px); }
html .elementor .gov-diagram {
  position: relative; padding: clamp(18px, 2.8vw, 40px); border: 1px solid var(--line); background-color: var(--paper);
  background-image: linear-gradient(rgba(5, 60, 67, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(5, 60, 67, .05) 1px, transparent 1px);
  background-size: 28px 28px;
}
html .elementor .gov-diagram__svg, html .elementor .gov-diagram__svg svg { width: 100%; height: auto; overflow: visible; }
html .elementor .gov-diagram__caption { margin-top: 14px; font-size: .8rem; font-weight: 600; color: var(--muted); letter-spacing: .02em; }
html .elementor .gov-diagram text { font-family: var(--font); }
html .elementor .gov-pulses circle { fill: var(--teal); }
/* Leistungsraster */
html .elementor .cells { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
html .elementor .cell {
  position: relative; display: flex; flex-direction: column; min-height: 250px; padding: clamp(24px, 2.4vw, 36px);
  border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background .5s var(--ease), color .5s var(--ease);
}
html .elementor .cell::before { content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 3px; background: var(--teal); transform: scaleX(0); transform-origin: left; transition: transform .7s var(--ease); }
html .elementor .cell:hover::before { transform: scaleX(1); }
html .elementor .cell:hover { background: var(--paper); }
html .elementor .cell__title { margin-bottom: 12px; font-size: clamp(1.15rem, 1.35vw, 1.3rem); font-weight: 700; line-height: 1.25; letter-spacing: -.018em; }
html .elementor .cell__title > span { display: inline-block; margin-bottom: clamp(24px, 2.6vw, 40px); font-size: .72rem; font-weight: 700; letter-spacing: .15em; line-height: 1.6; text-transform: uppercase; color: var(--muted); transition: color .5s; }
html .elementor .cell__title > span:first-child { margin-right: 12px; font-size: .95rem; letter-spacing: 0; font-weight: 800; color: var(--teal); }
html .elementor .cell__text { font-size: .95rem; line-height: 1.6; color: var(--muted); transition: color .5s; }
html .elementor .cell__text a { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px; font-size: .9rem; font-weight: 700; color: var(--teal); }
html .elementor .cell__text a::after { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--i-extern) center / contain no-repeat; mask: var(--i-extern) center / contain no-repeat; }
html .elementor .cells--white .cell { background: #fff; }
html .elementor .cells--white .cell:hover { background: var(--ink); color: #fff; }
html .elementor .cells--white .cell:hover .cell__text, html .elementor .cells--white .cell:hover .cell__title > span { color: rgba(255, 255, 255, .72); }
html .elementor .cells--white .cell:hover .cell__title > span:first-child, html .elementor .cells--white .cell:hover .cell__text a { color: var(--teal-light); }
/* Wirkungslogik */
html .elementor .toc { margin: 0 0 clamp(36px, 4.5vw, 64px); padding: clamp(28px, 3vw, 44px) clamp(20px, 3vw, 44px); background: #fff; border: 1px solid var(--line); }
html .elementor .toc__caption { margin-bottom: 40px; font-size: .9rem; color: var(--muted); }
html .elementor .toc__caption strong { margin-right: 12px; font-size: .74rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; color: var(--ink); }
html .elementor .toc__track { position: relative; display: block; }
html .elementor .toc__track::before, html .elementor .toc__track::after { content: ""; position: absolute; left: 10%; right: 10%; top: 8px; height: 2px; }
html .elementor .toc__track::before { background: var(--line); }
html .elementor .toc__track::after { background: var(--teal); transform-origin: left; transform: scaleX(var(--p, 0)); }
html .elementor .toc__track ol { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
html .elementor .toc__track li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; }
html .elementor .toc__track li::before {
  content: ""; width: 18px; height: 18px; margin-bottom: 16px; background: #fff; border: 2px solid var(--line-strong);
  transform: rotate(45deg) scale(.85); transition: background .5s, border-color .5s, transform .6s var(--ease);
}
html .elementor .toc__track strong { font-size: clamp(1.05rem, 1.6vw, 1.5rem); font-weight: 800; letter-spacing: -.025em; color: rgba(5, 60, 67, .35); transition: color .5s; }
html .elementor .toc__track li span { font-size: .88rem; line-height: 1.4; color: var(--muted); max-width: 16ch; }
html .elementor .toc__track li.is-active::before { background: var(--teal); border-color: var(--teal); transform: rotate(45deg) scale(1); }
html .elementor .toc__track li.is-active strong { color: var(--ink); }
/* ---------- Profil (dunkel) ---------- */
html .elementor .profile { position: relative; padding: var(--sp) 0; background: var(--ink); color: #fff; overflow: hidden; }
html .elementor .profile__grid { display: grid; grid-template-columns: 5fr 6fr; gap: clamp(40px, 7vw, 120px); align-items: center; }
html .elementor .profile__media { position: relative; overflow: hidden; aspect-ratio: 4 / 3.4; background: linear-gradient(165deg, #e9f3f4 0%, #cfe3e6 100%); }
html .elementor .profile__media::before { content: ""; position: absolute; right: -8%; top: -6%; width: 62%; aspect-ratio: 1; background: var(--i-zeichen-weiss) no-repeat center / contain; opacity: .7; }
/* Porträt grösser (120 %), Rahmen oben gekürzt (4:3.4, Davide), Augen auf dem oberen goldenen Schnitt (38,2 % der Höhe), unten angeschnitten – ohne transform,
   damit die Einblend-Animation (scale) unberührt bleibt */
html .elementor .profile__media img { position: absolute; left: calc((100% - var(--pt-gross, 120%)) / 2); top: var(--pt-oben, -7.7%); width: var(--pt-gross, 120%); height: auto; aspect-ratio: 1; max-width: none; object-fit: cover; }
html .elementor .person { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px 24px; padding-top: 22px; }
html .elementor .person__label { flex-basis: 100%; font-size: .7rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; color: var(--teal-light); }
html .elementor .person__name { margin-top: -10px; font-size: 1.45rem; font-weight: 700; letter-spacing: -.025em; line-height: 1.15; color: #fff; }
html .elementor .person__name span { display: block; font-size: .88rem; font-weight: 400; letter-spacing: 0; color: rgba(255, 255, 255, .6); }
html .elementor .person__tags ul { display: flex; flex-wrap: wrap; gap: 8px; }
/* Logos Universität Basel · CEPS in Weiss (Davide 30.09.) */
/* Logos Universität Basel und CEPS (weisse SVGs, randlos zugeschnitten): eigene Zeile unter dem Namen, leicht abgegrenzt */
html .elementor .person__logos { flex-basis: 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 18px clamp(32px, 4vw, 52px); margin-top: 14px; padding-top: 26px; border-top: 1px solid rgba(255, 255, 255, .16); }
html .elementor .person__logo { display: block; height: 50px; width: auto; max-width: 100%; opacity: .92; }
html .elementor .person__logo--ceps { height: 58px; }
/* Übergang, bis die Startseite mit den neuen Logos veröffentlicht ist: altes kombiniertes Logo (img.person__logos) weiss */
html .elementor img.person__logos { display: block; flex-basis: auto; height: 50px; width: auto; padding: 0; border: 0; filter: brightness(0) invert(1); }
html .elementor .person__tags li { padding: 6px 10px; font-size: .76rem; font-weight: 700; color: rgba(255, 255, 255, .85); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22); }
html .elementor .profile__body .h2 { margin: 22px 0 28px; color: var(--teal-light); }
/* helles Grün statt Weiss (Davide 30.09.) */
html .elementor .profile__body > p { color: rgba(255, 255, 255, .7); }
html .elementor .profile__body > .profile__lead { margin-bottom: 18px; font-size: clamp(1.1rem, 1.35vw, 1.28rem); line-height: 1.55; color: rgba(255, 255, 255, .93); }
html .elementor .profile__body > .profile__quote {
  margin: clamp(28px, 3.4vw, 44px) 0; padding: 4px 0 4px clamp(20px, 2.4vw, 30px); border-left: 3px solid var(--teal-light);
  font-size: clamp(1.3rem, 2vw, 1.8rem); font-weight: 600; line-height: 1.3; letter-spacing: -.022em; color: #fff;
}
html .elementor .degree { display: grid; grid-template-columns: 1fr 2fr; gap: clamp(32px, 5vw, 80px); margin-top: clamp(56px, 6vw, 88px); padding-top: clamp(32px, 3.5vw, 48px); border-top: 1px solid rgba(255, 255, 255, .16); }
html .elementor .degree__school { font-size: .72rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; color: var(--teal-light); }
html .elementor .degree__title { margin-top: 8px; font-size: clamp(1.35rem, 1.9vw, 1.7rem); font-weight: 700; letter-spacing: -.022em; }
html .elementor .degree__text { margin: 12px 0 18px; color: rgba(255, 255, 255, .7); }
html .elementor .degree__link { display: inline-flex; align-items: center; gap: 8px; font-size: .92rem; font-weight: 700; color: var(--teal-light); }
html .elementor .degree__link::after { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--i-extern) center / contain no-repeat; mask: var(--i-extern) center / contain no-repeat; transition: transform .5s var(--ease); }
html .elementor .degree__link:hover::after { transform: translate(3px, -3px); }
html .elementor .degree__list ol { display: grid; grid-template-columns: repeat(3, 1fr); counter-reset: fach; }
html .elementor .degree__list li { counter-increment: fach; display: grid; align-content: start; gap: 6px; padding: 0 clamp(16px, 2vw, 28px); border-left: 1px solid rgba(255, 255, 255, .14); font-size: .93rem; line-height: 1.5; color: rgba(255, 255, 255, .66); }
html .elementor .degree__list li::before { content: "0" counter(fach); margin-bottom: 8px; font-size: .75rem; font-weight: 800; letter-spacing: .08em; color: var(--teal-light); }
html .elementor .degree__list strong { font-size: 1.02rem; line-height: 1.3; font-weight: 700; color: #fff; }
/* ---------- Zahlen & Fakten ---------- */
html .elementor .stats { padding: var(--sp) 0; }
html .elementor .stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
html .elementor .stat { position: relative; display: flex; flex-direction: column; min-height: 260px; padding: clamp(24px, 2.6vw, 36px); background: var(--paper); transition: background .55s var(--ease), color .55s var(--ease); }
/* Icon: ::before ist der Rahmen, ::after das eingefärbte Strich-Icon darin */
html .elementor .stat::before { content: ""; flex: none; width: 44px; height: 44px; margin-bottom: 34px; box-shadow: inset 0 0 0 1px var(--line-strong); transition: box-shadow .5s; }
html .elementor .stat::after {
  content: ""; position: absolute; top: calc(clamp(24px, 2.6vw, 36px) + 10px); left: calc(clamp(24px, 2.6vw, 36px) + 10px);
  width: 24px; height: 24px; background: var(--teal);
  -webkit-mask: var(--i-stat) center / contain no-repeat; mask: var(--i-stat) center / contain no-repeat; transition: background .5s;
}
html .elementor .stat:nth-child(1) { --i-stat: var(--i-stat-1); }
html .elementor .stat:nth-child(2) { --i-stat: var(--i-stat-2); }
html .elementor .stat:nth-child(3) { --i-stat: var(--i-stat-3); }
html .elementor .stat:nth-child(4) { --i-stat: var(--i-stat-4); }
html .elementor .stat:nth-child(5) { --i-stat: var(--i-stat-5); }
html .elementor .stat:nth-child(6) { --i-stat: var(--i-stat-6); }
html .elementor .stat__title { font-size: 1.08rem; font-weight: 700; letter-spacing: -.01em; line-height: 1.3; }
html .elementor .stat__title span { display: block; margin-top: 6px; font-size: .9rem; font-weight: 400; letter-spacing: 0; line-height: 1.45; color: var(--muted); transition: color .5s; }
html .elementor .stat__value { margin-top: auto; padding-top: 40px; font-size: clamp(3rem, 5.4vw, 5.4rem); font-weight: 700; line-height: .9; letter-spacing: -.055em; font-variant-numeric: proportional-nums; }
html .elementor .stat__value span { margin-left: .08em; font-size: .46em; letter-spacing: -.02em; color: var(--teal); transition: color .5s; }
html .elementor .stat:hover { background: var(--ink); color: #fff; }
html .elementor .stat:hover .stat__title span { color: rgba(255, 255, 255, .7); }
html .elementor .stat:hover::before { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25); }
html .elementor .stat:hover::after { background: var(--teal-light); }
html .elementor .stat:hover .stat__value span { color: var(--teal-light); }
html .elementor .stats__source { margin-top: 22px; font-size: .8rem; color: var(--muted); }
/* ---------- Einstieg ---------- */
html .elementor .entry { padding: var(--sp) 0; }
html .elementor .entry__grid { display: grid; grid-template-columns: 5fr 6fr; gap: clamp(40px, 7vw, 120px); align-items: start; }
html .elementor .entry__aside .h2 { margin: 22px 0 26px; }
html .elementor .chips { display: block; margin: 26px 0 clamp(36px, 4vw, 52px); }
html .elementor .chips ul { display: flex; flex-wrap: wrap; gap: 8px; }
html .elementor .chips li { padding: 9px 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--line-strong); font-size: .85rem; font-weight: 700; }
html .elementor .entry__img { aspect-ratio: 4 / 4.6; overflow: hidden; background: var(--mist); margin-right: clamp(0px, 3vw, 40px); }
html .elementor .entry__img img { width: 100%; height: 100%; max-width: none; object-fit: cover; }
html .elementor .entry__main { padding-top: 6px; }
html .elementor .entry__title { margin: 20px 0 10px; font-size: clamp(1.6rem, 2.6vw, 2.4rem); font-weight: 700; line-height: 1.1; letter-spacing: -.032em; }
html .elementor .entry__sub { margin-bottom: 36px; color: var(--muted); }
html .elementor .know-wrap { position: relative; }
html .elementor .know-wrap::before, html .elementor .know-wrap::after { content: ""; position: absolute; left: 24px; top: 34px; bottom: 34px; width: 1px; z-index: 0; }
html .elementor .know-wrap::before { background: var(--line-strong); }
html .elementor .know-wrap::after { background: var(--teal); transform-origin: top; transform: scaleY(var(--p, 0)); }
html .elementor .know { display: block; }
html .elementor .know ol { counter-reset: know; }
html .elementor .know li {
  position: relative; display: grid; grid-template-columns: 49px 1fr; grid-template-rows: auto auto; column-gap: 24px;
  padding: 22px 0; border-bottom: 1px solid var(--line); counter-increment: know;
}
html .elementor .know li:first-child { border-top: 1px solid var(--line); }
html .elementor .know li::before {
  content: ""; position: relative; z-index: 1; grid-row: 1 / span 2; width: 49px; height: 49px;
  background: #fff; box-shadow: inset 0 0 0 1px var(--line-strong); transition: background .5s var(--ease), box-shadow .5s;
}
html .elementor .know li::after {
  content: ""; position: absolute; z-index: 2; left: 13.5px; top: 35.5px; width: 22px; height: 22px; background: var(--teal);
  -webkit-mask: var(--i-know) center / contain no-repeat; mask: var(--i-know) center / contain no-repeat; transition: background .5s var(--ease);
}
html .elementor .know li:nth-child(1) { --i-know: var(--i-know-1); }
html .elementor .know li:nth-child(2) { --i-know: var(--i-know-2); }
html .elementor .know li:nth-child(3) { --i-know: var(--i-know-3); }
html .elementor .know li:nth-child(4) { --i-know: var(--i-know-4); }
html .elementor .know li:nth-child(5) { --i-know: var(--i-know-5); }
html .elementor .know li:nth-child(6) { --i-know: var(--i-know-6); }
html .elementor .know li.is-active::before { background: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
html .elementor .know li.is-active::after { background: #fff; }
html .elementor .know li strong { margin: 2px 0 4px; font-size: 1.08rem; font-weight: 700; letter-spacing: -.012em; line-height: 1.3; }
html .elementor .know li span { font-size: .95rem; color: var(--muted); line-height: 1.5; }
html .elementor .start-box { margin-top: 48px; padding: clamp(28px, 3vw, 44px); background: #fff; border-top: 3px solid var(--teal); }
html .elementor .start-box__title { font-size: clamp(1.25rem, 1.6vw, 1.45rem); font-weight: 700; letter-spacing: -.02em; }
html .elementor .start-box__text { margin: 10px 0 26px; color: var(--muted); }
html .elementor .start-box__fine { margin-top: 16px; font-size: .82rem; color: var(--muted); }
/* ---------- FAQ (Elementor-Akkordeon: details/summary) ---------- */
html .elementor .faq { padding: var(--sp) 0; }
html .elementor .faq__grid { display: grid; grid-template-columns: 4fr 7fr; gap: clamp(40px, 7vw, 120px); align-items: start; }
html .elementor .faq__aside { position: sticky; top: calc(var(--header-h) + 40px); }
html .elementor .faq__aside .h2 { margin: 22px 0 22px; }
html .elementor .faq__aside .lead { margin-bottom: 30px; }
html .elementor .faq__list { display: block; counter-reset: frage; }
html .elementor .qa { border-top: 1px solid var(--line); counter-increment: frage; }
html .elementor .qa:last-child { border-bottom: 1px solid var(--line); }
html .elementor .qa__kopf {
  display: grid; grid-template-columns: 52px 1fr 34px; align-items: center; gap: 12px;
  padding: 26px 0; cursor: pointer; list-style: none;
}
html .elementor .qa__kopf::-webkit-details-marker { display: none; }
/* Elementors eigenes Akkordeon-Icon (Chevron) – Plus/Minus zeichnet .qa__kopf::after */
html .elementor .qa__kopf > .e-accordion-item-icon-base { display: none; }
html .elementor .qa__kopf::before { content: "0" counter(frage); font-size: .8rem; font-weight: 800; letter-spacing: .06em; color: var(--teal); }
html .elementor .qa__kopf::after {
  content: ""; width: 34px; height: 34px; box-shadow: inset 0 0 0 1px var(--line-strong);
  background: linear-gradient(var(--ink), var(--ink)) center / 12px 1.6px no-repeat, linear-gradient(var(--ink), var(--ink)) center / 1.6px 12px no-repeat;
  transition: background-color .4s, box-shadow .4s;
}
html .elementor .qa[open] > .qa__kopf::after {
  background: linear-gradient(#fff, #fff) center / 12px 1.6px no-repeat, var(--ink);
  box-shadow: inset 0 0 0 1px var(--ink);
}
html .elementor .qa__q { font-size: clamp(1.05rem, 1.4vw, 1.28rem); font-weight: 700; letter-spacing: -.018em; line-height: 1.3; transition: color .3s; }
html .elementor .qa__kopf:hover .qa__q { color: var(--teal); }
html .elementor .qa__a { overflow: hidden; }
html .elementor .qa__a p { padding: 0 46px 28px 64px; max-width: 66ch; color: var(--muted); }
html .elementor .qa__a a { color: var(--teal); text-decoration: underline; text-underline-offset: 3px; }
/* ---------- Kontakt (dunkel) ---------- */
html .elementor .contact { position: relative; padding: var(--sp) 0; background: var(--teal-deep); color: #fff; overflow: hidden; }
html .elementor .contact__bg { position: absolute; inset: 0; }
html .elementor .contact__bg img { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 70% 40%; }
html .elementor .contact__bg::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(3, 42, 47, .62) 0%, rgba(3, 42, 47, .2) 50%, rgba(3, 42, 47, 0) 100%), linear-gradient(180deg, rgba(3, 42, 47, 0) 40%, rgba(3, 42, 47, .5) 100%);
}
html .elementor .contact__grid { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 100px); align-items: start; }
html .elementor .contact__title { margin: 22px 0 40px; max-width: 13ch; color: #fff; }
html .elementor .steps { display: block; }
html .elementor .steps ol { counter-reset: schritt; }
html .elementor .steps li { counter-increment: schritt; display: flex; align-items: center; gap: 18px; padding: 16px 0; border-top: 1px solid rgba(255, 255, 255, .18); font-size: 1.05rem; font-weight: 600; }
html .elementor .steps li:last-child { border-bottom: 1px solid rgba(255, 255, 255, .18); }
html .elementor .steps li::before { content: counter(schritt); flex: none; display: grid; place-items: center; width: 34px; height: 34px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .4); font-size: .82rem; font-weight: 800; }
html .elementor .contact__address { margin-top: 40px; line-height: 1.7; color: rgba(255, 255, 255, .78); }
html .elementor .contact__address strong { display: block; color: #fff; }
html .elementor .contact__address a { display: inline-block; margin-top: 8px; color: #fff; font-weight: 700; border-bottom: 1px solid rgba(255, 255, 255, .45); transition: border-color .3s; }
html .elementor .contact__address a:hover { border-color: #fff; }
html .elementor .form {
  display: grid; gap: 18px; padding: clamp(24px, 3.2vw, 48px); color: var(--ink);
  background: rgba(255, 255, 255, .85); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2);
}
html .elementor .form__title { font-size: 1.5rem; font-weight: 700; letter-spacing: -.025em; }
html .elementor .form__intro { margin-top: -12px; font-size: .88rem; color: var(--muted); }
html .elementor .form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
html .elementor .field { display: grid; gap: 8px; }
html .elementor .field label { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; line-height: 1.4; }
html .elementor .field input, html .elementor .field select, html .elementor .field textarea {
  width: 100%; padding: 13px 14px; font: inherit; font-size: 1rem; color: var(--ink);
  background: rgba(242, 246, 246, .6); border: 0; border-bottom: 1.5px solid var(--line-strong); border-radius: 0;
  -webkit-appearance: none; appearance: none; transition: border-color .3s, background .3s;
}
html .elementor .field textarea { min-height: 124px; resize: vertical; }
html .elementor .field select { padding-right: 42px; background-image: var(--i-chevron); background-repeat: no-repeat; background-position: right 12px center; background-size: 18px; }
html .elementor .field input:focus, html .elementor .field select:focus, html .elementor .field textarea:focus { outline: none; background-color: #fff; border-bottom-color: var(--teal); box-shadow: 0 1px 0 var(--teal); }
html .elementor .check { display: grid; grid-template-columns: 20px 1fr; gap: 12px; align-items: start; font-size: .86rem; line-height: 1.5; color: var(--muted); }
html .elementor .check input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--teal); -webkit-appearance: checkbox; appearance: auto; border: 0; background: none; }
html .elementor .check label { font-size: .86rem; line-height: 1.5; color: var(--muted); }
html .elementor .check a { color: var(--teal); text-decoration: underline; text-underline-offset: 3px; }
html .elementor .form__senden { justify-self: start; margin-top: 6px; }
html .elementor .form__fine { font-size: .78rem; color: var(--muted); }
html .elementor .form__ok, html .elementor .form__fehler { padding: 12px 14px; background: var(--paper); font-size: .92rem; font-weight: 700; color: var(--teal); }
html .elementor .form__fehler { background: #fbeded; color: #b3261e; }
/* ---------- Fusszeile (Site Part) ---------- */
html .elementor .site-footer { padding-top: clamp(56px, 6vw, 88px); background: #fff; overflow: hidden; color: var(--ink); }
html .elementor .footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 52px; border-bottom: 1px solid var(--line); }
html .elementor .footer__logo { width: 84px; height: auto; }
html .elementor .footer__brand p { margin-top: 18px; font-weight: 700; }
html .elementor .footer__col { display: block; line-height: 1.75; color: var(--muted); }
html .elementor .footer__col > strong { display: block; margin-bottom: 14px; font-size: .72rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; line-height: 1.6; color: var(--teal); }
html .elementor .footer__col li { margin: 6px 0; line-height: 1.6; color: var(--ink); }
html .elementor .footer__col a { transition: color .3s; }
html .elementor .footer__col a:hover { color: var(--teal); }
html .elementor .footer__disclaimer { padding: 22px 0; font-size: .8rem; color: var(--muted); }
html .elementor .footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px; padding-bottom: 32px; font-size: .84rem; color: var(--muted); }
html .elementor .footer__top { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--ink); }
html .elementor .footer__top::after { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--i-hoch) center / contain no-repeat; mask: var(--i-hoch) center / contain no-repeat; transition: transform .5s var(--ease); }
html .elementor .footer__top:hover::after { transform: translateY(-3px); }
/* Nach-oben-Knopf: schwebt unten rechts, erscheint nach gut einer Bildschirmhöhe (.is-visible aus profetas.js).
   Der Ring zeigt den Lesefortschritt (--p 0…1). Der Text «Nach oben» bleibt als Name für Screenreader im Knopf. */
html .elementor .to-top {
  position: fixed; right: calc(clamp(16px, 2.4vw, 32px) + env(safe-area-inset-right, 0px)); bottom: calc(clamp(16px, 2.4vw, 32px) + env(safe-area-inset-bottom, 0px)); z-index: 90;
  display: block; width: 52px; height: 52px; border-radius: 50%;
  background: var(--ink); box-shadow: 0 12px 30px -12px rgba(5, 60, 67, .6);
  font-size: 0; line-height: 0; color: transparent;
  opacity: 0; visibility: hidden; transform: translateY(14px) scale(.9);
  transition: opacity .45s var(--ease), transform .6s var(--ease), visibility 0s linear .45s, background .3s;
}
html .elementor .to-top.is-visible { opacity: 1; visibility: visible; transform: none; transition: opacity .45s var(--ease), transform .6s var(--ease), visibility 0s, background .3s; }
html .elementor .to-top::before {
  content: ""; position: absolute; inset: -5px; border-radius: 50%;
  background: conic-gradient(var(--teal) calc(var(--p, 0) * 1turn), rgba(125, 205, 215, .4) 0);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
}
html .elementor .to-top::after {
  content: ""; position: absolute; inset: 0; margin: auto; width: 20px; height: 20px; background: #fff;
  -webkit-mask: var(--i-hoch) center / contain no-repeat; mask: var(--i-hoch) center / contain no-repeat;
  transition: transform .5s var(--ease);
}
html .elementor .to-top:hover { background: var(--teal); }
html .elementor .to-top:hover::after { transform: translateY(-3px); }
html .elementor .to-top:focus-visible { outline: 2px solid var(--teal); outline-offset: 7px; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes marquee { to { transform: translateX(-50%); } }
/* ==========================================================================
   Startzustände der Animationen (nur solange das Skript läuft; ohne Skript und im Editor ist alles sichtbar)
   ========================================================================== */
/* Der Hero steht ab dem ersten Bild im Startzustand der Einblendung – nicht erst, wenn das Skript (Fussbereich) läuft:
   sonst sah man Titel, Kopfzeile und Bild kurz fertig, dann verschwanden sie und bauten sich neu auf (Kai, 03.10.).
   Titel bis zur Zerlegung in Zeilen verborgen (Platz bleibt), Kopfzeile bis zum Ende ihrer Einblendung (.kopf-da). */
html.js:not(.no-motion) .elementor .hero__title:not(.ist-bereit) { visibility: hidden; }
html.js:not(.no-motion) .elementor .hero__title .line > span { transform: translateY(110%); }
html.js:not(.no-motion) .elementor .hero__frame { --clip-top: 14%; }
html.js:not(.no-motion) .elementor .hero__poster { opacity: 0; transform: scale(1.24); }
html.js:not(.no-motion) .elementor .site-header:not(.kopf-da) .site-header__inner > * { opacity: 0; }
html.js:not(.no-motion) .elementor .js-hero-item { opacity: 0; }
html.js:not(.no-motion) .elementor .js-hero-badge { opacity: 0; }
html.js:not(.no-motion) .elementor .pillar { opacity: 0; }
/* ---------- Rechtsseiten (Impressum, Datenschutz, AGB) ---------- */
html .elementor .legal { padding: calc(var(--header-h) + clamp(48px, 7vw, 112px)) 0 clamp(72px, 9vw, 140px); }
html .elementor .legal__inner { max-width: calc(880px + 2 * var(--gutter)); }
html .elementor .legal__title { margin: 22px 0 clamp(36px, 5vw, 64px); font-size: clamp(2.4rem, 5.6vw, 4.6rem); font-weight: 700; line-height: 1; letter-spacing: -.045em; color: var(--ink); hyphens: manual; }
html .elementor .legal__body { font-size: 1.02rem; line-height: 1.72; color: var(--ink-soft); }
html .elementor .legal__h2 { margin: 44px 0 14px; padding-top: 28px; border-top: 1px solid var(--line); font-size: clamp(1.12rem, 1.5vw, 1.32rem); font-weight: 700; line-height: 1.3; letter-spacing: -.02em; color: var(--ink); }
html .elementor .legal__body > :first-child { margin-top: 0; }
html .elementor .legal__p { margin: 0 0 16px; max-width: 72ch; }
html .elementor .legal__p strong { color: var(--ink); font-weight: 700; }
html .elementor .legal__list ul, html .elementor .legal__list ol { margin: 0 0 16px; padding-left: 1.25em; max-width: 72ch; }
html .elementor .legal__list ul { list-style: disc; }
html .elementor .legal__list ol { list-style: decimal; }
html .elementor .legal__list li { margin: 0 0 8px; padding-left: .2em; }
html .elementor .legal__list li::marker { color: var(--teal); }
html .elementor .legal__p a, html .elementor .legal__list a { color: var(--teal); text-decoration: underline; text-underline-offset: 3px; word-break: break-word; }
html .elementor .legal__p a:hover, html .elementor .legal__list a:hover { color: var(--ink); }
html .elementor .legal__stand { margin: 44px 0 0; padding-top: 24px; border-top: 1px solid var(--line); font-size: .86rem; color: var(--muted); }
/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1240px) {html .elementor .brand__claim { display: none; }
html .elementor .pillar__txt span { font-size: .86rem; }

}
@media (max-width: 1024px) {:root { --header-h: 72px; --pillars-h: 0px; }
html .elementor .nav, html .elementor .site-header__cta { display: none; }
html .elementor .menu-toggle { display: block; }
html .elementor .section-head { grid-template-columns: 1fr; align-items: start; }
html .elementor .section-head--top .section-head__side { padding-top: 0; }
html .elementor .pillars { margin-top: var(--pillars-gap); }
html .elementor .slab--2, html .elementor .slab--3 { margin-left: 0; }
/* Bausteine ab Tablet abwärts gleich breit (Kai 30.09.), die Treppe nur am Desktop */
  html .elementor .pillars__grid { grid-template-columns: 1fr; }
html .elementor .pillar, html .elementor .pillar:first-child { min-height: 0; padding: 20px 0; border-left: 0; border-top: 1px solid var(--line); }
html .elementor .pillar:first-child { border-top: 0; }
html .elementor .service-cards {
    grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 58%; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px;
    margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); scrollbar-width: none;
  }
html .elementor .service-cards::-webkit-scrollbar { display: none; }
html .elementor .service-card { scroll-snap-align: start; }
html .elementor .service-card:nth-child(2), html .elementor .service-card:nth-child(3) { margin-top: 0; }
html .elementor .manifest__cols { grid-template-columns: 1fr 1fr; }
html .elementor .manifest__cols > .btn { grid-column: 1 / -1; justify-self: start; }
html .elementor .area__split, html .elementor .gov-top, html .elementor .profile__grid, html .elementor .entry__grid, html .elementor .faq__grid, html .elementor .contact__grid { grid-template-columns: 1fr; }
html .elementor .area__head, html .elementor .faq__aside { position: static; }
html .elementor .degree { grid-template-columns: 1fr; }
html .elementor .cells { grid-template-columns: repeat(2, 1fr); }
html .elementor .stat-grid { grid-template-columns: repeat(2, 1fr); }
html .elementor .profile__visual { max-width: 560px; }
html .elementor .entry__img { max-width: 560px; }
html .elementor .footer__grid { grid-template-columns: 1fr 1fr; }

}
@media (max-width: 700px) {html .elementor .to-top { width: 46px; height: 46px; }
:root { --header-h: 66px; }
html body { font-size: 16px; }
html .elementor .brand__mark { width: 22px; }
html .elementor .brand__word { width: 92px; }
html .elementor .hero__stage { height: auto; min-height: calc(88svh - var(--header-h)); max-height: none; display: flex; flex-direction: column; }
html .elementor .hero__content { height: auto; flex: 1; justify-content: flex-end; padding-inline: calc(var(--gutter) + 18px); padding-bottom: 96px; }
html .elementor .hero__poster { object-position: 30% 50%; }
html .elementor .hero__frame::after { background: linear-gradient(0deg, rgba(246, 250, 250, .94) 0%, rgba(246, 250, 250, .8) 42%, rgba(246, 250, 250, 0) 72%); }
html .elementor .hero__title { margin: 18px 0 20px; font-size: clamp(2.5rem, 11.5vw, 3.4rem); }
html .elementor .hero__actions { margin-top: 26px; }
html .elementor .hero__actions .btn { flex: 1 1 auto; justify-content: space-between; }
html .elementor .hero__facts { display: none; }
html .elementor .hero__badge { display: none; }
html .elementor .person__logo { height: 42px; }
html .elementor .person__logo--ceps { height: 50px; }
html .elementor .area--n1::before, html .elementor .area--n3::before { left: auto; right: -.03em; }
/* Konturzahlen rechts, nicht hinter dem Text */
  html .elementor .gov-diagram { padding: 12px 6px 16px; }
/* Organigramm auf dem Handy so breit wie möglich */
  html .elementor .gov-diagram__caption { padding-inline: 8px; }
html .elementor .service-cards { grid-auto-columns: 84%; }
html .elementor .for-whom li { grid-template-columns: 1fr; gap: 2px; }
html .elementor .manifest__cols { grid-template-columns: 1fr; }
html .elementor .mandates__head { flex-direction: column; gap: 10px; }
html .elementor .marquee__logo { height: 34px; max-width: 130px; }
html .elementor .cells { grid-template-columns: 1fr; }
html .elementor .cell { min-height: 0; }
html .elementor .cell__title > span { margin-bottom: 22px; }
html .elementor .toc__track::before, html .elementor .toc__track::after { left: 8px; right: auto; top: 10px; bottom: 10px; width: 2px; height: auto; }
html .elementor .toc__track::after { transform-origin: top; transform: scaleY(var(--p, 0)); }
html .elementor .toc__track ol { grid-template-columns: 1fr; gap: 22px; }
html .elementor .toc__track li { display: grid; grid-template-columns: 18px 1fr; column-gap: 20px; align-items: start; text-align: left; }
html .elementor .toc__track li::before { grid-row: 1 / span 2; margin: 4px 0 0; }
html .elementor .toc__track li span { max-width: none; }
html .elementor .degree__list ol { grid-template-columns: 1fr; gap: 22px; }
html .elementor .degree__list li { padding: 0 0 0 18px; }
html .elementor .stat-grid { grid-template-columns: 1fr; }
html .elementor .stat { min-height: 0; }
html .elementor .qa__kopf { grid-template-columns: 36px 1fr 34px; }
html .elementor .qa__a p { padding: 0 0 26px 48px; }
html .elementor .form__row { grid-template-columns: 1fr; }
html .elementor .footer__grid { grid-template-columns: 1fr; gap: 30px; }

}
/* Hochformat (Handy, Tablet hochkant): Bild bleibt Hintergrund hinter dem Text, aber so verschoben, dass rechts 2–3
   Holzfiguren angeschnitten zu sehen sind; der Text bekommt oben Luft (stösst auch bei kurzer Safari-Höhe nicht an). */
@media (max-width: 1024px) and (orientation: portrait) {/* Höhe nach Inhalt statt Mindesthöhe: kein leerer Bereich unter den Knöpfen */
  html .elementor .hero__stage { height: auto; min-height: 0; max-height: none; }
html .elementor .hero__content { height: auto; padding-top: clamp(40px, 8vw, 72px); padding-bottom: clamp(36px, 7vw, 56px); }
html .elementor .hero__poster { object-position: 56% 50%; }
html .elementor .hero__facts { display: none; }
/* sass absolut unten und würde die Knöpfe überdecken, seit die Höhe dem Inhalt folgt */
  html .elementor .hero__frame::after {
    background:
      linear-gradient(90deg, rgba(246, 250, 250, .86) 0%, rgba(246, 250, 250, .62) 55%, rgba(246, 250, 250, .08) 100%),
      linear-gradient(0deg, rgba(246, 250, 250, .45) 0%, rgba(246, 250, 250, 0) 35%);
  }

}
@media (prefers-reduced-motion: reduce) {html .elementor *, html .elementor *::before, html .elementor *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
html .elementor .marquee__track { animation: none; flex-wrap: wrap; width: auto; justify-content: center; gap: 24px 0; }

}


/* ===== Ergänzungen für die Elementor-Fassung ===== */
/* Im Editor (Kopfzeilen-Vorlage) das Handy-Menü als normalen Block zeigen, damit die Links bearbeitbar bleiben */
body.elementor-editor-active .elementor .mobile-menu { display: flex; position: relative; inset: auto; z-index: auto; }
body.elementor-editor-active .elementor .site-header { position: relative; }
body.elementor-editor-active .elementor .hero { padding-top: 0; }
/* Im Editor (Fusszeilen-Vorlage) den schwebenden Nach-oben-Knopf als normales Element zeigen */
body.elementor-editor-active .elementor .to-top { position: relative; right: auto; bottom: auto; margin: 16px; opacity: 1; visibility: visible; transform: none; }
/* Seitentitel des Themes (Hello: .page-header > h1.entry-title) nie auf profetas-Seiten – der Titel steht im Inhalt */
body.ps-landing .page-header, body.page-template-elementor_header_footer .page-header, body.page-template-elementor_canvas .page-header { display: none !important; }
/* Formularmeldungen: Elementor blendet sie nach dem Absenden ein */
html .elementor .form__ok p, html .elementor .form__fehler p { margin: 0; }
