/*
 * when the user visits this page, this style will apply, when they leave, it
 * will get unloaded, so don't worry so much about conflicting styles between
 * pages!
 */

 /* body, #root, .content {
   font-weight: 300;
 } */

 .section {
 }

 .col30 {
   flex: 1 1 30%;
   display: flex;
   flex-direction: column;
   text-align: justify;
   align-items: center;
   justify-content: flex-start;
   max-width: 25em;
   min-width: 15em;
 }
 .flexCenterTop {
   display: flex;
   flex-direction: column;
   text-align: center;
   align-items: center;
   justify-content: flex-start;
 }
 .flexCenterSpread {
   display: flex;
   flex-direction: column;
   text-align: center;
   align-items: center;
   justify-content: space-between;
   height: 100%;
 }
 .spacer {
   flex: 1 1 20px;
   display: flex;
   align-items: center;
 }
 .introText {
   align-items: center;
   justify-content: center;
   text-align: center;
   padding: 0 40px 50px 40px;
   line-height: 1.6rem;
   box-sizing: border-box;
   max-width: 50em;
   min-width: 15em;
   flex-wrap: nowrap;
 }
 .introText > * {
   justify-content: center;
   text-align: center;
   align-items: center;
 }
 .textLeft {
   align-items: center;
   justify-content: center;
   text-align: left;
   padding: 30px 15px 30px 15px;
   line-height: 1.6rem;
   box-sizing: border-box;
   max-width: 35em;
   min-width: 15em;
   flex-wrap: nowrap;
 }
 .softwareImage {
   padding: 50px;
   width: calc(150px + 27em);
   max-width: 95vw;
 }
 @media (max-width: 600px) {
  .softwareImage {
    padding: 10px;
  }
 }
 .boxIcon {
   width: 80px;
 }



 .useCaseGrid {
   width: 100%;
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
 }
 .useCaseBox {
   flex: 1 1 30%;
   display: flex;
   flex-direction: column;
   text-align: justify;
   align-items: center;
   justify-content: flex-start;
   padding: 15px;
   min-width: 15em;
   max-width: 25em;
 }
 .howWorksBox {
   display: flex;
   flex-direction: column;
   text-align: justify;
   align-items: center;
   justify-content: flex-start;
 }
 .inactive .flowChartButton:hover, .actionButton:hover {
   background: #33577a;
 }

 @media (max-width: 855px) {
   .how-it-works > .section-inner {
     flex-direction: column !important;
     align-items: center;
   }
   .spacer > svg.horizontal  {
     display: none ;
   }
 }
 @media screen and (min-width: 855px) {
   .spacer > svg.vertical {
     display: none ;
   }
 }
 @media print {
   .how-it-works > .section-inner {
     flex-direction: column !important;
     align-items: center;
   }
   .spacer > svg.horizontal  {
     display: none !important;
   }
   #title-section {
     background: transparent !important;
     color: #222 !important;
   }
   #logo-light-title {
     display: none !important;
   }
   #logo-color-title {
     display: inline !important;
   }
   svg.dashed, svg.solidMini {
     display: none !important;
   }
   .flowChartBox {
     border: .5px solid #ccd2db !important;
   }
 }
 @media (max-width: 400px) {
   .introText {
     padding: 30px 20px 50px 20px;
   }
 }

 /* Interactive schematic */

 @media (max-width: 30em) {
   .interactive {
     border-bottom: #ccd2db solid 1px;
     background: white;
     width: 100%;
   }
   .widgetBox {
     margin: 5px 0 5px 0;
     border-radius: 2px;
     max-width: 100%;
     padding: 4px;
   }
   .cols {
     font-size: 3.3vw;
   }
   .flowChartButton {
     font-size: 0.9em;
     padding: 2vw !important;
   }
   .flowChart {
     margin-right: 15px;
   }
 }
 @media (min-width: 30em) {
   .interactive {
     min-height: 570px;
     box-sizing: border-box;
     margin-left: 40px;
   }
   .widgetBox {
     box-shadow:  0 1px 1px rgba(0, 0, 0, 0.06),
     2px 6.7px 5.3px rgba(0, 0, 0, 0.04);
     margin: 5px;
     padding: 10px;
     border-radius: 5px;;
     max-width: calc(100% - 20px);
   }
   .flowChart {
     margin-right: 15px;
   }
   .col40 {
     padding-top:20px;
   }
 }
 @media (max-width: 540px) {
   .interactive {
     align-items: center;
   }
   .widgetLower {
     display: flex;
     flex-direction: column;
   }
   .over500px { display: none; }
   #box2 {
     margin: 20px 0 20px 0 !important;
   }
 }
 @media (min-width: 540px) {
   .interactive {
     align-items: center;
     justify-content: flex-start;
   }
   .widgetLower {
     display: flex;
     flex-direction: row-reverse;
     justify-content: space-between;
   }
   .under500px { display: none; }
   #box2 {
     margin: 30px 10px auto 30px !important;
   }
   #box3 {
     margin: 80px auto 20px auto !important;
     min-height: 125px;
     box-sizing: border-box;
   }
   .widgetUnitCost {
     margin-bottom: 10px;
     margin-top: 10px;
   }
 }
 @media (max-width: 1130px) {
   #title-section .col40 {
     flex-basis: 100% !important;
   }
 }
 @media (min-width: 1130px) {
   .interactive {
     margin-top: 70px !important;
   }
 }


 .interactive {
   /* background: lightgrey; */
   box-sizing: border-box;
   display: flex;
   flex-direction: column;
   font-size: 0.9em;
   color: #666666;
   padding: 0;
 }
 .widgetBox {
   background: white;
   box-sizing: border-box;
 }
 .widgetBoxTitle {
   color: silver;
   font-weight:500;
   margin-bottom: 3px;
   margin-top:-3px;
   text-align: center;
 }
 #box2 {
   text-align: center;
 }
 .rangeColumnChart {
   margin: -20px -2px -10px 0;
   max-width: 290px;
 }
 #box3 {
   box-sizing: border-box;
   /* width: calc(100% - 8px); */
   text-align: center;
 }
 .Box1Grid {
   display: grid;
   grid-template-columns: auto auto auto auto;
   row-gap: 5px;
   column-gap: 5px;
 }
 .cols {
   display: flex;
   flex-direction: row;
   justify-content: flex-start;
   height: auto;
 }
 .flowChart {
   box-sizing: border-box;
   display: flex;
   flex-direction: column;
   justify-content: flex-start;
 }
 .flowChartBox {
   box-sizing: border-box;
   padding: 6px;
   background: #f3f3f3;
   border-radius: 3px;
   color: darkgrey;
   font-size: 0.9em;
   line-height: 1em;
 }
 .flowChartButton {
   box-sizing: border-box;
   border-radius: 2px;
   border: none;
   padding: 10px;
   letter-spacing: .05rem;
   margin-bottom: 1px;
   line-height: 1.2em;
   font-weight: 400;
   width: 100%;
 }
 .flexColumn {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   justify-content: flex-start;
 }
 .inactive .flowChartBox {
   color: lightgrey;
   background: #fafafa;
 }
 .active .flowChartBox {
   /* font-weight: 400; */
   color: #515963;
 }
 .active .flowChartButton {
   color: #e0e6eb;
   background: #3777ab;
   /* color: #030303;
   background: #bdccdb; */
   /* background: #5a82a3; */
   /* cursor: default; */
   cursor: pointer;
   box-shadow:          inset 0 10px 15px rgba(0, 0, 0, 0.2);
    -moz-box-shadow:    inset 0 10px 15px rgba(0, 0, 0, 0.2);
    -webkit-box-shadow: inset 0 10px 15px rgba(0, 0, 0, 0.2);
    animation: buttonActivate 0.5s linear 0s forwards;
    -webkit-animation: buttonActivate 0.5s linear 0s forwards;
    -moz-animation: buttonActivate 0.5s linear 0s forwards;
    -o-animation: buttonActivate 0.5s linear 0s forwards;
 }
 .inactive .flowChartButton {
   color: #33577a;
   box-shadow:         0 1px 1px rgba(0, 0, 0, 0.06), 0 3px 5px rgba(0, 0, 0, 0.3);
   -moz-box-shadow:    0 1px 1px rgba(0, 0, 0, 0.06), 0 3px 5px rgba(0, 0, 0, 0.3);
   -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.06), 0 3px 5px rgba(0, 0, 0, 0.3);
   cursor: pointer;
 }
 .inactive .flowChartButton:hover, .inactive .flowChartButton .unclicked:hover {
   background: #b4c7d6;
 }
 /* The animation code */
 @keyframes highlightButton {
   from {background: rgb(239, 239, 239);}
   to {background: #bdccdb;}
 }
 @-webkit-keyframes highlightButton {
   from {background: rgb(239, 239, 239);}
   to {background: #bdccdb;}
 }
 @-moz-keyframes highlightButton {
   from {background: rgb(239, 239, 239);}
   to {background: #bdccdb;}
 }
 @-o-keyframes highlightButton {
   from {background: rgb(239, 239, 239);}
   to {background: #bdccdb;}
 }
 @keyframes buttonActivate { from {background: white;} to {} }
 @-webkit-keyframes buttonActivate { from {background: white;} to {} }
 @-moz-keyframes buttonActivate { from {background: white;} to {} }
 @-o-keyframes buttonActivate { from {background: white;} to {} }

 .inactive .unclicked {
   animation: highlightButton 2s linear 0s infinite alternate;
 }
 .widgetCostDisplay {
   margin-top:10px;
   display: flex;
   flex-direction: column;
   align-items: center;
   margin-bottom: 15px;
 }
 .widgetUnitCost {
   font-size: 16;
   line-height: 1.8;
   color: #515963;
 }
 .costChange {
   font-size: 20px;
   margin-top: 15px;
   display: flex;
   align-items: center;
   justify-content: center;
   color: #515963;
 }

 .tooltip {
   position: relative;
   display: inline-block;
   width: 100%;
 }

 .tooltip .tooltiptext {
   visibility: hidden;
   width: 110px;
   background-color: #515963;
   color: #fff;
   text-align: center;
   border-radius: 1px;
   padding: 4px;
   position: absolute;
   z-index: 1;
   left: -5px;
   bottom: 110%;
   font-size: 0.9em;
   line-height: 1.2;
   box-shadow:         0 1px 1px rgba(0, 0, 0, 0.06), 0 3px 5px rgba(0, 0, 0, 0.3);
   -moz-box-shadow:    0 1px 1px rgba(0, 0, 0, 0.06), 0 3px 5px rgba(0, 0, 0, 0.3);
   -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.06), 0 3px 5px rgba(0, 0, 0, 0.3);
 }
 .tooltip .visible.tooltiptext {
   visibility: visible !important;
 }
 .tooltip:hover .tooltiptext {
   animation: hideTimer 4s linear 0s forwards;
   -webkit-animation: hideTimer 4s linear 0s forwards;
   -moz-animation: hideTimer 4s linear 0s forwards;
   -o-animation: hideTimer 4s linear 0s forwards;
 }
 @keyframes hideTimer { from {visibility: visible; } to {visibility: hidden; } }
 @-webkit-keyframes hideTimer { from {visibility: visible; } to {visibility: hidden; } }
 @-moz-keyframes hideTimer { from {visibility: visible; } to {visibility: hidden; } }
 @-o-keyframes hideTimer { from {visibility: visible; } to {visibility: hidden; } }


 .tooltip .tooltiptext::after {
   content: " ";
   position: absolute;
   top: 100%; /* At the bottom of the tooltip */
   left: 50%;
   margin-left: -5px;
   border-width: 5px;
   border-style: solid;
   border-color: #515963 transparent transparent transparent;
 }

/* @@keyframes slideUp { from { height: 0; } to { height: auto; } }

}
.slideUp {
   -webkit-transition: slideUp 0.8s ease-in-out;
   -moz-transition: slideUp 0.8s ease-in-out;
   -o-transition: slideUp 0.8s ease-in-out;
   transition: slideUp 0.8s ease-in-out;
} */





 /* arrows */

 .arrow {
   pointer-events: none;
 }
 .arrow__path {
   fill: transparent;
   stroke-width: 1.5px;
 }
 .arrow__head g, .arrow__head path {
   transform: scale(0.7, 0.6);
 }
 .arrow__head line {
   stroke-width: 2.5px;
 }

 .solid .arrow__path, .solid .arrow__head line {
   stroke: darkgrey;
 }
 .solid .arrow__head {
   fill: darkgrey;
 }
 .solidMini .arrow__path, .solid .arrow__head line {
   stroke: lightgrey;
 }
 .solidMini .arrow__head {
   fill: lightgrey;
 }
 .solidMini .arrow__head g, .arrow__head path {
   transform: scale(0.5, 0.4);
 }

 .dashed .arrow__path {
   stroke-dasharray: 4 2;
   stroke: #bec8d1;
 }
 .dashed .arrow__head {
   fill: #bec8d1;
 }
 .dashed .arrow__head line {
   stroke: #bec8d1;
 }



 .bounceInDown {
   -webkit-animation-name: bounceInDown;
   -moz-animation-name: bounceInDown;
   -o-animation-name: bounceInDown;
   animation-name: bounceInDown;
   -webkit-animation-fill-mode: both;
   -moz-animation-fill-mode: both;
   -ms-animation-fill-mode: both;
   -o-animation-fill-mode: both;
   animation-fill-mode: both;
   -webkit-animation-duration: 1s;
   -moz-animation-duration: 1s;
   -ms-animation-duration: 1s;
   -o-animation-duration: 1s;
   animation-duration: 1s;
 }

 @-webkit-keyframes bounceInDown {
   0% {
     opacity: 0;
     -webkit-transform: translateY(-100px);
   }

   60% {
     opacity: 1;
     -webkit-transform: translateY(5px);
     -webkit-transform: scale(1.3);
   }

   100% {
     -webkit-transform: translateY(0);
   }
 }
 @-moz-keyframes bounceInDown {
   0% {
     opacity: 0;
     -moz-transform: translateY(-100px);
   }

   60% {
     opacity: 1;
     -moz-transform: translateY(5px);
     -moz-transform: scale(1.3);
   }

   100% {
     -moz-transform: translateY(0);
   }
 }
 @-o-keyframes bounceInDown {
   0% {
     opacity: 0;
     -o-transform: translateY(-100px);
   }

   60% {
     opacity: 1;
     -o-transform: translateY(5px);
     -o-transform: scale(1.3);
   }

   100% {
     -o-transform: translateY(0);
   }
 }
 @keyframes bounceInDown {
   0% {
     opacity: 0;
     transform: translateY(-100px);
   }

   60% {
     opacity: 1;
     transform: translateY(5px);
     transform: scale(1.3);
   }

   100% {
     transform: translateY(0);
   }
 }




  .easeUp {
    -webkit-animation-name: easeUp;
    -moz-animation-name: easeUp;
    -o-animation-name: easeUp;
    animation-name: easeUp;
    -webkit-animation-fill-mode: both;
    -moz-animation-fill-mode: both;
    -ms-animation-fill-mode: both;
    -o-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-duration: 0.5s;
    -moz-animation-duration: 0.5s;
    -ms-animation-duration: 0.5s;
    -o-animation-duration: 0.5s;
    animation-duration: 0.5s;
    /* -webkit-animation-iteration-count: 1;
    -webkit-animation-timing-function: linear;
    animation-iteration-count: 1;
    animation-timing-function: linear; */
  }

  @-webkit-keyframes easeUp {
    0% {
      opacity: 0;
      -webkit-transform: scaleY(0%);
    }

    60% {
      opacity: 1;
      -webkit-transform: scaleY(90%);
    }

    100% {
      -webkit-transform: scaleY(100%);
    }
  }
  @-moz-keyframes easeUp {
    0% {
      opacity: 0;
      -moz-transform: scaleY(0%);
    }

    60% {
      opacity: 1;
      -moz-transform: scaleY(90%);
    }

    100% {
      -moz-transform: scaleY(100%);
    }
  }
  @-o-keyframes easeUp {
    0% {
      opacity: 0;
      -o-transform: scaleY(0%);
    }

    60% {
      opacity: 1;
      -o-transform: scaleY(90%);
    }

    100% {
      -o-transform: scaleY(100%);
    }
  }
  @keyframes easeUp {
    0% {
      opacity: 0;
      transform: scaleY(1);
    }
    1% { /* for Safari / iOS */
      opacity: 0;
      transform: scaleY(0.001);
    }

    60% {
      opacity: 1;
      transform: scaleY(0.9);
    }

    100% {
      transform: scaleY(1);
    }
  }
