/* EEE-Cloud Formulare – Angebots-Assistent */
.eeef-wiz { --eeef-line:#cbd5d3; color:#1c2b2a; max-width:100%; }
.eeef-wiz *, .eeef-wiz *::before, .eeef-wiz *::after { box-sizing:border-box; }
.eeef-wiz-title { color:var(--eeef-accent); margin:0 0 .8rem; }
.eeef-wiz-intro { font-size:1.02rem; margin:0 0 1rem; }

.eeef-wiz-hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }

/* Typwahl-Karten */
.eeef-wiz-cards { display:flex; flex-wrap:wrap; gap:1rem; }
.eeef-wiz-card { flex:1 1 220px; text-align:left; background:#fff; border:2px solid var(--eeef-line); border-radius:14px; padding:1.1rem 1.2rem; cursor:pointer; transition:border-color .15s, box-shadow .15s; font:inherit; color:inherit; }
.eeef-wiz-card:hover { border-color:var(--eeef-accent); box-shadow:0 4px 16px rgba(15,118,110,.10); }
.eeef-wiz-card-h { display:block; font-weight:700; font-size:1.08rem; color:var(--eeef-accent); margin-bottom:.25rem; }
.eeef-wiz-card-d { display:block; font-size:.92rem; color:#4b5b5a; }

/* Positionen */
.eeef-wiz-positions { display:flex; flex-direction:column; gap:.6rem; }
.eeef-wiz-pos { display:flex; align-items:flex-start; gap:.75rem; border:1px solid var(--eeef-line); border-radius:12px; padding:.85rem 1rem; cursor:pointer; transition:border-color .15s, background .15s; }
.eeef-wiz-pos:hover { border-color:var(--eeef-accent); }
.eeef-wiz-pos input { margin-top:.25rem; accent-color:var(--eeef-accent); width:auto; }
.eeef-wiz-pos-main { flex:1 1 auto; }
.eeef-wiz-pos-label { display:block; font-weight:600; }
.eeef-wiz-pos-desc { display:block; font-size:.88rem; color:#5b6b6a; margin-top:.15rem; }
.eeef-wiz-pos-price { font-weight:700; white-space:nowrap; color:var(--eeef-accent); }
.eeef-wiz-pos.is-on { border-color:var(--eeef-accent); background:rgba(15,118,110,.05); }

.eeef-wiz-total { margin-top:1rem; border-top:2px solid var(--eeef-line); padding-top:.8rem; }
.eeef-wiz-total-row { display:flex; justify-content:space-between; align-items:baseline; font-size:1.15rem; }
.eeef-wiz-total-sum { color:var(--eeef-accent); font-size:1.3rem; }
.eeef-wiz-total-note { font-size:.85rem; color:#5b6b6a; margin-top:.2rem; }
.eeef-wiz-pos-priceblock { text-align:right; white-space:nowrap; }
.eeef-wiz-pos-unit { display:block; font-size:.75rem; font-weight:400; color:#5b6b6a; }
.eeef-wiz-pos-locked { cursor:default; }
.eeef-wiz-pos-locknote { font-size:.72rem; font-weight:600; color:var(--eeef-accent); background:rgba(15,118,110,.08); border-radius:6px; padding:.05rem .4rem; margin-left:.35rem; vertical-align:middle; }
.eeef-wiz-total-group { margin-top:.6rem; }
.eeef-wiz-total-group:first-child { margin-top:0; }
.eeef-wiz-total-h { font-weight:700; font-size:.95rem; margin-bottom:.2rem; }
.eeef-wiz-total-line { display:flex; justify-content:space-between; align-items:baseline; font-size:.95rem; padding:.1rem 0; }
.eeef-wiz-total-line.is-strong { font-weight:700; color:var(--eeef-accent); border-top:1px solid var(--eeef-line); margin-top:.15rem; padding-top:.25rem; }

/* Felder */
.eeef-wiz-grid { display:flex; flex-wrap:wrap; gap:0 1rem; }
.eeef-wiz-field { margin:0 0 .9rem; }
.eeef-full { flex:1 1 100%; }
.eeef-half { flex:1 1 calc(50% - .5rem); }
.eeef-quarter { flex:1 1 calc(50% - .5rem); }
@media (min-width:560px){ .eeef-quarter { flex:1 1 calc(25% - .75rem); } }
@media (max-width:560px){ .eeef-half { flex:1 1 100%; } }
.eeef-wiz-field > label { display:block; font-size:.9rem; font-weight:600; margin-bottom:.3rem; }
.eeef-wiz-field input, .eeef-wiz-field textarea { width:100%; padding:.6rem .7rem; border:1px solid var(--eeef-line); border-radius:9px; font-size:1rem; background:#fff; font-family:inherit; }
.eeef-wiz-field input:focus, .eeef-wiz-field textarea:focus { outline:none; border-color:var(--eeef-accent); box-shadow:0 0 0 3px rgba(15,118,110,.15); }

.eeef-wiz-check { display:flex; gap:.5rem; align-items:flex-start; font-size:.9rem; margin:.2rem 0 .3rem; }
.eeef-wiz-check input { margin-top:.2rem; accent-color:var(--eeef-accent); width:auto; }
.eeef-wiz-check a { color:var(--eeef-accent); text-decoration:underline; }
.eeef-wiz-check a:hover { color:var(--eeef-accent-dark); }

/* Navigation */
.eeef-wiz-nav { display:flex; gap:.6rem; margin-top:1.2rem; }
.eeef-wiz-nav button { border:0; border-radius:10px; padding:.75rem 1.5rem; font-size:1rem; font-weight:600; cursor:pointer; font-family:inherit; }
.eeef-wiz-next, .eeef-wiz-submit { background:var(--eeef-btn-bg, var(--eeef-accent)); color:var(--eeef-btn-text,#fff); }
.eeef-wiz-next:hover, .eeef-wiz-submit:hover { background:var(--eeef-btn-hover, var(--eeef-accent-dark)); }
.eeef-wiz-back { background:#eef2f1; color:#33413f; }
.eeef-wiz-back:hover { background:#e2e8e7; }
.eeef-wiz-nav button:disabled { opacity:.6; cursor:default; }

.eeef-wiz-msg { color:#b91c1c; background:#fef2f2; border:1px solid #fecaca; border-radius:8px; padding:.6rem .75rem; margin:.8rem 0 0; font-size:.9rem; }
.eeef-wiz-success { background:#ecfdf5; border:1px solid #a7f3d0; border-radius:12px; padding:1.15rem 1.25rem; color:#065f46; font-size:1.02rem; }

/* Rich-Text in Beschreibungen (Absätze + Aufzählungen) */
.eeef-wiz-pos-desc p, .eeef-wiz-card-d p, .eeef-wiz-intro p { margin:0 0 .5rem; }
.eeef-wiz-pos-desc p:last-child, .eeef-wiz-card-d p:last-child, .eeef-wiz-intro p:last-child { margin-bottom:0; }
.eeef-wiz-pos-desc ul, .eeef-wiz-card-d ul, .eeef-wiz-intro ul { margin:.3rem 0; padding-left:1.25rem; list-style-position:outside; }
.eeef-wiz-pos-desc li, .eeef-wiz-card-d li, .eeef-wiz-intro li { margin:.15rem 0; }

/* Zusatz-Leistungen (Add-ons) */
.eeef-wiz-pos.is-locked { opacity:.55; cursor:not-allowed; }
.eeef-wiz-pos-req { display:block; font-size:.8rem; color:#9a6b00; margin-top:.3rem; }

/* Preis-Staffelung (Auswahl) */
.eeef-wiz-posopt { display:block; margin-top:.5rem; padding:.4rem .5rem; border:1px solid var(--eeef-line); border-radius:8px; font:inherit; font-size:.9rem; background:#fff; max-width:100%; }

/* Beschreibung ein-/ausklappen */
.eeef-wiz-pos-desc.is-clamp { max-height:4.2em; overflow:hidden; position:relative; }
.eeef-wiz-pos-desc.is-clamp::after { content:""; position:absolute; left:0; right:0; bottom:0; height:1.6em; background:linear-gradient(to bottom, rgba(255,255,255,0), #fff); pointer-events:none; }
.eeef-wiz-pos.is-on .eeef-wiz-pos-desc.is-clamp::after { background:linear-gradient(to bottom, rgba(244,249,248,0), #f4f9f8); }
.eeef-wiz-pos-more { display:inline-block; margin-top:.4rem; background:none; border:0; padding:0; font:inherit; font-size:.85rem; font-weight:600; color:var(--eeef-accent); cursor:pointer; text-decoration:underline; }
.eeef-wiz-pos-more:hover { color:var(--eeef-accent-dark); }
