/* Functions & Mixins */
/* ==== Containers & Responsive Mixins ==== */
/* Defines convenience mixins for common breakpoint targets.
these are small, medium, mediumlarge, and large. These variables should be defined prior to use.
*/
/* Universal breakpoints */
.calc-hero {
  padding: 5rem 0 0;
  position: relative;
  overflow-x: hidden;
  padding-bottom: 0.5rem; }
  .calc-hero + section {
    margin-top: 1.5rem; }
    @media (min-width: 768px) {
      .calc-hero + section {
        margin-top: 3rem; } }
    @media (min-width: 1280px) {
      .calc-hero + section.special {
        margin-top: 3.75rem; } }
  .calc-hero::after {
    content: '';
    background-color: #fbc600;
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    height: 0.5rem;
    width: 14.375rem;
    -webkit-animation: from-right 750ms ease-in forwards;
            animation: from-right 750ms ease-in forwards; }
    @media (min-width: 1280px) {
      .calc-hero::after {
        width: calc(50vw - 410px); } }
  @media (min-width: 1280px) {
    .calc-hero {
      padding: 5rem 0 0; } }
  .calc-hero__inner {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    max-width: 100%;
    margin: 0 auto;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    width: 82.5rem;
    padding-top: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin-bottom: 2.5rem; }
    @media (min-width: 768px) {
      .calc-hero__inner {
        padding-left: 2.5rem;
        padding-right: 2.5rem; } }
    @media (min-width: 1280px) {
      .calc-hero__inner {
        padding-left: 5rem;
        padding-right: 5rem; } }
    @media (min-width: 768px) {
      .calc-hero__inner {
        width: 85rem; } }
    @media (min-width: 1280px) {
      .calc-hero__inner {
        width: 90rem; } }
    @media (min-width: 48.0625rem) {
      .calc-hero__inner {
        padding-top: 0; } }
    @media screen and (min-width: 64rem) {
      .calc-hero__inner {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        margin-bottom: 1.25rem; } }
  .calc-hero__copy {
    color: #3b3c43;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: 0;
    width: 100%; }
    @media screen and (min-width: 64rem) {
      .calc-hero__copy {
        width: calc(50% - 60px);
        margin-right: 60px; } }
  .calc-hero__list {
    margin: 0;
    padding: 0;
    list-style-type: none;
    counter-reset: list-counter;
    margin-top: 1.5rem; }
    @media screen and (min-width: 48rem) {
      .calc-hero__list {
        margin-top: 0; } }
    .calc-hero__list-item {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      position: relative;
      counter-increment: list-counter;
      -webkit-box-flex: 1;
          -ms-flex: 1;
              flex: 1; }
      .calc-hero__list-item p {
        margin: 0;
        font-size: 16px;
        font-size: 1rem; }
        @media (min-width: 768px) {
          .calc-hero__list-item p {
            font-size: 18px;
            font-size: 1.125rem; } }
        @media (min-width: 1280px) {
          .calc-hero__list-item p {
            font-size: 20px;
            font-size: 1.25rem; } }
        .calc-hero__list-item p a {
          color: inherit;
          font-weight: 700;
          -webkit-transition: opacity 300ms ease;
          transition: opacity 300ms ease; }
          .calc-hero__list-item p a:hover {
            opacity: 0.75; }
      .calc-hero__list-item::before {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        position: relative;
        content: counter(list-counter);
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        background-color: #fbc600;
        border-radius: 50%;
        width: 2.3125rem;
        height: 2.3125rem;
        max-width: 2.3125rem;
        max-height: 2.3125rem;
        font-size: 25px;
        font-size: 1.5625rem;
        font-weight: bold;
        color: #3b3c43;
        -webkit-box-flex: 1;
            -ms-flex: 1 0 37px;
                flex: 1 0 37px;
        margin-right: 0.75rem;
        padding-top: 0.25rem; }
      .calc-hero__list-item + .calc-hero__list-item {
        padding-top: 1rem; }
  .calc-hero__heading {
    text-transform: uppercase;
    margin: 1.5rem 0 0;
    color: #3b3c43;
    font-weight: 500;
    font-size: 2.6875rem;
    font-weight: bold;
    line-height: 1;
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box; }
    @media (min-width: 768px) {
      .calc-hero__heading {
        margin: 2.5rem 0 0; } }
    @media (min-width: 1280px) {
      .calc-hero__heading {
        margin: 4rem 0 1.5rem;
        font-size: 3.75rem; } }
  .calc-hero__subheading {
    color: #3b3c43;
    font-size: 1rem;
    line-height: 21px;
    margin: 1.5rem 0 0;
    max-width: 550px;
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box; }
    @media (min-width: 480px) {
      .calc-hero__subheading {
        font-size: 1.125rem; } }
    @media (min-width: 768px) {
      .calc-hero__subheading {
        font-size: 1.3125rem;
        line-height: 28px;
        margin-bottom: 2rem; } }
    @media (min-width: 1280px) {
      .calc-hero__subheading {
        font-size: 1.5rem; } }
  .calc-hero__image {
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 100%;
    margin: 0;
    display: none; }
    @media (min-width: 768px) {
      .calc-hero__image {
        margin: 2.5rem 0 0; } }
    @media screen and (min-width: 64rem) {
      .calc-hero__image {
        display: block;
        right: -40px;
        margin: 2.5rem 0 0 -2.5rem;
        width: calc(50% + 80px);
        padding-bottom: 33.5%; } }
    @media (min-width: 1280px) {
      .calc-hero__image {
        margin: 4rem 0 0 -2.5rem; } }
  .calc-hero__button {
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    text-decoration: underline;
    color: inherit;
    font-weight: 700;
    -webkit-transition: opacity 300ms ease;
    transition: opacity 300ms ease; }
    .calc-hero__button:hover {
      opacity: 0.75; }
    .calc-hero__button[disabled], .calc-hero__button:disabled, .calc-hero__button.-disabled {
      cursor: not-allowed;
      opacity: 0.5; }
      .calc-hero__button[disabled]:hover, .calc-hero__button:disabled:hover, .calc-hero__button.-disabled:hover {
        opacity: 0.5; }
      .calc-hero__button[disabled]:focus, .calc-hero__button[disabled]:focus-visible, .calc-hero__button:disabled:focus, .calc-hero__button:disabled:focus-visible, .calc-hero__button.-disabled:focus, .calc-hero__button.-disabled:focus-visible {
        outline: none; }

@-webkit-keyframes moveInLeft {
  0% {
    opacity: 0;
    transform: translateX(-40rem);
    -webkit-transform: translateX(-40rem);
    -ms-transform: translateX(-40rem);
    -o-transform: translateX(-40rem); }
  100% {
    opacity: 1;
    transform: translateX(0);
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    -o-transform: translateX(0); } }

@keyframes moveInLeft {
  0% {
    opacity: 0;
    transform: translateX(-40rem);
    -webkit-transform: translateX(-40rem);
    -ms-transform: translateX(-40rem);
    -o-transform: translateX(-40rem); }
  100% {
    opacity: 1;
    transform: translateX(0);
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    -o-transform: translateX(0); } }
