/* CSS Custom Properties (Variables) */
div#ec__calculator {
  /* Colors */
  --primary-bg: var(--color-primary);
  --primary-text: var(--color-text);
  --secondary-text: var(--color-text);
  --white-text: #fff;
  --input-bg: #dedfed;
  --input-bg-focus: #cccee0;
  --input-border: #042a2b;
  --input-border-focus: #ff7729;
  --input-border-filled: var(--color-primary-tint-40);
  --switch-inactive-bg: #adafc8;
  --switch-inactive-text: #727492;
  --switch-active-bg: #dedfed;
  --switch-active-text: #042a2b;
  --tooltip-bg: #cccee0;
  --tooltip-shadow: #545454;
  --addon-border: #000000;
  
  /* Breakpoints */
  --breakpoint-mobile: 800px;
  
  /* Spacing */
  --container-max-width: 100%;
  --padding-desktop: var(--space-l);
  --padding-mobile: 5px;
  --section-padding: 10px;
  --input-height: 40px;
  --addon-width: 65px;
  
  /* Typography */
  --font-size-title: var(--fs-h3);
  --font-size-title-mobile: 2rem;
  --font-size-section: var(--fs-h3);
  --font-size-subsection: var(--fs-h5);
  --font-size-input: var(--fs-body-s);
  --font-size-output: var(--fs-body-s);
  --font-size-label: var(--fs-body-s);
  --font-size-output-label: var(--fs-body-s);
  --font-size-tooltip: var(--fs-body-xs);
  --font-size-switch: var(--fs-body-xs);
  
  /* Transitions */
  --transition-fast: 0.15s ease-in-out;
  --transition-normal: 0.2s;
}

div#ec__calculator *,
div#ec__calculator :after,
div#ec__calculator :before {
  -webkit-box-sizing: border-box !important;
  box-sizing: border-box !important;
}

div#ec__calculator {
  max-width: var(--container-max-width);
  width: 100%;
  margin: 0 auto;
  position: relative;
  background: var(--primary-bg);
  color: var(--primary-text);
  line-height: 1.2;
}

div#ec__calculator .calc__inputs_group {
  margin-bottom: 25px;
}

div#ec__calculator .calc__outputs_group {
  margin-bottom: 5px;
}

div#ec__calculator .calc__wrap {
  display: flex;
  align-items: flex-start;
  padding: var(--space-l) ;
}

div#ec__calculator .calc__wrap > div {
  flex: 1;
  margin: 0 var(--section-padding);
}

div#ec__calculator .calc__outputs_section {
  padding: var(--section-padding) 0 var(--section-padding) 15px;
  margin-bottom: var(--section-padding);
  border: 0 solid var(--secondary-text);
}

div#ec__calculator .calc__title {
  color: var(--primary-text);
  font-size: var(--font-size-title);
  line-height: 113%;
  letter-spacing: 0.03em;
  font-style: normal;
  font-weight: 500;
  text-transform: none;
  margin-bottom: 15px;
  padding: var(--padding-desktop) var(--padding-desktop) 0;
}

div#ec__calculator .calc__outputs_value span {
  font-weight: 600;
  font-size: var(--font-size-output);
  color: var(--white-text);
  letter-spacing: normal;
}

div#ec__calculator .calc__inputs_title,
div#ec__calculator .calc__outputs_title {
  color: var(--primary-text);
  font-size: var(--font-size-section);
  line-height: 113%;
  letter-spacing: 0.03em;
  font-style: normal;
  font-weight: 500;
  text-transform: none;
  margin-bottom: 5px;
}

div#ec__calculator .calc__inputs_title {
  margin-bottom: 20px;
}

div#ec__calculator .calc__inputs_name,
div#ec__calculator .calc__outputs_name {
  color: var(--primary-text);
  font-size: var(--font-size-label);
  line-height: 122%;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  position: relative;
  margin-bottom: 7px;
}

div#ec__calculator .calc__outputs_name {
  margin-bottom: 0;
  text-transform: initial;
  letter-spacing: normal;
  font-size: var(--font-size-output-label);
}

div#ec__calculator .calc__outputs_section_name {
  color: var(--primary-text);
  line-height: 122%;
  margin-bottom: var(--section-padding);
  font-size: var(--font-size-subsection);
  line-height: 113%;
  letter-spacing: 0.03em;
  font-style: normal;
  font-weight: 500;
  text-transform: none;
}

div#ec__calculator .calc__outputs_group {
  display: flex;
  align-items: center;
}

div#ec__calculator .calc__outputs_group > div {
  flex: 1;
}

div#ec__calculator .calc__outputs_group > div:nth-child(2) {
  text-align: right;
}

div#ec__calculator .calc__inputs_value.calc__inputs_switch {
  display: flex;
  align-items: stretch; /* Alle Labels haben gleiche Höhe */
  justify-content: center;
  min-height: 44px; /* Mindesthöhe für Touch-Targets */
}

div#ec__calculator .calc__inputs_switch input {
  position: absolute !important;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  width: 1px;
  border: 0;
  overflow: hidden;
}

