/* EEE-Cloud Förderrechner – alle Styles unter .eeefr gekapselt */
.eeefr {
	--eeefr-accent: #0f766e;        /* Teal – Energie/Vertrauen */
	--eeefr-accent-dark: #0b554f;
	--eeefr-accent-soft: #ccfbf1;
	--eeefr-on-accent: #ffffff;     /* Schrift auf kräftigen Akzentflächen */
	--eeefr-btn-text: #ffffff;      /* Schrift auf Buttons */
	--eeefr-heading: #0f766e;       /* Überschriften */
	--eeefr-link: #0b554f;          /* Links */
	--eeefr-ink: #1c2b2a;
	--eeefr-muted: #5b6b6a;
	--eeefr-line: #d9e2e1;
	--eeefr-bg: #ffffff;
	--eeefr-bg-soft: #f4f8f7;
	--eeefr-warn: #b45309;
	--eeefr-ok: #15803d;
	--eeefr-radius: 12px;
	--eeefr-shadow: 0 1px 2px rgba(16,40,38,.06), 0 8px 24px rgba(16,40,38,.06);

	max-width: 760px;
	margin: 0 auto;
	color: var(--eeefr-ink);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}
.eeefr * { box-sizing: border-box; }

/* Progress */
.eeefr__progress { margin-bottom: 1.5rem; }
.eeefr__progress-bar { height: 6px; background: var(--eeefr-line); border-radius: 99px; overflow: hidden; }
.eeefr__progress-fill { display: block; height: 100%; background: var(--eeefr-accent); border-radius: 99px; transition: width .35s ease; }
.eeefr__steps { display: flex; list-style: none; margin: .75rem 0 0; padding: 0; gap: .25rem; }
.eeefr__steps li { flex: 1; text-align: center; font-size: .72rem; letter-spacing: .03em; text-transform: uppercase; color: var(--eeefr-muted); padding-top: .25rem; }
.eeefr__steps li.is-active { color: var(--eeefr-accent); font-weight: 700; }
.eeefr__steps li.is-done { color: var(--eeefr-ink); }

/* Panel */
.eeefr__panel { background: var(--eeefr-bg); border: 1px solid var(--eeefr-line); border-radius: var(--eeefr-radius); padding: 1.75rem; box-shadow: var(--eeefr-shadow); min-height: 240px; }
.eeefr__h { margin: 0 0 1rem; font-size: 1.3rem; line-height: 1.2; color: var(--eeefr-heading); }
.eeefr__lead { color: var(--eeefr-muted); margin: 0 0 1.25rem; }
.eeefr__hint { color: var(--eeefr-muted); font-size: .85rem; margin: .25rem 0 .75rem; }

/* Fields */
.eeefr__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.25rem; }
.eeefr__field { display: flex; flex-direction: column; gap: .35rem; }
.eeefr__field--full { grid-column: 1 / -1; }
.eeefr__label { font-size: .85rem; font-weight: 600; color: var(--eeefr-ink); }
.eeefr__req { color: var(--eeefr-accent); margin-left: 1px; }
.eeefr__opt { color: var(--eeefr-muted); font-weight: 400; font-size: .85em; }
.eeefr__input, .eeefr__select {
	width: 100%; padding: .65rem .8rem; border: 1px solid var(--eeefr-line); border-radius: 8px;
	background: var(--eeefr-bg); color: var(--eeefr-ink); font: inherit; transition: border-color .15s, box-shadow .15s;
}
.eeefr__input:focus, .eeefr__select:focus { outline: none; border-color: var(--eeefr-accent); box-shadow: 0 0 0 3px var(--eeefr-accent-soft); }

/* Choices (Gebäudetyp) */
.eeefr__choices { display: flex; gap: .5rem; flex-wrap: wrap; }
.eeefr__choice {
	flex: 1; min-width: 120px; padding: .7rem .6rem; border: 1px solid var(--eeefr-line); border-radius: 8px;
	background: var(--eeefr-bg); color: var(--eeefr-ink); font: inherit; cursor: pointer; transition: all .15s;
}
.eeefr__choice:hover { border-color: var(--eeefr-accent); }
.eeefr__choice.is-on { border-color: var(--eeefr-accent); background: var(--eeefr-accent); color: var(--eeefr-on-accent); font-weight: 700; }

