/* Application pages and evidence galleries. */
.application-intro { padding: 58px 0 64px; }
.application-intro-grid,.detail-hero-grid { display:grid; grid-template-columns:minmax(0,.93fr) minmax(0,1.07fr); gap:56px; align-items:center; }
.application-intro h1 { font-size:clamp(40px,4.7vw,65px); }
.application-intro .lead { max-width:640px; }
.application-intro-grid > *, .detail-hero-grid > * { min-width:0; }
.application-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:32px; }
.filter-buttons { display:flex; gap:8px; flex-wrap:wrap; }
.filter-btn { padding:12px 20px; border:1px solid var(--line); border-radius:2px; font-size:13px; color:var(--ink); background:transparent; cursor:pointer; min-height:44px; }
.filter-btn[aria-pressed="true"] { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.app-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.app-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.app-card { min-width:0; background:var(--white); border:1px solid var(--line); display:flex; flex-direction:column; }
.app-card[hidden] { display:none; }
.app-card-visual { display:block; min-width:0; text-decoration:none; overflow:hidden; border-bottom:1px solid var(--line); background:#e7eae0; }
.app-card-visual > * { margin:0; }
.app-card-copy { display:flex; flex:1; flex-direction:column; padding:27px; }
.app-card-copy h3 { font-size:24px; line-height:1.2; letter-spacing:-.025em; margin:14px 0 16px; }
.app-card-copy h3 a { text-decoration:none; color:inherit; }
.app-card-copy h3 a:hover { text-decoration:underline; text-underline-offset:4px; }
.app-card-copy p { color:var(--muted); font-size:15px; line-height:1.65; }
.app-card-copy .text-link { margin-top:auto; padding-top:20px; }
.section-actions { margin-top:32px; }
.detail-hero { padding:32px 0 60px; }
.detail-hero .breadcrumb { margin-bottom:36px; }
.detail-hero h1 { font-size:clamp(38px,4.45vw,61px); line-height:1.07; letter-spacing:-.045em; }
.detail-hero .lead { font-size:19px; }
.detail-hero .actions { margin-top:30px; }
.detail-hero .micro { max-width:440px; }
.detail-jumps { border-block:1px solid var(--line); background:var(--paper); }
.detail-jumps .wrap { display:flex; gap:30px; flex-wrap:wrap; padding-block:6px; }
.detail-jumps a { font-size:13px; padding-block:15px; text-decoration:none; }
.detail-jumps a:hover { text-decoration:underline; text-underline-offset:5px; }
.problem-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:80px; align-items:start; }
.problem-grid .section-head { margin-bottom:24px; }
.fit-panel { padding:32px; background:#e9eddf; border-top:3px solid #819b42; }
.fit-panel p { font-size:18px; margin:18px 0 0; }
.process-timeline { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:64px; }
.process-timeline li { display:grid; grid-template-columns:48px minmax(0,1fr); gap:24px; padding:28px 0; border-top:1px solid var(--line); }
.process-index { font:13px var(--mono); padding-top:5px; color:#6b773d; }
.process-timeline h3 { font-size:24px; line-height:1.25; margin:0 0 12px; }
.process-timeline p { font-size:16px; color:var(--muted); margin:0; }
.pilot-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.pilot-grid .section-head { margin-bottom:24px; }
.pilot-grid .lead { color:#d4dccd; }
.pilot-prerequisites-title { margin-top:38px; font-size:20px; }
.prerequisites { padding-left:19px; color:#c2cdba; }
.prerequisites li { margin-bottom:13px; }
.measure-panel { border:1px solid #5e6d5c; padding:32px; }
.measure-panel > .mini-label { color:var(--accent); }
.measure-panel article { padding:25px 0; border-bottom:1px solid #42513f; }
.measure-panel article:last-child { border-bottom:0; padding-bottom:0; }
.measure-panel h3 { font-size:22px; margin:0 0 12px; }
.measure-panel p { color:#c2cdba; font-size:16px; margin:0; }
.case-next { display:flex; align-items:center; justify-content:space-between; gap:50px; }
.case-next .section-head { margin-bottom:0; }
.case-next .btn { flex-shrink:0; }
.case-story { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:44px; }
.case-story article { border-top:1px solid var(--line); padding-top:24px; }
.case-story h2 { font-size:27px; margin:16px 0; }
.case-story p { color:var(--muted); font-size:17px; }
.evidence-figure { margin:0; min-width:0; background:var(--white); border:1px solid var(--line); }
.evidence-zoom { display:block; width:100%; padding:0; border:0; position:relative; background:#dce0d4; cursor:zoom-in; }
.evidence-zoom img { display:block; width:100%; height:auto; margin:0; }
.zoom-hint { position:absolute; bottom:14px; right:14px; padding:9px 12px; border:1px solid #465842; background:#182622ed; color:#f5f6ee; font:11px var(--mono); }
.evidence-figure figcaption { padding:14px 18px; font-size:12px; color:var(--muted); line-height:1.5; }
.evidence-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.evidence-gallery > :first-child { grid-column:1/-1; }
.project-card > .evidence-figure,.project-card > .crane-flow { border:0; border-bottom:1px solid var(--line); }
.project-card > .evidence-figure .evidence-zoom { height:250px; display:flex; align-items:center; overflow:hidden; }
.project-card > .evidence-figure img { object-fit:contain; height:100%; width:100%; }
.project-card > .evidence-figure figcaption { min-height:52px; }
.crane-flow { background:#182622; color:#eef3e8; padding:24px; margin:0; border:1px solid #405545; }
.crane-stages { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding-block:35px; }
.crane-stage { min-width:0; }
.crane-stage .mini-label { font-size:9px; line-height:1.4; }
.crane-stage strong { display:block; font-size:12px; font-weight:500; line-height:1.5; margin-top:12px; }
.crane-window { position:relative; height:115px; overflow:hidden; background:linear-gradient(90deg,transparent 49%,#61736855 50%,transparent 51%),linear-gradient(0deg,transparent 49%,#61736855 50%,transparent 51%),#24382d; background-size:20px 20px; margin-top:14px; border:1px solid #597365; }
.crane-window i { position:absolute; width:70%; height:5px; top:20%; left:10%; background:#a4b48d; transform:rotate(-12deg); }
.crane-window b { position:absolute; left:52%; top:18%; height:66%; width:4px; background:#8b9c7c; transform:rotate(-12deg); }
.crane-window em { position:absolute; width:24%; height:21%; bottom:10%; left:44%; border:2px solid #dae779; }
.stage-1 i,.stage-1 b { transform:none; }
.stage-1 em { outline:1px dashed #abc997; outline-offset:6px; }
.stage-2 { background:repeating-linear-gradient(0deg,transparent 0 20px,#415742 20px 21px),#24382d; }
.stage-2 i,.stage-2 b,.stage-2 em { left:12%; height:7px; border:0; transform:none; background:#dae779; width:70%; top:25%; }
.stage-2 b { top:50%; width:40%; background:#789c76; }
.stage-2 em { top:75%; width:58%; background:#a9be83; }
.crane-flow figcaption { font-size:11px; color:#b7c9b8; border-top:1px solid #405545; padding-top:15px; }
.image-dialog { width:min(1480px,96vw); max-height:95vh; padding:0; border:1px solid var(--line); background:var(--paper); color:var(--ink); }
.image-dialog::backdrop { background:#08150fe6; }
.image-dialog-head { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:12px 20px; border-bottom:1px solid var(--line); }
.image-dialog-head p { margin:0; font-size:13px; }
.image-dialog-close { flex-shrink:0; width:44px; height:44px; background:transparent; border:1px solid var(--line); font-size:23px; cursor:pointer; }
.image-dialog img { display:block; width:100%; height:auto; }
@media(max-width:1000px) {
 .application-intro-grid,.detail-hero-grid { gap:32px; }
 .app-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .app-grid.featured > :last-child { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; }
 .problem-grid,.pilot-grid { gap:36px; }
 .case-story { gap:24px; }
 .case-next { gap:30px; }
}
@media(max-width:760px) {
 .application-intro-grid,.detail-hero-grid { grid-template-columns:1fr; gap:36px; }
 .application-intro,.detail-hero { padding:30px 0 44px; }
 .application-intro h1,.detail-hero h1 { font-size:42px; }
 .detail-hero .breadcrumb { margin-bottom:25px; }
 .application-toolbar { align-items:flex-start; flex-direction:column; gap:16px; }
 .filter-btn { padding:10px 14px; }
 .problem-grid,.pilot-grid,.case-story { grid-template-columns:1fr; gap:32px; }
 .detail-jumps .wrap { gap:0 20px; }
 .detail-jumps a { font-size:12px; padding-block:12px; }
 .process-timeline { grid-template-columns:1fr; }
 .case-next { display:block; }
 .case-next .btn { margin-top:28px; }
 .case-story article { padding-top:22px; }
 .evidence-gallery { grid-template-columns:1fr; }
 .evidence-gallery > :first-child { grid-column:auto; }
}
@media(max-width:540px) {
 .app-grid,.app-grid.two,.app-grid.featured { grid-template-columns:1fr; }
 .app-grid.featured > :last-child { grid-column:auto; display:flex; }
 .app-card-copy { padding:24px; }
 .app-card-copy h3 { font-size:25px; }
 .process-timeline li { gap:12px; grid-template-columns:36px 1fr; }
 .fit-panel,.measure-panel { padding:25px; }
 .crane-flow { padding:17px; }
 .crane-stages { gap:8px; }
 .crane-window { height:88px; }
 .crane-stage strong { font-size:11px; }
 .image-dialog-head { padding:10px; gap:10px; }
 .zoom-hint { font-size:9px; bottom:8px; right:8px; padding:6px 9px; }
}
@media(prefers-reduced-motion:no-preference) {
 .app-card-visual > * { transition:transform .2s ease; }
 .app-card:hover .app-card-visual > * { transform:translateY(-3px); }
}

/* Wenig Aufwand für Sie */
.effort-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:28px; align-items:stretch; }
.effort-ours { padding:36px; border:1px solid var(--line); background:var(--paper); }
.effort-list li span { display:block; margin-top:4px; }
.effort-list li strong { display:block; }
.effort-yours .status-list li { border-color:rgba(23,33,26,.18); color:#2c3a2f; }
.effort-note { max-width:760px; margin:28px 0 0; color:var(--muted); font-size:15px; }
.section.effort-band { padding-block:56px; background:var(--accent); color:var(--ink); }
.effort-band .eyebrow { color:#485832; }
.effort-band h3 { margin:10px 0 18px; font-size:30px; line-height:1.15; }
.effort-band .text-link { color:var(--ink); }
.effort-band-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:56px; align-items:start; }
.effort-band .status-list li { border-color:rgba(23,33,26,.18); color:#2c3a2f; }
@media(max-width:760px) {
 .effort-grid,.effort-band-grid { grid-template-columns:1fr; gap:24px; }
 .effort-ours,.effort-yours { padding:25px; }
 .effort-band h3 { font-size:25px; }
}

/* Referenzen (nur freigegebene Einträge) */
.ref-wall { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.ref-item { display:flex; flex-direction:column; gap:18px; padding:28px; background:var(--paper); color:var(--ink); text-decoration:none; }
a.ref-item:hover { background:var(--paper-deep); }
.ref-mark { height:56px; display:flex; align-items:center; }
.ref-mark img { max-height:48px; max-width:160px; object-fit:contain; filter:grayscale(1); opacity:.85; }
a.ref-item:hover .ref-mark img { filter:none; opacity:1; }
.ref-name { font-size:20px; font-weight:600; }
.ref-meta { display:flex; flex-direction:column; gap:3px; font-size:13px; color:var(--muted); }
.ref-meta strong { color:var(--ink); font-size:14px; }
.ref-quotes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin-top:36px; }
.ref-quote { margin:0; padding:28px; border-left:3px solid var(--accent); background:var(--paper-deep); }
.ref-quote p { margin:0 0 12px; font-size:18px; }
.ref-quote cite { font-style:normal; font-size:13px; color:var(--muted); }
@media(max-width:1000px) { .ref-wall { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:540px) { .ref-wall,.ref-quotes { grid-template-columns:1fr; } }

/* Prototyping-Galerie: gleich große Kacheln */
.evidence-gallery.proto-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); }
.evidence-gallery.proto-gallery > :first-child { grid-column:auto; }
.proto-gallery .evidence-zoom { aspect-ratio:1/1; overflow:hidden; }
.proto-gallery .evidence-zoom img { height:100%; object-fit:cover; }
@media(max-width:760px) { .evidence-gallery.proto-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:540px) { .evidence-gallery.proto-gallery { grid-template-columns:1fr; } }
/* Research block on Über uns (#forschung) */
.research-intro { align-items:start; margin-bottom:24px; }
.research-copy p { margin:0 0 16px; color:var(--muted); line-height:1.6; }
.research-copy p:first-child { color:var(--ink); font-size:18px; }
.evidence-gallery.research-gallery { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:960px) { .evidence-gallery.research-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:540px) { .evidence-gallery.research-gallery { grid-template-columns:1fr; } }
/* Reference wall: works with any number of entries, no grey filler for empty cells */
.ref-wall { background:none; border:none; gap:0; grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr)); }
.ref-item { border:1px solid var(--line); margin:0 -1px -1px 0; }
/* Plant safety + pickup points (/kameras/) */
.metric-row { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); margin:8px 0 6px; }
.metric { background:var(--paper); padding:20px 22px; display:flex; flex-direction:column; gap:6px; }
.metric strong { font-size:clamp(26px,3vw,36px); line-height:1; color:var(--ink); font-weight:600; letter-spacing:-.01em; }
.metric span { font-size:14px; color:var(--muted); line-height:1.4; }
.metric-note { font-size:13px; color:var(--muted); margin:0 0 28px; }
.evidence-gallery.werk-gallery > :first-child { grid-column:1/-1; }
.vlm-sample p { font-size:15px; line-height:1.6; margin:12px 0 0; }
@media(max-width:760px){ .metric-row{grid-template-columns:repeat(2,minmax(0,1fr));} }
.evidence-gallery.werk-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); }
.werk-gallery > :not(:first-child) .evidence-zoom { aspect-ratio:4/3; overflow:hidden; }
.werk-gallery > :not(:first-child) .evidence-zoom img { height:100%; object-fit:cover; }
@media(max-width:760px){ .evidence-gallery.werk-gallery{grid-template-columns:1fr;} }
/* Call flow (telefon #erfahrung) */
.call-flow-wrap { margin-top:28px; padding:24px; border:1px solid var(--line); background:var(--paper); }
.call-flow { list-style:none; margin:14px 0 0; padding:0; counter-reset:cf; display:grid; gap:0; }
.call-flow li { counter-increment:cf; position:relative; padding:14px 0 14px 46px; border-top:1px solid var(--line); display:grid; grid-template-columns:minmax(150px,220px) 1fr minmax(180px,280px); gap:6px 20px; align-items:baseline; }
.call-flow li::before { content:counter(cf,decimal-leading-zero); position:absolute; left:0; top:14px; font-family:var(--mono); font-size:13px; color:var(--muted); }
.call-flow li strong { color:var(--ink); }
.call-flow li span { color:var(--muted); font-size:15px; line-height:1.5; }
.call-flow li em { font-style:normal; font-size:13px; color:var(--muted); border-left:2px solid var(--accent); padding-left:10px; }
@media(max-width:860px){ .call-flow li { grid-template-columns:1fr; } }
.metric-row.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.evidence-gallery.count-gallery > :first-child { grid-column:auto; }
@media(max-width:760px){ .metric-row.three{grid-template-columns:1fr;} .evidence-gallery.count-gallery{grid-template-columns:1fr;} }
/* Project index (/projekte/#mehr) */
a.more-card { display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:background .15s ease, border-color .15s ease; }
a.more-card:hover { background:var(--paper-deep); }
a.more-card p { flex:1; }
a.more-card .text-link { margin-top:12px; }
.talk-figure { display:flex; flex-direction:column; gap:12px; align-self:center; }
.talk-figure p { margin:0; color:var(--muted); }
.report-lines { list-style:none; margin:6px 0 14px; padding:0; display:grid; gap:4px; font-family:var(--mono); font-size:13px; color:var(--ink); }
.vlm-sample .metric-row, .research-intro .metric-row { margin-top:16px; }
@media(min-width:761px){ .research-intro .metric-row.three { grid-template-columns:1fr; } }
.evidence-gallery.werkstatt-gallery { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:960px){ .evidence-gallery.werkstatt-gallery{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media(max-width:540px){ .evidence-gallery.werkstatt-gallery{grid-template-columns:1fr;} }
/* Team card portrait */
.team-card { display:flex; flex-direction:column; gap:10px; }
.team-photo { width:120px; height:150px; object-fit:cover; object-position:50% 20%; border-radius:4px; margin-bottom:6px; }
/* History timeline (/ueber-uns/#historie) */
.timeline { list-style:none; margin:0; padding:0; border-left:2px solid var(--line); display:flex; flex-direction:column; }
.timeline li { display:grid; grid-template-columns:120px minmax(0,1fr); gap:20px; padding:16px 0 16px 24px; position:relative; border-bottom:1px solid var(--line); }
.timeline li:last-child { border-bottom:0; }
.timeline li::before { content:''; position:absolute; left:-7px; top:22px; width:12px; height:12px; border-radius:50%; background:var(--accent); border:2px solid var(--ink); }
.tl-year { font-family:var(--mono); font-size:14px; color:var(--muted); padding-top:2px; font-variant-numeric:tabular-nums; }
.timeline h3 { margin:0 0 4px; font-size:18px; }
.timeline p { margin:0 0 6px; color:var(--muted); max-width:68ch; }
@media(max-width:640px){ .timeline li{grid-template-columns:1fr;gap:4px;} }
/* History as a three-phase pipeline (/ueber-uns/#historie) */
.phase-pipe { list-style:none; margin:0 0 40px; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; counter-reset:none; }
.phase-pipe li { position:relative; }
.phase-pipe a { display:flex; flex-direction:column; gap:6px; height:100%; padding:18px 20px; border:1px solid var(--line); border-radius:14px; text-decoration:none; color:inherit; background:var(--paper, transparent); transition:border-color .2s; }
.phase-pipe a:hover { border-color:var(--accent); }
.phase-pipe strong { font-size:19px; line-height:1.25; }
.phase-pipe span:last-child { color:var(--muted); font-size:15px; }
.phase-pipe li:not(:last-child)::after { content:'→'; position:absolute; right:-11px; top:50%; transform:translateY(-50%); font-size:18px; font-weight:600; color:var(--ink); background:var(--paper); line-height:1; padding:2px 0; z-index:1; }
.tl-phase { margin:0 0 36px; scroll-margin-top:96px; }
.tl-phase:last-child { margin-bottom:0; }
.tl-phase-head { display:flex; flex-direction:column; gap:4px; margin:0 0 12px; font-size:22px; }
@media(max-width:820px){ .phase-pipe{grid-template-columns:1fr;} .phase-pipe li:not(:last-child)::after{content:'↓'; right:auto; left:24px; top:auto; bottom:-14px; transform:none;} }
/* Home: three projects with measured results */
.home-proof .card-metric { display:flex; flex-direction:column; gap:4px; margin:4px 0 14px; padding:12px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); width:100%; }
.home-proof .card-metric strong { font-size:34px; line-height:1.05; font-variant-numeric:tabular-nums; }
.home-proof .card-metric span { font-size:13px; color:var(--muted); line-height:1.45; }
.home-proof .project-body h3 { font-size:22px; }
/* Parking: plate recognition evidence under the main block */
.evidence-gallery.anpr-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:32px; }
@media(max-width:700px){ .evidence-gallery.anpr-gallery { grid-template-columns:1fr; } }
.evidence-gallery.anpr-gallery > * { grid-column:auto; }
/* Local SEO chart (/projekte/#seo) */
.seo-chart-wrap { margin-top:28px; border:1px solid var(--line); background:var(--white); padding:16px 16px 10px; }
.seo-chart { width:100%; height:auto; display:block; }
.seo-chart .axis line { stroke:var(--line); }
.seo-chart text { font-family:var(--mono); font-size:11px; fill:var(--muted); }
.seo-chart .mark { stroke:var(--ink); stroke-dasharray:4 4; }
.seo-chart .mark-t { fill:var(--ink); font-size:11px; }
.seo-legend { display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; font-size:13px; color:var(--muted); margin:8px 0 0; }
.seo-legend .sw { display:inline-block; width:14px; height:10px; margin-right:-8px; }
.seo-legend .sw.bar { background:var(--accent); } .seo-legend .sw.line { height:2px; background:var(--ink); }

/* KI-Büro: Demo-Video */
.video-figure video { display:block; width:100%; height:auto; border-radius:14px; background:#0c1613; box-shadow:0 18px 50px rgba(12,22,19,.18); }

/* Produkt-Tour (B2B-System, KI-Büro) */
.tour { display:grid; grid-template-columns:minmax(260px,330px) minmax(0,1fr); gap:28px; align-items:start; }
.tour-steps { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.tour-step { position:relative; display:grid; grid-template-columns:34px 1fr; gap:10px; width:100%; padding:12px 14px 14px; text-align:left; font:inherit; color:var(--muted); background:transparent; border:1px solid transparent; border-radius:12px; cursor:pointer; overflow:hidden; transition:background .25s,border-color .25s,color .25s; }
.tour-step:hover { background:rgba(255,254,250,.6); color:var(--ink); }
.tour-step:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
.tour-step[aria-selected="true"] { background:var(--white); border-color:transparent; color:var(--ink); box-shadow:0 1px 2px rgba(24,38,34,.05),0 10px 28px rgba(24,38,34,.07); }
.tour-num { font-family:var(--mono); font-size:12px; padding-top:3px; color:var(--muted); }
.tour-txt strong { display:block; font-size:15px; font-weight:600; line-height:1.35; }
.tour-txt span { display:block; max-height:0; overflow:hidden; opacity:0; font-size:13px; line-height:1.5; transition:max-height .45s ease,opacity .35s ease,margin .35s ease; }
.tour-step[aria-selected="true"] .tour-txt span { max-height:110px; opacity:1; margin-top:4px; }
.tour-bar { position:absolute; left:14px; bottom:8px; height:2px; width:0; max-width:calc(100% - 28px); border-radius:2px; background:var(--ink); opacity:0; }
.tour-step[aria-selected="true"] .tour-bar { opacity:1; animation:tourbar var(--tour-int,6800ms) linear forwards; }
.tour.is-paused .tour-step[aria-selected="true"] .tour-bar, .tour.is-static .tour-step[aria-selected="true"] .tour-bar { animation-play-state:paused; }
.tour.is-static .tour-step[aria-selected="true"] .tour-bar { width:100%; animation:none; opacity:.25; }
@keyframes tourbar { from { width:0; } to { width:calc(100% - 28px); } }
.tour-window { position:sticky; top:96px; background:#e9ebe4; border:0; border-radius:14px; overflow:hidden; box-shadow:0 0 0 1px rgba(24,38,34,.06),0 30px 80px rgba(24,38,34,.18),0 8px 22px rgba(24,38,34,.08); }
.tour-chrome { display:flex; align-items:center; gap:12px; height:40px; padding:0 10px 0 16px; background:#f3f3ef; border-bottom:1px solid rgba(24,38,34,.07); }
.tour-dots { display:flex; gap:7px; } .tour-dots i { width:11px; height:11px; border-radius:50%; background:#d9dbd3; }
.tour-dots i:nth-child(1){background:#ef8a80;} .tour-dots i:nth-child(2){background:#f1c560;} .tour-dots i:nth-child(3){background:#8fcf7a;}
.tour-url { flex:1; min-width:0; text-align:center; font-size:12px; color:var(--muted); background:rgba(24,38,34,.05); border:0; border-radius:7px; padding:4px 10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tour-toggle,.tour-full { width:28px; height:28px; display:grid; place-items:center; border:0; border-radius:7px; background:rgba(24,38,34,.06); color:var(--ink); font-size:15px; cursor:pointer; padding:0; }
.tour-toggle:focus-visible,.tour-full:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
.tour-ico-pause { width:10px; height:11px; border-left:3px solid currentColor; border-right:3px solid currentColor; }
.tour.is-paused .tour-ico-pause, .tour.is-static .tour-ico-pause { width:0; height:0; border-left:9px solid currentColor; border-right:0; border-top:6px solid transparent; border-bottom:6px solid transparent; margin-left:3px; }
.tour-view { position:relative; aspect-ratio:16/10; overflow:hidden; background:#f4f5f1; }
.tour-slide { position:absolute; inset:0; opacity:0; transition:opacity .6s ease; }
.tour-slide.is-active { opacity:1; z-index:1; }
.tour-stage { position:absolute; inset:0; transform-origin:0 0; transform:translate(0,0) scale(1); transition:transform 1.25s cubic-bezier(.65,0,.35,1); will-change:transform; }
.tour-stage img { display:block; width:100%; height:100%; object-fit:cover; }
.tour-hl { position:absolute; margin:calc(-8px / var(--s,1)); padding:calc(8px / var(--s,1)); box-sizing:content-box; border-radius:calc(12px / var(--s,1)); box-shadow:0 0 0 200vmax rgba(18,28,25,.42), inset 0 0 0 calc(1px / var(--s,1)) rgba(255,255,255,.7); opacity:0; transition:opacity .6s ease .15s; pointer-events:none; }
.tour-slide.is-zoomed .tour-hl { opacity:1; }
.tour-callout { position:absolute; left:16px; bottom:16px; z-index:3; max-width:min(78%,560px); margin:0; display:flex; align-items:center; gap:10px; padding:10px 14px; font-size:14px; font-weight:600; line-height:1.35; color:var(--ink); background:rgba(255,254,250,.96); border-radius:10px; box-shadow:0 12px 32px rgba(0,0,0,.22); opacity:0; transform:translateY(10px); transition:opacity .45s ease,transform .45s ease; }
.tour-callout-num { font-family:var(--mono); font-size:11px; font-weight:400; color:var(--muted); }
.tour-slide.is-zoomed .tour-callout { opacity:1; transform:none; transition-delay:.35s; }
.tour-cursor { position:absolute; left:0; top:0; z-index:4; width:26px; height:26px; transform:translate(-200px,-200px); transition:transform .9s cubic-bezier(.45,0,.25,1),opacity .3s; filter:drop-shadow(0 3px 5px rgba(0,0,0,.25)); pointer-events:none; }
.tour-ripple { position:absolute; z-index:3; left:0; top:0; width:44px; height:44px; margin:-22px 0 0 -22px; border-radius:50%; border:2px solid rgba(255,255,255,.95); box-shadow:0 0 0 1px rgba(24,38,34,.25); opacity:0; pointer-events:none; }
.tour-ripple.go { animation:tourripple .6s ease-out; }
@keyframes tourripple { from { opacity:.9; transform:scale(.3); } to { opacity:0; transform:scale(1.6); } }
.tour-mobile-text { display:none; }
.tour-note { margin:16px 0 0; font-size:12px; color:var(--muted); }
@media (max-width:900px) {
 .tour { grid-template-columns:1fr; gap:14px; }
 .tour-steps { flex-direction:row; overflow-x:auto; gap:6px; padding-bottom:4px; scroll-snap-type:x mandatory; order:2; }
 .tour-steps li { flex:0 0 auto; scroll-snap-align:start; }
 .tour-step { grid-template-columns:auto; padding:8px 12px 10px; white-space:nowrap; }
 .tour-num { display:none; } .tour-txt span { display:none; }
 .tour-window { position:relative; top:0; order:1; }
 .tour-mobile-text { display:block; margin:0; padding:12px 14px; font-size:14px; color:var(--muted); background:var(--white); border-top:1px solid var(--line); }
 .tour-callout { display:none; }
 .tour-url { font-size:11px; }
}
@media (prefers-reduced-motion: reduce) {
 .tour-stage,.tour-slide,.tour-callout,.tour-hl,.tour-txt span { transition:none !important; }
 .tour-cursor,.tour-ripple { display:none; }
}
.tour-block { margin-top:56px; }
.tour-heading { margin:0 0 20px; font-size:22px; font-weight:600; }

/* Modul-Videos (B2B-System) */
.vtab-row { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.vtab { font:inherit; font-size:14px; font-weight:500; padding:8px 14px; border-radius:999px; border:1px solid var(--line); background:var(--white); color:var(--ink); cursor:pointer; transition:background .2s,color .2s,border-color .2s; }
.vtab:hover { border-color:var(--ink); }
.vtab[aria-selected="true"] { background:var(--ink); color:var(--white); border-color:var(--ink); }
.vtab:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
@media (max-width:640px) { .vtab-row { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; } .vtab { white-space:nowrap; } }

/* Startseite: Weiche (Einstieg über das Problem), 2026-10-16 */
.weiche { align-self:start; border:1px solid var(--line); background:var(--paper); }
.weiche-kicker { margin:0; padding:14px 18px; border-bottom:1px solid var(--line); font-family:var(--mono, ui-monospace, monospace); font-size:12px; letter-spacing:.06em; color:var(--muted); }
.weiche-group { margin:0; padding:10px 18px 6px; font-family:var(--mono, ui-monospace, monospace); font-size:11px; letter-spacing:.06em; color:var(--muted); background:var(--paper-deep); border-bottom:1px solid var(--line); }
.weiche ul { list-style:none; margin:0; padding:0; }
.weiche ul + .weiche-group { border-top:1px solid var(--line); }
.weiche li + li { border-top:1px solid var(--line); }
.weiche a { display:grid; grid-template-columns:1fr auto; gap:2px 14px; padding:11px 18px; color:var(--ink); text-decoration:none; }
.weiche a:hover { background:var(--paper-deep); }
.weiche strong { font-size:15px; font-weight:600; line-height:1.35; }
.weiche span { grid-column:1; font-size:13px; line-height:1.45; color:var(--muted); }
.weiche i { grid-column:2; grid-row:1 / 3; align-self:center; font-style:normal; color:var(--muted); }
.weiche-other { border-top:1px solid var(--line); }
.weiche-other a { background:var(--paper-deep); }
.weiche-foot { margin:0; padding:10px 18px 12px; border-top:1px solid var(--line); font-size:13px; }
.weiche-foot a { display:inline; padding:0; color:var(--muted); text-decoration:underline; text-underline-offset:3px; }
.weiche-foot a:hover { background:none; color:var(--ink); }
.hero-grid:has(.weiche) { align-items:start; }
.hero-grid:has(.weiche) .hero-copy { padding-top:28px; }

/* Hauptmenü mit Aufklapper „Lösungen“, 2026-10-16 */
.nav-drop { position:relative; }
.nav-drop > summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:6px; padding:12px 0; font-size:13px; font-weight:500; }
.nav-drop > summary::-webkit-details-marker { display:none; }
.nav-drop > summary::after { content:'▾'; font-size:10px; color:var(--muted); }
.nav-drop[open] > summary::after { content:'▴'; }
.nav-drop > summary:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:7px; }
.nav-panel { position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%); z-index:60; width:min(640px,92vw); display:grid; grid-template-columns:1fr 1fr; background:var(--paper); border:1px solid var(--line); box-shadow:0 18px 44px rgba(24,38,34,.12); }
.nav-group { padding:14px 0 10px; }
.nav-group + .nav-group { border-left:1px solid var(--line); }
.nav-panel > .nav-group:nth-child(2) { grid-row:span 2; }
.nav-panel > .nav-group:nth-child(3) { border-left:none; border-top:1px solid var(--line); }
.nav-group-label { margin:0; padding:0 18px 6px; font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.main-nav .nav-panel a { display:block; min-height:0; padding:8px 18px; text-decoration:none; }
.main-nav .nav-panel a:hover { background:var(--paper-deep); text-decoration:none; }
.nav-panel strong { display:block; font-size:14px; font-weight:600; color:var(--ink); }
.nav-panel span { display:block; font-size:12px; line-height:1.4; color:var(--muted); }
.nav-foot { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:0 20px; padding:8px 18px; border-top:1px solid var(--line); background:var(--paper-deep); }
.main-nav .nav-foot a { display:inline-block; padding:6px 0; font-size:13px; text-decoration:underline; text-underline-offset:3px; }
@media (max-width: 1190px) {
  .nav-drop { flex:1 0 100%; }
  .nav-drop > summary { min-height:44px; font-size:14px; }
  .nav-panel { position:static; transform:none; width:auto; grid-template-columns:1fr; box-shadow:none; border:none; border-top:1px solid var(--line); margin-bottom:10px; }
  .nav-group + .nav-group { border-left:none; border-top:1px solid var(--line); }
  .nav-panel > .nav-group:nth-child(2) { grid-row:auto; }
  .nav-group-label, .main-nav .nav-panel a, .nav-foot { padding-left:0; padding-right:0; }
  .nav-foot { background:none; }
}

/* Preise, 2026-10-16 */
.hero-grid:not(:has(.hero-art)) { grid-template-columns:minmax(0,1fr); max-width:860px; }
.price-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.price-card { display:flex; flex-direction:column; gap:10px; padding:26px; background:var(--paper); }
.price-card h3 { margin:0; font-size:19px; }
.price-card h3 a { color:var(--ink); text-decoration:none; }
.price-card h3 a:hover { text-decoration:underline; text-underline-offset:4px; }
.price-scope { margin:0; font-size:14px; color:var(--muted); }
.price-row { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:8px 0; border-top:1px solid var(--line); }
.price-row span { font-size:13px; color:var(--muted); }
.price-row strong { font-size:16px; text-align:right; }
.price-market { margin:auto 0 0; padding:10px 12px; background:var(--paper-deep); font-size:13px; line-height:1.5; color:var(--muted); }
.price-market span { display:block; font-family:var(--mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; margin-bottom:2px; }
.price-note { margin:18px 0 0; font-size:13px; color:var(--muted); max-width:820px; }
.pilot-price { margin:28px 0 0; padding-top:18px; border-top:1px solid var(--line); font-size:15px; }
.pilot-price .text-link { margin-left:8px; }
.contact-legal { margin-top:10px; }
.price-tiers, .price-incl { padding-top:8px; border-top:1px solid var(--line); }
.price-tiers p, .price-incl > p:first-child { margin:0 0 4px; font-family:var(--mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.price-tiers div { display:flex; justify-content:space-between; gap:16px; font-size:14px; padding:2px 0; }
.price-tiers div span { color:var(--muted); }
.price-incl ul { margin:0; padding-left:18px; font-size:14px; line-height:1.5; }
.price-incl li { margin:2px 0; }
.price-excl { margin:6px 0 0; font-size:13px; color:var(--muted); }
.price-excl span { color:var(--ink); font-weight:600; }
.integ-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr)); }
.price-credit { margin:0; padding:8px 10px; border-left:3px solid var(--accent); background:var(--paper-deep); font-size:13px; line-height:1.45; }
.rel-current { border-color:var(--ink); }

/* Erfahrung nach Branche, 2026-10-17 */
.branche-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.branche-card { padding:24px; background:var(--paper); scroll-margin-top:110px; }
.branche-card h3 { margin:0 0 10px; font-size:19px; }
.branche-card ul { list-style:none; margin:0; padding:0; }
.branche-card li { padding:8px 0; border-top:1px solid var(--line); font-size:14px; line-height:1.5; }
.branche-card li .text-link { white-space:nowrap; }
.branche-status { display:inline-block; margin-right:4px; padding:1px 6px; font-family:var(--mono); font-size:10px; letter-spacing:.05em; text-transform:uppercase; background:var(--paper-deep); color:var(--muted); }
.branche-chips { display:flex; flex-wrap:wrap; gap:8px; }
.branche-chip { display:inline-block; padding:8px 14px; border:1px solid var(--line); background:var(--paper); color:var(--ink); text-decoration:none; font-size:14px; }
.branche-chip:hover { border-color:var(--ink); }
.branche-card li .text-link { display:inline; min-height:0; padding:0; margin:0; font-size:14px; }
/* Angebundene Systeme, 2026-10-17 */
.sys-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.sys-group { padding:18px 20px; background:var(--paper); }
.sys-group h3 { margin:0 0 6px; font-family:var(--mono); font-size:11px; font-weight:400; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.sys-group p { margin:0; font-size:15px; line-height:1.55; }
#systeme .price-note .text-link, .price-note .text-link { margin-top:0; }
.sys-more { margin-top:14px; padding:16px 20px; border:1px dashed var(--line); background:var(--paper); }
.sys-more h3 { margin:0 0 6px; font-family:var(--mono); font-size:11px; font-weight:400; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.sys-more p { margin:0; font-size:15px; line-height:1.55; }

/* Loop-Videos in Nachweis-Abschnitten (18.10.2026) */
.loop-video { margin:0 0 24px; }
.loop-video video { display:block; width:100%; height:auto; background:#11181a; }

/* Aufwand als Zeile im Kontaktblock (18.10.2026) */
.contact-copy p.contact-effort { margin:22px 0 26px; padding:14px 16px; border-left:3px solid var(--accent); background:var(--paper); color:var(--ink); font-size:15px; line-height:1.55; }
.contact-effort .text-link { display:inline; min-height:0; padding:0; margin:0; font-size:inherit; white-space:nowrap; }

/* Bewegung (18.10.2026). Alles nur ohne „Bewegung reduzieren“; ohne JS bleibt jede Seite vollständig sichtbar. */
.hero h1 .ln { display:block; }
.scroll-progress { position:fixed; top:0; left:0; right:0; height:2px; z-index:60; background:var(--ink); transform:scaleX(0); transform-origin:0 50%; pointer-events:none; }
.hero-field { position:absolute; inset:0; z-index:0; width:100%; height:100%; pointer-events:none; -webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.35),#000 60%); mask-image:linear-gradient(90deg,rgba(0,0,0,.35),#000 60%); opacity:0; transition:opacity 1.2s ease; }
.hero-field.on { opacity:1; }
@media (max-width:700px) { .hero-field { -webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.2),rgba(0,0,0,.7)); mask-image:linear-gradient(90deg,rgba(0,0,0,.2),rgba(0,0,0,.7)); } }
.hero:has(.hero-field) { position:relative; }
.hero:has(.hero-field) > .wrap { position:relative; z-index:1; }
@media (prefers-reduced-motion: no-preference) {
 /* Hero: Kennzeile tippt, Zeilen fahren aus der Maske hoch, Rest folgt */
 .hero .eyebrow { animation:ddc-rise .6s ease .05s both; }
}
@media (prefers-reduced-motion: no-preference) and (min-width: 600px) {
 .hero .eyebrow { animation:none; }
 .hero .eyebrow .type { display:inline-block; overflow:hidden; white-space:nowrap; vertical-align:bottom; border-right:2px solid transparent; padding-right:2px; animation:ddc-type calc(var(--n,12) * 38ms) steps(var(--n,12)) .1s backwards, ddc-caret .55s step-end 0s 6; }
}
@media (prefers-reduced-motion: no-preference) {
 .hero h1 .ln { overflow:hidden; padding-bottom:.1em; margin-bottom:-.1em; }
 .hero h1 .ln > span { display:block; animation:ddc-lineup 1s cubic-bezier(.16,.84,.24,1) calc(.18s + var(--i,0) * .14s) both; }
 .hero h1 .ln:last-child em { background:linear-gradient(var(--accent),var(--accent)) 0 92% / 0 .14em no-repeat; animation:ddc-mark .9s cubic-bezier(.65,0,.35,1) 1.05s forwards; }
 .hero-copy > .lead, .hero-copy > .actions, .hero-copy > .micro { animation:ddc-rise .9s cubic-bezier(.16,.84,.24,1) both; }
 .hero-copy > .lead { animation-delay:.42s; }
 .hero-copy > .actions { animation-delay:.54s; }
 .hero-copy > .micro { animation-delay:.66s; }
 .hero-art { animation:ddc-art 1.1s cubic-bezier(.16,.84,.24,1) .3s both; }
 .hero-art:has(.weiche) { animation:none; }
 /* Weiche: ein Scanstreifen läuft über die Liste, die Zeilen leuchten nacheinander auf */
 .weiche { position:relative; overflow:hidden; animation:ddc-rise .8s cubic-bezier(.16,.84,.24,1) .25s both; }
 .weiche::after { content:''; position:absolute; left:0; right:0; top:0; height:2px; background:var(--accent); box-shadow:0 0 22px 6px rgba(215,236,113,.6); pointer-events:none; animation:ddc-scan 1.9s cubic-bezier(.45,0,.4,1) .55s both; }
 .weiche li { animation:ddc-row .55s cubic-bezier(.16,.84,.24,1) calc(.6s + var(--i,0) * .16s) both; }
 .weiche-group { animation:ddc-slide .55s cubic-bezier(.16,.84,.24,1) calc(.6s + var(--i,0) * .16s) both; }
 .weiche li a { position:relative; transition:background-color .2s ease, box-shadow .25s ease; }
 .weiche li a:hover { box-shadow:inset 3px 0 0 var(--accent); }
 .weiche i { transition:transform .25s cubic-bezier(.3,1.6,.5,1), color .2s; }
 .weiche a:hover i { transform:translate(3px,-3px); color:var(--ink); }
 .btn > span[aria-hidden] { transition:transform .25s cubic-bezier(.3,1.6,.5,1); }
 .btn:hover > span[aria-hidden] { transform:translate(3px,-3px); }
 .btn:not(.secondary):not(.text) { position:relative; overflow:hidden; isolation:isolate; }
 .btn:not(.secondary):not(.text)::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(110deg,transparent 30%,rgba(215,236,113,.28) 50%,transparent 70%); transform:translateX(-120%); }
 .btn:not(.secondary):not(.text):hover::after { transform:translateX(120%); transition:transform .8s cubic-bezier(.3,.6,.3,1); }
 /* Beim Scrollen: Blöcke fahren gestaffelt ein */
 .rv { opacity:0; transform:translateY(26px); }
 :root .rv.in { opacity:1; transform:none; transition:opacity .7s ease var(--d,0s), transform .9s cubic-bezier(.16,.84,.24,1) var(--d,0s); }
 .branche-chip.rv { transform:translateY(12px) scale(.96); }
 .branche-chip { transition:transform .2s ease, border-color .2s, background-color .2s; }
 .branche-chip:hover { transform:translateY(-2px); border-color:var(--ink); }
 /* Projektbilder: Wischblende und ein Scan über das Kamerabild */
 .project-card.rv .evidence-zoom img { clip-path:inset(0 0 100% 0); transform:scale(1.08); }
 .project-card.rv.in .evidence-zoom img { clip-path:inset(0); transform:none; transition:clip-path 1.1s cubic-bezier(.65,0,.35,1) calc(var(--d,0s) + .1s), transform 1.6s cubic-bezier(.16,.84,.24,1) calc(var(--d,0s) + .1s); }
 .project-card.rv .evidence-zoom::after { content:''; position:absolute; left:0; right:0; top:0; height:2px; background:var(--accent); box-shadow:0 0 18px 5px rgba(215,236,113,.65); opacity:0; pointer-events:none; }
 .project-card.rv.in .evidence-zoom::after { animation:ddc-scan 1.5s cubic-bezier(.45,0,.4,1) calc(var(--d,0s) + 1s) both; }
 /* Pilot-Schritte: Linie zieht durch, Nummer leuchtet kurz auf */
 .step::before { content:''; position:absolute; left:0; right:0; top:-1px; height:2px; background:var(--ink); transform:scaleX(0); transform-origin:0 50%; }
 .step.rv.in::before { animation:ddc-draw 1.4s cubic-bezier(.65,0,.35,1) calc(var(--d,0s) + .15s) both; }
 .step.rv.in .number { animation:ddc-chip 1.2s ease calc(var(--d,0s) + .5s); }
 /* Zahlen zählen hoch */
 .counting { font-variant-numeric:tabular-nums; }
 /* Lichtkegel unter dem Mauszeiger auf Karten */
 .spot { position:relative; isolation:isolate; }
 .spot::before { content:''; position:absolute; inset:0; z-index:3; pointer-events:none; mix-blend-mode:multiply; background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(215,236,113,.55),rgba(215,236,113,0) 65%); opacity:0; transition:opacity .35s ease; }
 .spot:hover::before { opacity:1; }
 .project-card.spot, .app-card.spot, .card.spot { transition:transform .35s cubic-bezier(.16,.84,.24,1), box-shadow .35s ease; }
 .project-card.spot:hover, .app-card.spot:hover { transform:translateY(-4px); box-shadow:0 18px 40px -24px rgba(24,38,34,.45); }
}
@keyframes ddc-type { from { max-width:0; } to { max-width:calc(var(--n,12) * (1ch + .075em) + 6px); } }
@keyframes ddc-caret { 0%,100% { border-right-color:currentColor; } 50% { border-right-color:transparent; } }
@keyframes ddc-lineup { from { transform:translateY(105%); } to { transform:none; } }
@keyframes ddc-mark { to { background-size:100% .14em; } }
@keyframes ddc-rise { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@keyframes ddc-art { from { opacity:0; transform:translateY(24px) scale(.985); } to { opacity:1; transform:none; } }
@keyframes ddc-slide { from { opacity:0; transform:translateX(16px); } to { opacity:1; transform:none; } }
@keyframes ddc-row { from { opacity:0; transform:translateX(16px); background-color:rgba(215,236,113,.0); } 40% { background-color:rgba(215,236,113,.45); } to { opacity:1; transform:none; background-color:rgba(215,236,113,0); } }
@keyframes ddc-scan { 0% { top:0; opacity:0; } 8% { opacity:1; } 88% { opacity:1; } 100% { top:100%; opacity:0; } }
@keyframes ddc-draw { 0% { transform:scaleX(0); opacity:1; } 60% { transform:scaleX(1); opacity:1; } 100% { transform:scaleX(1); opacity:0; } }
@keyframes ddc-chip { 0%,100% { background:transparent; color:var(--muted); } 30%,60% { background:var(--accent); color:var(--ink); } }
@media print { .rv { opacity:1 !important; transform:none !important; } .hero-field,.scroll-progress { display:none; } }

/* Projekt LOOP auf /robotik/ (18.10.2026) */
.loop-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:56px; align-items:center; margin-top:12px; }
.loop-visual { position:relative; }
.loop-svg { display:block; width:100%; max-width:520px; height:auto; margin:0 auto; overflow:visible; }
.loop-track { fill:none; stroke:rgba(215,236,113,.18); stroke-width:2; stroke-dasharray:2 8; }
.loop-run { fill:none; stroke:var(--accent); stroke-width:3; stroke-linecap:round; stroke-dasharray:14 86; transform:rotate(-90deg); transform-origin:260px 260px; filter:drop-shadow(0 0 6px rgba(215,236,113,.7)); }
.loop-dot { fill:var(--accent); filter:drop-shadow(0 0 8px rgba(215,236,113,.9)); }
.loop-spoke { stroke:rgba(215,236,113,.22); stroke-width:1.5; stroke-dasharray:3 5; fill:none; }
.loop-node circle { fill:#1f302b; stroke:rgba(215,236,113,.55); stroke-width:2; }
.loop-node.is-live circle { fill:var(--accent); stroke:var(--accent); }
.loop-node.is-demo circle, .loop-node.is-proto circle { stroke-dasharray:6 5; }
.loop-node.is-dev circle { stroke:rgba(189,200,184,.55); stroke-dasharray:2 5; }
.loop-node text { font-family:var(--mono, ui-monospace, monospace); font-size:13px; letter-spacing:.08em; fill:#e8eee4; }
.loop-node.is-live text { fill:var(--ink); font-weight:600; }
.loop-human circle { fill:#16231f; stroke:rgba(245,243,238,.35); stroke-width:1.5; }
.loop-human text { font-family:var(--mono, ui-monospace, monospace); font-size:13px; letter-spacing:.08em; fill:#f5f3ee; }
.loop-human text.sub { font-family:inherit; font-size:12px; letter-spacing:0; fill:#bdc8b8; }
.loop-steps { list-style:none; margin:0; padding:0; counter-reset:loop; }
.loop-step { position:relative; padding:16px 0 16px 46px; border-top:1px solid var(--dark-line, rgba(255,255,255,.12)); counter-increment:loop; }
.loop-step:last-child { border-bottom:1px solid var(--dark-line, rgba(255,255,255,.12)); }
.loop-step::before { content:counter(loop,decimal-leading-zero); position:absolute; left:0; top:19px; font-family:var(--mono, ui-monospace, monospace); font-size:12px; color:#bdc8b8; }
.loop-step h3 { margin:6px 0 4px; font-size:19px; color:var(--paper); }
.loop-step p { margin:0; font-size:15px; color:#c2ccbd; }
.loop-step .text-link { display:inline; min-height:0; padding:0; margin:0; font-size:inherit; color:var(--accent); }
.loop-status { display:inline-block; padding:2px 8px; font-family:var(--mono, ui-monospace, monospace); font-size:10px; letter-spacing:.06em; text-transform:uppercase; border:1px solid rgba(215,236,113,.6); color:var(--accent); }
.loop-step.is-live .loop-status { background:var(--accent); color:var(--ink); border-color:var(--accent); }
.loop-step.is-dev .loop-status { border-color:rgba(189,200,184,.55); color:#bdc8b8; }
@media (max-width:900px) { .loop-grid { grid-template-columns:1fr; gap:28px; } .loop-svg { max-width:380px; } }
@media (prefers-reduced-motion: no-preference) {
 .loop-run { animation:loop-run 8s linear infinite; }
 .loop-node circle { animation:loop-node 8s ease-in-out infinite; animation-delay:calc(var(--k) * 2s); transform-box:fill-box; transform-origin:center; }
 .loop-human circle { animation:loop-breathe 4s ease-in-out infinite; transform-box:fill-box; transform-origin:center; }
}
@media (prefers-reduced-motion: reduce) { .loop-dot { display:none; } }
@keyframes loop-run { from { stroke-dashoffset:0; } to { stroke-dashoffset:-100; } }
@keyframes loop-node { 0%,100% { transform:scale(1); filter:none; } 4% { transform:scale(1.12); filter:drop-shadow(0 0 14px rgba(215,236,113,.85)); } 14% { transform:scale(1); filter:none; } }
@keyframes loop-breathe { 0%,100% { stroke-opacity:.35; } 50% { stroke-opacity:.8; } }

/* KI-Berater (18.10.2026) */
.berater-form { position:relative; display:grid; gap:14px; max-width:860px; margin-top:8px; }
.berater-label { font-size:14px; color:#c2ccbd; }
.berater-form textarea { width:100%; min-height:120px; padding:16px 18px; border:1px solid rgba(215,236,113,.35); border-radius:2px; background:#132019; color:var(--paper); font:inherit; font-size:16px; line-height:1.5; resize:vertical; }
.berater-form textarea::placeholder { color:#8fa093; }
.berater-form textarea:focus { outline:2px solid var(--accent); outline-offset:2px; border-color:var(--accent); }
.berater-consent { display:flex; gap:10px; align-items:flex-start; font-size:13px; line-height:1.5; color:#bdc8b8; }
.berater-consent input { margin-top:3px; width:16px; height:16px; accent-color:var(--accent); flex:none; }
.berater-consent .text-link { display:inline; min-height:0; padding:0; margin:0; font-size:inherit; color:var(--accent); }
.berater-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px 20px; }
.berater-status { margin:0; font-size:14px; color:var(--accent); }
.berater-form.is-loading::after { content:''; position:absolute; left:0; right:0; top:44px; height:2px; background:var(--accent); box-shadow:0 0 18px 4px rgba(215,236,113,.6); animation:berater-scan 1.4s ease-in-out infinite alternate; pointer-events:none; }
@keyframes berater-scan { from { transform:translateY(0); } to { transform:translateY(110px); } }
@media (prefers-reduced-motion: reduce) { .berater-form.is-loading::after { animation:none; } }
.berater-result { max-width:980px; margin-top:34px; padding-top:28px; border-top:1px solid rgba(255,255,255,.12); }
.berater-result:focus { outline:none; }
.berater-summary { font-size:19px; line-height:1.5; color:var(--paper); max-width:760px; }
.berater-matches { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:14px; margin:22px 0; }
.berater-match { display:flex; flex-direction:column; gap:8px; padding:20px; border:1px solid rgba(215,236,113,.3); background:#1f302b; color:var(--paper); text-decoration:none; transition:border-color .2s, transform .25s cubic-bezier(.16,.84,.24,1); }
.berater-match:hover { border-color:var(--accent); transform:translateY(-3px); }
.berater-kind { align-self:flex-start; padding:2px 8px; font-family:var(--mono, ui-monospace, monospace); font-size:10px; letter-spacing:.06em; text-transform:uppercase; background:var(--accent); color:var(--ink); }
.berater-match strong { font-size:16px; line-height:1.35; }
.berater-why { font-size:14px; color:#c2ccbd; }
.berater-go { margin-top:auto; font-size:13px; color:var(--accent); }
.berater-step, .berater-qhead, .berater-none { color:#dfe6da; }
.berater-questions { margin:0 0 22px; padding-left:20px; color:#c2ccbd; }

/* Footer-Links: Marker, Abstände, Trennlinien (18.10.2026, Inhaber: „нужны отступы и значки“) */
.footer-links { gap:0; width:100%; }
.footer-links a { display:flex; align-items:baseline; gap:12px; width:100%; padding:9px 0; border-bottom:1px solid rgba(255,255,255,.08); line-height:1.4; }
.footer-links a::before { content:''; flex:0 0 6px; width:6px; height:6px; background:var(--accent); transform:translateY(-2px); transition:transform .2s; }
.footer-links a:hover::before { transform:translateY(-2px) scale(1.5); }
@media (max-width:760px) { .footer-links a { padding:12px 0; font-size:15px; } }
.loop-photo { margin:28px auto 0; max-width:520px; }
.loop-photo img { display:block; width:100%; height:auto; border:1px solid rgba(215,236,113,.35); filter:saturate(.9) contrast(1.02); }
.loop-photo figcaption { margin-top:10px; font-size:14px; line-height:1.5; color:#c2ccbd; }
.loop-photo .loop-status { margin-right:8px; }
@media (prefers-reduced-motion: no-preference) { .loop-photo img { transition:transform .6s cubic-bezier(.16,.84,.24,1), border-color .3s; } .loop-photo:hover img { transform:scale(1.015); border-color:var(--accent); } }

/* Sprachwahl im Video (18.10.2026) */
.vlang { display:flex; gap:6px; justify-content:flex-end; margin:0 0 10px; }
.vlang .vtab { min-width:46px; padding:6px 12px; font-family:var(--mono, ui-monospace, monospace); font-size:12px; letter-spacing:.06em; }
.section.dark .vlang .vtab { background:transparent; color:#dfe6da; border-color:rgba(255,255,255,.25); }
.section.dark .vlang .vtab[aria-pressed="true"], .vlang .vtab[aria-pressed="true"] { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.section.dark .vlang .vtab[aria-pressed="true"] { background:var(--accent); color:var(--ink); border-color:var(--accent); }

/* Kostenloser Erst-Check + Förderung, 2026-10-18 */
.erst-check .section-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; }
.foerder-grid { margin-bottom:28px; }
.foerder-grid .card { display:flex; flex-direction:column; }
.foerder-grid .card p { flex:1; }
.foerder-grid .card .text-link { margin-top:14px; align-self:flex-start; }

/* Hero mit Video (Startseite, /kameras/), 2026-10-18 */
.hero.has-video { position:relative; overflow:hidden; background:var(--ink); color:var(--paper); }
.hero-media { position:absolute; inset:0; z-index:0; background:var(--ink); }
.hero-media video { display:block; width:100%; height:100%; object-fit:cover; }
.hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(24,38,34,.95) 0%,rgba(24,38,34,.84) 40%,rgba(24,38,34,.5) 100%); }
.hero.has-video > .wrap { position:relative; z-index:1; }
.hero.has-video h1 { color:var(--paper); }
.hero.has-video .hero-copy h1 em { color:var(--accent); }
.hero.has-video .lead { color:#dfe6da; }
.hero.has-video .eyebrow, .hero.has-video .micro { color:#bdc8b8; }
.hero.has-video .btn { color:var(--ink); background:var(--accent); border-color:var(--accent); }
.hero.has-video .btn:hover { background:var(--accent-hover); border-color:var(--accent-hover); }
.hero.has-video .btn.secondary { color:var(--paper); background:transparent; border-color:#6e7c6b; }
.hero.has-video .btn.secondary:hover { background:rgba(255,255,255,.08); }
.hero.has-video :focus-visible { outline-color:var(--accent); }
.hero.has-video .weiche { box-shadow:0 24px 60px rgba(0,0,0,.35); }
.hero.has-video .proof-panel { box-shadow:0 24px 60px rgba(0,0,0,.35); }
.hero-media-cap { position:relative; z-index:1; margin:28px auto 0; font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:#9fae9b; }
@media (max-width:900px) { .hero-media::after { background:linear-gradient(180deg,rgba(24,38,34,.86),rgba(24,38,34,.95)); } }

/* LOOP als Scroll-Szenen (nur Desktop, JS setzt .is-scrolly), 2026-10-18 */
.loop-flow { min-width:0; }
.loop-flow .loop-photo { margin:32px 0 0; }
.loop-prog { fill:none; stroke:var(--accent); stroke-width:6; stroke-linecap:round; stroke-dasharray:0 100; transform:rotate(-90deg); transform-origin:260px 260px; opacity:0; transition:stroke-dasharray .8s cubic-bezier(.16,.84,.24,1), opacity .4s; }
.loop-grid.is-scrolly { align-items:start; }
.loop-grid.is-scrolly .loop-visual { position:sticky; top:calc(50vh - 260px); }
.loop-grid.is-scrolly .loop-step { min-height:38vh; padding-top:22px; opacity:.38; transition:opacity .45s ease; }
.loop-grid.is-scrolly .loop-step.is-active { opacity:1; }
.loop-grid.is-scrolly .loop-step h3 { font-size:24px; }
.loop-grid.is-scrolly .loop-prog { opacity:1; }
.loop-grid.is-scrolly .loop-run, .loop-grid.is-scrolly .loop-dot { display:none; }
.loop-grid.is-scrolly .loop-node circle { animation:none; transition:transform .5s cubic-bezier(.16,.84,.24,1), filter .5s; transform-box:fill-box; transform-origin:center; }
.loop-grid.is-scrolly .loop-node.is-active circle { transform:scale(1.14); filter:drop-shadow(0 0 14px rgba(215,236,113,.75)); stroke:var(--accent); }
.loop-grid.is-scrolly .loop-human circle { transition:filter .5s, stroke .5s; }
.loop-grid.is-scrolly .loop-human.is-active circle { filter:drop-shadow(0 0 16px rgba(215,236,113,.6)); stroke:var(--accent); }

/* DDC Box (18.10.2026): Schema im Hero, Karten mit Stand, Ideenliste */
.box-panel { background:var(--ink); border-radius:6px; padding:18px 14px; }
.box-svg { display:block; width:100%; height:auto; }
.box-io rect { fill:#1f302b; stroke:rgba(215,236,113,.45); stroke-width:1.5; }
.box-io text, .box-sub { font-family:var(--mono, ui-monospace, monospace); font-size:12px; letter-spacing:.08em; fill:#e8eee4; }
.box-wire { fill:none; stroke:var(--accent); stroke-width:2; stroke-dasharray:6 10; opacity:.85; }
.box-core > rect:first-child { fill:#22362f; stroke:var(--accent); stroke-width:2; filter:drop-shadow(0 0 10px rgba(215,236,113,.35)); }
.box-chip { fill:none; stroke:rgba(215,236,113,.6); stroke-width:1.5; stroke-dasharray:4 4; }
.box-title { font-family:var(--sans); font-size:20px; font-weight:600; letter-spacing:.06em; fill:var(--accent); }
@media (prefers-reduced-motion: no-preference) {
 .box-wire { animation:box-flow 1.6s linear infinite; animation-delay:calc(var(--k) * -.25s); }
 .box-io rect { animation:box-pulse 3.2s ease-in-out infinite; animation-delay:calc(var(--k) * .35s); }
}
@keyframes box-flow { to { stroke-dashoffset:-32; } }
@keyframes box-pulse { 0%,100% { stroke:rgba(215,236,113,.35); } 50% { stroke:rgba(215,236,113,.95); } }
.box-grid .box-card { display:flex; flex-direction:column; }
.box-card h3 { margin-top:6px; }
.box-status { list-style:none; margin:14px 0 18px; padding:0; display:grid; gap:8px; font-size:15px; }
.box-st { display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; }
.box-badge { flex:0 0 auto; padding:2px 8px; font-family:var(--mono, ui-monospace, monospace); font-size:10px; letter-spacing:.06em; text-transform:uppercase; border:1px solid var(--ink); border-radius:2px; color:var(--ink); }
.box-st.is-live .box-badge { background:var(--accent); border-color:var(--accent); }
.box-st.is-proto .box-badge { border-style:dashed; }
.box-st .text-link { margin-left:6px; }
.box-cta { margin-top:auto; }
.box-cta .btn { width:100%; }
.box-ideas { list-style:none; margin:8px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:10px 28px; }
.box-ideas li { position:relative; padding-left:20px; }
.box-ideas li::before { content:""; position:absolute; left:0; top:.6em; width:8px; height:8px; background:var(--accent); border:1px solid var(--ink); }

/* 19.10.2026 Verknüpfung: Menü „Für wen“ (eine Spalte) und Block „Weiter“ vor dem Kontakt */
.nav-panel.nav-roles { grid-template-columns:1fr; width:min(380px,92vw); }
.weiter-grid .weiter-card h3 { font-size:17px; margin:0 0 10px; }
.weiter-list { list-style:none; margin:0; padding:0; display:grid; gap:9px; font-size:15px; line-height:1.4; }
.weiter-list li { display:flex; flex-direction:column; gap:3px; }
.weiter-list .text-link { min-height:0; padding:0; }
.weiter-st { font-family:var(--mono, ui-monospace, monospace); font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.weiche-group a { color:inherit; text-decoration:none; }
.weiche-group a:hover { text-decoration:underline; text-underline-offset:4px; }

/* 21.10.2026 Ratgeber: Artikel (Lesetext, Kurzantwort, Inhalt, Tabelle), Übersicht und Block auf Lösungsseiten */
.ratgeber-hero h1 { max-width:900px; }
.ratgeber-hero .lead { max-width:760px; }
.ratgeber-article { padding-top:8px; }
.ratgeber-prose { max-width:760px; }
.ratgeber-prose h2 { font-size:clamp(24px,2.6vw,30px); line-height:1.2; letter-spacing:-.02em; margin:48px 0 16px; scroll-margin-top:100px; }
.ratgeber-prose p, .ratgeber-prose li { font-size:17px; line-height:1.75; }
.ratgeber-prose ul, .ratgeber-prose ol { padding-left:22px; margin:0 0 18px; }
.ratgeber-prose li { margin-bottom:6px; }
.ratgeber-prose a:not(.btn) { text-decoration:underline; text-underline-offset:3px; }
.ratgeber-answer { border:1px solid var(--ink); background:var(--white); padding:22px 26px; margin:0 0 32px; box-shadow:4px 4px 0 var(--accent); }
.ratgeber-answer p { margin:8px 0 0; font-size:18px; line-height:1.6; }
.ratgeber-toc { border-left:3px solid var(--accent); padding:4px 0 4px 18px; margin:0 0 8px; }
.ratgeber-toc ol { margin:8px 0 0; padding-left:20px; }
.ratgeber-toc li { font-size:15px; margin-bottom:2px; }
.ratgeber-table { overflow-x:auto; margin:8px 0 22px; border:1px solid var(--line); background:var(--white); }
.ratgeber-table table { border-collapse:collapse; width:100%; min-width:520px; font-size:15px; line-height:1.45; }
.ratgeber-table th, .ratgeber-table td { text-align:left; vertical-align:top; padding:11px 14px; border-bottom:1px solid var(--line); }
.ratgeber-table thead th { font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); font-weight:400; background:var(--paper); }
.ratgeber-table tbody th { font-weight:600; }
.ratgeber-table tbody tr:last-child > * { border-bottom:0; }
.ratgeber-sources li { font-size:15px; }
.ratgeber-note { margin-top:40px; padding-top:16px; border-top:1px solid var(--line); color:var(--muted); font-size:14px !important; }
.ratgeber-card h3 { font-size:19px; line-height:1.3; margin:14px 0 10px; }
.ratgeber-card h3 a { text-decoration:none; }
.ratgeber-card h3 a:hover { text-decoration:underline; }
.ratgeber-card .mini-label { color:var(--muted); }
@media (max-width:700px) {
 .ratgeber-answer { padding:18px; box-shadow:3px 3px 0 var(--accent); }
 .ratgeber-prose p, .ratgeber-prose li { font-size:16px; }
}
