/* M1 · Fäden – eine ruhige, helle Seite: kurze Botschaften, viel Raum, Fadentexturen.
   Alle Maße laufen fließend zwischen den Artboards Mobile (390 px) und Desktop (1440 px). */


*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.oneno-page {
  --bg: #FFFFFF;
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font);
  font-size: 1rem;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
/* Texturen dürfen über den Rand laufen; abgeschnitten wird nur seitlich am Fensterrand. */
.page { overflow: hidden; }
@supports (overflow: clip) { .page { overflow: clip; } }
h1, h2, h3, p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
h1, h2 { font-family: inherit; color: var(--ink); font-weight: 300; letter-spacing: -0.035em; text-wrap: balance; hyphens: manual; }
p { text-wrap: pretty; }
img { display: block; max-width: none; }
a { color: var(--ink); transition: color .15s ease, border-color .15s ease; }
a:hover { color: var(--muted); }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; border-radius: 1px; }
section[id] { scroll-margin-top: 24px; }

.wrap { width: 100%; max-width: 1440px; margin-inline: auto; padding-inline: var(--pad); }
.lbl {
  font-family: var(--mono);
  font-size: var(--lbl);
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.2;
  color: var(--muted);
}
.lead { font-size: var(--lead); line-height: 1.55; color: var(--muted); }

.skip {
  position: absolute; left: var(--pad); top: 12px; z-index: 10;
  padding: 8px 12px; background: var(--ink); color: var(--bg);
  font-size: 14px; text-decoration: none;
  transform: translateY(-200%);
}
.skip:focus { transform: none; color: var(--bg); }

/* ---------- Kopfzeile ---------- */
.site-header { position: relative; z-index: 2; }
.site-header .wrap { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 16px; min-height:max(var(--head),72px); padding-block:12px; }
.brand { font-size: var(--brand); font-weight: 500; letter-spacing: -0.02em; line-height: 1.2; text-decoration: none; }
/* Vorschlag Wortmarke: kräftig, Großbuchstaben, gesperrt. Zum Zurücknehmen nur diesen Block löschen. */
.brand { font-weight: 650; letter-spacing: .16em; text-transform: uppercase; }
.footer-id { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 20px; }
.footer-brand { font-weight: 650; letter-spacing: .16em; text-transform: uppercase; color: var(--ink); }
/* Bildmarke links neben dem Namen, etwas höher als die Großbuchstaben. */
.brand, .footer-brand { display: inline-flex; align-items: center; gap: .55em; }
.brand-mark { width: auto; height: 1.45em; flex: none; }

/* Navigation: Ankerlinks und „Demo vereinbaren“. Schmal klappen die Links in ein Menü (siehe js/oneno.js). */
.site-nav { display:flex; flex-wrap:wrap; align-items:center; gap:12px 32px; }
.nav-links { display:flex; flex-wrap:wrap; gap:8px 28px; font-size:15px; }
.nav-links a { text-decoration:none; color:var(--ink); }
.nav-links a:hover { color:var(--muted); }
.nav-toggle { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 4px; border:0; background:none; color:var(--ink); font:inherit; font-size:15px; cursor:pointer; }
.nav-toggle[hidden] { display:none; }
.nav-toggle svg { width:22px; height:22px; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; }
@media (min-width: 900px) { .nav-toggle { display:none !important; } }
@media (max-width: 899px) {
  /* Menü und Schaltfläche bleiben neben dem Logo, die Links öffnen sich darunter über die volle Breite. */
  .has-menu .site-nav { display:contents; }
  .has-menu .nav-toggle { margin-left:auto; }
  .has-menu .nav-links { display:none; order:3; flex-basis:100%; flex-direction:column; gap:0; }
  .has-menu.is-open .nav-links { display:flex; }
  .has-menu .nav-links a { display:block; padding:12px 0; border-top:1px solid var(--rule); }
}
@media (max-width: 420px) { .brand > span { display:none; } }

