:root {
  --bg: #f4f7f5;
  --surface: #ffffff;
  --ink: #17342d;
  --muted: #60736d;
  --line: #d9e3df;
  --accent: #0b755d;
  --accent-2: #dcefe8;
  --shadow: 0 12px 32px rgba(15, 52, 43, .10);
  --radius: 18px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; color: var(--ink); background: var(--bg); }
a { color: inherit; }
.site-header { background: linear-gradient(135deg, #0d5f4f, #17342d); color: white; padding: 18px 0; position: sticky; top: 0; z-index: 30; box-shadow: 0 4px 18px rgba(0,0,0,.14); }
.wrap { width: min(1380px, calc(100% - 32px)); margin: 0 auto; }
.nav { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.brand { display: flex; gap: 12px; align-items: center; text-decoration: none; }
.brand-mark { width: 38px; height: 38px; border-radius: 11px; background: #f6c65b; color: #17342d; display:grid; place-items:center; font-weight:900; }
.brand strong { display:block; font-size: 1.02rem; }
.brand small { opacity:.8; }
.nav-links { display:flex; gap:8px; flex-wrap:wrap; }
.nav-links a { text-decoration:none; padding:8px 11px; border-radius:999px; font-size:.9rem; opacity:.82; }
.nav-links a.active, .nav-links a:hover { background: rgba(255,255,255,.14); opacity:1; }
.hero { padding: 46px 0 24px; }
.eyebrow { text-transform:uppercase; letter-spacing:.14em; font-size:.75rem; font-weight:800; color:var(--accent); }
h1 { font-size: clamp(2rem, 5vw, 4.3rem); line-height:1.02; margin:.3rem 0 .8rem; max-width: 900px; }
.lead { font-size: clamp(1rem, 2vw, 1.25rem); color:var(--muted); max-width: 850px; line-height:1.6; }
.grid { display:grid; grid-template-columns: minmax(0, 1fr) 340px; gap:22px; align-items:start; padding-bottom:50px; }
.panel { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.controls { display:flex; gap:12px; flex-wrap:wrap; padding:16px; border-bottom:1px solid var(--line); align-items:end; }
.control { display:grid; gap:5px; min-width:180px; }
.control label { font-size:.78rem; font-weight:800; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; }
select { border:1px solid var(--line); background:white; color:var(--ink); padding:10px 12px; border-radius:10px; font:inherit; }
.map-scroll { overflow:auto; padding:14px; }
.map-stage { position:relative; min-width:900px; }
.map-stage img { width:100%; height:auto; display:block; border-radius:12px; border:1px solid #cad7d2; background:white; }
.heat-spot { position:absolute; transform:translate(-50%,-50%); width:13%; aspect-ratio:1; border-radius:50%; pointer-events:none; filter: blur(12px); opacity:.33; transition:.25s; }
.marker { position:absolute; transform:translate(-50%,-50%); min-width:62px; height:42px; border:0; border-radius:15px; font-weight:900; font-size:.86rem; cursor:pointer; color:#122e28; box-shadow:0 5px 14px rgba(0,0,0,.20); outline:3px solid rgba(255,255,255,.92); transition:transform .18s, box-shadow .18s; }
.marker:hover, .marker:focus { transform:translate(-50%,-50%) scale(1.10); box-shadow:0 9px 24px rgba(0,0,0,.28); z-index:5; }
.marker small { display:block; font-size:.7rem; font-weight:700; opacity:.75; }
.legend { display:flex; gap:8px; align-items:center; flex-wrap:wrap; padding:0 16px 16px; font-size:.82rem; color:var(--muted); }
.legend-bar { width:190px; height:10px; border-radius:999px; background:linear-gradient(90deg,#3cb371,#f6d35f,#ef6a4b); }
.side { display:grid; gap:18px; position:sticky; top:92px; }
.card { padding:20px; }
.card h2, .card h3 { margin:0 0 12px; }
.kpis { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.kpi { background:#f5f9f7; border:1px solid var(--line); border-radius:13px; padding:13px; }
.kpi strong { font-size:1.35rem; display:block; }
.kpi span { color:var(--muted); font-size:.78rem; }
.findings { margin:0; padding-left:1.1rem; color:var(--muted); line-height:1.55; }
.findings li + li { margin-top:8px; }
.notice { background:#fff7df; border:1px solid #ead28b; color:#5d4a13; border-radius:13px; padding:13px; font-size:.87rem; line-height:1.5; }
.detail-empty { color:var(--muted); }
.detail-title { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.badge { padding:5px 9px; border-radius:999px; background:var(--accent-2); color:var(--accent); font-size:.75rem; font-weight:800; }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:13px; }
.detail-item { padding:10px; border-radius:10px; background:#f6f9f8; }
.detail-item b { display:block; font-size:.98rem; }
.detail-item span { color:var(--muted); font-size:.72rem; }
.detail-note { margin-top:12px; color:var(--muted); font-size:.86rem; line-height:1.45; }
footer { padding:24px 0 40px; color:var(--muted); font-size:.85rem; }
.home-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; padding:20px 0 55px; }
.home-card { text-decoration:none; padding:24px; background:white; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.home-card.disabled { opacity:.55; pointer-events:none; box-shadow:none; }
.home-card strong { font-size:1.2rem; display:block; margin-bottom:8px; }
@media (max-width: 1000px) { .grid { grid-template-columns:1fr; } .side { position:static; grid-template-columns:1fr 1fr; } }
@media (max-width: 700px) { .nav { align-items:flex-start; } .nav-links { display:flex; width:100%; overflow-x:auto; flex-wrap:nowrap; padding-bottom:4px; scrollbar-width:thin; } .nav-links a { flex:0 0 auto; } .wrap { width:min(100% - 20px, 1380px); } .hero { padding-top:30px; } .side, .home-cards { grid-template-columns:1fr; } .grid { gap:14px; } }


/* Orientierung und Kontext */
.compass { position:absolute; right:18px; top:18px; width:82px; height:82px; border-radius:50%; background:rgba(255,255,255,.94); border:2px solid var(--ink); box-shadow:0 5px 18px rgba(0,0,0,.18); z-index:8; font-weight:900; color:var(--ink); pointer-events:none; }
.compass span { position:absolute; line-height:1; }
.compass-n { top:5px; left:50%; transform:translateX(-50%); }
.compass-o { right:6px; top:50%; transform:translateY(-50%); }
.compass-s { bottom:5px; left:50%; transform:translateX(-50%); }
.compass-w { left:6px; top:50%; transform:translateY(-50%); }
.compass-arrow { left:50%; top:50%; transform:translate(-50%,-50%); font-size:2rem; color:var(--accent); }
.marker { height:auto; min-height:48px; padding:5px 7px; }
.marker em { display:block; font-style:normal; font-size:.61rem; line-height:1.1; margin-top:2px; opacity:.82; }
.context-note { margin:0; color:var(--muted); font-size:.88rem; line-height:1.55; }
.context-note + .context-note { margin-top:12px; padding-top:12px; border-top:1px solid var(--line); }

/* Inhaltsseiten */
h2 { font-size:clamp(1.55rem,3vw,2.55rem); line-height:1.12; margin:.35rem 0 .75rem; }
h3 { line-height:1.25; }
p { line-height:1.65; }
.hero-home { padding-bottom:42px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.button { display:inline-flex; align-items:center; justify-content:center; padding:12px 18px; border-radius:999px; background:var(--accent); color:white; text-decoration:none; font-weight:800; box-shadow:var(--shadow); }
.button-secondary { background:white; color:var(--accent); border:1px solid var(--line); }
.section-block { padding:42px 0 58px; }
.section-heading { max-width:820px; margin-bottom:24px; }
.section-heading p { color:var(--muted); }
.floor-cards { padding:0; grid-template-columns:repeat(4,1fr); }
.content-band { background:#e7f1ed; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:52px 0; }
.two-column { display:grid; grid-template-columns:1.1fr .9fr; gap:42px; align-items:center; }
.measurement-list { display:flex; flex-wrap:wrap; gap:10px; }
.measurement-list span { padding:10px 13px; border-radius:999px; background:white; border:1px solid var(--line); font-weight:750; font-size:.9rem; }
.info-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.info-card,.prose-card,.team-card { background:white; border:1px solid var(--line); border-radius:var(--radius); padding:24px; box-shadow:var(--shadow); }
.info-card p,.prose-card p,.prose-card li,.team-card { color:var(--muted); }
.step-number { font-size:.8rem; font-weight:900; color:var(--accent); letter-spacing:.12em; }
.prose-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.prose-card ul { padding-left:1.15rem; line-height:1.6; }
.goal-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.goal-grid div { background:white; border:1px solid var(--line); border-radius:14px; padding:18px; font-weight:750; line-height:1.45; }
.process-list { list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.process-list li { display:grid; grid-template-columns:48px 1fr; gap:14px; align-items:start; background:white; border:1px solid var(--line); border-radius:14px; padding:17px; }
.process-list li>span { width:40px; height:40px; border-radius:12px; display:grid; place-items:center; background:var(--accent-2); color:var(--accent); font-weight:900; }
.process-list strong { font-size:1.05rem; }
.process-list p { margin:.25rem 0 0; color:var(--muted); }
.team-layout { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start; }
.name-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px 16px; }
.name-grid span { background:#f5f9f7; border-radius:10px; padding:10px 12px; color:var(--ink); }
.privacy-box { display:grid; grid-template-columns:.8fr 1.2fr; gap:30px; align-items:center; }
.privacy-box p { color:var(--muted); }
.footer-grid { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
@media (max-width:1000px){ .floor-cards,.goal-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:800px){ .two-column,.prose-grid,.team-layout,.privacy-box { grid-template-columns:1fr; } .info-grid { grid-template-columns:1fr; } }
@media (max-width:600px){ .floor-cards,.goal-grid,.name-grid { grid-template-columns:1fr; } .section-block { padding:30px 0 42px; } .content-band { padding:38px 0; } }


/* Schullogo */
.brand-logo { width:48px; height:48px; object-fit:contain; flex:0 0 auto; border-radius:50%; background:#fff; }

/* Verständliche Erklärungen der Messgrößen */
.measurement-explainers { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.measurement-explainers article { background:rgba(255,255,255,.82); border:1px solid var(--line); border-radius:14px; padding:14px; }
.measurement-explainers strong { display:block; margin-bottom:5px; color:var(--ink); }
.measurement-explainers p { margin:0; color:var(--muted); line-height:1.5; font-size:.9rem; }
.method-mini { grid-column:1/-1; margin:16px 0 0; color:var(--muted); font-size:.9rem; line-height:1.55; }

/* Aufklappbare Informationskarten */
.info-toggle { padding:0; overflow:hidden; }
.info-toggle summary { list-style:none; cursor:pointer; padding:17px 20px; font-weight:850; font-size:1.02rem; display:flex; align-items:center; justify-content:space-between; gap:12px; user-select:none; }
.info-toggle summary::-webkit-details-marker { display:none; }
.info-toggle summary::after { content:'+'; width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:var(--accent-2); color:var(--accent); font-size:1.25rem; line-height:1; }
.info-toggle[open] summary::after { content:'−'; }
.info-toggle[open] summary { border-bottom:1px solid var(--line); }
.toggle-content { padding:18px 20px 20px; }

/* iPad/Tablet: Karte in voller Breite, Zusatzinfos kompakt darunter */
@media (max-width: 1180px) {
  .grid { grid-template-columns:1fr; }
  .side { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .info-toggle { align-self:start; }
  .info-toggle:not([open]) .toggle-content { display:none; }
}
@media (max-width: 760px) {
  .side { grid-template-columns:1fr; }
  .measurement-explainers { grid-template-columns:1fr; }
  .brand-logo { width:42px; height:42px; }
}


/* Einheitliches Menüband auf allen Seiten */
.site-header .nav { min-height:56px; }
.nav-links { align-items:center; }
.nav-links a { white-space:nowrap; }
@media (max-width: 980px) {
  .nav { flex-wrap:wrap; }
  .nav-links { order:2; width:100%; overflow-x:auto; flex-wrap:nowrap; padding-bottom:4px; scrollbar-width:thin; -webkit-overflow-scrolling:touch; }
  .nav-links a { flex:0 0 auto; }
}

/* Fachliche Einordnung der Messwerte */
.assessment { display:inline-flex; margin-top:7px; padding:4px 7px; border-radius:999px; font-size:.66rem; line-height:1.2; font-weight:850; }
.assessment-ok { background:#dff3e8; color:#155c3d; }
.assessment-watch { background:#fff0c7; color:#72510a; }
.assessment-high { background:#ffe0d7; color:#8a2f1c; }
.assessment-critical { background:#7e1d1d; color:white; }
.assessment-neutral { background:#e9efed; color:#52645e; }
.detail-footnote { margin:12px 0 0; padding-top:12px; border-top:1px solid var(--line); color:var(--muted); font-size:.76rem; line-height:1.45; }
.threshold-guide { display:grid; gap:12px; }
.threshold-row { display:grid; gap:3px; padding-bottom:11px; border-bottom:1px solid var(--line); }
.threshold-row strong { color:var(--ink); }
.threshold-row span { color:var(--muted); font-size:.86rem; line-height:1.5; }
.threshold-caveat { margin:0; padding:12px; border-radius:12px; background:#fff7df; border:1px solid #ead28b; color:#5d4a13; font-size:.82rem; line-height:1.5; }
.source-links { margin:0; font-size:.78rem; line-height:1.5; }
.source-links a { color:var(--accent); }
.quick-limits { grid-column:1/-1; margin-top:12px; padding:15px 17px; border:1px solid #cbdcd5; border-radius:14px; background:white; color:var(--muted); line-height:1.55; font-size:.9rem; }
.quick-limits strong { color:var(--ink); }
.limits-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.limits-grid article { background:white; border:1px solid var(--line); border-radius:var(--radius); padding:22px; box-shadow:var(--shadow); }
.limits-grid h3 { margin-top:0; }
.limits-grid p { margin-bottom:0; color:var(--muted); }
@media (max-width:760px) { .limits-grid { grid-template-columns:1fr; } }


/* Raum-Ranking */
.ranking-section { padding:0 0 58px; }
.ranking-method { margin-bottom:18px; padding:16px 18px; border:1px solid #cbdcd5; border-radius:14px; background:white; color:var(--muted); line-height:1.6; }
.ranking-method strong { color:var(--ink); }
.ranking-columns { display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:start; }
.ranking-panel { background:white; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; }
.ranking-panel>header { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:22px 24px; border-bottom:1px solid var(--line); }
.ranking-panel h2 { margin:.2rem 0 0; font-size:clamp(1.35rem,2.3vw,2rem); }
.ranking-kicker { text-transform:uppercase; letter-spacing:.12em; font-size:.72rem; font-weight:900; color:var(--accent); }
.ranking-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:var(--accent-2); color:var(--accent); font-size:1.6rem; font-weight:900; flex:0 0 auto; }
.ranking-needs .ranking-icon { background:#fff0c7; color:#72510a; }
.ranking-list { list-style:none; margin:0; padding:0; }
.ranking-item { display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:12px; align-items:center; padding:16px 20px; border-bottom:1px solid var(--line); }
.ranking-item:last-child { border-bottom:0; }
.ranking-number { width:32px; height:32px; display:grid; place-items:center; border-radius:10px; background:#f0f5f3; font-weight:900; }
.ranking-roomline { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.ranking-roomline a { font-size:1.08rem; font-weight:900; color:var(--ink); text-decoration:none; }
.ranking-roomline a:hover { color:var(--accent); text-decoration:underline; }
.floor-pill { padding:3px 7px; border-radius:999px; background:var(--accent-2); color:var(--accent); font-size:.7rem; font-weight:850; }
.stars { display:inline-flex; margin-top:5px; letter-spacing:.05em; font-size:1rem; line-height:1; }
.stars-filled { color:#e5aa19; }
.stars-empty { color:#d5ddda; }
.ranking-main p { margin:6px 0 0; color:var(--muted); font-size:.83rem; line-height:1.4; }
.ranking-score { display:grid; justify-items:end; min-width:50px; }
.ranking-score strong { font-size:1.2rem; }
.ranking-score span { color:var(--muted); font-size:.68rem; }
.ranking-caveats .info-card { box-shadow:none; }
.ranking-error { background:#ffe0d7; border-color:#e3a391; color:#8a2f1c; }
.ranking-teaser { padding-top:10px; }
.ranking-teaser-card { display:flex; justify-content:space-between; align-items:center; gap:22px; padding:26px 30px; background:linear-gradient(135deg,#ffffff,#e7f1ed); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); text-decoration:none; }
.ranking-teaser-card h2 { margin:.3rem 0 .45rem; }
.ranking-teaser-card p { margin:0; color:var(--muted); }
.ranking-teaser-card>span { color:#e5aa19; font-size:clamp(1.4rem,4vw,2.5rem); letter-spacing:.08em; white-space:nowrap; }
@media (max-width:980px) { .ranking-columns { grid-template-columns:1fr; } }
@media (max-width:600px) { .ranking-item { grid-template-columns:34px minmax(0,1fr); padding:14px; } .ranking-score { grid-column:2; grid-row:2; justify-items:start; display:flex; gap:3px; align-items:baseline; } .ranking-teaser-card { align-items:flex-start; flex-direction:column; padding:22px; } }

/* Maßnahmen-Seite */
.measures-summary { padding-top:8px; }
.priority-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.priority-card { background:white; border:1px solid var(--line); border-radius:var(--radius); padding:23px; box-shadow:var(--shadow); border-top:5px solid var(--accent); }
.priority-card h2 { margin:.45rem 0 .7rem; font-size:1.35rem; }
.priority-card p { margin:0; color:var(--muted); line-height:1.55; }
.priority-label { display:inline-block; text-transform:uppercase; letter-spacing:.1em; font-size:.7rem; font-weight:900; color:var(--accent); }
.priority-next { border-top-color:#d7a51d; } .priority-next .priority-label { color:#7a5c08; }
.priority-build { border-top-color:#814c8f; } .priority-build .priority-label { color:#6b3677; }
.measure-types { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.measure-type { display:grid; grid-template-columns:48px 1fr; gap:15px; background:rgba(255,255,255,.86); border:1px solid var(--line); border-radius:16px; padding:18px; }
.measure-type h3 { margin:0 0 .45rem; }
.measure-type p { margin:.45rem 0 0; color:var(--muted); line-height:1.55; }
.measure-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; background:var(--accent-2); color:var(--accent); font-weight:900; font-size:1.15rem; }
.measure-columns { display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:start; }
.measure-panel { background:white; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; }
.measure-panel>header { display:flex; justify-content:space-between; gap:14px; align-items:center; padding:21px 23px; border-bottom:1px solid var(--line); }
.measure-panel h2 { margin:.2rem 0 0; font-size:1.55rem; }
.measure-panel-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:50%; background:var(--accent-2); color:var(--accent); font-size:1.45rem; font-weight:900; }
.action-list { max-height:720px; overflow:auto; }
.action-card { padding:16px 20px; border-bottom:1px solid var(--line); }
.action-card:last-child { border-bottom:0; }
.action-roomline { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:5px; }
.action-roomline a { color:var(--ink); font-size:1.08rem; font-weight:900; text-decoration:none; }
.action-roomline a:hover { color:var(--accent); text-decoration:underline; }
.action-card>strong { display:block; font-size:.87rem; color:#5d6c67; }
.action-card p { margin:7px 0 0; color:var(--muted); font-size:.85rem; line-height:1.45; }
.repair-section { padding-top:50px; }
.repair-table-wrap { overflow-x:auto; background:white; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.repair-table { width:100%; border-collapse:collapse; min-width:760px; }
.repair-table th,.repair-table td { padding:13px 15px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.repair-table th { background:#f2f7f5; color:var(--ink); font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; }
.repair-table tr:last-child td { border-bottom:0; }
.repair-table a { color:var(--ink); text-decoration:none; }
.repair-table a:hover { color:var(--accent); text-decoration:underline; }
.repair-priority { display:inline-block; padding:4px 8px; border-radius:999px; font-size:.72rem; font-weight:900; }
.priority-hoch { background:#ffe0d7; color:#8a2f1c; }
.priority-mittel { background:#fff0c7; color:#72510a; }
.priority-normal { background:#e9efed; color:#52645e; }
.measure-roadmap { list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.measure-roadmap li { display:grid; grid-template-columns:46px 1fr; gap:15px; background:white; border:1px solid var(--line); border-radius:15px; padding:17px; }
.measure-roadmap li>span { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; background:var(--accent-2); color:var(--accent); font-weight:900; }
.measure-roadmap p { margin:.3rem 0 0; color:var(--muted); line-height:1.5; }
.source-prose p { color:var(--muted); line-height:1.6; }
.source-list { margin:14px 0 0; padding-left:20px; }
.source-list li { margin:7px 0; }
.source-list a { color:var(--accent); }
.empty-list { padding:20px; color:var(--muted); }
@media (max-width:980px) { .priority-grid { grid-template-columns:1fr; } .measure-columns { grid-template-columns:1fr; } }
@media (max-width:760px) { .measure-types { grid-template-columns:1fr; } .measure-type { grid-template-columns:40px 1fr; padding:15px; } .measure-icon { width:40px; height:40px; } }
.measures-teaser-card>span { color:var(--accent); font-size:3rem; }

/* Wärmebild-Dokumentation */
.thermal-evidence .section-heading { max-width:860px; }
.thermal-callout { display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start; margin:0 0 22px; padding:15px 18px; border:1px solid #f0c882; border-radius:14px; background:#fff8e9; line-height:1.5; }
.thermal-callout strong { color:#8a4c00; }
.thermal-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.thermal-gallery figure { margin:0; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:var(--shadow); }
.thermal-gallery .thermal-wide { grid-column:span 2; }
.thermal-image-button { display:block; width:100%; padding:0; border:0; background:#111; cursor:zoom-in; }
.thermal-image-button img { display:block; width:100%; height:300px; object-fit:cover; }
.thermal-wide .thermal-image-button img { object-position:center; }
.thermal-gallery figcaption { display:flex; flex-direction:column; gap:4px; padding:13px 15px 15px; }
.thermal-gallery figcaption span { color:var(--muted); font-size:.9rem; }
.thermal-note { margin-top:18px; }
.thermal-lightbox { width:min(94vw,1180px); max-height:94vh; padding:48px 18px 18px; border:0; border-radius:18px; background:#111; color:#fff; box-shadow:0 30px 90px rgba(0,0,0,.5); }
.thermal-lightbox::backdrop { background:rgba(0,0,0,.82); }
.thermal-lightbox img { display:block; max-width:100%; max-height:76vh; margin:auto; object-fit:contain; }
.thermal-lightbox p { margin:12px 0 0; text-align:center; white-space:pre-line; }
.lightbox-close { position:absolute; top:8px; right:12px; width:38px; height:38px; border:0; border-radius:50%; background:#fff; color:#111; font-size:1.7rem; cursor:pointer; }
.thermal-teaser { display:grid; grid-template-columns:1.1fr .9fr; gap:26px; align-items:center; padding:24px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:var(--shadow); }
.thermal-teaser img { width:100%; max-height:370px; object-fit:cover; border-radius:14px; }
.thermal-teaser-copy p { color:var(--muted); line-height:1.6; }
@media (max-width:1050px) { .thermal-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } .thermal-gallery .thermal-wide { grid-column:span 2; } }
@media (max-width:760px) { .thermal-gallery { grid-template-columns:1fr; } .thermal-gallery .thermal-wide { grid-column:span 1; } .thermal-image-button img { height:auto; max-height:520px; object-fit:contain; } .thermal-callout { grid-template-columns:1fr; } .thermal-teaser { grid-template-columns:1fr; } }

.floor-subtitle{max-width:900px;margin:.65rem 0 .8rem;font-size:clamp(1.05rem,1.6vw,1.3rem);font-weight:650;line-height:1.45;color:var(--ink)}

/* Drohnenvideo im Startseiten-Header */
.video-hero {
  position: relative;
  isolation: isolate;
  min-height: clamp(500px, 68vh, 760px);
  display: grid;
  align-items: center;
  overflow: hidden;
  padding: 64px 0 58px;
  background: #17342d url('../images/drohnenaufnahme-poster.jpg') center / cover no-repeat;
}
.hero-video {
  position: absolute;
  inset: 0;
  z-index: -3;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.hero-video-shade {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(8, 31, 27, .88) 0%, rgba(8, 31, 27, .68) 48%, rgba(8, 31, 27, .34) 100%),
    linear-gradient(0deg, rgba(8, 31, 27, .48), transparent 55%);
}
.hero-video-content { color: white; }
.hero-video-content .eyebrow { color: #d9f4e9; }
.hero-video-content .lead { color: rgba(255,255,255,.9); text-shadow: 0 1px 12px rgba(0,0,0,.25); }
.hero-video-content h1 { text-shadow: 0 3px 24px rgba(0,0,0,.32); }
.hero-video-content .button { background: #f6c65b; color: #17342d; }
.hero-video-content .button-secondary { background: rgba(255,255,255,.94); color: var(--accent); border-color: transparent; }
.video-toggle {
  position: absolute;
  right: max(16px, calc((100vw - 1380px) / 2 + 16px));
  bottom: 18px;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 999px;
  padding: 8px 13px;
  background: rgba(10, 35, 30, .66);
  color: white;
  font: inherit;
  font-size: .8rem;
  font-weight: 800;
  cursor: pointer;
  backdrop-filter: blur(8px);
}
.video-toggle:hover, .video-toggle:focus-visible { background: rgba(10, 35, 30, .9); }
@media (max-width: 760px) {
  .video-hero { min-height: 560px; padding: 52px 0 72px; }
  .hero-video { object-position: 55% center; }
  .hero-video-shade { background: rgba(8,31,27,.68); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-video { display: none; }
}


/* Einheitliche Projekt-Timeline */
.project-timeline { list-style:none; margin:30px 0 0; padding:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; position:relative; }
.project-timeline::before { content:""; position:absolute; top:25px; left:8%; right:8%; height:3px; background:linear-gradient(90deg,var(--accent),#d7a51d); border-radius:999px; z-index:0; }
.timeline-step { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; text-align:center; padding:0 12px; }
.timeline-marker { width:52px; height:52px; display:grid; place-items:center; border-radius:50%; background:var(--accent); color:#fff; border:5px solid #fff; box-shadow:0 0 0 1px var(--line), var(--shadow); font-weight:900; margin-bottom:16px; }
.timeline-step>div { width:100%; min-height:150px; background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px 14px; box-shadow:var(--shadow); }
.timeline-step strong { display:block; font-size:1.02rem; }
.timeline-step p { margin:.45rem 0 0; color:var(--muted); line-height:1.5; }
@media (max-width:900px) { .project-timeline { grid-template-columns:1fr; gap:14px; padding-left:8px; } .project-timeline::before { top:20px; bottom:20px; left:33px; right:auto; width:3px; height:auto; } .timeline-step { display:grid; grid-template-columns:52px 1fr; gap:16px; align-items:start; text-align:left; padding:0; } .timeline-marker { margin:0; } .timeline-step>div { min-height:0; } }

/* Urheberhinweis im Video-Header */
.video-credit { position:absolute; left:max(16px,calc((100vw - 1380px)/2 + 16px)); bottom:20px; z-index:2; padding:6px 10px; border-radius:999px; background:rgba(10,35,30,.62); color:rgba(255,255,255,.9); font-size:.75rem; font-weight:700; backdrop-filter:blur(8px); }
@media (max-width:760px) { .video-credit { left:12px; bottom:18px; max-width:55%; border-radius:12px; } }

/* Eigenständige Wärmebildseite und bauliche Hinweise */
.construction-evidence { margin-top:46px; padding-top:38px; border-top:1px solid var(--line); }
.construction-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:22px 0; }
.construction-gallery figure { margin:0; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:var(--shadow); }
.construction-gallery img { width:100%; height:430px; object-fit:cover; display:block; }
.construction-gallery figcaption { display:flex; flex-direction:column; gap:5px; padding:14px 16px 17px; }
.construction-gallery figcaption span { color:var(--muted); line-height:1.45; }
.thermal-page-link { padding-top:0; }
@media (max-width:760px) { .construction-gallery { grid-template-columns:1fr; } .construction-gallery img { height:auto; max-height:600px; object-fit:contain; } }
