/* ESS Anfrageformular – v1.3 „Vorlage 04 Luftig“
   Abstände: 4er-Skala (8·12·16·24·32·48) · Schrift: 1,25-Skala (13·16·20·25·31)
   Kontrast (WCAG): Button #3e862a/Weiß 4,52 · Linien/Icons #4da835 3,01 · Grauschrift #5b6670 5,87 · Platzhalter #70777d 4,54 */

.ess-af{--g:#4da835;--btn:#3e862a;--btnh:#357524;--gl:#eef8ec;--gtxt:#348023;--d:#171D21;--m:#5b6670;--ph:#70777d;--b:#dfe5ea;--dot:#8e959a;--bg:#f3f7fa;--err:#d93b3b;
  --w:720px;--cr:32px;--cp:48px;--h2:31px;--gap:16px;--tr:16px;--th:72px;--ib:48px;--ibr:12px;--is:32px;--ir:14px;--ih:52px;--bh:56px;--br:14px;
  font-family:'Kumbh Sans',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--d);max-width:var(--w);margin:0 auto;line-height:1.5;text-align:left}
.ess-af *,.ess-af *:before,.ess-af *:after{box-sizing:border-box}

/* Karte */
.ess-af .ess-af__card{background:#fff;border-radius:var(--cr);padding:var(--cp);box-shadow:0 12px 32px rgba(23,29,33,.07)}
.ess-af .ess-af__form{display:flex;flex-direction:column;margin:0}
.ess-af .ess-af__meta{display:flex;justify-content:space-between;align-items:center;margin:0 0 16px}
.ess-af .ess-af__count{background:var(--gl);color:var(--gtxt);font-weight:700;font-size:13px;line-height:1;padding:8px 12px;border-radius:999px}
.ess-af .ess-af__metaR{font-size:13px;color:var(--m)}
.ess-af .ess-af__bar{order:99;height:6px;border-radius:6px;background:#e6ebef;margin:32px 0 0;overflow:hidden}
.ess-af .ess-af__bar i{display:block;height:100%;background:var(--g);border-radius:6px;transition:width .3s ease}

/* Schritte */
.ess-af .ess-af__step{display:none}
.ess-af .ess-af__step.is-active{display:block;animation:essFade .2s ease}
@keyframes essFade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.ess-af .ess-af__step.is-active{animation:none}}
.ess-af h2.ess-af__q{font-family:inherit;font-size:var(--h2);line-height:1.25;font-weight:800;color:var(--d);margin:0 0 8px;letter-spacing:0;text-transform:none}
.ess-af .ess-af__hint{font-size:16px;line-height:1.5;color:var(--m);margin:0 0 32px}

/* Auswahl-Kacheln: Icon-Feld · Text · Auswahlpunkt */
.ess-af .ess-af__opts{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
.ess-af button.ess-af__opt{display:flex!important;align-items:center;gap:12px;width:100%!important;min-height:var(--th)!important;height:auto!important;margin:0!important;
  padding:12px 16px 12px 12px!important;border:1.5px solid var(--b)!important;border-radius:var(--tr)!important;background:#fff!important;color:var(--d)!important;
  font-family:inherit!important;font-size:16px!important;font-weight:700!important;line-height:1.25!important;text-align:left!important;text-transform:none!important;letter-spacing:0!important;
  box-shadow:none!important;cursor:pointer;white-space:normal!important;min-width:0!important;transition:border-color .15s,background .15s}
.ess-af button.ess-af__opt:after,.ess-af button.ess-af__opt:before{display:none!important;content:none!important}
@media (hover:hover){.ess-af button.ess-af__opt:hover{border-color:var(--g)!important}}
.ess-af button.ess-af__opt:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--g)!important}
.ess-af button.ess-af__opt.is-sel{border-color:var(--g)!important;background:#f7fcf5!important;box-shadow:inset 0 0 0 1px var(--g)!important}
.ess-af .ess-af__ico{flex:0 0 var(--ib);width:var(--ib);height:var(--ib);border-radius:var(--ibr);background:var(--gl);display:flex;align-items:center;justify-content:center}
.ess-af .ess-af__opt.is-sel .ess-af__ico{background:#fff}
.ess-af .ess-af__ico svg{width:var(--is);height:var(--is);margin:0;fill:none;stroke:var(--g);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;display:block}
.ess-af .ess-af__ico img.ess-af__img{width:var(--is)!important;height:var(--is)!important;margin:0!important;border:0!important;box-shadow:none!important;display:block!important;object-fit:contain}
.ess-af .ess-af__lbl{flex:1}
.ess-af .ess-af__dot{flex:0 0 20px;width:20px;height:20px;border-radius:50%;border:2px solid var(--dot);transition:border .15s}
.ess-af .ess-af__opt.is-sel .ess-af__dot{border:6px solid var(--g)}

/* Felder */
.ess-af .ess-af__other{margin-top:32px}
.ess-af .ess-af__field{margin:0 0 16px}
.ess-af label.ess-af__label{display:block;font-size:14px;font-weight:700;line-height:1.4;margin:0 0 8px;color:var(--d)}
.ess-af input.ess-af__in{width:100%!important;height:var(--ih)!important;min-height:0!important;margin:0!important;padding:0 16px!important;border:1.5px solid var(--b)!important;border-radius:var(--ir)!important;
  background:#fff!important;color:var(--d)!important;font-family:inherit!important;font-size:16px!important;box-shadow:none!important;line-height:normal!important}
.ess-af input.ess-af__in::placeholder{color:var(--ph);opacity:1}
.ess-af input.ess-af__in:focus{outline:none;border-color:var(--g)!important;box-shadow:0 0 0 3px rgba(77,168,53,.18)!important}
.ess-af .ess-af__field.is-filled input.ess-af__in{border-color:var(--g)!important;font-weight:600;padding-right:44px!important;
  background:#f7fcf5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%234da835' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center/18px!important}
.ess-af .is-invalid input.ess-af__in{border-color:var(--err)!important;background:#fff!important}
.ess-af .ess-af__err{display:none;color:var(--err);font-size:13px;margin-top:8px}
.ess-af .is-invalid .ess-af__err{display:block}
.ess-af .ess-af__row{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--gap)}
.ess-af .ess-af__row--plz{grid-template-columns:160px 1fr}

/* Stromverbrauch */
.ess-af .ess-af__range{margin-top:8px}
.ess-af .ess-af__rangehead{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.ess-af .ess-af__pill{background:var(--gl);color:var(--gtxt);font-weight:700;border-radius:999px;padding:8px 12px;font-size:14px;line-height:1;white-space:nowrap}
.ess-af input[type=range].ess-af__slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:6px;background:#e6ebef;outline:none;margin:0;padding:0;border:0}
.ess-af input[type=range].ess-af__slider::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;border:4px solid var(--g);cursor:pointer}
.ess-af input[type=range].ess-af__slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:4px solid var(--g);cursor:pointer}
.ess-af .ess-af__rangelab{display:flex;justify-content:space-between;font-size:13px;color:var(--m);margin-top:8px}

/* Datenschutz */
.ess-af .ess-af__chk{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.5;color:var(--m);cursor:pointer;margin:8px 0 0}
.ess-af .ess-af__chk input{width:20px;height:20px;flex:0 0 20px;margin:1px 0 0;accent-color:var(--g)}
.ess-af .ess-af__chk a{color:var(--d);text-decoration:underline}
.ess-af .ess-af__chkwrap.is-filled .ess-af__chk{color:var(--d)}
.ess-af .ess-af__chkwrap.is-invalid .ess-af__chk{color:var(--err)}
.ess-af .ess-af__hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* Buttons */
.ess-af .ess-af__nav{display:flex;gap:12px;margin-top:32px}
.ess-af .ess-af__nav--end{justify-content:flex-end}
.ess-af button.ess-af__btn{display:inline-flex!important;align-items:center;justify-content:center;gap:8px;height:var(--bh)!important;min-height:0!important;margin:0!important;padding:0 24px!important;
  border:0!important;border-radius:var(--br)!important;font-family:inherit!important;font-size:16px!important;font-weight:700!important;line-height:1!important;text-transform:none!important;
  letter-spacing:0!important;white-space:nowrap!important;box-shadow:none!important;cursor:pointer;min-width:0!important;transition:background .15s}
.ess-af button.ess-af__btn--next{background:var(--btn)!important;color:#fff!important;flex:1}
.ess-af button.ess-af__btn--next:hover{background:var(--btnh)!important}
.ess-af .ess-af__nav--end button.ess-af__btn--next{flex:0 0 auto}
.ess-af button.ess-af__btn--next[disabled]{opacity:.7;cursor:wait}
.ess-af button.ess-af__btn--back{background:var(--bg)!important;color:var(--m)!important;flex:0 0 auto}
.ess-af button.ess-af__btn--back:hover{color:var(--d)!important}
.ess-af button.ess-af__btn:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--g)!important}
.ess-af .ess-af__formerr{display:none;background:#fdeeee;color:var(--err);border-radius:12px;padding:12px 16px;font-size:14px;margin-top:16px}
.ess-af .ess-af__formerr.is-on{display:block}

/* Danke */
.ess-af .ess-af__done{text-align:center;padding:16px 0 0}
.ess-af .ess-af__ok{width:80px;height:80px;border-radius:50%;background:var(--gl);display:flex;align-items:center;justify-content:center;margin:0 auto 24px}
.ess-af .ess-af__ok svg{width:40px;height:40px;stroke:var(--g);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round}
.ess-af .ess-af__done p{color:var(--m);font-size:16px;line-height:1.5;margin:0 auto 24px;max-width:440px}
.ess-af .ess-af__sum{background:var(--bg);border-radius:16px;padding:16px 24px;text-align:left;font-size:16px;line-height:2;margin:0 auto 16px;max-width:440px}
.ess-af .ess-af__sum b{display:inline-block;width:128px;color:var(--m);font-weight:600}
.ess-af .ess-af__call{display:block;border:1.5px solid var(--b);border-radius:14px;padding:16px;font-weight:700;max-width:440px;margin:0 auto;color:var(--d);text-decoration:none}
.ess-af .ess-af__call small{display:block;color:var(--m);font-weight:500;font-size:13px;margin-top:4px}

/* Popup */
.ess-modal{position:fixed;inset:0;z-index:999999;display:none;align-items:center;justify-content:center;background:rgba(23,29,33,.55);padding:24px}
.ess-modal.is-open{display:flex}
.ess-modal__box{position:relative;width:100%;max-width:720px;max-height:calc(100vh - 48px);overflow:auto;border-radius:32px}
.ess-modal button.ess-modal__x{position:absolute;right:16px;top:16px;z-index:2;width:40px!important;height:40px!important;padding:0!important;margin:0!important;border:0!important;border-radius:50%!important;
  background:var(--bg,#f3f7fa)!important;color:#5b6670!important;font-size:20px!important;line-height:40px!important;text-align:center;cursor:pointer;box-shadow:none!important;min-width:0!important}
.ess-modal .ess-af__card{box-shadow:none}
.ess-modal .ess-af__meta{padding-right:48px}
html.ess-noscroll,html.ess-noscroll body{overflow:hidden}

/* Handy */
@media (max-width:640px){
  .ess-af{--cr:24px;--cp:24px;--h2:25px;--gap:12px}
  .ess-af .ess-af__hint{margin-bottom:24px}
  .ess-af .ess-af__opts{grid-template-columns:1fr}
  .ess-af .ess-af__other{margin-top:24px}
  .ess-af .ess-af__row{grid-template-columns:1fr}
  .ess-af .ess-af__row--plz{grid-template-columns:112px 1fr}
  .ess-af .ess-af__nav{margin-top:24px}
  .ess-af .ess-af__nav--end button.ess-af__btn--next{flex:1}
  .ess-af button.ess-af__btn--back{width:var(--bh)!important;padding:0!important}
  .ess-af .ess-af__btxt{display:none}
  .ess-af .ess-af__bar{margin-top:24px}
  .ess-af .ess-af__sum{padding:16px;font-size:14px;line-height:1.8}
  .ess-af .ess-af__sum b{width:96px}
  .ess-modal{padding:0;align-items:stretch}
  .ess-modal__box{max-height:100vh;border-radius:0}
  .ess-modal .ess-af__card{min-height:100vh;border-radius:0;padding-top:32px}
}

/* Optionales Hero-Layout [ess_anfrage layout="hero"] */
.ess-hero{position:relative;background-size:cover;background-position:center;padding:64px 24px;font-family:'Kumbh Sans',system-ui,sans-serif;isolation:isolate}
.ess-hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(15,20,24,.88) 0%,rgba(15,20,24,.6) 45%,rgba(15,20,24,.25) 100%)}
.ess-hero__inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,600px);gap:48px;align-items:center}
.ess-hero__text{color:#fff}
.ess-hero__eyebrow{font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#9be38f;margin-bottom:16px}
.ess-hero h1.ess-hero__title{font-family:inherit;font-size:39px;line-height:1.2;font-weight:800;color:#fff;margin:0 0 24px}
.ess-hero__usp{list-style:none;margin:0 0 24px;padding:0}
.ess-hero__usp li{padding-left:32px;margin:0 0 8px;font-size:16px;color:#e4ebef;position:relative;list-style:none}
.ess-hero__usp li:before{content:"✓";position:absolute;left:0;top:2px;width:20px;height:20px;border-radius:6px;background:#3e862a;color:#fff;font-size:12px;line-height:20px;text-align:center}
.ess-hero__rating{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);padding:8px 16px;border-radius:12px;font-size:14px;color:#fff}
.ess-hero__rating img{height:16px;width:auto;margin:0}
.ess-hero .ess-af{max-width:none}
@media (max-width:980px){.ess-hero{padding:32px 16px}.ess-hero__inner{grid-template-columns:1fr;gap:24px}.ess-hero h1.ess-hero__title{font-size:25px}.ess-hero__usp{display:none}}

/* v1.3.1 – Browser-Autofill: Chrome/Safari färben automatisch ausgefüllte Felder hellblau mit eigener Schriftfarbe.
   Hier wird das auf unseren Stil zurückgesetzt (dunkle Schrift #171D21, grüner Rahmen). */
.ess-af input.ess-af__in{-webkit-text-fill-color:var(--d)!important;caret-color:var(--d)}
.ess-af input.ess-af__in::placeholder{-webkit-text-fill-color:var(--ph)}
.ess-af input.ess-af__in:-webkit-autofill,
.ess-af input.ess-af__in:-webkit-autofill:hover,
.ess-af input.ess-af__in:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--d)!important;font-weight:600;border-color:var(--g)!important;
  -webkit-box-shadow:0 0 0 1000px #f7fcf5 inset!important;box-shadow:0 0 0 1000px #f7fcf5 inset!important;
  transition:background-color 99999s ease-out 0s;animation-name:essAutofill}
.ess-af input.ess-af__in:autofill{border-color:var(--g)!important}
@keyframes essAutofill{from{opacity:1}to{opacity:1}}
