/* ════════════════════════════════════════════════════════════════
   Energie-Förderungen Platform · Stylesheet
   Fonts: Instrument Serif (headings) + DM Sans (body)
   ════════════════════════════════════════════════════════════════ */

:root {
  --g:        #16a34a;
  --g-d:      #14532d;
  --g-l:      #dcfce7;
  --g-bg:     #f0fdf4;
  --blue:     #1d4ed8;
  --blue-l:   #dbeafe;
  --amber:    #d97706;
  --amber-l:  #fef3c7;
  --red:      #dc2626;
  --bg:       #f8fafc;
  --bg2:      #f1f5f9;
  --card:     #ffffff;
  --border:   #e2e8f0;
  --border2:  #cbd5e1;
  --text:     #0f172a;
  --muted:    #64748b;
  --light:    #94a3b8;
  --serif:    'Instrument Serif', Georgia, serif;
  --sans:     'DM Sans', system-ui, sans-serif;
  --r:        8px;
  --r-lg:     14px;
  --sh:       0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);
  --sh-lg:    0 4px 20px rgba(0,0,0,.10);
  --max:      1080px;
}

/* ── Reset ──────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);font-size:16px;line-height:1.65;color:var(--text);background:var(--bg)}
img{max-width:100%;height:auto;display:block}
a{color:var(--g);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2{font-family:var(--serif);font-weight:400;line-height:1.2}
h3,h4{font-family:var(--sans);font-weight:600;line-height:1.3}
h1{font-size:clamp(1.7rem,4vw,2.6rem)}
h2{font-size:clamp(1.25rem,3vw,1.8rem);margin:2rem 0 1rem}
h3{font-size:1.05rem;margin:1.2rem 0 .4rem}
p{margin-bottom:.7rem}
ul,ol{padding-left:1.3rem}
li{margin-bottom:.25rem}
address{font-style:normal}

/* ── Skip link ──────────────────────────────────────────────── */
.skip-link{position:absolute;left:-9999px;background:var(--g);color:#fff;padding:.5rem 1rem;border-radius:var(--r);z-index:9999}
.skip-link:focus{left:1rem;top:1rem}

/* ── Utilities ──────────────────────────────────────────────── */
.container{max-width:var(--max);margin:0 auto;padding:0 1.25rem}
.muted{color:var(--muted)}
.small{font-size:.82rem}
.green{color:var(--g)}
.text-red{color:var(--red)}

/* ── Cookie Banner ──────────────────────────────────────────── */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:#1e293b;color:#e2e8f0;z-index:9999;padding:1rem;display:flex;justify-content:center}
.cookie-inner{max-width:var(--max);display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.cookie-inner p{margin:0;font-size:.875rem;flex:1 1 300px}
.cookie-inner a{color:#4ade80}
.cookie-btns{display:flex;gap:.5rem;flex-wrap:wrap}
.btn-cookie-accept{background:var(--g);color:#fff;border:none;padding:.5rem 1.1rem;border-radius:var(--r);cursor:pointer;font-size:.875rem;font-weight:600;white-space:nowrap}
.btn-cookie-reject{background:transparent;color:#e2e8f0;border:1px solid #475569;padding:.45rem 1rem;border-radius:var(--r);cursor:pointer;font-size:.875rem;white-space:nowrap}
.cookie-link{color:#94a3b8;font-size:.8rem;white-space:nowrap;display:flex;align-items:center}

/* ── Header ─────────────────────────────────────────────────── */
.site-header{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.header-row{display:flex;align-items:center;height:62px;gap:1rem}
.site-logo{display:flex;align-items:center;gap:.4rem;font-family:var(--serif);font-size:1.05rem;color:var(--text);font-weight:400;white-space:nowrap}
.logo-bolt{font-size:1.3rem}
.main-nav{display:flex;gap:.15rem;margin-left:auto}
.main-nav a{padding:.4rem .8rem;border-radius:var(--r);color:var(--muted);font-size:.875rem;font-weight:500;transition:all .15s}
.main-nav a:hover,.main-nav a.active{background:var(--g-bg);color:var(--g);text-decoration:none}
.main-nav a.nav-cta{background:var(--g);color:#fff;font-weight:600}
.main-nav a.nav-cta:hover{background:var(--g-d)}
.nav-toggle{display:none;background:none;border:1px solid var(--border);border-radius:var(--r);padding:.4rem .6rem;cursor:pointer;flex-direction:column;gap:4px}
.nav-toggle span{display:block;width:18px;height:2px;background:var(--text);border-radius:2px}
@media(max-width:680px){
  .nav-toggle{display:flex}
  .main-nav{display:none;position:fixed;top:62px;left:0;right:0;background:#fff;border-bottom:1px solid var(--border);flex-direction:column;padding:.75rem;z-index:99;box-shadow:var(--sh-lg)}
  .main-nav.open{display:flex}
  .main-nav a{padding:.6rem 1rem;border-radius:var(--r)}
}

/* ── Buttons ─────────────────────────────────────────────────── */
.btn-primary{display:inline-block;background:var(--g);color:#fff;padding:.6rem 1.4rem;border-radius:var(--r);font-weight:600;font-size:.9rem;border:none;cursor:pointer;transition:background .2s;text-decoration:none}
.btn-primary:hover{background:var(--g-d);color:#fff;text-decoration:none}
.btn-outline{display:inline-block;background:transparent;color:var(--g);border:1.5px solid var(--g);padding:.55rem 1.3rem;border-radius:var(--r);font-weight:600;font-size:.9rem;cursor:pointer;transition:all .15s;text-decoration:none}
.btn-outline:hover{background:var(--g-l);text-decoration:none}
.btn-sm{display:inline-block;background:var(--bg2);color:var(--text);border:1px solid var(--border);padding:.3rem .75rem;border-radius:5px;font-size:.8rem;font-weight:500;cursor:pointer;text-decoration:none;transition:background .15s}
.btn-sm:hover{background:var(--border);text-decoration:none}
.btn-sm.btn-green{background:var(--g);color:#fff;border-color:var(--g)}
.btn-green:hover{background:var(--g-d)}
.btn-calc{width:100%;padding:.75rem;font-size:1rem;margin-top:.5rem}
.btn-weiter{padding:.65rem 2rem;margin-top:1rem}
.btn-cookie-reset{background:none;border:1px solid var(--border2);color:var(--muted);padding:.3rem .7rem;border-radius:5px;font-size:.8rem;cursor:pointer}

/* ── Hero ─────────────────────────────────────────────────────── */
.hero{background:linear-gradient(135deg,#0f2027,#1a3a5c 50%,#1a5c3a);color:#fff;padding:3.5rem 0 3rem}
.hero-sm{padding:2rem 0 1.5rem}
.hero-xs{padding:1.5rem 0 1rem}
.hero h1,.hero h2{color:#fff}
.hero-badge{display:inline-block;background:rgba(34,197,94,.2);border:1px solid rgba(34,197,94,.35);color:#4ade80;padding:.25rem .85rem;border-radius:20px;font-size:.78rem;font-weight:500;margin-bottom:.75rem}
.hero em{color:#4ade80;font-style:normal}
.hero-text{font-size:1.05rem;color:rgba(255,255,255,.85);max-width:640px;margin:.75rem 0 1.5rem}
.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1.25rem}
.hero-trust{display:flex;gap:1.25rem;flex-wrap:wrap;font-size:.82rem;color:rgba(255,255,255,.65)}
.freshness-badge{display:inline-block;background:rgba(255,255,255,.12);color:rgba(255,255,255,.75);padding:.2rem .75rem;border-radius:20px;font-size:.78rem}

/* ── Breadcrumb ──────────────────────────────────────────────── */
.breadcrumb{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;font-size:.82rem;color:rgba(255,255,255,.55);margin-bottom:.75rem}
.breadcrumb a{color:rgba(255,255,255,.75)}
.breadcrumb span{color:rgba(255,255,255,.45)}

/* ── Page Content ────────────────────────────────────────────── */
.page-content{padding:2rem 0 3rem}

/* ── Type Tabs ───────────────────────────────────────────────── */
.type-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:1rem 0 0;padding-bottom:1px;border-bottom:2px solid var(--border)}
.type-tab{padding:.45rem .9rem;border-radius:var(--r) var(--r) 0 0;font-size:.84rem;font-weight:500;color:var(--muted);border:1px solid transparent;margin-bottom:-2px;text-decoration:none;transition:all .15s}
.type-tab:hover{color:var(--text);background:var(--bg2);text-decoration:none}
.type-tab.active{background:#fff;color:var(--g);border-color:var(--border);border-bottom-color:#fff;font-weight:600}

/* ── Filter Bar ──────────────────────────────────────────────── */
.filter-bar{background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:.75rem 1rem;margin-bottom:1.5rem}
.filter-form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.filter-form select,.filter-form input{padding:.4rem .7rem;border:1px solid var(--border2);border-radius:5px;font-size:.875rem;background:#fff;font-family:var(--sans)}
.filter-form select:focus,.filter-form input:focus{outline:none;border-color:var(--g)}

/* ── Kategorie Grid ──────────────────────────────────────────── */
.kat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.75rem;margin-top:1.25rem}
.kat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.25rem 1rem;display:flex;align-items:center;gap:.75rem;color:var(--text);transition:all .2s;box-shadow:var(--sh)}
.kat-card:hover{border-color:var(--g);box-shadow:var(--sh-lg);transform:translateY(-2px);text-decoration:none}
.kat-icon{font-size:1.5rem;flex-shrink:0}
.kat-name{font-weight:600;font-size:.9rem;flex:1}
.kat-arrow{color:var(--muted);font-size:.9rem}

/* ── Rechner Teaser Grid ─────────────────────────────────────── */
.rechner-teaser-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-top:1.25rem}
.rechner-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.5rem;color:var(--text);transition:all .2s;box-shadow:var(--sh);display:flex;flex-direction:column;gap:.4rem}
.rechner-card:hover{border-color:var(--g);box-shadow:var(--sh-lg);text-decoration:none}
.rechner-card.featured{border-color:var(--g);background:var(--g-bg)}
.rc-icon{font-size:2rem}
.rechner-card h3{font-size:.95rem;font-family:var(--sans);font-weight:600;margin:0}
.rechner-card p{font-size:.85rem;color:var(--muted);margin:0;flex:1}
.rc-link{font-size:.82rem;color:var(--g);font-weight:600;margin-top:.25rem}

/* ── Bundesland Pills ────────────────────────────────────────── */
.bl-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}
.bl-pill,.bl-card{background:var(--card);border:1px solid var(--border);padding:.4rem .9rem;border-radius:5px;font-size:.875rem;color:var(--muted);transition:all .15s}
.bl-pill:hover,.bl-card:hover{border-color:var(--g);color:var(--g);background:var(--g-l);text-decoration:none}

/* ── Trust Section ───────────────────────────────────────────── */
.section-trust{background:var(--bg2);padding:3rem 0}
.trust-grid{display:grid;grid-template-columns:1fr 300px;gap:2rem;align-items:start}
.trust-list{list-style:none;padding:0;margin-top:.75rem}
.trust-list li{padding:.3rem 0;font-size:.9rem;border-bottom:1px solid var(--border)}
.trust-list li:last-child{border:none}
.trust-quellen{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.5rem}
.trust-quellen h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .75rem}
.quelle-btn{display:block;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--r);margin-bottom:.4rem;color:var(--muted);font-size:.875rem;transition:all .15s}
.quelle-btn:hover{border-color:var(--g);color:var(--g);text-decoration:none;background:var(--g-bg)}
@media(max-width:760px){.trust-grid{grid-template-columns:1fr}}

/* ── Section padding ─────────────────────────────────────────── */
.section-kategorien,.section-rechner-teaser,.section-bundeslaender{padding:2.5rem 0}
.section-bundeslaender{background:var(--bg2)}

/* ── Table ───────────────────────────────────────────────────── */
.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-lg);margin:1.5rem 0}
.foerder-table{width:100%;border-collapse:collapse;min-width:640px;font-size:.85rem}
.foerder-table th{background:var(--bg2);padding:.65rem 1rem;text-align:left;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap}
.foerder-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border);vertical-align:top;line-height:1.45}
.foerder-table tr:last-child td{border-bottom:none}
.foerder-table tr:hover td{background:var(--bg)}
.tag{background:var(--bg2);color:var(--muted);padding:.1rem .45rem;border-radius:3px;font-size:.72rem;display:inline-block}
.badge{display:inline-block;padding:.15rem .5rem;border-radius:3px;font-size:.72rem;font-weight:600;white-space:nowrap}
.badge.green{background:var(--g-l);color:var(--g-d)}
.badge.blue{background:var(--blue-l);color:var(--blue)}
.badge-best{background:var(--g);color:#fff;padding:.15rem .5rem;border-radius:3px;font-size:.72rem;font-weight:600}

/* ── Legal table ─────────────────────────────────────────────── */
.legal-table{width:100%;border-collapse:collapse;font-size:.85rem;margin:1rem 0}
.legal-table th,.legal-table td{padding:.6rem .8rem;border:1px solid var(--border);text-align:left;vertical-align:top}
.legal-table th{background:var(--bg2);font-weight:600;font-size:.78rem}

/* ── Info / Disclaimer / CTA Boxes ──────────────────────────── */
.info-box{background:var(--blue-l);border:1px solid #93c5fd;border-radius:var(--r);padding:1rem 1.25rem;margin:1rem 0}
.disclaimer-box{background:#fffbeb;border:1px solid #fde68a;border-radius:var(--r);padding:.9rem 1.1rem;font-size:.84rem;color:#78350f;margin:1.25rem 0}
.disclaimer-small{font-size:.78rem;color:var(--light);margin:.75rem 0}
.cta-box{background:var(--g-bg);border:1px solid var(--g-l);border-radius:var(--r-lg);padding:2rem;text-align:center;margin:2.5rem 0}
.cta-box h2{margin:0 0 .5rem}
.cta-box p{color:var(--muted);margin-bottom:1rem}

/* ── Quer-Links ──────────────────────────────────────────────── */
.quer-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:2rem 0;padding-top:2rem;border-top:1px solid var(--border)}
.quer-link{display:inline-block;background:var(--bg2);border:1px solid var(--border);padding:.3rem .7rem;border-radius:5px;font-size:.82rem;color:var(--muted);margin:.2rem .2rem .2rem 0;transition:all .15s}
.quer-link:hover{border-color:var(--g);color:var(--g);text-decoration:none}
@media(max-width:600px){.quer-grid{grid-template-columns:1fr}}

/* ── Staedte Grid ────────────────────────────────────────────── */
.section-staedte{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border)}
.staedte-grid{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}
.stadt-pill{background:var(--bg2);border:1px solid var(--border);padding:.3rem .7rem;border-radius:5px;font-size:.82rem;color:var(--muted);transition:all .15s}
.stadt-pill:hover{border-color:var(--g);color:var(--g);text-decoration:none}

/* ── Rechner Layout ──────────────────────────────────────────── */
.rechner-layout{display:grid;grid-template-columns:1fr 280px;gap:2rem;align-items:start}
.rechner-box{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.5rem;box-shadow:var(--sh)}
.rechner-box h2{margin:0 0 1.25rem;font-size:1.1rem;font-family:var(--sans)}
.rechner-sidebar{display:flex;flex-direction:column;gap:1rem}
.sidebar-widget{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.1rem;box-shadow:var(--sh)}
.sidebar-widget h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .65rem}
.sidebar-link{display:block;padding:.35rem 0;color:var(--muted);font-size:.875rem;border-bottom:1px solid var(--border);transition:color .15s}
.sidebar-link:last-child{border:none}
.sidebar-link:hover{color:var(--g);text-decoration:none}
.sidebar-ad{margin-top:.5rem}
.freshness-info p{font-size:.82rem;margin-bottom:.3rem;color:var(--muted)}
@media(max-width:820px){.rechner-layout{grid-template-columns:1fr}.rechner-sidebar{order:-1}}

/* ── Forms ───────────────────────────────────────────────────── */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-bottom:.75rem}
.form-group{display:flex;flex-direction:column;gap:.35rem}
.form-group label{font-size:.82rem;font-weight:600;color:var(--muted)}
.form-group input,.form-group select{padding:.5rem .7rem;border:1.5px solid var(--border2);border-radius:6px;font-size:.9rem;font-family:var(--sans);background:#fff;transition:border-color .15s}
.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--g)}
.form-group small{font-size:.75rem;color:var(--light)}
.range-row{display:flex;align-items:center;gap:.75rem}
.range-row input[type=range]{flex:1}
.range-val{font-weight:700;color:var(--g);min-width:38px}
@media(max-width:560px){.form-grid{grid-template-columns:1fr}}

/* ── Results ─────────────────────────────────────────────────── */
.result-area{margin-top:1.5rem;padding-top:1.25rem;border-top:2px solid var(--g-l)}
.result-area h3{font-family:var(--serif);font-size:1.2rem;margin:0 0 1rem}
.result-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;margin-bottom:.75rem}
.result-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:.8rem 1rem}
.result-card.highlight{background:var(--g-bg);border-color:var(--g)}
.result-card.big{grid-column:1/-1;background:var(--g-bg);border-color:var(--g)}
.rc-l{font-size:.75rem;color:var(--muted);margin-bottom:.25rem}
.rc-v{font-size:1.25rem;font-weight:700;font-family:var(--serif);color:var(--text)}
.rc-v.green{color:var(--g)}
.rc-s{font-size:.72rem;color:var(--muted);margin-top:.15rem}
.result-ctas{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}
.chart-wrap{margin:1rem 0}
.hk-table{overflow-x:auto}
.hk-table table{width:100%;border-collapse:collapse;min-width:400px;font-size:.875rem}
.hk-table th{background:var(--bg2);padding:.6rem .8rem;text-align:left;font-size:.75rem;font-weight:600;color:var(--muted);border-bottom:1px solid var(--border)}
.hk-table td{padding:.7rem .8rem;border-bottom:1px solid var(--border)}
.hk-table tr.best td{background:var(--g-bg);font-weight:500}
@media(max-width:560px){.result-cards{grid-template-columns:1fr 1fr}}

/* ── Förder-Check Steps ───────────────────────────────────────── */
.content-2col{display:grid;grid-template-columns:1fr 280px;gap:2rem;align-items:start}
@media(max-width:820px){.content-2col{grid-template-columns:1fr}}
.rechner-box .step{display:none}
.rechner-box .step.active{display:block}
.step-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}
.step-num{width:30px;height:30px;border-radius:50%;background:var(--g);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex-shrink:0}
.step-header h2{font-size:1.1rem;font-family:var(--sans);margin:0}
.kat-auswahl{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin-bottom:1rem}
.kat-radio{cursor:pointer}
.kat-radio input{position:absolute;opacity:0;pointer-events:none}
.kat-radio span{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.75rem .5rem;border:2px solid var(--border);border-radius:var(--r);font-size:.78rem;font-weight:500;text-align:center;cursor:pointer;transition:all .15s}
.kat-radio input:checked + span{border-color:var(--g);background:var(--g-bg);color:var(--g)}
.kat-radio span:hover{border-color:var(--g-d)}
.step-nav{display:flex;gap:.75rem;margin-top:1.25rem}
.result-programs h3{font-size:.9rem;margin:1rem 0 .5rem}
.result-programs ul{font-size:.85rem}
.quellen-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.75rem}
.quellen-row a{font-size:.82rem;color:var(--g);border:1px solid var(--g-l);padding:.25rem .6rem;border-radius:4px;background:var(--g-bg)}
.erklaerung-box{background:var(--bg2);border-radius:var(--r-lg);padding:1.5rem;margin-top:1.5rem}
.erklaerung-box h2{font-size:1.1rem;font-family:var(--sans);margin:0 0 .6rem}
@media(max-width:560px){.kat-auswahl{grid-template-columns:repeat(2,1fr)}}

