h1,
h2,
h3,
h4,
h5,
h6,
p,
a {
  hyphens: none;
}

.btn-pointy-end {
  position: relative;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  margin-right: 21.9px;
  padding-right: 0;
}

.btn-pointy-end::after {
  content: '';
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-359.3 853.5 28.7 50'%3E%3Cpath id='SVGID_1_' d='M-359.3,853.5v50h3c2.2,0,5.3-1.2,6.9-2.8l15.8-15.3c4-3.8,4-10.1,0-13.9l-15.8-15.2c-1.6-1.5-4.7-2.8-6.9-2.8L-359.3,853.5z'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-359.3 853.5 28.7 50'%3E%3Cpath id='SVGID_1_' d='M-359.3,853.5v50h3c2.2,0,5.3-1.2,6.9-2.8l15.8-15.3c4-3.8,4-10.1,0-13.9l-15.8-15.2c-1.6-1.5-4.7-2.8-6.9-2.8L-359.3,853.5z'/%3E%3C/svg%3E");
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  background-color: currentColor;
  display: block;
  position: absolute;
  top: -1px;
  bottom: -1px;
  right: -21.8px;
  width: 21.8px;
  color: var(--bs-btn-bg);
}

.btn-pointy-end.btn-primary path {
  fill: var(--bs-btn-bg);
}

.btn-primary {
  color: var(--contrast-color) !important;
}

.btn-brand {
  /* color: var(--contrast-color) !important; */
  padding: 12px 40px;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 500;
  transition: 0.3s;
  font-family: var(--heading-font);
}

.individual-gaurantee-table .input-group {
  max-width: 160px;
  margin-inline-start: auto;
}

.php-email-form .input-group-text:last-child {
  border-radius: 0;
  border-left: 0;
}

.eg-total {
  display: grid;
  grid-template-columns: 1fr auto;
  justify-content: end;
  align-items: end;
  column-gap: 40px;
  row-gap: 12px;
  text-align: end;
  color: var(--bs-table-color) !important;
  font-weight: bold !important;
}

.eg-vatinfo {
  text-align: right;
  color: grey !important;
  font-weight: normal !important;
  padding-bottom: 15px;
}

.eg-packetsinfo {
  text-align: center;
  padding-bottom: 60px;
}

.line-through {
  color: grey !important;
  text-decoration: line-through;
}

/* Modal Page Transitions */
.modal-dialog-centered {
  justify-content: center;
}

.modal-page {
  width: 100%;
  opacity: 1;
  display: none;
  transition: opacity 0.3s ease-in-out;
}

.modal-page.active {
  display: block;
  opacity: 1;
}

/* Modal Sizes */
/* @media (min-width: 576px) { */

.modal-content {
  transition: width 0.3s ease, height 0.3s ease;
}

.modal-customer-form {
  width: min(500px, 100%);
  height: auto;
}

.modal-login-link {
  width: min(500px, 100%);
  height: auto;
}

.modal-contract {
  width: 100%;
  height: 100%;
}

.modal-payment {
  width: 500px;
  height: 630px;
  animation: setAutoHeight 0s 1s forwards
}

@media (max-width: 576px) {
  .modal-payment {
    height: 630px;
  }
}

@keyframes setAutoHeight {
  to {
    height: auto;
  }
}

.modal-confirmation {
  width: min(500px, 100%);
  height: 280px !important;
}
/* } */

.modal-page.fade-out {
  opacity: 0;
  display: block;
}

