/* 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-fill,minmax(260px,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); }