/* ── Handwerker Grid ─────────────────────────────────────────── */
.handwerker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin:1.25rem 0}
.handwerker-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.25rem;box-shadow:var(--sh)}
.hw-head{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}
.hw-avatar{width:42px;height:42px;border-radius:50%;background:var(--g-l);color:var(--g-d);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex-shrink:0;font-family:var(--sans)}
.hw-info{flex:1;min-width:0}
.hw-name{font-size:.95rem;font-weight:600;font-family:var(--sans);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hw-ort{font-size:.78rem;color:var(--muted);margin:.15rem 0 0}
.hw-rating{margin-left:auto;text-align:right;white-space:nowrap}
.stars{color:#f59e0b;font-size:.9rem;letter-spacing:-1px}
.hw-rating strong{font-size:.85rem}
.hw-desc{font-size:.85rem;color:var(--muted);margin-bottom:.65rem}
.hw-meta p{font-size:.82rem;color:var(--muted);margin-bottom:.25rem}
.hw-kats{display:flex;flex-wrap:wrap;gap:.3rem;margin:.4rem 0}
.kat-mini{background:var(--bg2);color:var(--muted);padding:.15rem .5rem;border-radius:3px;font-size:.72rem}
.hw-certs{display:flex;flex-wrap:wrap;gap:.3rem;margin:.3rem 0}
.cert{background:var(--g-l);color:var(--g-d);padding:.15rem .5rem;border-radius:3px;font-size:.72rem;font-weight:600}
.hw-actions{display:flex;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}
.hw-contact{font-size:.85rem;color:var(--g);display:block;margin-bottom:.4rem}

/* ── Legal Pages ─────────────────────────────────────────────── */
.legal-page{max-width:760px}
.legal-box{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:2rem;margin-bottom:1rem}
.legal-box h2{margin:2rem 0 .75rem;font-size:1.1rem;font-family:var(--sans);font-weight:600;padding-top:1.5rem;border-top:1px solid var(--border)}
.legal-box h2:first-child{margin-top:0;padding-top:0;border-top:none}
.legal-box ul{font-size:.9rem;margin-bottom:.75rem}
.legal-box address{background:var(--bg2);padding:.75rem 1rem;border-radius:var(--r);margin:.5rem 0 1rem;font-size:.9rem;line-height:1.8}
.legal-stand{font-size:.82rem;color:var(--muted);margin-bottom:2rem}

/* ── Sitemap ─────────────────────────────────────────────────── */
.sitemap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2rem;padding:1rem 0}
.sitemap-grid h2{font-size:1rem;font-family:var(--sans);margin:0 0 .75rem;color:var(--muted);text-transform:uppercase;font-size:.8rem;letter-spacing:.06em}
.sitemap-grid ul{list-style:none;padding:0}
.sitemap-grid li{padding:.25rem 0;border-bottom:1px solid var(--border);font-size:.875rem}

/* ── Ad Slots ────────────────────────────────────────────────── */
.ad-slot,.ad-slot-top,.ad-slot-mid{margin:1.5rem 0;text-align:center;min-height:50px}
.ad-sticky-footer{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--border);padding:.25rem;text-align:center;z-index:90;display:none}
@media(max-width:768px){.ad-sticky-footer{display:block}}

