/* HKU-Rechner: sämtliche Selektoren sind auf die Rechnersektion begrenzt. */
.hku-calc-section { background: #f4f8fa; }
.hku-calc-section [hidden] { display: none !important; }
.hku-calc-section .hku-calc-intro { max-width: 850px; margin-bottom: 2rem; }
.hku-calc-intro h2 { font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.12; letter-spacing: -.045em; margin: .45rem 0 1rem; }
.hku-calc-intro > p:last-child { color: var(--ink-soft); max-width: 710px; line-height: 1.75; }
.hku-calc-layout { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 1.1rem; align-items: start; }
.hku-calc-form, .hku-calc-results { border-radius: 22px; min-width: 0; box-shadow: 0 16px 38px rgba(10, 50, 70, .06); }
.hku-calc-form { background: #fff; border: 1px solid #dce7ed; padding: clamp(1.1rem, 3vw, 2rem); }
.hku-calc-form-header, .hku-calc-results-heading { display: flex; gap: 1rem; align-items: center; margin-bottom: 1.7rem; }
.hku-calc-form-header h3, .hku-calc-results-heading h3 { font-size: 1.45rem; margin: 0 0 .28rem; }
.hku-calc-form-header p, .hku-calc-results-heading p { font-size: .88rem; margin: 0; color: #6d8290; }
.hku-calc-step { display: grid; place-items: center; flex: 0 0 44px; height: 44px; border-radius: 12px; background: #dfedf2; color: #0b4b69; font-weight: 800; }
.hku-calc-group { border: 0; border-top: 1px solid #e1e9ed; margin: 0 0 1.5rem; padding: 1.4rem 0 0; min-width: 0; }
.hku-calc-group > legend { font-weight: 750; font-size: 1.03rem; padding: 0 .6rem 0 0; }
.hku-calc-group label { display: block; font-size: .89rem; font-weight: 650; color: #254456; line-height: 1.4; }
.hku-calc-group label small { display: block; font-size: .76rem; color: #637e8b; font-weight: 400; margin-top: .2rem; }
.hku-calc-fields { margin-top: 1rem; }
.hku-calc-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.hku-calc-two > div { min-width: 0; }
.hku-calc-input { display: flex; align-items: stretch; min-width: 0; margin-top: .4rem; background: #f8fafb; border: 1px solid #c9d9e2; border-radius: 10px; overflow: hidden; transition: border-color .15s, box-shadow .15s; }
.hku-calc-input:focus-within { border-color: #17638a; box-shadow: 0 0 0 3px rgba(23, 99, 138, .14); }
.hku-calc-input input { min-width: 0; width: 100%; flex: 1; border: 0; background: transparent; color: #183846; padding: .85rem .7rem; font: inherit; font-size: .94rem; outline: 0; }
.hku-calc-input input::placeholder { color: #69818f; opacity: .9; }
.hku-calc-input input[aria-invalid="true"] { background: #fff3f0; }
.hku-calc-input span { align-self: center; flex-shrink: 0; font-size: .79rem; font-weight: 650; color: #476b7e; padding: 0 .65rem 0 .2rem; }
.hku-calc-hint { font-size: .8rem; line-height: 1.55; color: #587582; margin: .8rem 0 0; }
.hku-calc-switch { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-top: .45rem; }
.hku-calc-switch label { cursor: pointer; }
.hku-calc-switch input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.hku-calc-switch label span { display: block; border: 1px solid #d0dee5; text-align: center; border-radius: 10px; padding: .75rem .3rem; font-weight: 700; color: #426275; }
.hku-calc-switch input:checked + span { border-color: #0f587b; background: #e3f1f7; color: #104d6a; }
.hku-calc-switch input:focus-visible + span { outline: 3px solid #1481ab; outline-offset: 2px; }
.hku-calc-subgroup { min-width: 0; border: 0; padding: .8rem 0 0; margin: .7rem 0 0; }
.hku-calc-subgroup legend { font-size: .9rem; color: #254456; font-weight: 650; }
.hku-calc-radio-row { display: flex; flex-wrap: wrap; gap: .6rem 1.3rem; margin: .6rem 0 .9rem; }
.hku-calc-radio-row label { display: inline-flex; align-items: center; gap: .4rem; font-weight: 500; cursor: pointer; }
.hku-calc-radio-row input { width: 18px; height: 18px; accent-color: #0f587b; }
.hku-calc-actions { display: flex; gap: .65rem; flex-wrap: wrap; margin-top: 1.5rem; }
.hku-calc-primary, .hku-calc-reset, .hku-calc-print { border-radius: 11px; padding: .88rem 1rem; min-height: 48px; font: inherit; font-weight: 720; cursor: pointer; }
.hku-calc-primary { flex: 1; background: #0b5273; color: #fff; border: 1px solid #0b5273; }
.hku-calc-primary:hover { background: #07394f; }
.hku-calc-primary span { padding-left: .4rem; }
.hku-calc-reset { border: 1px solid #cad9df; background: #fff; color: #254e62; }
.hku-calc-error { padding: .8rem; color: #8d2e22; background: #fff0ed; border: 1px solid #efd0ca; border-radius: 10px; margin: 1rem 0 0; }
.hku-calc-results { background: #092f44; color: #f6fbff; padding: clamp(1.1rem, 3vw, 2rem); }
.hku-calc-results-heading { border-bottom: 1px solid #396274; padding-bottom: 1.4rem; }
.hku-calc-results-heading p { color: #b6ccd6; }
.hku-calc-step-light { color: #d9f2fc; background: #28556a; }
.hku-calc-empty { padding: 2.5rem .5rem; text-align: center; }
.hku-calc-empty-icon { display: grid; place-items: center; font-size: 2.6rem; color: #b4e3f6; border-radius: 22px; width: 82px; height: 82px; background: #214b60; margin: 0 auto 1.4rem; }
.hku-calc-empty strong { display: block; font-size: 1.2rem; }
.hku-calc-empty p { color: #b7cfd8; line-height: 1.65; max-width: 310px; margin: 1rem auto; }
.hku-calc-hero-stat { border-radius: 16px; padding: 1.35rem 1.4rem; background: #174c64; }
.hku-calc-hero-stat > span, .hku-calc-hero-stat small { color: #d4e8f0; display: block; }
.hku-calc-hero-stat > strong { font-size: clamp(2.05rem, 4vw, 2.9rem); line-height: 1.3; letter-spacing: -.03em; display: block; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.hku-calc-hero-stat small { font-size: .77rem; line-height: 1.55; }
.hku-calc-hero-stat.is-negative { background: #57424a; }
.hku-calc-key-figures { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1.4rem 0 1.6rem; }
.hku-calc-key-figures > div { padding: .85rem; border: 1px solid #386173; border-radius: 11px; }
.hku-calc-key-figures span { display: block; color: #b5ccd5; font-size: .79rem; margin-bottom: .5rem; }
.hku-calc-key-figures strong { display: block; font-size: 1.13rem; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.hku-calc-results h4 { font-size: .95rem; margin: 0 0 1rem; color: #fff; }
.hku-calc-comparison { margin: 1.3rem 0 1.6rem; }
.hku-calc-bar-label { display: flex; justify-content: space-between; gap: .8rem; font-size: .82rem; margin-top: .8rem; }
.hku-calc-bar-label strong { font-variant-numeric: tabular-nums; }
.hku-calc-comparison progress { width: 100%; height: 12px; appearance: none; border: 0; border-radius: 10px; overflow: hidden; margin: .25rem 0; background: #2b5265; }
.hku-calc-comparison progress::-webkit-progress-bar { background: #2b5265; }
.hku-calc-comparison progress::-webkit-progress-value { background: #7fc5eb; border-radius: 10px; }
.hku-calc-comparison progress::-moz-progress-bar { background: #7fc5eb; border-radius: 10px; }
.hku-calc-comparison progress.hku-calc-bar-well::-webkit-progress-value { background: #a0d5b8; }
.hku-calc-comparison progress.hku-calc-bar-well::-moz-progress-bar { background: #a0d5b8; }
.hku-calc-breakdown { margin: 1.5rem 0; }
.hku-calc-breakdown > div, .hku-calc-longterm > div { display: flex; justify-content: space-between; gap: .7rem; border-bottom: 1px solid #35596c; padding: .65rem 0; font-size: .85rem; }
.hku-calc-breakdown dt { color: #b4cbd5; }
.hku-calc-breakdown dd { margin: 0; font-weight: 700; white-space: nowrap; }
.hku-calc-longterm { border-top: 1px solid #35596c; padding-top: 1.2rem; }
.hku-calc-scenarios { margin: 1.5rem 0; }
.hku-calc-scenarios > p { font-size: .79rem; color: #b4cbd5; line-height: 1.55; }
.hku-calc-scenario-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .4rem; }
.hku-calc-scenario-grid > div { border: 1px solid #446a7b; border-radius: 9px; padding: .6rem .4rem; text-align: center; }
.hku-calc-scenario-grid span { display: block; font-size: .69rem; color: #b7ced7; }
.hku-calc-scenario-grid strong { display: block; font-size: .81rem; margin-top: .35rem; overflow-wrap: anywhere; }
.hku-calc-print { background: transparent; border: 1px solid #adcdd9; color: #e6f6ff; width: 100%; }
.hku-calc-print:hover { background: #205167; }
.hku-calc-status { font-size: .8rem; color: #d0e2e9; margin: .8rem 0 0; }
.hku-calc-status:empty { display: none; }
.hku-calc-method { background: white; border: 1px solid #dce6eb; border-radius: 14px; margin-top: 1.2rem; padding: 1rem 1.25rem; }
.hku-calc-method summary { cursor: pointer; font-weight: 750; color: #185a77; }
.hku-calc-method p { color: #486978; line-height: 1.75; font-size: .88rem; }
@media (max-width: 950px) { .hku-calc-layout { grid-template-columns: 1fr; } }
@media (max-width: 560px) {
 .hku-calc-form, .hku-calc-results { padding: 1rem; border-radius: 14px; }
 .hku-calc-two { grid-template-columns: 1fr; }
 .hku-calc-switch label span { padding: .75rem .25rem; font-size: .83rem; }
 .hku-calc-key-figures { gap: .5rem; }
 .hku-calc-key-figures > div { padding: .65rem; }
 .hku-calc-breakdown > div { font-size: .77rem; }
 .hku-calc-scenario-grid { gap: .25rem; }
}
@media print {
 body:has(.hku-calc-section.hku-calc-print-active) > *:not(main) { display: none !important; }
 body:has(.hku-calc-section.hku-calc-print-active) main > section:not(#gartenbrunnen-rechner) { display: none !important; }
 .hku-calc-section.hku-calc-print-active { background: white; padding: 0; }
 .hku-calc-section.hku-calc-print-active .hku-calc-form, .hku-calc-section.hku-calc-print-active .hku-calc-method { display: none !important; }
 .hku-calc-section.hku-calc-print-active .hku-calc-layout { display: block; }
 .hku-calc-section.hku-calc-print-active .hku-calc-results { background: #fff; color: #111; border: 1px solid #aaa; box-shadow: none; }
 .hku-calc-section.hku-calc-print-active .hku-calc-results * { color: #111 !important; }
 .hku-calc-section.hku-calc-print-active .hku-calc-hero-stat { background: #f5f5f5 !important; }
 .hku-calc-section.hku-calc-print-active .hku-calc-print { display: none; }
}