/* Schaltflächen */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:44px; padding:10px 20px; border:1px solid transparent; border-radius:3px; font-size:15px; font-weight:500; line-height:1.2; letter-spacing:-0.005em; text-decoration:none; white-space:nowrap; transition:background-color .15s ease, border-color .15s ease, color .15s ease; }
.btn-primary { background:var(--btn); color:var(--btn-text); }
.btn-primary:hover { background:var(--btn-hover); color:var(--btn-text); }
.btn-secondary { border-color:var(--rule); color:var(--ink); }
.btn-secondary:hover { border-color:var(--ink); color:var(--ink); }
.btn svg { width:18px; height:18px; flex:none; transition:transform .2s ease; }
.btn:hover svg { transform:translateX(3px); }
.btn-large { min-height:52px; padding:14px 28px; font-size:var(--lead); }
@media (prefers-reduced-motion: reduce) { .btn svg { transition:none; } .btn:hover svg { transform:none; } }
.visually-hidden { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* ---------- 1 · Hero ---------- */
/* Text links, Produktansicht rechts: man sieht sofort, dass es um Software für Kanzleien geht. */
.hero { position: relative; }
.hero .wrap { display: flex; flex-direction: column; gap: var(--hero-gap); padding-top: var(--hero-pt); padding-bottom: 64px; }
.hero-copy { position: relative; z-index: 1; max-width: 36rem; }
.hero h1 { margin-top: 20px; font-size: var(--hero-h); line-height: 1.08; }
.hero h1 span { display: block; }
.hero-accent { color: var(--accent-text); }
.hero .lead { max-width: 34rem; margin-top: var(--p-mt); font-size: var(--lead); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: var(--close-mt); }
.hero-note { margin-top: 14px; font-size: 14px; color: var(--muted); }
.hero-visual { position: relative; width: 100%; max-width: 760px; }
/* Foto als Fläche, der Beispielvorgang liegt davor. */
.hero-photo { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: 35% 30%; border-radius: var(--photo-radius); }
@media (min-width: 1000px) {
  .hero .wrap { flex-direction: row; align-items: center; }
  .hero-copy { flex: 1 1 44%; }
  .hero-visual { flex: 1 1 56%; margin-right: calc(-1 * var(--pad) - 40px); }
  .hero-photo { aspect-ratio: 5 / 4; }
}

/* Beispielvorgang: schmale Karte, am Desktop über der linken unteren Ecke des Screenshots. */
.case-card { position: relative; z-index: 1; width: calc(100% - 24px); max-width: 360px; margin: -72px 0 0 12px; padding: 20px 22px; background: var(--bg); border: 1px solid var(--rule); border-radius: 3px; box-shadow: var(--shadow-float); font-size: 14px; line-height: 1.4; }
.case-client { font-size: 16px; font-weight: 500; color: var(--ink); }
.case-meta { margin-top: 4px; font-size: 14px; color: var(--muted); }
.case-due { display: block; margin-top: 2px; color: var(--ink); }
.case-progress { display: grid; gap: 8px; margin-top: 16px; color: var(--muted); font-family: var(--mono); font-size: 12px; letter-spacing: .02em; }
.case-bar { display: block; height: 4px; border-radius: 2px; background: var(--tint); overflow: hidden; }
.case-bar span { display: block; height: 100%; width: calc(var(--done) * 100%); background: var(--status-done); }
.case-items { display: grid; gap: 0; margin-top: 14px; border-top: 1px solid var(--rule); }
.case-items li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 10px 0; border-bottom: 1px solid var(--rule); }
.case-items li:last-child { border-bottom: 0; padding-bottom: 0; }
.case-item { flex: 1 1 12em; color: var(--ink); }
.case-note { color: var(--muted); }
.case-mark { flex: none; width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--status-done); }
.is-done .case-mark { background: var(--status-done) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4.5 8.2 2.3 2.3 4.7-4.9' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat; }
.is-open .case-mark { border-color: var(--status-open); border-style: dashed; }
.case-badge { margin-left: 26px; flex-basis: 100%; color: var(--status-open); font-size: 13px; }
@media (min-width: 480px) { .case-badge { margin-left: 0; flex-basis: auto; } }
@media (min-width: 1000px) {
  .case-card { position: absolute; left: -64px; bottom: -40px; width: 340px; margin: 0; }
}

/* Leiste unter dem Hero: drei Einsatzbereiche */
.strip { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.strip-list { display: grid; gap: 20px; padding-block: 28px; }
.strip-list li { display: grid; align-content: start; gap: 10px; }
.strip-list p:last-child { color: var(--ink); }
@media (min-width: 768px) {
  .strip-list { grid-template-columns: repeat(3, 1fr); gap: 0; padding-block: 32px; }
  .strip-list li { padding-inline: 28px; border-left: 1px solid var(--rule); }
  .strip-list li:first-child { padding-left: 0; border-left: 0; }
}

/* ---------- Separate tools and shared context ---------- */
.context-story { position:relative; }
.context-stage { position:relative; }
.problem, .ansatz { text-align:center; padding:100px var(--pad); }
.problem .wrap, .ansatz .wrap { display:flex; flex-direction:column; align-items:center; padding:0; }
.problem h2, .ansatz h2 { max-width:760px; font-size:var(--h2); line-height:1.05; }
.problem .lead, .ansatz .lead { max-width:44ch; margin-top:var(--p-mt); }
.problem .lead { max-width:50ch; }
.disconnected-systems { display:flex; justify-content:center; gap:24px; padding:24px; pointer-events:none; }
.system-window { width:116px; height:116px; flex:none; border:1px solid #bbb9b0; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--bg); }
.system-icon { width:27px; height:27px; color:var(--muted); stroke:currentColor; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; }
.system-label { margin-top:10px; font-size:12px; color:var(--muted); }
.approach-visual { margin-top:var(--band-mt); }
/* Foto unter der Problemszene: breiter, flacher Ausschnitt. */
.photo-band { max-width:1120px; margin:0 auto; padding-inline:var(--pad); box-sizing:content-box; }
.photo-band img { width:100%; height:auto; aspect-ratio:16 / 10; object-fit:cover; border-radius:var(--photo-radius); }
@media (min-width:768px) { .photo-band img { aspect-ratio:21 / 8; } }
@media (prefers-reduced-motion:no-preference) {
  .context-story.is-orbiting { --stage-height:clamp(600px,100svh,1100px); }
  .is-orbiting .problem { position:relative; height:var(--stage-height); padding:0 var(--pad); display:flex; align-items:center; justify-content:center; }
  .is-orbiting .problem .wrap { transform:translateY(-12px); }
  .is-orbiting .disconnected-systems { position:absolute; inset:0; padding:0; display:block; }
  .is-orbiting .system-window { position:absolute; top:50%; left:50%; margin:-58px; will-change:transform; }
}
@media(max-width:600px) {
  .system-window { width:68px; height:68px; }
  .system-icon { width:22px; height:22px; }
  .system-label { font-size:11px; margin-top:5px; }
  .disconnected-systems { gap:12px; }
  .is-orbiting .system-window { margin:-34px; }
  .problem h2, .ansatz h2 { max-width:230px; }
  .problem .lead, .ansatz .lead { max-width:230px; }
  .problem .lead { max-width:300px; }
}
/* Produktansichten: schlichter Rahmen wie im Hero, Bildunterschrift darunter. */
/* Nebeneinander; ein Klick öffnet die Ansicht groß. */
.product-shots { display: grid; gap: 40px clamp(24px, 3vw, 48px); width: 100%; max-width: 1120px; margin-inline: auto; text-align: left; }
@media (min-width: 900px) { .product-shots { grid-template-columns: repeat(3, 1fr); max-width: 1280px; } }
.shot img { width: 100%; height: auto; border: 1px solid var(--rule); border-radius: 3px; box-shadow: 12px 20px 32px rgba(31, 30, 27, .14); }
.shot figcaption { margin-top: 14px; font-size: 15px; color: var(--muted); }
.shot-zoom { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.shot-zoom img { transition: transform .25s ease, box-shadow .25s ease; }
@media (hover: hover) { .shot-zoom:hover img { transform: scale(1.03); box-shadow: 16px 26px 40px rgba(31, 30, 27, .2); } }
.shot-zoom:focus-visible { outline: 2px solid var(--ink); outline-offset: 6px; }
.lightbox { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: clamp(16px, 4vw, 56px); border: 0; background: transparent; }
.lightbox::backdrop { background: rgba(12, 35, 53, .82); }
.lightbox[open] { display: grid; place-items: center; }
.lightbox img { max-width: 100%; max-height: calc(100vh - 2 * clamp(16px, 4vw, 56px)); width: auto; height: auto; border-radius: 3px; box-shadow: 0 24px 60px rgba(0, 0, 0, .35); cursor: zoom-out; }
.lightbox-close { position: fixed; top: 16px; right: 16px; display: grid; place-items: center; width: 44px; height: 44px; padding: 10px; border: 0; border-radius: 50%; background: var(--bg); color: var(--ink); cursor: pointer; }
.lightbox-close svg { width: 22px; height: 22px; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; }
@media (prefers-reduced-motion: reduce) { .shot-zoom img { transition: none; } .shot-zoom:hover img { transform: none; } }

/* ---------- 4 · Vision ---------- */
/* Das Fadennetz umschließt die Aussage. Es skaliert mit der Höhe des Abschnitts:
   1440 × 800 px am Desktop, auf schmalen Fenstern bleiben die Bögen ober- und unterhalb sichtbar. */
.vision {
  position: relative; isolation: isolate;
  display: flex; align-items: center;
  min-height: var(--vision-h);
  padding-block: 64px;
  text-align: center;
}
.vision-net {
  position: absolute; z-index: -1;
  top: 0; bottom: 0; left: 50%;
  width: calc(var(--vision-h) * 1.8); height:100%; transform: translateX(-50%);
  pointer-events: none;
}
/* Breiter als das Artboard: Ränder des Netzes weich auslaufen lassen statt hart abzuschneiden */
@media (min-width: 1441px) {
  .vision-net {
    -webkit-mask-image: linear-gradient(to right, transparent, #000 12%, #000 88%, transparent);
            mask-image: linear-gradient(to right, transparent, #000 12%, #000 88%, transparent);
  }
}
.vision .wrap { display: flex; flex-direction: column; align-items: center; }
.vision h2 { max-width: 900px; font-size: var(--h2); line-height: 1.05; }

/* ---------- Wo wir anfangen ---------- */
.focus { padding-block: var(--close-pad) 0; }
.focus .wrap { display: flex; flex-direction: column; align-items: flex-start; }
.focus h2 { max-width: 900px; font-size: var(--h2); line-height: 1.05; }
.focus .lead { max-width: 36rem; margin-top: var(--p-mt); }
.focus-row { display: grid; gap: 24px; width: 100%; margin-top: var(--band-mt); }
.focus-card { --card-pad: clamp(24px, 2.5vw, 36px); padding: var(--card-pad); border: 1px solid var(--rule); border-radius: 3px; box-shadow: 12px 20px 32px rgba(31, 30, 27, .08); }
.focus-card h3 { margin: 0 0 10px; font-family: inherit; color: var(--ink); font-size: var(--lead); font-weight: 500; letter-spacing: -0.01em; line-height: 1.3; }
.focus-card p { color: var(--muted); }
.focus-photo { width: calc(100% + 2 * var(--card-pad)); max-width: none; height: auto; aspect-ratio: 3 / 2; margin: calc(-1 * var(--card-pad)) calc(-1 * var(--card-pad)) var(--card-pad); object-fit: cover; border-radius: 3px 3px 0 0; }
/* Keimender Samen: auf dem Handy über den Karten, breit zwischen ihnen. */
.seed { order: -1; justify-self: center; width: 84px; height: auto; overflow: visible; }
.seed-soil { fill: none; stroke: var(--road-edge); stroke-width: 2; stroke-linecap: round; }
.seed-body { fill: var(--seed); }
.seed-stem { fill: none; stroke: var(--leaf-dark); stroke-width: 2.5; stroke-linecap: round; }
.seed-leaf { fill: var(--leaf); stroke: var(--leaf-dark); stroke-width: 1.5; stroke-linejoin: round; }
.seed-vein { fill: none; stroke: var(--leaf-dark); stroke-width: 1; stroke-linecap: round; opacity: .6; }
@media (min-width: 800px) {
  .focus-row { grid-template-columns: 1fr auto 1fr; align-items: stretch; gap: 16px; }
  .seed { order: 0; align-self: center; width: 120px; }
}
/* Wachsen beim Hineinscrollen: erst der Stängel, dann öffnen sich die Blätter. */
@media (prefers-reduced-motion: no-preference) {
  .seed.is-waiting .seed-stem { stroke-dasharray: 1; stroke-dashoffset: 1; }
  .seed.is-waiting .seed-leaf, .seed.is-waiting .seed-vein { opacity: 0; transform: scale(.2); }
  .seed-stem { stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 1s ease-out; }
  .seed-leaf, .seed-vein { transform-box: view-box; transform-origin: 60px 82px; transition: transform .9s cubic-bezier(.2,.8,.2,1) .8s, opacity .6s ease .8s; }
}

/* ---------- 4b · Roadmap ----------
   Breit: eine Straße führt von links unten nach rechts oben, die Schritte hängen an dünnen Linien daran.
   Schmal: die Straße läuft senkrecht links, die Schritte stehen untereinander daneben. */
.roadmap-section { padding-block: var(--close-pad); }
.roadmap-section .wrap { display: flex; flex-direction: column; align-items: flex-start; }
.roadmap-section h2 { max-width: 900px; margin-top: 16px; font-size: var(--h2); line-height: 1.05; }
.roadmap-section .lead { max-width: 36rem; margin-top: var(--p-mt); }
.roadmap-stage { position: relative; width: calc(100% - 2 * var(--pad)); max-width: 1200px; margin: var(--band-mt) auto 0; }
.road { display: none; }
.road path { fill: none; }
.road-edge { stroke: var(--road-edge); stroke-width: 66; stroke-linecap: round; }
.road-surface { stroke: var(--road); stroke-width: 54; stroke-linecap: round; }
.road-line { stroke: var(--bg); stroke-width: 2.5; stroke-dasharray: 14 12; stroke-dashoffset: -22; }
.road-leader { stroke: var(--muted); stroke-width: 1.5; stroke-dasharray: 1.5 4; stroke-linecap: round; }
.road-drop { stroke: var(--muted); stroke-width: 1.5; }
.road-marker { fill: var(--bg); stroke: var(--logo-900); stroke-width: 2; }
.road-marker.is-now { fill: var(--logo-900); }
/* Start, Zwischenhalt und Ziel liegen auf der Straße. */
.road-start { fill: var(--bg); stroke: var(--logo-900); stroke-width: 5; }
.road-stop { fill: var(--bg); }
.road-goal { fill: var(--bg); stroke: var(--logo-900); stroke-width: 3; }
.road-goal-dot { fill: var(--logo-900); }

/* Schmal: senkrechte Straße links, sie beginnt beim ersten Schritt und endet am Ziel. */
.roadmap { position: relative; display: grid; gap: 40px; padding-left: 64px; }
.roadmap li { position: relative; }
.roadmap li:not(:last-child)::before {
  content: ""; position: absolute; left: -58px; top: 8px; bottom: -48px; width: 24px;
  background: repeating-linear-gradient(var(--bg) 0 12px, transparent 12px 22px) center / 2px 100% no-repeat, var(--road);
  box-shadow: 0 0 0 5px var(--road-edge);
}
/* Nur das erste Stück hat oben einen Rand; die folgenden sparen ihn aus, damit an den Stößen keine Naht entsteht. */
.roadmap li:not(:first-child)::before { box-shadow: 5px 0 0 var(--road-edge), -5px 0 0 var(--road-edge), 0 5px 0 var(--road-edge); }
.roadmap li:first-child::before { border-radius: 12px 12px 0 0; }
.roadmap li:nth-last-child(2)::before { border-radius: 0 0 12px 12px; }
.roadmap li::after { content: ""; position: absolute; z-index: 1; left: -54px; top: 0; width: 16px; height: 16px; border: 2px solid var(--logo-900); border-radius: 50%; background: var(--bg); box-sizing: border-box; }
.roadmap li[aria-current]::after { border-width: 5px; }
.roadmap li:last-child::after { left: -62px; top: -8px; width: 32px; height: 32px; border-width: 3px; background: radial-gradient(var(--logo-900) 0 6px, var(--bg) 6.5px); }
.roadmap h3 { margin: 10px 0 6px; font-family: inherit; color: var(--ink); font-size: var(--lead); font-weight: 500; letter-spacing: -0.01em; line-height: 1.3; }
.roadmap li > p:last-child { color: var(--muted); }
@media (min-width: 1280px) {
  .roadmap-stage { aspect-ratio: 1200 / 760; margin-top: 0; }
  .road { display: block; position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
  .roadmap { position: absolute; inset: 0; display: block; padding: 0; }
  .roadmap li:not(:last-child)::before, .roadmap li::after, .roadmap li:last-child::after { content: none; }
  .roadmap li {
    position: absolute; width: 300px; text-align: right;
    right: calc(100% - var(--x) / 1200 * 100%);
    top: calc(var(--y) / 760 * 100%);
    transform: translateY(-.55em);
  }
  .roadmap li > p:last-child { font-size: 15px; line-height: 1.5; }
}

/* ---------- Philosophie ---------- */
/* Redaktionell wie eine Missions-Sektion: Haarlinie oben, links Label und Überschrift, rechts der Text. */
.philosophy { padding-block: var(--close-pad) 0; }
.philosophy-grid { display: grid; gap: 28px; padding-top: clamp(28px, 3vw, 44px); border-top: 1px solid var(--rule); }
.philosophy h2 { margin-top: 16px; font-size: clamp(32px, 2.4vw + 18px, 52px); line-height: 1.05; color: var(--logo-900); text-wrap: balance; }
.philosophy-text { display: grid; gap: 20px; max-width: 60ch; }
.philosophy-text p { font-size: var(--lead); line-height: 1.6; color: var(--muted); }
.philosophy-text p:first-child { font-size: clamp(20px, 0.6vw + 17px, 24px); line-height: 1.45; letter-spacing: -0.01em; color: var(--ink); }
@media (min-width: 900px) {
  .philosophy-grid { grid-template-columns: 5fr 6fr; column-gap: clamp(48px, 8.333%, 120px); }
  /* Erster Absatz beginnt auf Höhe der Überschrift, nicht des Labels. */
  .philosophy-text { padding-top: calc(var(--lbl) * 1.2 + 16px + .3em); }
}

/* ---------- 4c · Team ---------- */
.team { padding-block: 0 var(--close-pad); }
.team .wrap { display: flex; flex-direction: column; align-items: flex-start; }
.team h2 { max-width: 760px; margin-top: 16px; font-size: var(--h2); line-height: 1.05; }
.team-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 32px var(--partners-gap); width: 100%; margin-top: var(--band-mt); }
.team-list li { display: flex; flex-direction: column; gap: 12px; }
.team-list img { width: 100%; max-width: 160px; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 50%; }
.team-list span { font-size: var(--lead); color: var(--ink); }

/* ---------- Worauf Sie sich verlassen können ---------- */
.assurance { padding-block: var(--close-pad) 0; }
.assurance h2 { max-width: 900px; font-size: var(--h2); line-height: 1.05; }
.assurance-head { display: grid; gap: 32px; }
.assurance-photo { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--photo-radius); }
@media (min-width: 900px) { .assurance-head { grid-template-columns: 1fr 1fr; align-items: end; gap: clamp(48px, 6vw, 96px); } }
.assurance-row { display: grid; gap: 32px; margin-top: var(--band-mt); }
.assurance-item { display: flex; flex-direction: column; gap: 10px; padding-top: 20px; border-top: 1px solid var(--rule); }
.assurance-item h3 { margin: 0; font-family: inherit; color: var(--ink); font-size: var(--lead); font-weight: 500; letter-spacing: -0.01em; line-height: 1.3; }
.assurance-item p { color: var(--muted); }
@media (min-width: 768px) { .assurance-row { grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 3vw, 48px); } }
/* Partnerlogos in der Spalte „Verankert in Wien“. */
.partner-logos { --partner-logo-h: 36px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; margin-top: 12px; }
.partner-logos img { width: auto; height: var(--partner-logo-h); filter: grayscale(1); opacity: .8; transition: opacity .15s ease; }
.partner-logos li:hover img, .partner-logos li:hover .partner-wordmark { opacity: 1; }
/* u:seed has no published logo file, so it is set as a wordmark at logo height. */
.partner-logos .partner-wordmark { display: block; font-size: calc(var(--partner-logo-h) * .5); font-weight: 600; letter-spacing: -0.02em; line-height: 1; color: var(--muted); opacity: .8; transition: opacity .15s ease; }
/* The HCW file has more white space around the mark, so it needs more height to match. */
.partner-logos .logo-hcw { height: calc(var(--partner-logo-h) * 1.35); margin-block: calc(var(--partner-logo-h) * -.175); }

/* ---------- 6 · Gespräch ---------- */
/* Gesprächsfoto als ruhiger Hintergrund, dunkel überlagert, damit der Text lesbar bleibt. */
.closing { position: relative; isolation: isolate; overflow: hidden; padding-block: var(--close-pad); color: var(--on-photo); }
.closing-photo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 70% 40%; }
.closing::after { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--photo-overlay); }
.closing h2 { color: var(--on-photo); }
.closing .lead { color: var(--on-photo-muted); }
.closing .btn-primary { background: var(--on-photo); color: var(--btn); }
.closing .btn-primary:hover { background: var(--on-photo-muted); color: var(--btn); }
.closing :focus-visible { outline-color: var(--on-photo); }
.closing .wrap { display: flex; flex-direction: column; align-items: flex-start; }
.closing h2 { max-width: 980px; font-size: var(--h1); line-height: 1.04; }
.closing .lead { max-width: 40rem; margin-top: var(--p-mt); }
.closing .btn { margin-top: var(--close-mt); }

/* ---------- Fußzeile ---------- */
.site-footer { border-top: 1px solid var(--rule); font-size: 13px; line-height: 1.2; color: var(--muted); }
.site-footer .wrap { display: flex; flex-direction: column; gap: 12px; padding-block: var(--foot-pad); }
.site-footer nav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 28px; }
.site-footer a { color: var(--muted); text-decoration: none; }
.site-footer a:hover { color: var(--ink); }
@media (min-width: 640px) {
  .site-footer .wrap { flex-direction: row; align-items: center; justify-content: space-between; }
}

/* ---------- Ausblenden beim Weiterscrollen ----------
   Jeder Abschnitt blendet langsam aus, während er oben aus dem Fenster läuft.
   Das Ausblenden hängt direkt an der Scrollposition: zurückscrollen blendet wieder ein.
   Browser ohne scroll-gesteuerte Animationen übernimmt das Skript am Seitenende. */
@keyframes oneno-fade-out { to { opacity: 0; } }
@media screen and (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .fade-on-scroll {
      animation: oneno-fade-out linear both;
      animation-timeline: view();
      animation-range: exit 0% exit 85%;
    }
  }
}