div#ec__calculator .calc__inputs_switch label {
  color: var(--switch-inactive-text);
  background-color: var(--switch-inactive-bg);
  border-top: 4px solid var(--switch-inactive-bg);
  border-radius: unset;
  transition: all var(--transition-normal);
  margin: 0;
  padding: 12px 5px; /* Etwas mehr Padding für bessere Touch-Targets */
  text-align: center;
  cursor: pointer;
  font-size: var(--font-size-switch);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: normal;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px; /* Konsistente Mindesthöhe */
  box-sizing: border-box;
}

div#ec__calculator .calc__inputs_switch input:checked + label {
  color: var(--switch-active-text);
  background-color: var(--switch-active-bg);
  border-top: 4px solid var(--switch-active-text);
  font-weight: 700;
}

div#ec__calculator input[type="text"] {
  display: block;
  width: 100%;
  padding: 0;
  color: var(--secondary-text);
  background-color: var(--input-bg);
  background-clip: padding-box;
  border: 0;
  border-bottom: 4px solid var(--input-border);
  border-radius: 0;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
  font-weight: 300;
  font-style: normal;
  font-size: var(--font-size-input);
  line-height: 180%;
  letter-spacing: 0.05em;
  height: var(--input-height);
  padding-left: 0.75rem;
  outline: 0;
  border-radius: 0;
  margin: 0;
}

div#ec__calculator input[type="text"].calc__focus,
div#ec__calculator input[type="text"].calc__focus.calc__filled {
  border-color: var(--input-border-focus);
  background: var(--input-bg-focus);
}

div#ec__calculator input[type="text"].calc__filled {
  border-color: var(--input-border-filled);
  background: var(--input-bg-focus);
}

div#ec__calculator input[type="text"].calc__focus + .calc__addon {
  border-color: var(--input-border-focus);
}

div#ec__calculator input[type="text"]::-webkit-inner-spin-button,
div#ec__calculator input[type="text"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

div#ec__calculator .calc__inputs_value {
  position: relative;
}

div#ec__calculator span.calc__addon {
  border-radius: 0 !important;
  border-bottom: 4px solid var(--addon-border);
  background-color: var(--input-bg);
  color: var(--secondary-text);
  position: absolute;
  right: 0;
  top: 0;
  display: block;
  height: var(--input-height);
  text-align: center;
  width: var(--addon-width);
  font-size: var(--font-size-label);
  line-height: var(--input-height);
  letter-spacing: 0.1em;
  font-size: var(--font-size-label);
  text-transform: uppercase;
  font-weight: 700;
}

div#ec__calculator .calc__sign {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAFoTx1HAAAABGdBTUEAALGPC/xhBQAAAWtJREFUKBVtkbFOw0AQRO0LsmjSIOUDgFAbiX+gARrgAxBlrKCkhwoauogoESUtEtAQKPgJlIomlBSIDlPQ2Mebwz5ii5Wc25nZudvdBAGRJMlzqB9r7brQqdiw0+lYl4hBOhbwIdVXiKUqNcaseJ9Io5/xeBw60Gg09gpP6hhAjhISW7zwoCoVGS77kiBiNBo9crwoz7LslkfMsoCi3+8vcVw7EAS/13a73Vae50+Qbb4BN5yoIETY1RUO/L1p6dBU+lZBGTR35uYQATjnOo+heh4wwhpPbJROzpnEtCBMFEXvpcgUm+USPiGbpaAFDIfDOyeKLLq+IvVF4ucixXQgkziN2WLMV/KKgeZ3eNaiTebMSnXB6kKxtIpJKoPdY1Jaj6Y8GlKbrseb/vo4jiOE77oIbss4qAu0eSluOp0ecizWdfDALadYzA2EX9Y/xaIs8+1XtipWi6L/I9JtvnKEGfmERV1g+CB38QMEwZbG8C1nGwAAAABJRU5ErkJggg==);
  background-repeat: no-repeat;
  width: 15px;
  height: 15px;
  cursor: pointer;
  position: absolute;
  bottom: 3px;
  right: 0;
}

div#ec__calculator .calc__tooltip {
  position: absolute;
  z-index: 2222;
  background: var(--tooltip-bg);
  color: var(--primary-text);
  padding: var(--section-padding);
  border-radius: 0;
  font-size: var(--font-size-tooltip);
  line-height: 14px;
  width: 225px;
  box-shadow: 1px 1px 5px var(--tooltip-shadow);
  display: none;
  text-transform: none;
  font-weight: 400;
  right: 0;
  letter-spacing: normal;
}

@media all and (max-width: 800px) {
  div#ec__calculator .calc__wrap {
    display: block;
    padding: 0 var(--padding-mobile) var(--section-padding);
  }

  div#ec__calculator {
    padding: var(--padding-desktop) 0 var(--section-padding);
  }

  div#ec__calculator .calc__title {
    padding: 0 var(--section-padding);
    font-size: var(--font-size-title-mobile);
  }
}
