/* ===== Stein Bund – Für Architekten ===== */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
:root { --blue:#1a6fa8; --blue-dark:#155d8e; --amber:#b5652a; --amber-dark:#9a5522; --green:#2c5f2e; --green-dark:#1a4a1c; --violet:#6b4c9a; --violet-dark:#5a3d85; --nav:#2c2c2c; --text:#333; --text-light:#555; --border:#e0e0e0; --bg:#fff; --bg-light:#f7f7f7; }
body { font-family:'Open Sans',sans-serif; font-weight:400; color:var(--text); background:var(--bg); font-size:15px; line-height:1.7; }

/* NAV */
nav { background:var(--nav); padding:0 3rem; display:flex; align-items:center; justify-content:center; height:130px; position:sticky; top:0; z-index:100; gap:2rem; }
.nav-logo { display:flex; align-items:center; text-decoration:none; }
.nav-logo-img { height:110px; width:auto; }
.nav-links { display:flex; align-items:center; gap:.5rem; }
.nav-link { color:rgba(255,255,255,.8); text-decoration:none; font-size:.95rem; font-weight:600; padding:.55rem 1.2rem; transition:color .2s, background .2s; letter-spacing:.02em; white-space:nowrap; border-left:3px solid transparent; }
.nav-link:hover { color:#fff; background:rgba(255,255,255,.1); }
.nav-link[href="#argumentgenerator"] { border-left-color:#b8975a; }
.nav-link[href="#argumentgenerator"]:hover { background:rgba(184,151,90,.15); }
.nav-link[href="#matcher"] { border-left-color:var(--amber); }
.nav-link[href="#matcher"]:hover { background:rgba(181,101,42,.15); }
.nav-link[href="#steinsuche"] { border-left-color:var(--blue); }
.nav-link[href="#steinsuche"]:hover { background:rgba(26,111,168,.15); }
.nav-link[href="#planungsdetails"] { border-left-color:var(--green); }
.nav-link[href="#planungsdetails"]:hover { background:rgba(44,95,46,.15); }
.nav-link#navBerater { border-left-color:var(--violet); }
.nav-link#navBerater:hover { background:rgba(107,76,154,.15); }
.nav-link[href="#kontakt"] { border-left-color:rgba(255,255,255,.4); }
.nav-link[href="#kontakt"]:hover { background:rgba(255,255,255,.1); }
.nav-burger { display:none; background:none; border:none; color:#fff; font-size:1.6rem; cursor:pointer; padding:.5rem; }

/* HERO */
.hero-banner { background:linear-gradient(180deg,#6a8a9a 0%,#4a7090 40%,#8aaa8a 100%); height:200px; position:relative; overflow:hidden; display:flex; align-items:flex-end; }
.hero-banner::after { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.1),rgba(0,0,0,.4)); }
.hero-banner-title { position:relative; z-index:1; color:#fff; font-size:1.8rem; font-weight:300; padding:0 3rem 2rem; text-shadow:0 1px 4px rgba(0,0,0,.4); }

/* CONTENT */
.content { max-width:1100px; margin:0 auto; padding:0 3rem; }
.divider { width:80px; height:1px; background:var(--border); margin-bottom:1.2rem; }
h2 { font-size:1.55rem; font-weight:400; color:var(--blue); margin-bottom:.6rem; }
p { color:var(--text-light); line-height:1.85; margin-bottom:1rem; }
p:last-child { margin-bottom:0; }
p strong { color:var(--text); font-weight:600; }

/* PAGE INTRO */
.page-intro { padding:3rem 0 2rem; border-bottom:1px solid var(--border); margin-bottom:3rem; }
.page-intro h1 { font-size:2rem; font-weight:400; color:var(--blue); margin-bottom:.8rem; }
.tagline { font-size:1rem; font-style:italic; color:var(--text-light); margin-bottom:1.2rem; }

/* TWO COL */
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:start; margin-bottom:3.5rem; }
.img-placeholder { width:100%; aspect-ratio:4/3; background:linear-gradient(135deg,#c8c0b0,#9a8870); display:flex; align-items:center; justify-content:center; font-size:.72rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.project-img { width:100%; height:auto; display:block; object-fit:contain; }

/* SECTION BG */
.section-bg { background:var(--bg-light); padding:3rem; margin:0 -3rem 3.5rem; }
.cards-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-top:1.5rem; }
.card { background:#fff; border:1px solid var(--border); border-top:3px solid var(--blue); padding:1.6rem 1.4rem; }
.card h3 { font-size:.95rem; font-weight:600; color:var(--blue); margin-bottom:.7rem; }
.card p { font-size:.86rem; margin-bottom:0; }

/* ABLAUF */
.ablauf-steps { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--border); margin-top:1.5rem; }
.ablauf-step { padding:1.8rem 1.4rem; border-right:1px solid var(--border); }
.ablauf-step:last-child { border-right:none; }
.step-num { font-size:2rem; font-weight:700; color:var(--blue); opacity:.15; line-height:1; margin-bottom:.7rem; }
.ablauf-step h4 { font-size:.92rem; font-weight:600; color:var(--text); margin-bottom:.5rem; }
.ablauf-step p { font-size:.84rem; margin-bottom:0; }

/* BLUE BAND */
.blue-band { background:var(--blue); padding:3rem; margin:0 -3rem 3.5rem; color:#fff; }
.blue-band h2 { color:#fff; }
.blue-band .divider { background:rgba(255,255,255,.3); }
.blue-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:1.5rem; }
.blue-item { border-left:2px solid rgba(255,255,255,.3); padding-left:1.2rem; }
.blue-item h4 { font-size:.92rem; font-weight:600; color:#fff; margin-bottom:.5rem; }
.blue-item p { font-size:.84rem; color:rgba(255,255,255,.75); margin-bottom:0; }

/* KONTAKT */
.kontakt-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; margin-bottom:4rem; align-items:start; }
.kontakt-details { margin-top:1.5rem; display:flex; flex-direction:column; gap:.6rem; }
.k-detail { display:flex; align-items:center; gap:.8rem; font-size:.9rem; color:var(--text); }
.k-icon { width:30px; height:30px; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-size:.72rem; flex-shrink:0; }
.form-box { border:1px solid var(--border); border-top:3px solid var(--blue); padding:2rem; }
.form-box h3 { font-size:1rem; font-weight:600; color:var(--text); margin-bottom:1.4rem; }
.fg { margin-bottom:1.1rem; }
.fg label { display:block; font-size:.73rem; font-weight:600; color:var(--text-light); text-transform:uppercase; letter-spacing:.05em; margin-bottom:.35rem; }
.fg input,.fg textarea,.fg select { width:100%; padding:.55rem .75rem; border:1px solid var(--border); font-family:'Open Sans',sans-serif; font-size:.88rem; color:var(--text); outline:none; transition:border-color .2s; background:#fff; appearance:none; }
.fg input:focus,.fg textarea:focus,.fg select:focus { border-color:var(--blue); }
.fg textarea { height:85px; resize:vertical; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.btn { background:var(--blue); color:#fff; border:none; padding:.75rem 2rem; font-family:'Open Sans',sans-serif; font-size:.85rem; font-weight:600; cursor:pointer; width:100%; transition:background .2s; }
.btn:hover { background:var(--blue-dark); }

/* FOOTER */
footer { background:var(--nav); color:#aaa; padding:1.4rem 3rem; display:flex; justify-content:space-between; font-size:.8rem; }
footer a { color:var(--blue); text-decoration:none; }

/* ====== STEINSUCHE ====== */
.steinsuche-section { margin-bottom:3.5rem; }
.steinsuche-header { background:linear-gradient(135deg, #1a6fa8 0%, #155d8e 100%); padding:2rem; margin:0 -3rem 1.5rem; color:#fff; }
.steinsuche-header h2 { color:#fff; margin-bottom:.4rem; }
.steinsuche-header p { color:rgba(255,255,255,.85); margin:0; font-size:.9rem; }
.search-bar { display:flex; gap:.5rem; margin-bottom:1rem; }
.search-filters { margin-bottom:1rem; }
.filter-row { display:grid; grid-template-columns:1fr 1fr 1fr; gap:.6rem; margin-bottom:.6rem; }
.filter-select { width:100%; padding:.5rem .75rem; border:1px solid var(--border); font-family:'Open Sans',sans-serif; font-size:.82rem; color:var(--text); background:#fff; outline:none; appearance:none; cursor:pointer; transition:border-color .2s; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .75rem center; padding-right:2rem; }
.filter-select:focus { border-color:var(--blue); }
.filter-checks { display:flex; flex-wrap:wrap; gap:.8rem; }
.filter-check { display:flex; align-items:center; gap:.3rem; font-size:.8rem; color:var(--text-light); cursor:pointer; }
.filter-check input { accent-color:var(--blue); cursor:pointer; }
.search-input { flex:1; padding:.65rem 1rem; border:1px solid var(--border); font-family:'Open Sans',sans-serif; font-size:.9rem; color:var(--text); outline:none; transition:border-color .2s; }
.search-input:focus { border-color:var(--blue); }
.search-btn { background:var(--blue); color:#fff; border:none; padding:.65rem 1.5rem; font-family:'Open Sans',sans-serif; font-size:.85rem; font-weight:600; cursor:pointer; white-space:nowrap; transition:background .2s; }
.search-btn:hover { background:var(--blue-dark); }
.search-btn:disabled { background:#aaa; cursor:not-allowed; }
.quick-searches { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1.5rem; }
.quick-btn { font-size:.75rem; padding:.25rem .8rem; border:1px solid var(--border); background:#fff; color:var(--text-light); cursor:pointer; transition:all .2s; font-family:'Open Sans',sans-serif; }
.quick-btn:hover { background:var(--blue); color:#fff; border-color:var(--blue); }
.search-status { font-size:.82rem; color:var(--text-light); font-style:italic; margin-bottom:.5rem; min-height:1.2rem; }
.search-progress { width:100%; height:8px; background:#e8e8e8; border-radius:4px; overflow:hidden; margin-bottom:1.2rem; display:none; box-shadow:inset 0 1px 2px rgba(0,0,0,.1); }
.search-progress.active { display:block; }
.search-progress-bar { height:100%; width:0%; background:linear-gradient(90deg,var(--blue),#2196F3,var(--blue)); background-size:200% 100%; border-radius:4px; transition:width .3s ease; animation:shimmer 1.5s infinite; }
@keyframes shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
.stein-results { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.stein-card { border:1px solid var(--border); cursor:pointer; transition:box-shadow .2s,transform .2s; }
.stein-card:hover { box-shadow:0 4px 16px rgba(0,0,0,.1); transform:translateY(-2px); }
.stein-card.selected { border:2px solid var(--blue); }
.stein-swatch { height:100px; position:relative; overflow:hidden; }
.stein-swatch img { width:100%; height:100%; object-fit:cover; display:block; }
.stein-card-body { padding:.9rem; }
.stein-card-body h4 { font-size:.9rem; font-weight:600; color:var(--text); margin-bottom:.2rem; }
.stein-type-label { font-size:.73rem; color:var(--blue); font-weight:600; text-transform:uppercase; letter-spacing:.05em; }
.stein-origin { font-size:.75rem; color:var(--text-light); margin-top:.2rem; }
.stein-ext-link { display:inline-block; margin-top:.5rem; font-size:.73rem; color:var(--blue); text-decoration:none; }
.stein-ext-link:hover { text-decoration:underline; }
.stein-detail-panel { border:1px solid var(--border); border-top:3px solid var(--blue); padding:2rem; margin-top:1.2rem; display:none; background:#fff; }
.stein-detail-panel.visible { display:flex; gap:2rem; }
.detail-swatch { width:160px; height:160px; flex-shrink:0; }
.detail-info h3 { font-size:1.2rem; font-weight:400; color:var(--blue); margin-bottom:.3rem; }
.detail-info .detail-type { font-size:.75rem; color:var(--blue); font-weight:600; text-transform:uppercase; letter-spacing:.05em; margin-bottom:.3rem; }
.detail-info .detail-origin { font-size:.8rem; color:var(--text-light); margin-bottom:.8rem; }
.detail-info p { font-size:.87rem; margin-bottom:.8rem; }
.detail-tags { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1rem; }
.detail-tag { font-size:.73rem; background:#e8f2fa; color:var(--blue); padding:.2rem .7rem; border:1px solid #c0d8ee; }
.detail-actions { display:flex; gap:.8rem; align-items:center; flex-wrap:wrap; }
.anfragen-btn { background:var(--blue); color:#fff; border:none; padding:.55rem 1.2rem; font-family:'Open Sans',sans-serif; font-size:.82rem; font-weight:600; cursor:pointer; transition:background .2s; }
.anfragen-btn:hover { background:var(--blue-dark); }
.detail-ext-link { font-size:.78rem; color:var(--blue); text-decoration:none; }
.detail-ext-link:hover { text-decoration:underline; }
.no-results { text-align:center; padding:3rem; color:var(--text-light); font-style:italic; border:1px dashed var(--border); grid-column:1/-1; }

/* ====== ARGUMENT GENERATOR ====== */
.arg-wrap { margin-bottom:3.5rem; }
.arg-hero { background:linear-gradient(135deg,#b8975a 0%,#8a6a3a 100%); padding:3.5rem 3rem; margin:0 -3rem 2rem; text-align:center; }
.arg-hero-eyebrow { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.25em; color:#fff; margin-bottom:1.2rem; }
.arg-hero-title { font-family:Georgia,'Times New Roman',serif; font-size:2.8rem; font-weight:400; color:#fff; line-height:1.2; margin-bottom:1.2rem; }
.arg-hero-title em { font-style:italic; color:#fff; text-decoration:underline; text-decoration-color:rgba(255,255,255,.4); text-underline-offset:.15em; }
.arg-hero-sub { font-size:1rem; color:rgba(255,255,255,.8); line-height:1.7; margin-bottom:1.5rem; }
.arg-hero-disclaimer { font-size:.75rem; color:rgba(255,255,255,.45); font-style:italic; }
.arg-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:start; }
.arg-input { display:flex; flex-direction:column; gap:1.2rem; }
.arg-field label { font-size:.73rem; font-weight:600; color:var(--text-light); text-transform:uppercase; letter-spacing:.05em; display:block; margin-bottom:.4rem; }
.arg-field select { width:100%; padding:.6rem .8rem; border:1px solid var(--border); font-family:'Open Sans',sans-serif; font-size:.88rem; color:var(--text); outline:none; background:#fff; appearance:none; transition:border-color .2s; }
.arg-field select:focus { border-color:#b8975a; }
.arg-einwand-grid { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
.arg-pill { padding:.5rem .8rem; border:1px solid var(--border); background:var(--bg-light); font-size:.8rem; cursor:pointer; text-align:center; transition:all .2s; user-select:none; }
.arg-pill:hover { border-color:#b8975a; background:#faf5ed; }
.arg-pill.active { background:#b8975a; color:#fff; border-color:#b8975a; font-weight:600; }
.arg-gen-btn { width:100%; padding:.85rem; background:#b8975a; color:#fff; border:none; font-family:'Open Sans',sans-serif; font-size:.9rem; font-weight:700; cursor:pointer; letter-spacing:.03em; transition:background .2s; display:flex; align-items:center; justify-content:center; gap:.6rem; }
.arg-gen-btn:hover { background:#9a7a42; }
.arg-gen-btn:disabled { background:#aaa; cursor:not-allowed; }

/* ARG OUTPUT */
.arg-output { min-height:300px; display:flex; align-items:center; justify-content:center; }
.arg-placeholder { text-align:center; padding:2rem; }
.arg-ph-icon { font-size:3rem; margin-bottom:1rem; }
.arg-ph-text { font-size:.9rem; color:var(--text-light); line-height:1.7; }
.arg-loading { display:none; flex-direction:column; align-items:center; gap:1rem; padding:2rem; }
.arg-ring { width:50px; height:50px; border:3px solid var(--border); border-top-color:#b8975a; border-radius:50%; animation:spin 1s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.arg-load-quote { font-size:.8rem; color:var(--text-light); font-style:italic; text-align:center; min-height:1.2em; }

/* ARG RESULT */
.arg-result { display:none; flex-direction:column; border:1px solid var(--border); background:#fff; overflow:hidden; width:100%; }
.arg-res-header { background:linear-gradient(135deg,#1a1a1a,#2a2a2a); padding:1.5rem; color:#fff; }
.arg-res-eyebrow { font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.5); margin-bottom:.4rem; }
.arg-res-title { font-size:1.15rem; font-weight:700; color:#fff; margin-bottom:.3rem; }
.arg-res-subtitle { font-size:.78rem; color:rgba(255,255,255,.6); }
.arg-verdict { display:flex; align-items:center; gap:.8rem; padding:1rem 1.5rem; background:#e8f5e9; border-bottom:1px solid #c8e6c9; }
.arg-verdict-icon { background:#43a047; color:#fff; width:24px; height:24px; display:flex; align-items:center; justify-content:center; border-radius:50%; font-size:.8rem; flex-shrink:0; }
.arg-verdict span:last-child { font-size:.88rem; color:#2e7d32; font-weight:600; }
.arg-section-block { padding:1.2rem 1.5rem; border-bottom:1px solid var(--border); }
.arg-sec-title { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--text-light); margin-bottom:.8rem; }
.arg-main { background:linear-gradient(135deg,#faf5ed,#f5eed8); border-left:4px solid #b8975a; padding:1rem 1.2rem; font-size:.9rem; line-height:1.7; color:var(--text); }
.arg-subs { display:flex; flex-direction:column; gap:.6rem; }
.arg-sub { display:flex; align-items:flex-start; gap:.6rem; }
.arg-sub-icon { font-size:1.1rem; flex-shrink:0; margin-top:.1rem; }
.arg-sub-text { font-size:.85rem; line-height:1.6; color:var(--text); }
.arg-sarcasm { display:flex; align-items:flex-start; gap:1rem; padding:1.2rem 1.5rem; background:#1a1a1a; color:#fff; }
.arg-sarcasm-icon { font-size:1.5rem; flex-shrink:0; }
.arg-sarcasm-label { font-size:.65rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.4); margin-bottom:.3rem; }
.arg-killer { text-align:center; padding:1rem 0; }
.arg-killer-label { font-size:.65rem; text-transform:uppercase; letter-spacing:.1em; color:var(--text-light); margin-bottom:.6rem; }
.arg-killer-text { font-size:1.1rem; font-weight:700; color:#1a6fa8; line-height:1.5; margin-bottom:.8rem; padding:0 1rem; }
.arg-killer-copy { background:none; border:1px solid var(--border); padding:.35rem .8rem; font-size:.75rem; cursor:pointer; color:var(--text-light); font-family:'Open Sans',sans-serif; transition:all .2s; }
.arg-killer-copy:hover { border-color:#1a6fa8; color:#1a6fa8; }
.arg-actions { display:flex; gap:.6rem; padding:1.2rem 1.5rem; border-top:1px solid var(--border); flex-wrap:wrap; }
.arg-act-btn { flex:1; padding:.6rem .8rem; border:none; font-family:'Open Sans',sans-serif; font-size:.78rem; font-weight:600; cursor:pointer; transition:background .2s; min-width:120px; text-align:center; }
.arg-btn-wa { background:#25D366; color:#fff; }
.arg-btn-wa:hover { background:#1da851; }
.arg-btn-copy { background:#333; color:#fff; }
.arg-btn-copy:hover { background:#555; }
.arg-btn-new { background:var(--bg-light); color:var(--text); border:1px solid var(--border); }
.arg-btn-new:hover { background:var(--border); }

/* ====== MATERIAL MATCHER ====== */
.matcher-section { margin-bottom:3.5rem; }
.matcher-section-header { background:linear-gradient(135deg, var(--amber) 0%, var(--amber-dark) 100%); padding:2rem; margin:0 -3rem 1.5rem; color:#fff; }
.matcher-section-header h2 { color:#fff; margin-bottom:.4rem; }
.matcher-section-header p { color:rgba(255,255,255,.85); margin:0; font-size:.9rem; }
.matcher-box { border:1px solid var(--border); border-top:4px solid var(--amber); background:#fff; overflow:hidden; }
.matcher-header { background: linear-gradient(135deg, var(--amber) 0%, var(--amber-dark) 100%); padding:1.8rem 2rem; color:#fff; display:flex; align-items:center; gap:1.2rem; }
.matcher-header-icon { font-size:2.2rem; flex-shrink:0; }
.matcher-header h3 { font-size:1.15rem; font-weight:600; color:#fff; margin-bottom:.2rem; }
.matcher-header p { font-size:.83rem; color:rgba(255,255,255,.8); margin:0; line-height:1.5; }
.matcher-body { padding:2rem; }
.matcher-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:start; }

/* UPLOAD */
.upload-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
.upload-slot { border: 2px dashed var(--border); background: var(--bg-light); aspect-ratio: 1; position: relative; cursor: pointer; transition: border-color .2s, background .2s; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; }
.upload-slot:hover, .upload-slot.drag-over { border-color: var(--amber); background: #fdf5ed; }
.upload-slot input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.upload-slot .slot-icon { font-size: 1.6rem; margin-bottom: .3rem; color: #bbb; }
.upload-slot .slot-label { font-size: .68rem; color: #bbb; text-align: center; padding: 0 .3rem; }
.upload-slot.has-image .slot-icon,
.upload-slot.has-image .slot-label { display: none; }
.upload-slot img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: none; }
.upload-slot.has-image img { display: block; }
.slot-remove { position: absolute; top: 3px; right: 3px; width: 20px; height: 20px; background: rgba(0,0,0,.6); color: #fff; border: none; border-radius: 50%; font-size: .75rem; cursor: pointer; display: none; align-items: center; justify-content: center; z-index: 2; padding: 0; line-height: 1; }
.upload-slot.has-image .slot-remove { display: flex; }
.upload-hint { font-size: .72rem; color: var(--text-light); margin-top: .6rem; text-align: center; }

/* CONTEXT INPUT */
.matcher-context { display:flex; flex-direction:column; gap:1rem; }
.matcher-context label { font-size:.73rem; font-weight:600; color:var(--text-light); text-transform:uppercase; letter-spacing:.05em; display:block; margin-bottom:.3rem; }
.matcher-context select,
.matcher-context textarea { width:100%; padding:.6rem .8rem; border:1px solid var(--border); font-family:'Open Sans',sans-serif; font-size:.88rem; color:var(--text); outline:none; transition:border-color .2s; background:#fff; appearance:none; }
.matcher-context select:focus,
.matcher-context textarea:focus { border-color:var(--amber); }
.matcher-context textarea { height:75px; resize:none; }
.matcher-analyze-btn { width:100%; padding:.85rem; background:var(--amber); color:#fff; border:none; font-family:'Open Sans',sans-serif; font-size:.9rem; font-weight:700; cursor:pointer; letter-spacing:.03em; transition:background .2s; margin-top:.5rem; display:flex; align-items:center; justify-content:center; gap:.6rem; }
.matcher-analyze-btn:hover { background:var(--amber-dark); }
.matcher-analyze-btn:disabled { background:#aaa; cursor:not-allowed; }

/* MATCHER PROGRESS */
.matcher-progress { width:100%; height:8px; background:#e8e8e8; border-radius:4px; overflow:hidden; margin-top:1.5rem; display:none; box-shadow:inset 0 1px 2px rgba(0,0,0,.1); }
.matcher-progress.active { display:block; }
.matcher-progress-bar { height:100%; width:0%; background:linear-gradient(90deg,var(--amber),#d4944a,var(--amber)); background-size:200% 100%; border-radius:4px; transition:width .3s ease; animation:shimmer 1.5s infinite; }

/* RESULTS */
.matcher-results { margin-top:2rem; border-top:1px solid var(--border); padding-top:2rem; display:none; }
.matcher-results.visible { display:block; }
.analysis-header { display:flex; align-items:flex-start; gap:1.5rem; margin-bottom:1.8rem; padding:1.2rem; background:var(--bg-light); border:1px solid var(--border); }
.analysis-img { width:80px; height:80px; object-fit:cover; flex-shrink:0; }
.analysis-summary h4 { font-size:.95rem; font-weight:600; color:var(--text); margin-bottom:.4rem; }
.analysis-summary p { font-size:.83rem; color:var(--text-light); margin:0; line-height:1.6; }
.analysis-tags { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.6rem; }
.analysis-tag { font-size:.7rem; padding:.15rem .6rem; background:#fff; border:1px solid var(--border); color:var(--text-light); }
.matches-title { font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--amber); margin-bottom:1rem; }
.matches-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.match-card { border:1px solid var(--border); position:relative; cursor:pointer; transition:box-shadow .2s, transform .2s; }
.match-card:hover { box-shadow:0 4px 16px rgba(0,0,0,.1); transform:translateY(-2px); }
.match-badge { position:absolute; top:.6rem; right:.6rem; background:var(--amber); color:#fff; font-size:.65rem; font-weight:700; padding:.2rem .5rem; letter-spacing:.05em; }
.match-swatch { height:110px; }
.match-body { padding:.9rem; }
.match-body .match-name { font-size:.9rem; font-weight:600; color:var(--text); margin-bottom:.15rem; }
.match-body .match-type { font-size:.7rem; color:var(--amber); font-weight:600; text-transform:uppercase; }
.match-body .match-why { font-size:.78rem; color:var(--text-light); margin-top:.4rem; line-height:1.5; }
.match-body .match-score { margin-top:.6rem; height:4px; background:var(--border); border-radius:2px; overflow:hidden; }
.match-score-bar { height:100%; background:var(--amber); border-radius:2px; transition:width 1s ease; }
.match-actions { padding:.8rem .9rem; border-top:1px solid var(--border); display:flex; gap:.6rem; }
.match-anfragen { flex:1; background:var(--amber); color:#fff; border:none; padding:.45rem; font-family:'Open Sans',sans-serif; font-size:.75rem; font-weight:600; cursor:pointer; transition:background .2s; }
.match-anfragen:hover { background:var(--amber-dark); }
.match-db-link { font-size:.72rem; color:var(--amber); text-decoration:none; display:flex; align-items:center; }
.match-db-link:hover { text-decoration:underline; }

/* ====== PLANUNGSDETAIL-FINDER ====== */
.detail-finder-section { margin-bottom:3.5rem; }
.detail-finder-header { background:linear-gradient(135deg, var(--green) 0%, var(--green-dark) 100%); padding:2rem; margin:0 -3rem 1.5rem; color:#fff; }
.detail-finder-header h2 { color:#fff; margin-bottom:.4rem; }
.detail-finder-header p { color:rgba(255,255,255,.85); margin:0; font-size:.9rem; }
.detail-results { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.detail-card { border:1px solid var(--border); transition:box-shadow .2s,transform .2s; background:#fff; }
.detail-card:hover { box-shadow:0 4px 16px rgba(0,0,0,.1); transform:translateY(-2px); }
.detail-card-header { background:var(--bg-light); padding:.8rem 1rem; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; }
.detail-card-kat { font-size:.7rem; color:var(--green); font-weight:600; text-transform:uppercase; letter-spacing:.05em; }
.detail-card-hersteller { font-size:.72rem; color:var(--text-light); }
.detail-card-body { padding:1rem; }
.detail-card-body h4 { font-size:.92rem; font-weight:600; color:var(--text); margin-bottom:.4rem; line-height:1.4; }
.detail-card-body p { font-size:.82rem; color:var(--text-light); margin-bottom:.6rem; line-height:1.55; }
.detail-normen { display:flex; flex-wrap:wrap; gap:.3rem; margin-bottom:.8rem; }
.detail-norm-tag { font-size:.68rem; padding:.15rem .5rem; background:#e8f0e8; color:var(--green); border:1px solid #c0d8c0; }
.detail-card-actions { padding:.7rem 1rem; border-top:1px solid var(--border); display:flex; gap:1rem; flex-wrap:wrap; }
.detail-cad-link { font-size:.78rem; color:var(--green); text-decoration:none; font-weight:600; padding:.3rem .6rem; border:1px solid var(--green); border-radius:4px; transition:all .2s; }
.detail-cad-link:hover { background:var(--green); color:#fff; }
.detail-hersteller-link { font-size:.78rem; color:var(--text-light); text-decoration:none; font-weight:500; padding:.3rem .6rem; border:1px solid var(--border); border-radius:4px; transition:all .2s; }
.detail-hersteller-link:hover { background:var(--bg-light); color:var(--text); }

/* DETAIL CARD THUMBNAIL */
.detail-card-thumbnail { width:100%; height:120px; overflow:hidden; border-bottom:1px solid var(--border); background:var(--bg-light); display:flex; align-items:center; justify-content:center; }
.detail-card-thumbnail a { display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.detail-card-thumbnail img { max-width:80%; max-height:90px; object-fit:contain; display:block; transition:transform .2s; }
.detail-card-thumbnail img:hover { transform:scale(1.05); }

/* SCHICHT-SVG Querschnitt */
.detail-card-svg { padding:.8rem 1rem; border-bottom:1px solid var(--border); background:#fafafa; display:flex; justify-content:center; }
.schicht-svg { width:100%; max-width:320px; height:auto; }

/* SPINNER */
.spinner { display:inline-block; width:18px; height:18px; border:2px solid rgba(255,255,255,.4); border-top-color:#fff; border-radius:50%; animation:spin .7s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

/* ====== WHATSAPP ====== */
.whatsapp-float { position:fixed; bottom:2rem; right:2rem; z-index:999; display:flex; flex-direction:column; align-items:flex-end; gap:.5rem; }
.wa-bubble { background:#fff; border:1px solid var(--border); box-shadow:0 4px 20px rgba(0,0,0,.15); padding:.8rem 1rem; max-width:240px; font-size:.82rem; color:var(--text); position:relative; display:none; line-height:1.5; }
.wa-bubble::after { content:''; position:absolute; bottom:-8px; right:20px; width:0; height:0; border-left:8px solid transparent; border-right:8px solid transparent; border-top:8px solid #fff; }
.wa-bubble.show { display:block; }
.wa-btn { width:56px; height:56px; background:#25d366; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 16px rgba(37,211,102,.4); cursor:pointer; transition:transform .2s; text-decoration:none; }
.wa-btn:hover { transform:scale(1.08); }
.wa-btn svg { width:30px; height:30px; fill:#fff; }
.wa-pulse { position:absolute; top:0; right:0; width:14px; height:14px; background:#ff3b30; border-radius:50%; border:2px solid #fff; animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{transform:scale(1)}50%{transform:scale(1.2)} }

/* ====== KI BERATER ====== */
.ki-widget { position:fixed; bottom:8rem; right:2rem; z-index:998; width:370px; display:none; flex-direction:column; box-shadow:0 8px 32px rgba(0,0,0,.18); border:1px solid var(--border); }
.ki-widget.open { display:flex; }
.ki-header { background:var(--violet); color:#fff; padding:1rem 1.2rem; display:flex; align-items:center; gap:.8rem; }
.ki-avatar { width:36px; height:36px; background:rgba(255,255,255,.2); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.1rem; flex-shrink:0; }
.ki-header-text { flex:1; }
.ki-header-text strong { display:block; font-size:.9rem; }
.ki-header-text span { font-size:.72rem; opacity:.8; }
.ki-close { background:none; border:none; color:#fff; font-size:1.2rem; cursor:pointer; opacity:.7; }
.ki-close:hover { opacity:1; }
.ki-messages { background:#fff; height:300px; overflow-y:auto; padding:1rem; display:flex; flex-direction:column; gap:.8rem; }
.ki-msg { max-width:88%; font-size:.84rem; line-height:1.55; padding:.6rem .9rem; }
.ki-msg.bot { background:var(--bg-light); color:var(--text); border:1px solid var(--border); align-self:flex-start; border-radius:0 8px 8px 8px; }
.ki-msg.user { background:var(--violet); color:#fff; align-self:flex-end; border-radius:8px 0 8px 8px; }
.ki-msg.typing { background:var(--bg-light); border:1px solid var(--border); align-self:flex-start; border-radius:0 8px 8px 8px; color:var(--text-light); font-style:italic; }
.ki-sugs { padding:.5rem 1rem .8rem; background:#fff; border-top:1px solid var(--border); display:flex; flex-wrap:wrap; gap:.4rem; }
.ki-sug { font-size:.73rem; padding:.25rem .65rem; border:1px solid var(--violet); color:var(--violet); background:#fff; cursor:pointer; transition:all .15s; font-family:'Open Sans',sans-serif; }
.ki-sug:hover { background:var(--violet); color:#fff; }
.ki-input-area { background:#fff; border-top:1px solid var(--border); padding:.8rem; display:flex; gap:.5rem; }
.ki-input { flex:1; border:1px solid var(--border); padding:.5rem .75rem; font-family:'Open Sans',sans-serif; font-size:.84rem; outline:none; resize:none; height:38px; transition:border-color .2s; }
.ki-input:focus { border-color:var(--violet); }
.ki-send { background:var(--violet); color:#fff; border:none; width:38px; height:38px; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:1rem; transition:background .2s; flex-shrink:0; }
.ki-send:hover { background:var(--violet-dark); }
.ki-send:disabled { background:#aaa; cursor:not-allowed; }
.ki-open-btn { position:fixed; bottom:12rem; right:2rem; z-index:997; background:var(--violet); color:#fff; border:none; padding:1rem 2rem; font-family:'Open Sans',sans-serif; font-size:1rem; font-weight:600; cursor:pointer; box-shadow:0 4px 14px rgba(107,76,154,.35); display:flex; align-items:center; gap:.5rem; transition:background .2s,transform .2s; }
.ki-open-btn:hover { background:var(--violet-dark); transform:translateY(-1px); }
.ki-open-btn.hidden { display:none; }

/* ====== RESPONSIVE ====== */
@media (max-width: 768px) {
  /* NAV */
  nav { padding:0 1rem; height:60px; flex-wrap:wrap; position:relative; }
  .nav-logo-img { height:45px; }
  .nav-links { display:none; flex-direction:column; position:absolute; top:60px; left:0; right:0; background:var(--nav); padding:.5rem 0; z-index:101; box-shadow:0 4px 12px rgba(0,0,0,.3); }
  .nav-links.open { display:flex; }
  .nav-link { padding:.7rem 1.5rem; font-size:.85rem; }
  .nav-burger { display:block; position:absolute; right:1rem; }

  /* HERO + INTRO kompakt */
  .hero-banner { height:100px; }
  .hero-banner-title { font-size:1.1rem; padding:0 1rem .8rem; }
  .content { padding:0 1rem; }
  .page-intro { padding:1.2rem 0 .8rem; margin-bottom:1rem; }
  .page-intro h1 { font-size:1.2rem; }
  .page-intro p:not(.tagline) { display:none; }
  .tagline { font-size:.85rem; margin-bottom:0; }

  /* TEXT-SEKTIONEN verstecken – Tools im Vordergrund */
  .two-col { display:none; }
  .section-bg { display:none; }
  .ablauf-section { display:none; }
  .blue-band { display:none; }

  /* ARGUMENT GENERATOR kompakt */
  .arg-wrap { margin-bottom:2rem; }
  .arg-hero { margin:0 -1rem 1.2rem; padding:2rem 1rem; }
  .arg-hero-title { font-size:1.6rem; }
  .arg-grid { grid-template-columns:1fr; }
  .arg-einwand-grid { grid-template-columns:1fr 1fr; }
  .arg-actions { flex-direction:column; }
  .arg-act-btn { min-width:auto; }

  /* MATCHER kompakt */
  .matcher-section { margin-bottom:2rem; }
  .matcher-section > h2 { font-size:1.05rem; }
  .matcher-section > p { display:none; }
  .matcher-section-header { margin:0 -1rem 1rem; padding:1rem; }
  .matcher-section-header h2 { font-size:1.05rem; }
  .matcher-section-header p { font-size:.8rem; }
  .matcher-header { padding:1rem; gap:.8rem; }
  .matcher-header-icon { font-size:1.6rem; }
  .matcher-header h3 { font-size:.95rem; }
  .matcher-header p { font-size:.75rem; }
  .matcher-body { padding:1rem; }
  .matcher-grid { grid-template-columns:1fr; }

  /* STEINSUCHE kompakt */
  .steinsuche-section { margin-bottom:2rem; }
  .steinsuche-header { margin:0 -1rem 1rem; padding:1rem; }
  .steinsuche-header h2 { font-size:1.05rem; }
  .steinsuche-header p { font-size:.8rem; }
  .stein-results { grid-template-columns:1fr 1fr; }

  /* PLANUNGSDETAILS kompakt */
  .detail-finder-section { margin-bottom:2rem; }
  .detail-finder-header { margin:0 -1rem 1rem; padding:1rem; }
  .detail-finder-header h2 { font-size:1.05rem; }
  .detail-finder-header p { font-size:.8rem; }
  .detail-results { grid-template-columns:1fr; }

  /* GRIDS */
  .filter-row { grid-template-columns:1fr; }
  .matches-grid { grid-template-columns:1fr; }

  /* KONTAKT kompakt */
  .kontakt-grid { grid-template-columns:1fr; gap:1.5rem; }
  .kontakt-grid > div:first-child p { display:none; }

  /* FOOTER + WIDGET */
  footer { flex-direction:column; gap:.5rem; padding:1rem; }
  .ki-widget { width:calc(100vw - 2rem); right:1rem; }
}