/* Bauteile */
.eeefr__bauteil { border: 1px solid var(--eeefr-line); border-radius: 10px; padding: .9rem 1rem; margin-bottom: .65rem; transition: opacity .2s; }
.eeefr__bauteil.is-saniert { opacity: .55; }
.eeefr__bauteil-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.eeefr__uwert { font-size: .85rem; color: var(--eeefr-muted); }
.eeefr__sanjahr { margin-top: .55rem; display: flex; align-items: center; gap: .5rem; }
.eeefr__sanjahr[hidden] { display: none; }
.eeefr__sanjahr .eeefr__label { margin: 0; }
.eeefr__input--sm { width: 130px; padding: .45rem .6rem; }
.eeefr__input:disabled { background: var(--eeefr-bg-soft); color: var(--eeefr-muted); cursor: not-allowed; }
.eeefr__flag { font-style: normal; font-size: .72rem; padding: .1rem .45rem; border-radius: 99px; margin-left: .35rem; }
.eeefr__flag--warn { background: #fef3c7; color: var(--eeefr-warn); }
.eeefr__flag--ok { background: #dcfce7; color: var(--eeefr-ok); }

/* Toggles */
.eeefr__toggle { display: flex; align-items: flex-start; gap: .5rem; font-size: .92rem; cursor: pointer; margin-top: .55rem; }
.eeefr__toggle input { margin-top: .2rem; accent-color: var(--eeefr-accent); width: 1rem; height: 1rem; }
.eeefr__toggle--lg { font-size: 1rem; }
.eeefr__consent { margin-top: 1rem; }

/* Maßnahmen-Cards */
.eeefr__cards { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.eeefr__card {
	display: flex; flex-direction: column; gap: .3rem; border: 1px solid var(--eeefr-line); border-radius: 10px;
	padding: .9rem 1rem .9rem 2.4rem; position: relative; cursor: pointer; transition: all .15s;
}
.eeefr__card input { position: absolute; left: .9rem; top: 1rem; accent-color: var(--eeefr-accent); width: 1.05rem; height: 1.05rem; }
.eeefr__card:hover { border-color: var(--eeefr-accent); }
.eeefr__card.is-on { border-color: var(--eeefr-accent); background: var(--eeefr-bg-soft); }
.eeefr__card-title { font-weight: 700; }
.eeefr__card-desc { font-size: .82rem; color: var(--eeefr-muted); }

/* Boxen */
.eeefr__box { border: 1px solid var(--eeefr-line); border-radius: 10px; padding: 1rem 1.1rem; margin-top: 1rem; background: var(--eeefr-bg-soft); }
.eeefr__box--isfp { border-color: var(--eeefr-accent); background: var(--eeefr-accent); color: var(--eeefr-on-accent); }
.eeefr__box--isfp strong, .eeefr__box--isfp small, .eeefr__box--isfp .eeefr__toggle { color: var(--eeefr-on-accent); }
.eeefr__box--isfp .eeefr__toggle input { accent-color: var(--eeefr-on-accent); }
.eeefr__isfp-opts { display: flex; flex-wrap: wrap; gap: .35rem 1.5rem; margin: .6rem 0 .4rem; }
.eeefr__isfp-opts .eeefr__toggle { margin-top: 0; }
.eeefr__isfp-angebot { margin-top: .75rem; padding-top: .65rem; border-top: 1px solid rgba(255,255,255,.4); }
.eeefr__area { margin-top: .65rem; padding: .7rem .85rem; border-radius: 9px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.35); }
.eeefr__area-info { margin: 0 0 .5rem; font-size: .92rem; line-height: 1.45; }
.eeefr__area .eeefr__toggle { margin: 0; }

/* KfW-Kredit-Schritt */
.eeefr__kfw-card { border: 1px solid var(--eeefr-line); border-radius: 10px; padding: 1rem 1.1rem; margin-top: 1rem; background: var(--eeefr-bg); }
.eeefr__kfw-card .eeefr__hint { margin: .35rem 0 0; }
.eeefr__kfw-fragen { margin-top: .85rem; padding-top: .85rem; border-top: 1px solid var(--eeefr-line); }
.eeefr__kfw-frage { margin-bottom: .75rem; }
.eeefr__kfw-frage .eeefr__label { display: block; margin-bottom: .3rem; }
.eeefr__kfw-verdict:empty { display: none; }
.eeefr__kfw-ok { margin-top: .4rem; padding: .6rem .8rem; border-radius: 8px; background: #e8f3e2; border: 1px solid #bcd9ac; color: #2a5520; font-size: .92rem; }
.eeefr__kfw-warn { margin-top: .4rem; padding: .6rem .8rem; border-radius: 8px; background: #fdf3e3; border: 1px solid #f0d9a8; color: #7a5a16; font-size: .92rem; }
.eeefr__kfw-neutral { margin-top: .4rem; padding: .6rem .8rem; border-radius: 8px; background: var(--eeefr-bg-soft); border: 1px solid var(--eeefr-line); color: var(--eeefr-muted); font-size: .92rem; }
.eeefr__disclaimer-inline { margin-top: 1.25rem; font-size: .82rem; color: var(--eeefr-muted); }
.eeefr__offer { margin-top: 1.25rem; padding: 1rem 1.1rem; border: 1px solid var(--eeefr-line); border-radius: 10px; background: var(--eeefr-bg-soft); }
.eeefr__offer .eeefr__lead { margin-bottom: .75rem; }
.eeefr__objekt { margin-top: .5rem; }

/* Ergebnis */
.eeefr__compare { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .75rem; margin-bottom: 1.25rem; }
.eeefr__result-card { border: 1px solid var(--eeefr-line); border-radius: 10px; padding: 1rem; background: var(--eeefr-bg); }
.eeefr__result-card--muted { background: var(--eeefr-bg-soft); }
.eeefr__result-card h4 { margin: 0 0 .4rem; font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; color: var(--eeefr-muted); }
.eeefr__big { font-size: 1.7rem; font-weight: 800; line-height: 1; color: var(--eeefr-accent-dark); }
.eeefr__bonilist { margin: .5rem 0 0; padding-left: 1rem; font-size: .78rem; color: var(--eeefr-muted); }
.eeefr__result-card--accent { border-color: var(--eeefr-accent); background: var(--eeefr-accent); }
.eeefr__result-card--accent h4 { color: var(--eeefr-on-accent); opacity: .9; }
.eeefr__result-card--accent .eeefr__big { color: var(--eeefr-on-accent); }
.eeefr__result-card--accent .eeefr__hint { color: var(--eeefr-on-accent); opacity: .9; }
.eeefr__result-card--accent .eeefr__bonilist { color: var(--eeefr-on-accent); opacity: .9; }

.eeefr__table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: .9rem; }
.eeefr__table th, .eeefr__table td { text-align: left; padding: .55rem .5rem; border-bottom: 1px solid var(--eeefr-line); }
.eeefr__table th { font-size: .75rem; text-transform: uppercase; letter-spacing: .03em; color: var(--eeefr-muted); }
.eeefr__right { text-align: right; }

.eeefr__summary { display: grid; gap: .5rem; padding: 1rem 1.1rem; background: var(--eeefr-bg-soft); border-radius: 10px; margin-top: .5rem; }
.eeefr__summary > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.eeefr__summary span { color: var(--eeefr-muted); }
.eeefr__accent-text { color: var(--eeefr-accent-dark); }
.eeefr__cta-text { margin-top: 1rem; font-size: .9rem; color: var(--eeefr-muted); }

/* States */
.eeefr__loading { padding: 3rem 1rem; text-align: center; color: var(--eeefr-muted); }
.eeefr__error { color: #b91c1c; }
.eeefr__success { text-align: center; padding: 1.5rem 1rem; }
.eeefr__formmsg { margin-top: .75rem; font-size: .9rem; min-height: 1.2em; }
.eeefr__formmsg.is-error { color: #b91c1c; }

/* Navigation */
.eeefr__nav { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.25rem; }
.eeefr__btn { padding: .7rem 1.5rem; border-radius: 8px; font: inherit; font-weight: 700; cursor: pointer; border: 1px solid transparent; transition: all .15s; }
.eeefr__btn--primary { background: var(--eeefr-accent); color: var(--eeefr-btn-text); margin-left: auto; }
.eeefr__btn--primary:hover { background: var(--eeefr-accent-dark); }
.eeefr__btn--primary:disabled { opacity: .6; cursor: default; }
.eeefr__btn--ghost { background: transparent; border-color: var(--eeefr-line); color: var(--eeefr-ink); }
.eeefr__btn--ghost:hover { border-color: var(--eeefr-accent); color: var(--eeefr-accent); }

/* Consent / Links */
.eeefr__consent { display: flex; align-items: flex-start; gap: .5rem; margin-top: 1rem; }
.eeefr__consent > span { flex: 1; }
.eeefr a, .eeefr__consent a { color: var(--eeefr-link); }

/* Disclaimer */
.eeefr__disclaimer { margin-top: 1rem; font-size: .76rem; color: var(--eeefr-muted); line-height: 1.45; }

/* Powered by */
.eeefr__poweredby { margin-top: .5rem; text-align: center; font-size: .76rem; color: var(--eeefr-muted); }
.eeefr__poweredby a { color: var(--eeefr-link); text-decoration: none; font-weight: 600; }
.eeefr__poweredby a:hover { text-decoration: underline; }

@media (max-width: 560px) {
	.eeefr__grid, .eeefr__cards { grid-template-columns: 1fr; }
	.eeefr__panel { padding: 1.25rem; }
	.eeefr__steps li { font-size: .62rem; }
}