.modal-page.active:not(.fade-out) {
  animation: fadeIn 0.3s ease-in-out;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* ADDITIONAL BS UTILITIES */

.border-lg-start {
  border-left: 0;
}

@media (min-width: 992px) {  /* 992px ist der Standard lg Breakpoint in Bootstrap */
  .border-lg-start {
    border-left: var(--bs-border-width) solid var(--bs-border-color);
  }
}

/* ==========================================
   CALCULATOR MODAL
   ========================================== */

/* FORM */

.customer-form {
  margin: calc(var(--bs-modal-padding) * -1);
  width: calc(100% + var(--bs-modal-padding) * 2) !important;
  height: calc(100% + var(--bs-modal-padding) * 2);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "start"
    "end";
}

.customer-form__col-start {
  grid-area: start;
  padding-inline: var(--bs-modal-padding);
  padding-block-start: var(--bs-modal-padding);
}

.customer-form__col-end {
  grid-area: end;
  padding-block-end: var(--bs-modal-padding);
}

.customer-form__proxy-form {
    margin-block-start: var(--bs-modal-padding);
}

@media (min-width: 992px) {
  .customer-form {
    margin: calc(var(--bs-modal-padding) * -1);
  }
  
  .customer-form {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas: "start end";
  }

  .customer-form__col-start {
    padding-block-end: var(--bs-modal-padding);
  }

  .customer-form__col-end {
    border-left: var(--bs-border-width) solid var(--bs-border-color);
    padding-block-start: 1.25rem;
    /* padding-block-start: var(--bs-modal-padding); */
  }

  .customer-form__proxy-form {
    margin-block-start: 1.25rem;
  }
}

/* CONTRACT */

.contract {
  /* @link https://utopia.fyi/type/calculator?c=320,16,1.067,1240,18,1.067,5,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */

  --step--2: clamp(0.8784rem, 0.8402rem + 0.1909vw, 0.9882rem);
  --step--1: clamp(0.9372rem, 0.8965rem + 0.2037vw, 1.0544rem);
  --step-0: clamp(1rem, 0.9565rem + 0.2174vw, 1.125rem);
  --step-1: clamp(1.067rem, 1.0206rem + 0.232vw, 1.2004rem);
  --step-2: clamp(1.1385rem, 1.089rem + 0.2475vw, 1.2808rem);
  --step-3: clamp(1.2148rem, 1.162rem + 0.2641vw, 1.3666rem);
  --step-4: clamp(1.2962rem, 1.2398rem + 0.2818vw, 1.4582rem);
  --step-5: clamp(1.383rem, 1.3229rem + 0.3007vw, 1.5559rem);

  /* @link https://utopia.fyi/space/calculator?c=320,16,1.067,1240,18,1.125,5,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */

  --space-3xs: clamp(0.25rem, 0.2283rem + 0.1087vw, 0.3125rem);
  --space-2xs: clamp(0.5rem, 0.4783rem + 0.1087vw, 0.5625rem);
  --space-xs: clamp(0.75rem, 0.7065rem + 0.2174vw, 0.875rem);
  --space-s: clamp(1rem, 0.9565rem + 0.2174vw, 1.125rem);
  --space-m: clamp(1.5rem, 1.4348rem + 0.3261vw, 1.6875rem);
  --space-l: clamp(2rem, 1.913rem + 0.4348vw, 2.25rem);
  --space-xl: clamp(3rem, 2.8696rem + 0.6522vw, 3.375rem);
  --space-2xl: clamp(4rem, 3.8261rem + 0.8696vw, 4.5rem);
  --space-3xl: clamp(6rem, 5.7391rem + 1.3043vw, 6.75rem);

  /* One-up pairs */
  --space-3xs-2xs: clamp(0.25rem, 0.1413rem + 0.5435vw, 0.5625rem);
  --space-2xs-xs: clamp(0.5rem, 0.3696rem + 0.6522vw, 0.875rem);
  --space-xs-s: clamp(0.75rem, 0.6196rem + 0.6522vw, 1.125rem);
  --space-s-m: clamp(1rem, 0.7609rem + 1.1957vw, 1.6875rem);
  --space-m-l: clamp(1.5rem, 1.2391rem + 1.3043vw, 2.25rem);
  --space-l-xl: clamp(2rem, 1.5217rem + 2.3913vw, 3.375rem);
  --space-xl-2xl: clamp(3rem, 2.4783rem + 2.6087vw, 4.5rem);
  --space-2xl-3xl: clamp(4rem, 3.0435rem + 4.7826vw, 6.75rem);

  /* Custom pairs */
  --space-s-l: clamp(1rem, 0.5652rem + 2.1739vw, 2.25rem);
}

.contract * {
  padding: 0;
  margin: 0;
}

.contract .form-check {
  min-height: var(--step-0);
  padding-left: 1.5em;
}

.contract .form-check-input[type=checkbox] {
  border-radius: .25em;
}

.contract .form-check .form-check-input {
  float: left;
  margin-left: -1.5em;
}

.contract .form-check-input {
  width: var(--step-0);
  height: var(--step-0);
  margin-top: .25em;
}

.contract h1,
.contract h2,
.contract h3,
.contract h4,
.contract h5,
.contract h6 {
  margin: 0;
}

.contract h1 {
  font-size: var(--step-5);
}

.contract h2 {
  font-size: var(--step-4);
}

.contract h3 {
  font-size: var(--step-3);
}

.contract h4 {
  font-size: var(--step-2);
}

.contract h5 {
  font-size: var(--step-1);
}

.contract h6 {
  font-size: var(--step-0);
}

.contract p,
.contract li,
.contract label {
  font-size: var(--step-0);
  line-height: 1.4;
}

/* GLOBAL LAYOUT PATTERNS */

/* Stack */
.stack {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.stack > * {
  margin-block: 0;
}

.stack > * + * {
  margin-block-start: 1rem;
}

/* Stack Varianten */
.stack-3xs > * + * {
  margin-block-start: var(--space-3xs);
}

.stack-2xs > * + * {
  margin-block-start: var(--space-2xs);
}

.stack-xs > * + * {
  margin-block-start: var(--space-xs);
}

.stack-s > * + * {
  margin-block-start: var(--space-s);
}

.stack-m > * + * {
  margin-block-start: var(--space-m);
}

.stack-l > * + * {
  margin-block-start: var(--space-l);
}

.stack-xl > * + * {
  margin-block-start: var(--space-xl);
}

.stack-2xl > * + * {
  margin-block-start: var(--space-2xl);
}

.stack-3xl > * + * {
  margin-block-start: var(--space-3xl);
}

/* Sizing */

.h-min-100 {
  min-height: 100% !important;
}


/*Popover*/

.popover{
  max-width: 500px;
}

.form-control.touched:invalid {
  border-color: #dc3545 !important;
  box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25) !important;
}