
*{box-sizing:border-box}
:root{
  --brand:#20913a;
  --brand-dark:#116b28;
  --brand-soft:#eff9f1;
  --brand-pale:#f7fcf8;
  --ink:#151917;
  --muted:#68716b;
  --line:#e1e6e2;
  --bg:#f4f6f4;
  --white:#fff;
  --dark:#122019;
  --warning:#f4aa32;
  --danger:#bd382f;
  --shadow-sm:0 3px 12px rgba(20,45,25,.06);
  --shadow:0 18px 46px rgba(20,55,28,.10);
  --radius:14px;
}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-width:320px;
  overflow-x:hidden;
  font-family:Inter,Arial,sans-serif;
  color:var(--ink);
  background:var(--bg);
}
button,input,select,textarea{font:inherit}
a{color:inherit}
.topbar{
  height:78px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:10px max(24px,calc((100vw - 1760px)/2 + 22px));
  background:#fff;
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:30;
}
.brand{display:flex;align-items:center;gap:14px;min-width:0}
.brand img{width:66px;height:56px;object-fit:contain}
.brand h1{margin:0;font-size:18px;line-height:1.2}
.brand p{margin:3px 0 0;color:var(--muted);font-size:12px}
.top-contact{text-align:right;font-size:12px;line-height:1.45}
.top-contact b{display:block}

.configurator{
  width:min(100%,1760px);
  min-height:calc(100vh - 78px);
  margin:0 auto;
  display:grid;
  grid-template-columns:214px minmax(0,1fr) 350px;
  background:#fff;
  border-left:1px solid var(--line);
  border-right:1px solid var(--line);
}
.wizard-nav{
  padding:27px 18px;
  background:#fbfcfb;
  border-right:1px solid var(--line);
}
.wizard-nav h3{margin:0 0 4px;font-size:17px}
.wizard-nav small{color:var(--muted);font-size:11px}
.progress{
  height:6px;
  margin:13px 0 19px;
  overflow:hidden;
  background:#e4e9e5;
  border-radius:20px;
}
.progress span{
  display:block;
  height:100%;
  width:10%;
  background:var(--brand);
  border-radius:20px;
  transition:.25s ease;
}
.step-list{display:grid;gap:2px}
.step{
  display:grid;
  grid-template-columns:31px minmax(0,1fr);
  align-items:center;
  gap:9px;
  min-height:42px;
  color:#768078;
  font-size:12px;
  line-height:1.25;
}
.step:before{
  content:"";
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border:1px solid #cbd3cd;
  border-radius:50%;
  background:#fff;
}
.step.active,.step.done{color:var(--ink);font-weight:800}
.step.active:before,.step.done:before{
  content:"✓";
  color:#fff;
  border-color:var(--brand);
  background:var(--brand);
}
.step.active{position:relative}
.step.active:after{
  content:"";
  position:absolute;
  left:-18px;
  width:3px;
  height:30px;
  border-radius:4px;
  background:var(--brand);
}