/* ── Footer ──────────────────────────────────────────────────── */
.site-footer{background:#0f172a;color:rgba(255,255,255,.65);padding:3rem 0 1.5rem;margin-top:4rem}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.5fr 1fr;gap:2rem;margin-bottom:2rem}
.footer-brand{display:flex;align-items:center;gap:.4rem;font-family:var(--serif);font-size:.95rem;color:#fff;margin-bottom:.5rem}
.footer-brand .logo-bolt{font-size:1.1rem}
.footer-col p{font-size:.82rem;color:rgba(255,255,255,.5);margin-bottom:.35rem}
.footer-legal-short{font-size:.78rem;color:rgba(255,255,255,.35)!important}
.footer-col h3{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.35);font-family:var(--sans);margin:0 0 .65rem;font-weight:600}
.footer-col a{display:block;color:rgba(255,255,255,.55);font-size:.82rem;margin-bottom:.3rem;transition:color .15s}
.footer-col a:hover{color:#4ade80;text-decoration:none}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:1.25rem}
.footer-disclaimer{font-size:.77rem;color:rgba(255,255,255,.35);margin-bottom:.5rem;line-height:1.5}
.footer-disclaimer a{color:rgba(255,255,255,.45)}
.footer-bottom > p:last-child{font-size:.78rem;color:rgba(255,255,255,.25)}
.footer-bottom a{color:rgba(255,255,255,.35)}
@media(max-width:700px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.footer-grid{grid-template-columns:1fr}}

/* ── Responsive misc ─────────────────────────────────────────── */
@media(max-width:600px){
  .hero{padding:2rem 0 1.75rem}
  .kat-grid{grid-template-columns:repeat(2,1fr)}
  .rechner-teaser-grid{grid-template-columns:1fr 1fr}
  .handwerker-grid{grid-template-columns:1fr}
  .result-cards{grid-template-columns:1fr 1fr}
}

/* ── Abgelaufen / Status ──────────────────────────────────────────── */
.foerder-table tr.row-abgelaufen td { opacity: .6; }
.tag-red { background: #fee2e2; color: #991b1b; }