.workspace{
  min-width:0;
  padding:28px 30px 64px;
  background:#fff;
}
.panel{display:none;max-width:100%;animation:fade .18s ease}
.panel.active{display:block}
@keyframes fade{from{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:none}}
.panel>h2{margin:0 0 6px;font-size:25px;line-height:1.2}
.lead{margin:0 0 22px;color:var(--muted);font-size:13px;line-height:1.55}
.eyebrow{
  display:inline-flex;
  padding:5px 9px;
  border-radius:20px;
  color:var(--brand-dark);
  background:var(--brand-soft);
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.full{grid-column:1/-1}
.field label{display:block;margin-bottom:5px;font-size:11px;font-weight:800}
.field small{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.4}
input,select,textarea{
  width:100%;
  min-height:43px;
  padding:10px 11px;
  border:1px solid #cbd4cd;
  border-radius:8px;
  background:#fff;
  color:var(--ink);
}
input:focus,select:focus,textarea:focus{
  outline:0;
  border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(32,145,58,.10);
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:0;
  border-radius:8px;
  padding:11px 17px;
  font-size:12px;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
  transition:.18s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn.primary{color:#fff;background:var(--brand);box-shadow:0 8px 20px rgba(32,145,58,.18)}
.btn.secondary{color:var(--ink);background:#fff;border:1px solid #c5cec7}
.nav-buttons{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:25px;
}

.welcome-layout{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(290px,.92fr);
  min-height:525px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:17px;
  background:#fff;
  box-shadow:var(--shadow);
}
.welcome-copy{padding:42px 38px}
.welcome-copy h2{max-width:610px;margin:14px 0 14px;font-size:37px;line-height:1.1}
.welcome-copy p{max-width:610px;margin:0;color:var(--muted);font-size:14px;line-height:1.65}
.welcome-benefits{display:grid;gap:10px;margin:22px 0 25px}
.welcome-benefit{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:800}
.welcome-benefit span{
  width:22px;height:22px;display:grid;place-items:center;
  border-radius:50%;color:var(--brand);background:#e6f6e9;
}
.welcome-visual{
  display:grid;
  place-items:end center;
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(180deg,rgba(255,255,255,.15),rgba(255,255,255,.70)),
    linear-gradient(145deg,#e9f0eb,#dbe6de);
}
.welcome-visual:before{
  content:"";
  position:absolute;
  inset:auto -15% -20% -15%;
  height:55%;
  background:radial-gradient(circle,#fff 0%,rgba(255,255,255,0) 70%);
}
.welcome-visual img{
  position:relative;
  z-index:1;
  width:94%;
  height:88%;
  max-height:490px;
  object-fit:contain;
  filter:drop-shadow(0 20px 27px rgba(18,35,21,.18));
}

.option-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin:9px 0;
  padding:15px 16px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}
.option-card b{font-size:13px}
.option-card small{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.option-card input{width:22px;min-height:auto}
.info{
  margin:14px 0;
  overflow:hidden;
  border:1px solid #b9d8be;
  border-radius:11px;
  background:#f2faf3;
}
.info summary{
  display:flex;
  justify-content:space-between;
  gap:15px;
  padding:13px 15px;
  list-style:none;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.info summary:after{content:"⌄"}
.info[open] summary:after{content:"⌃"}
.info-body{padding:0 16px 16px;color:#435047;font-size:11px;line-height:1.6}
.notice{
  margin:13px 0;
  padding:12px 13px;
  border:1px solid #e7c372;
  border-radius:9px;
  background:#fff9e9;
  font-size:10px;
  line-height:1.5;
}
.error{padding:12px;border:1px solid #e2a9a3;border-radius:9px;color:#8c241c;background:#fff2f1}
.result-card{
  overflow:hidden;
  border:1px solid #c8decf;
  border-radius:12px;
  background:#f4fbf5;
}
.result-row{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:9px 14px;
  border-bottom:1px solid #dce8de;
  font-size:11px;
}
.result-row:last-child{border:0}
.result-row.total{
  padding-top:13px;padding-bottom:13px;
  color:var(--brand-dark);
  background:#eef9f0;
  font-size:15px;font-weight:900;
}
.trust-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-top:24px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
}
.trust-card{padding:13px 7px;text-align:center;border-right:1px solid var(--line)}
.trust-card:last-child{border:0}
.trust-card .icon{font-size:15px}
.trust-card b{display:block;margin-top:4px;font-size:10px}
.trust-card small{display:block;margin-top:2px;color:var(--muted);font-size:9px}

.summary-rail{
  min-width:0;
  padding:15px;
  background:#f8faf8;
  border-left:1px solid var(--line);
}
.summary-card{
  position:sticky;
  top:12px;
  max-height:calc(100vh - 24px);
  overflow:auto;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  box-shadow:var(--shadow);
}
.summary-head{padding:16px 16px 0}
.summary-head h3{margin:0;font-size:16px}
.summary-head p{margin:3px 0;color:var(--muted);font-size:9px}
.product-hero{
  margin:13px;
  overflow:hidden;
  border:1px solid #cce0cf;
  border-radius:12px;
  background:var(--brand-soft);
}
.product-hero img{
  display:block;
  width:100%;
  height:155px;
  padding:7px;
  object-fit:contain;
  object-position:center;
  background:#f1f3f1;
}
.product-copy{padding:11px}
.badge{
  display:inline-flex;
  padding:4px 8px;
  border-radius:20px;
  color:#fff;
  background:var(--brand);
  font-size:8px;
  font-weight:900;
  text-transform:uppercase;
}
.product-copy h4{margin:7px 0 1px;font-size:13px;line-height:1.3}
.metric{
  margin:0 13px 9px;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:10px;
}
.metric small{color:var(--muted);font-size:9px}
.metric b{display:block;margin-top:3px;color:var(--brand-dark);font-size:20px}
.metric span{font-size:9px;color:var(--muted)}
.items{margin:0 13px}
.item{
  margin:7px 0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:9px;
}
.item summary{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  padding:10px;
  background:#fafbfa;
  font-size:10px;
  cursor:pointer;
}
.item summary small{color:var(--muted)}
.item-body{padding:10px;font-size:9px;line-height:1.5}
.price-box{
  margin:13px;
  padding:13px;
  border-radius:11px;
  color:#fff;
  background:var(--dark);
}
.price-line{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:9px}
.price-line.total{
  margin-top:7px;
  padding-top:10px;
  border-top:1px solid #ffffff31;
  color:#8ce39d;
  font-size:15px;
  font-weight:900;
}

.project-card{
  overflow:hidden;
  border:1px solid #bedac3;
  border-radius:15px;
  background:linear-gradient(180deg,#f3faf4,#fff);
  box-shadow:var(--shadow);
}
.project-top{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:15px;
  align-items:start;
  padding:20px;
}
.project-icon{
  width:48px;height:48px;display:grid;place-items:center;
  border-radius:13px;background:#dff2e3;font-size:21px;
}
.project-top p{margin:5px 0 0;color:var(--muted);font-size:11px}
.project-price{text-align:right}
.project-price small,.project-price span{display:block;color:var(--muted);font-size:9px}
.project-price strong{display:block;margin:2px 0;color:var(--brand-dark);font-size:30px}
.service-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fff;
}
.service-grid div{padding:11px 15px;border-bottom:1px solid #edf1ed;font-size:10px}
.service-grid div:nth-child(odd){border-right:1px solid #edf1ed}
.service-grid span{margin-right:5px;color:var(--brand);font-weight:900}
.project-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 20px}
.project-footer p{margin:3px 0 0;color:var(--muted);font-size:10px}

.mobile-summary-title{display:none}

/* Laptop */
@media(max-width:1400px) and (min-width:1051px){
  .configurator{grid-template-columns:190px minmax(0,1fr) 315px}
  .wizard-nav{padding:24px 14px}
  .workspace{padding:25px 23px 58px}
  .summary-rail{padding:12px}
  .product-hero img{height:135px}
  .welcome-copy{padding:34px 30px}
  .welcome-copy h2{font-size:32px}
}

/* Tablet */
@media(max-width:1050px) and (min-width:761px){
  .configurator{grid-template-columns:185px minmax(0,1fr)}
  .summary-rail{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);padding:15px 22px}
  .summary-card{
    position:static;max-height:none;
    display:grid;grid-template-columns:245px minmax(0,1fr);align-items:start;
  }
  .summary-head{grid-column:1/-1}
  .product-hero{grid-column:1;grid-row:2/7}
  .metric,.items,.price-box{grid-column:2}
  .product-hero img{height:155px}
}

/* Smartphone */
@media(max-width:760px){
  .topbar{height:auto;min-height:64px;padding:8px 11px}
  .brand img{width:51px;height:45px}
  .brand h1{font-size:13px}
  .brand p{font-size:9px}
  .top-contact{display:none}
  .configurator{display:block;min-height:auto;border:0}
  .wizard-nav{
    position:sticky;top:0;z-index:20;
    padding:9px 13px 8px;
    border-right:0;border-bottom:1px solid var(--line);
    background:#fbfcfb;
  }
  .wizard-nav h3{display:none}
  .wizard-nav small{display:block;font-size:10px}
  .progress{margin:5px 0 0;height:4px}
  .step-list{display:none}
  .workspace{padding:16px 12px 34px}
  .panel>h2{font-size:22px}
  .grid{grid-template-columns:1fr}
  .full{grid-column:auto}
  .nav-buttons{
    position:sticky;bottom:0;z-index:10;
    margin-top:20px;padding:10px 0 2px;
    background:rgba(255,255,255,.94);
  }
  .welcome-layout{display:block;min-height:0}
  .welcome-copy{padding:24px 19px}
  .welcome-copy h2{font-size:27px}
  .welcome-visual{height:240px}
  .welcome-visual img{height:95%;max-height:230px}
  .summary-rail{padding:11px;border-left:0;border-top:1px solid var(--line)}
  .mobile-summary-title{display:block;margin-bottom:7px;font-size:13px;font-weight:900}
  .summary-card{position:static;max-height:none}
  .product-hero img{height:130px}
  .items{display:none}
  .trust-strip{grid-template-columns:1fr 1fr}
  .service-grid{grid-template-columns:1fr}
  .service-grid div:nth-child(odd){border-right:0}
  .project-top{grid-template-columns:auto 1fr}
  .project-price{grid-column:1/-1;text-align:left;padding-left:63px}
  .project-footer{display:block}
  .project-footer .btn{width:100%;margin-top:13px}
}
@media(max-width:420px){
  .workspace{padding-left:9px;padding-right:9px}
  .trust-strip{grid-template-columns:1fr}
  .trust-card{border-right:0;border-bottom:1px solid var(--line)}
}


/* V3.6 – eingebettete Cal.com-Terminbuchung */
.calendar-section{
  margin-top:18px;
  padding:20px;
  border:1px solid #bedac3;
  border-radius:15px;
  background:#fff;
  box-shadow:var(--shadow);
}
.calendar-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:14px;
}
.calendar-section-head h3{
  margin:8px 0 4px;
  font-size:20px;
}
.calendar-section-head p{
  margin:0;
  color:var(--muted);
  font-size:11px;
}
.calendar-loading{
  display:grid;
  place-items:center;
  min-height:180px;
  padding:20px;
  border:1px dashed #cbd7cd;
  border-radius:11px;
  color:var(--muted);
  background:#fafcfa;
  font-size:12px;
}
.cal-inline-embed{
  width:100%;
  min-height:680px;
  overflow:hidden;
  border-radius:11px;
}
.cal-inline-embed iframe{
  width:100%!important;
  min-height:680px!important;
  border:0!important;
}
.booking-success{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:15px;
  padding:17px;
  border:1px solid #9ed0a7;
  border-radius:11px;
  color:var(--brand-dark);
  background:#eaf8ed;
}
.booking-success strong{font-size:16px}
.booking-success span{font-size:12px}
@media(max-width:760px){
  .calendar-section{padding:12px;margin-left:-3px;margin-right:-3px}
  .calendar-section-head{display:block}
  .calendar-section-head .btn{width:100%;margin-top:12px}
  .cal-inline-embed,.cal-inline-embed iframe{min-height:760px!important}
}


/* V3.6.1 – offizieller Cal.com-Inline-Embed */
#calInlineEmbed{
  width:100%;
  min-height:760px;
  overflow:auto;
  background:#fff;
}
#calInlineEmbed > div{
  width:100%!important;
  min-height:760px!important;
}
#calInlineEmbed iframe{
  width:100%!important;
  min-height:760px!important;
  border:0!important;
}
@media(max-width:760px){
  #calInlineEmbed,
  #calInlineEmbed > div,
  #calInlineEmbed iframe{
    min-height:820px!important;
  }
}


/* V3.7 – Abschlussseite und kompakte Live-Zusammenfassung */
.final-intro{
  margin-bottom:22px;
  padding:20px 22px;
  border:1px solid #c5dec9;
  border-radius:14px;
  background:linear-gradient(135deg,#f1faf3,#fff);
}
.final-intro h2{margin:9px 0 6px;font-size:24px}
.final-intro p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}

.project-cost-info{
  margin-top:17px;
  max-height:0;
  overflow:hidden;
  opacity:0;
  transform:translateY(-5px);
  transition:max-height .35s ease,opacity .25s ease,transform .25s ease;
  border:0 solid #c8decf;
  border-radius:14px;
  background:#fff;
}
.project-cost-info.open{
  max-height:1100px;
  opacity:1;
  transform:none;
  border-width:1px;
  padding:20px;
  box-shadow:var(--shadow);
}
.project-cost-header{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin-bottom:13px;
}
.project-cost-icon{
  width:44px;height:44px;
  display:grid;place-items:center;
  flex:0 0 auto;
  border-radius:12px;
  background:#e8f6eb;
  font-size:20px;
}
.project-cost-header h3{margin:7px 0 0;font-size:19px}
.project-cost-body{color:#465149;font-size:12px;line-height:1.6}
.project-cost-body p{margin:0 0 15px}
.project-cost-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.project-cost-grid>div{
  display:grid;
  grid-template-columns:30px 1fr;
  column-gap:8px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fafcfa;
}
.project-cost-grid>div>span{grid-row:1/3;font-size:20px}
.project-cost-grid b{font-size:12px}
.project-cost-grid small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.45}
.project-cost-note{
  margin-top:13px;
  padding:12px 13px;
  border-left:4px solid var(--brand);
  border-radius:8px;
  background:#f1faf3;
  font-size:11px;
  line-height:1.5;
}

.booking-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:17px;
  padding:19px 20px;
  border:1px solid #bdd9c2;
  border-radius:14px;
  background:linear-gradient(135deg,#f0faf2,#fff);
  box-shadow:var(--shadow-sm);
}
.booking-cta h3{margin:7px 0 3px;font-size:19px}
.booking-cta p{margin:0;color:var(--muted);font-size:11px}

.summary-details-toggle{
  display:block;
  width:calc(100% - 26px);
  margin:0 13px 9px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:8px;
  color:var(--brand-dark);
  background:#f8fbf8;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}
.summary-items-collapsed .item:nth-child(n+3){
  display:none;
}
.summary-items-collapsed .item{
  margin-top:5px;
  margin-bottom:5px;
}
.booking-success{
  position:relative;
  padding:22px 22px 22px 64px!important;
}
.booking-success:before{
  content:"✓";
  position:absolute;
  left:19px;
  top:19px;
  width:32px;height:32px;
  display:grid;place-items:center;
  border-radius:50%;
  color:#fff;
  background:var(--brand);
  font-size:18px;
  font-weight:900;
}

@media(max-width:760px){
  .project-cost-grid{grid-template-columns:1fr}
  .booking-cta{display:block}
  .booking-cta .btn{width:100%;margin-top:14px}
  .final-intro{padding:17px}
  .final-intro h2{font-size:21px}
}


/* V3.8 – visuelle Wirtschaftlichkeitsanalyse */
.economics-visual-card{
  overflow:hidden;
  border:1px solid #c8decf;
  border-radius:15px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}
.economics-visual-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:22px;
  padding:20px 21px 16px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(135deg,#f3faf4,#fff);
}
.economics-visual-head h3{
  margin:8px 0 4px;
  font-size:19px;
}
.economics-visual-head p{
  margin:0;
  color:var(--muted);
  font-size:11px;
}
.economics-saving{
  min-width:185px;
  padding:13px 16px;
  border:1px solid #9fd0a7;
  border-radius:12px;
  color:var(--brand-dark);
  background:#eaf8ed;
  text-align:right;
}
.economics-saving small,
.economics-saving span{
  display:block;
  font-size:9px;
}
.economics-saving strong{
  display:block;
  margin:3px 0;
  font-size:24px;
}
.economics-saving.negative{
  color:#982d27;
  border-color:#e3aaa4;
  background:#fff0ef;
}
.economics-bars{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:34px;
  min-height:285px;
  padding:24px 9% 19px;
  border-bottom:1px solid var(--line);
  background:
    repeating-linear-gradient(
      to top,
      #fff,
      #fff 49px,
      #eef2ef 50px
    );
}
.economics-bar-column{
  display:grid;
  grid-template-rows:auto 185px auto;
  align-items:end;
  min-width:0;
}
.economics-bar-value{
  margin-bottom:7px;
  text-align:center;
  font-size:16px;
  font-weight:900;
}
.economics-bar-track{
  display:flex;
  align-items:flex-end;
  justify-content:center;
  width:100%;
  height:185px;
}
.economics-bar{
  width:min(92px,58%);
  min-height:8%;
  border-radius:9px 9px 3px 3px;
  transition:height .55s ease;
  box-shadow:0 9px 20px rgba(20,45,25,.11);
}
.economics-bar-gas{
  background:linear-gradient(180deg,#efb04b,#dd7c2b);
}
.economics-bar-wp{
  background:linear-gradient(180deg,#59ba6b,#20913a);
}
.economics-bar-label{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  gap:8px;
  padding-top:12px;
  text-align:left;
}
.economics-icon{font-size:20px}
.economics-bar-label b{
  display:block;
  font-size:12px;
}
.economics-bar-label small{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:9px;
  line-height:1.35;
}
.economics-keyfacts{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-bottom:1px solid var(--line);
}
.economics-keyfacts>div{
  padding:15px 17px;
  border-right:1px solid var(--line);
}
.economics-keyfacts>div:last-child{border-right:0}
.economics-keyfacts small,
.economics-horizon small{
  display:block;
  color:var(--muted);
  font-size:9px;
}
.economics-keyfacts b{
  display:block;
  margin-top:5px;
  color:var(--ink);
  font-size:15px;
}
.economics-horizon{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:9px;
  padding:15px;
  background:#f8fbf8;
}
.economics-horizon>div{
  padding:12px;
  border:1px solid #dbe7dd;
  border-radius:9px;
  background:#fff;
  text-align:center;
}
.economics-horizon b{
  display:block;
  margin-top:5px;
  color:var(--brand-dark);
  font-size:14px;
}
.economics-details{
  margin-top:14px;
}
.economics-details .info-body{
  padding:0 12px 12px;
}
.economics-details .result-card{
  border-radius:9px;
}

@media(max-width:760px){
  .economics-visual-head{display:block}
  .economics-saving{
    min-width:0;
    margin-top:14px;
    text-align:left;
  }
  .economics-bars{
    gap:16px;
    min-height:245px;
    padding:20px 5% 16px;
  }
  .economics-bar-column{
    grid-template-rows:auto 145px auto;
  }
  .economics-bar-track{height:145px}
  .economics-bar-label{
    display:block;
    text-align:center;
  }
  .economics-icon{display:block;margin-bottom:4px}
  .economics-keyfacts,
  .economics-horizon{
    grid-template-columns:1fr;
  }
  .economics-keyfacts>div{
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .economics-keyfacts>div:last-child{border-bottom:0}
}


/* V3.11 - eigenständige Premium-PDF-Angebotsmappe */
.pdf-document{display:none}

@media print{
  @page{
    size:A4 portrait;
    margin:0;
  }

  html,body{
    width:210mm!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
    print-color-adjust:exact!important;
    -webkit-print-color-adjust:exact!important;
  }

  body.printing-premium-pdf > *:not(.pdf-document){
    display:none!important;
  }

  body.printing-premium-pdf .pdf-document{
    display:block!important;
    width:210mm;
    margin:0;
    color:#172019;
    background:#fff;
    font-family:Arial,sans-serif;
  }

  .pdf-page{
    position:relative;
    width:210mm;
    height:297mm;
    overflow:hidden;
    page-break-after:always;
    break-after:page;
    padding:17mm 18mm 15mm;
    background:#fff;
  }

  .pdf-page:last-child{
    page-break-after:auto;
    break-after:auto;
  }

  .pdf-cover{
    color:#fff;
    background:
      linear-gradient(135deg,rgba(12,35,22,.98),rgba(20,68,35,.94)),
      #123820;
  }

  .pdf-cover-accent{
    position:absolute;
    right:-35mm;
    top:-40mm;
    width:130mm;
    height:130mm;
    border:30mm solid rgba(255,255,255,.035);
    border-radius:50%;
  }

  .pdf-cover-header,
  .pdf-page-header,
  .pdf-page-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
  }

  .pdf-cover-header{position:relative;z-index:2}
  .pdf-brand,.pdf-page-brand{display:flex;align-items:center;gap:4mm}
  .pdf-brand img{
    width:18mm;
    height:16mm;
    padding:1.2mm;
    object-fit:contain;
    border-radius:2mm;
    background:#fff;
  }
  .pdf-brand b{display:block;font-size:13pt}
  .pdf-brand span{display:block;margin-top:1mm;color:#c9dbcf;font-size:8.5pt}
  .pdf-doc-meta{text-align:right}
  .pdf-doc-meta span{display:block;color:#b8cabe;font-size:7.5pt}
  .pdf-doc-meta b{display:block;margin-top:1mm;font-size:9.5pt}

  .pdf-cover-content{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:1.05fr .95fr;
    align-items:center;
    gap:10mm;
    min-height:205mm;
  }

  .pdf-kicker{
    display:inline-block;
    padding:1.8mm 3.2mm;
    border-radius:10mm;
    color:#176e2d;
    background:#e8f6eb;
    font-size:7.5pt;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.5pt;
  }

  .pdf-cover .pdf-kicker{
    color:#dff6e4;
    background:rgba(255,255,255,.12);
  }

  .pdf-cover-copy h1{
    margin:6mm 0 5mm;
    font-size:31pt;
    line-height:1.08;
    letter-spacing:-.8pt;
  }

  .pdf-cover-copy>p{
    max-width:90mm;
    color:#d1dfd5;
    font-size:10pt;
    line-height:1.55;
  }

  .pdf-customer-card{
    margin-top:15mm;
    padding:5mm;
    border:1px solid rgba(255,255,255,.18);
    border-radius:4mm;
    background:rgba(255,255,255,.075);
  }

  .pdf-customer-card small,
  .pdf-customer-card strong,
  .pdf-customer-card span{display:block}
  .pdf-customer-card small{color:#a9c2b0;font-size:7pt;text-transform:uppercase}
  .pdf-customer-card strong{margin-top:2mm;font-size:15pt}
  .pdf-customer-card span{margin-top:1.5mm;color:#d1dfd5;font-size:9pt}

  .pdf-cover-product{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:145mm;
  }

  .pdf-product-glow{
    position:absolute;
    width:100mm;
    height:100mm;
    border-radius:50%;
    background:radial-gradient(circle,rgba(255,255,255,.22),rgba(255,255,255,0) 68%);
  }

  .pdf-cover-product img{
    position:relative;
    z-index:1;
    width:92mm;
    height:105mm;
    object-fit:contain;
    filter:drop-shadow(0 10mm 9mm rgba(0,0,0,.28));
  }

  .pdf-cover-product-name{
    position:relative;
    z-index:2;
    width:100%;
    margin-top:4mm;
    padding:4mm;
    border-radius:3mm;
    color:#172019;
    background:#fff;
  }

  .pdf-cover-product-name small{display:block;color:#68726b;font-size:7pt}
  .pdf-cover-product-name strong{display:block;margin-top:1.5mm;font-size:11pt}

  .pdf-cover-footer{
    position:absolute;
    left:18mm;
    right:18mm;
    bottom:14mm;
    padding-top:5mm;
    border-top:1px solid rgba(255,255,255,.18);
  }

  .pdf-cover-footer div{width:24%}
  .pdf-cover-footer b{display:block;font-size:8.5pt}
  .pdf-cover-footer span{display:block;margin-top:1mm;color:#aec3b3;font-size:6.8pt}

  .pdf-page-header{
    height:17mm;
    padding-bottom:4mm;
    border-bottom:1px solid #dce5de;
  }

  .pdf-repeat-logo{
    width:13mm;
    height:11mm;
    object-fit:contain;
  }

  .pdf-page-brand b{display:block;font-size:10pt}
  .pdf-page-brand span{display:block;margin-top:.8mm;color:#728078;font-size:7pt}
  .pdf-page-number{color:#19913a;font-size:15pt;font-weight:700}

  .pdf-section-heading{margin:11mm 0 8mm}
  .pdf-section-heading h2{
    margin:3mm 0 2mm;
    font-size:23pt;
    line-height:1.15;
  }
  .pdf-section-heading p{margin:0;color:#69746d;font-size:8.5pt}

  .pdf-overview-grid{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:7mm;
  }

  .pdf-overview-product{
    padding:5mm;
    border:1px solid #dce5de;
    border-radius:4mm;
    background:#f7faf8;
  }

  .pdf-overview-product img{
    width:100%;
    height:78mm;
    object-fit:contain;
  }

  .pdf-overview-product>span{
    display:block;
    color:#188034;
    font-size:7pt;
    font-weight:700;
    text-transform:uppercase;
  }

  .pdf-overview-product h3{margin:2mm 0 2mm;font-size:13pt;line-height:1.25}
  .pdf-overview-product p{margin:0;color:#68726b;font-size:7.5pt;line-height:1.45}

  .pdf-kpi-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4mm;
  }

  .pdf-kpi{
    min-height:40mm;
    padding:5mm;
    border:1px solid #dce5de;
    border-radius:4mm;
    background:#fff;
  }

  .pdf-kpi span,.pdf-kpi b,.pdf-kpi small{display:block}
  .pdf-kpi span{color:#68726b;font-size:7.5pt}
  .pdf-kpi b{margin:5mm 0 2mm;font-size:18pt}
  .pdf-kpi small{color:#8a938e;font-size:6.7pt}
  .pdf-kpi-green{color:#176e2d;background:#ecf8ee;border-color:#b7dabc}
  .pdf-kpi-dark{color:#fff;background:#14251b;border-color:#14251b}
  .pdf-kpi-dark span,.pdf-kpi-dark small{color:#c2d0c6}

  .pdf-info-band{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    margin-top:7mm;
    overflow:hidden;
    border:1px solid #dce5de;
    border-radius:3mm;
  }

  .pdf-info-band div{padding:4mm;border-right:1px solid #dce5de}
  .pdf-info-band div:last-child{border-right:0}
  .pdf-info-band span{display:block;color:#748078;font-size:6.7pt}
  .pdf-info-band b{display:block;margin-top:1.5mm;font-size:8.5pt}

  .pdf-callout{
    margin-top:7mm;
    padding:5mm;
    border-left:2mm solid #d5a12e;
    border-radius:2mm;
    background:#fff9e9;
  }
  .pdf-callout b{font-size:8.5pt}
  .pdf-callout p{margin:2mm 0 0;color:#5f685f;font-size:7.5pt;line-height:1.5}

  .pdf-page-footer{
    position:absolute;
    left:18mm;
    right:18mm;
    bottom:8mm;
    padding-top:3mm;
    border-top:1px solid #e3e9e4;
    color:#7b857e;
    font-size:6.5pt;
  }

  .pdf-scope-groups{display:grid;gap:5mm}
  .pdf-scope-group{
    overflow:hidden;
    border:1px solid #dce5de;
    border-radius:3mm;
  }

  .pdf-scope-title{
    display:flex;
    align-items:center;
    gap:3mm;
    padding:3.5mm 4mm;
    background:#f1f7f2;
  }
  .pdf-scope-title span{font-size:13pt}
  .pdf-scope-title h3{margin:0;font-size:10pt}

  .pdf-scope-item{
    display:grid;
    grid-template-columns:1fr auto;
    gap:6mm;
    padding:3.5mm 4mm;
    border-top:1px solid #e5ebe6;
  }

  .pdf-scope-item b{display:block;font-size:8.2pt}
  .pdf-scope-item small{display:block;margin-top:.8mm;color:#79837d;font-size:6.5pt}
  .pdf-scope-item strong{font-size:8.2pt;white-space:nowrap}
  .pdf-scope-item ul{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1mm 5mm;
    margin:2mm 0 0;
    padding-left:4mm;
    color:#58615b;
    font-size:6.5pt;
  }

  .pdf-funding-hero{
    display:grid;
    grid-template-columns:55mm 1fr;
    align-items:center;
    gap:9mm;
    padding:8mm;
    border-radius:5mm;
    color:#fff;
    background:linear-gradient(135deg,#188737,#0e6127);
  }

  .pdf-funding-ring{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:48mm;
    height:48mm;
    border:3mm solid rgba(255,255,255,.25);
    border-radius:50%;
    background:rgba(255,255,255,.08);
  }
  .pdf-funding-ring span{font-size:7pt}
  .pdf-funding-ring b{margin-top:2mm;font-size:23pt}

  .pdf-funding-main small,.pdf-funding-main strong,.pdf-funding-main span{display:block}
  .pdf-funding-main small{color:#cfe9d4;font-size:8pt}
  .pdf-funding-main strong{margin:3mm 0;font-size:27pt}
  .pdf-funding-main span{font-size:8pt}

  .pdf-funding-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:3mm;
    margin-top:7mm;
  }

  .pdf-funding-grid div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:15mm;
    padding:4mm;
    border:1px solid #dce5de;
    border-radius:3mm;
  }
  .pdf-funding-grid span{color:#68736c;font-size:7.5pt}
  .pdf-funding-grid b{font-size:9pt}
  .pdf-funding-result{grid-column:1/-1;color:#146c29;background:#edf8ef;border-color:#b8d9bd!important}
  .pdf-funding-result b{font-size:14pt}

  .pdf-checklist{
    margin-top:7mm;
    padding:5mm;
    border-radius:3mm;
    background:#f7faf8;
  }
  .pdf-checklist h3{margin:0 0 3mm;font-size:10pt}
  .pdf-checklist div{margin-top:2mm;font-size:7.5pt}
  .pdf-checklist div span{margin-right:2mm;color:#178232;font-weight:700}

  .pdf-economic-chart{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18mm;
    height:100mm;
    padding:7mm 25mm 0;
    border-bottom:1px solid #dce5de;
    background:
      repeating-linear-gradient(to top,#fff,#fff 19mm,#eef2ef 20mm);
  }

  .pdf-economic-column{
    display:grid;
    grid-template-rows:auto 67mm auto;
    align-items:end;
    text-align:center;
  }
  .pdf-economic-value{margin-bottom:2mm;font-size:13pt;font-weight:700}
  .pdf-economic-track{display:flex;align-items:flex-end;justify-content:center;height:67mm}
  .pdf-economic-bar{width:29mm;min-height:8%;border-radius:3mm 3mm 0 0}
  .pdf-economic-reference{background:linear-gradient(#efb04b,#d77927)}
  .pdf-economic-wp{background:linear-gradient(#59ba6b,#20913a)}
  .pdf-economic-label{padding-top:3mm}
  .pdf-economic-label span{display:block;font-size:15pt}
  .pdf-economic-label b{display:block;margin-top:1mm;font-size:8.5pt}

  .pdf-saving-banner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-top:6mm;
    padding:5mm;
    border-radius:3mm;
    color:#155f27;
    background:#eaf7ec;
  }
  .pdf-saving-banner span{font-size:9pt}
  .pdf-saving-banner b{font-size:17pt}

  .pdf-economic-kpis{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:3mm;
    margin-top:5mm;
  }
  .pdf-economic-kpis div{
    padding:4mm;
    border:1px solid #dce5de;
    border-radius:3mm;
  }
  .pdf-economic-kpis span{display:block;color:#727d75;font-size:6.7pt}
  .pdf-economic-kpis b{display:block;margin-top:2mm;font-size:9.5pt}

  .pdf-process{display:grid;gap:3mm}
  .pdf-process div{
    display:grid;
    grid-template-columns:15mm 1fr;
    padding:4mm;
    border:1px solid #dce5de;
    border-radius:3mm;
  }
  .pdf-process div>span{
    grid-row:1/3;
    width:10mm;
    height:10mm;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    color:#fff;
    background:#198a37;
    font-size:7pt;
    font-weight:700;
  }
  .pdf-process b{font-size:8.5pt}
  .pdf-process p{margin:1mm 0 0;color:#677169;font-size:7pt}

  .pdf-appointment-card{
    display:grid;
    grid-template-columns:52mm 1fr;
    align-items:center;
    gap:7mm;
    margin-top:7mm;
    padding:6mm;
    border-radius:4mm;
    color:#fff;
    background:#14251b;
  }
  .pdf-appointment-card small,.pdf-appointment-card strong,.pdf-appointment-card span{display:block}
  .pdf-appointment-card small{color:#b9cabf;font-size:7pt}
  .pdf-appointment-card strong{margin:2mm 0;font-size:22pt}
  .pdf-appointment-card span{font-size:7pt}
  .pdf-appointment-card p{margin:0;color:#d3dfd6;font-size:7.5pt;line-height:1.45}

  .pdf-contact-card{
    margin-top:6mm;
    padding:5mm;
    border:1px solid #b8d8be;
    border-radius:3mm;
    background:#eef8f0;
  }
  .pdf-contact-card h3{margin:0;font-size:11pt}
  .pdf-contact-card>p{margin:2mm 0 4mm;color:#176c2b;font-size:8pt;font-weight:700}
  .pdf-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:4mm}
  .pdf-contact-grid span{display:block;color:#718078;font-size:6.5pt}
  .pdf-contact-grid b{display:block;margin-top:1mm;font-size:8pt}

  .pdf-final-note{
    margin-top:6mm;
    padding-top:5mm;
    border-top:1px solid #dce5de;
    text-align:center;
  }
  .pdf-final-note b{font-size:12pt}
  .pdf-final-note p{margin:2mm auto 0;max-width:130mm;color:#68736c;font-size:7.5pt;line-height:1.5}

  button,.btn{display:none!important}
}

@media screen{
  body.printing-premium-pdf .pdf-document{display:none}
}

.offer-mail-modal{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:22px}
.offer-mail-backdrop{position:absolute;inset:0;background:rgba(10,24,15,.68);backdrop-filter:blur(4px)}
.offer-mail-dialog{position:relative;z-index:1;width:min(760px,100%);max-height:92vh;overflow:auto;padding:24px;border:1px solid #d9e3dc;border-radius:16px;background:#fff;box-shadow:0 26px 80px rgba(0,0,0,.27)}
.offer-mail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:17px}
.offer-mail-head h2{margin:8px 0 0;font-size:24px}
.offer-mail-close{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:24px;cursor:pointer}
.offer-mail-file{display:flex;align-items:center;gap:13px;margin-bottom:17px;padding:14px;border:1px solid #c9dfcd;border-radius:11px;background:#f1faf3}
.offer-mail-file>span{font-size:28px}.offer-mail-file b,.offer-mail-file small{display:block}.offer-mail-file small{margin-top:3px;color:var(--muted);font-size:11px}
.offer-mail-dialog .field{margin-top:14px}
.offer-mail-status{margin-top:15px;padding:13px;border-radius:9px;font-size:12px;font-weight:700}
.offer-mail-status.loading{color:#735611;background:#fff7db;border:1px solid #e6c76d}.offer-mail-status.success{color:#176a2b;background:#eaf7ed;border:1px solid #a8d1af}.offer-mail-status.error{color:#922d27;background:#fff0ef;border:1px solid #e2aaa5}
.offer-mail-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}
@media(max-width:650px){.offer-mail-modal{padding:8px}.offer-mail-dialog{padding:17px;max-height:97vh}.offer-mail-actions{display:grid;grid-template-columns:1fr}.offer-mail-actions .btn{width:100%}}


/* V7.4 – Holz-Zusatzwärme & Heizkreise */
.config-subcard{margin:12px 0 16px;padding:18px;border:1px solid #d9e5dc;border-radius:12px;background:#f8fbf8}
.input-with-unit{display:grid;grid-template-columns:1fr auto;align-items:center;border:1px solid #c6d2c9;border-radius:8px;overflow:hidden;background:#fff}
.input-with-unit input{min-height:45px;border:0!important;border-radius:0!important}
.input-with-unit span{padding:0 12px;color:#68746c;font-size:12px;font-weight:800}
.calculated-field{min-height:47px;display:flex;flex-direction:column;justify-content:center;padding:9px 12px;border:1px solid #d9e5dc;border-radius:8px;background:#fff}
.calculated-field b{font-size:15px}.calculated-field small{margin-top:3px;color:#68746c;font-size:10px}
.notice.compact{margin-top:12px;padding:10px 12px;font-size:11px}
.config-section{margin-bottom:16px;padding:19px;border:1px solid #d9e5dc;border-radius:13px;background:#f8fbf8}
.config-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:14px}
.config-section-head h3{margin:4px 0}.config-section-head p{max-width:720px;margin:0;color:#68746c;font-size:12px;line-height:1.5}
.compact-field{min-width:190px}
.heating-circuits-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.heating-circuit-card{padding:14px;border:1px solid #dce5de;border-radius:11px;background:#fff}
.heating-circuit-card h4{margin:0 0 11px}.heating-circuit-card .grid{gap:9px}
.circuit-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.circuit-summary>div{padding:11px 13px;border-radius:9px;background:#edf6ef}
.circuit-summary small,.circuit-summary b{display:block}.circuit-summary small{color:#68746c;font-size:10px}.circuit-summary b{margin-top:3px;font-size:14px}
@media(max-width:760px){.config-section-head{display:block}.compact-field{margin-top:12px;min-width:0}.heating-circuits-grid,.circuit-summary{grid-template-columns:1fr}}
