/**
 * Mixin to clamp multiple lines of text using a fadeout and ellipsis.
 *
 * This approach works in a container of variable height with one caveat:
 * if the actual number of lines of text equals $max-lines, then the ellipsis always shows.
 */
/**
 * A second mixin to clamp multiple lines of text using a fadeout and ellipsis.
 * This approach requires that the containing element have a static height equal to
 * $max-lines * $line-height. The ellipsis only shows when appropriate.
 * http://dev.mobify.com/blog/multiline-ellipsis-in-pure-css/.
 */
/**
 * Mixin to clamp multiple lines of text using a fadeout and ellipsis.
 *
 * This approach works in a container of variable height with one caveat:
 * if the actual number of lines of text equals $max-lines, then the ellipsis always shows.
 */
/**
 * A second mixin to clamp multiple lines of text using a fadeout and ellipsis.
 * This approach requires that the containing element have a static height equal to
 * $max-lines * $line-height. The ellipsis only shows when appropriate.
 * http://dev.mobify.com/blog/multiline-ellipsis-in-pure-css/.
 */
.SectionHeader {
  margin: 76px 0 55px;
  text-align: center; }
  .theme-short .SectionHeader {
    margin-top: 24px; }
  .SectionHeader.theme-align-left {
    text-align: left; }
  .SectionHeader.small-snippet {
    margin-top: 32px; }
  .SectionHeader.theme-smaller {
    margin-top: 40px;
    margin-bottom: 28px; }
  .SectionHeader.theme-center {
    text-align: center; }
  @media only screen and (max-width: 767px) {
    .SectionHeader.theme-mobile-reduced-spacing {
      margin-top: 20px; } }
  .SectionHeader-headline, .SectionHeader-copy {
    display: block;
    max-width: 518px;
    margin: 0 auto; }
  .theme-smaller .SectionHeader-copy {
    color: #8d9494; }
  .theme-smaller .SectionHeader-headline {
    font-size: 32px; }
  .theme-no-max-width .SectionHeader-headline {
    max-width: none; }
  .SectionHeader-small-snippet-description {
    display: block;
    max-width: 518px;
    margin: 12px auto; }
  .SectionHeader-input {
    width: 100%; }

.OtherServices {
  display: block;
  border-top: 1px solid #e1e3e3; }
  .OtherServices.theme-no-borders {
    border-top: 0; }
  .OtherServices.theme-bigger {
    text-align: center; }
  @media only screen and (max-width: 767px) {
    .OtherServices-list {
      text-align: center; } }
  @media only screen and (min-width: 768px) {
    .OtherServices-list {
      -webkit-column-count: 2;
              column-count: 2; } }
  .OtherServices-list-item {
    margin-bottom: 8px; }
    .OtherServices-list-item.theme-bigger {
      margin-bottom: 28px; }

.theme-redesign {
  border-top: none;
  background-color: #f7fafb;
  padding: 20px 0; }
  @media (min-width: 482px) {
    .theme-redesign {
      padding: 32px 0; } }
  .theme-redesign .section-header {
    padding-bottom: 16px;
    font-weight: 600; }
  .theme-redesign .other-services__list {
    text-align: left; }
    @media (min-width: 482px) {
      .theme-redesign .other-services__list {
        -webkit-column-count: 3;
                column-count: 3; } }
    @media (max-width: 481px) {
      .theme-redesign .other-services__list {
        -webkit-column-count: 2;
                column-count: 2; } }
  .theme-redesign .other-services__item {
    margin-bottom: 0;
    font-size: 12px; }

/**
 * Mixin to clamp multiple lines of text using a fadeout and ellipsis.
 *
 * This approach works in a container of variable height with one caveat:
 * if the actual number of lines of text equals $max-lines, then the ellipsis always shows.
 */
/**
 * A second mixin to clamp multiple lines of text using a fadeout and ellipsis.
 * This approach requires that the containing element have a static height equal to
 * $max-lines * $line-height. The ellipsis only shows when appropriate.
 * http://dev.mobify.com/blog/multiline-ellipsis-in-pure-css/.
 */
.pro-card {
  -webkit-box-shadow: inset 0 1px 0 0 #e6f0f2, 0 1px 3px 0 rgba(0, 0, 0, 0.15);
          box-shadow: inset 0 1px 0 0 #e6f0f2, 0 1px 3px 0 rgba(0, 0, 0, 0.15);
  border-radius: 4px;
  margin-bottom: 24px;
  position: relative; }
  @media (max-width: 700px) {
    .pro-card .pro-card__name {
      white-space: normal; } }
  .pro-card__section {
    border-top: solid 1px #f7fafb;
    padding: 24px 24px 20px; }
    .pro-card__section--no-border {
      border-top: none;
      padding-top: 0; }
    @media (min-width: 701px) {
      .pro-card__section--reviews {
        min-height: 148px; } }
    .pro-card__section__title {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
      margin-bottom: 12px; }
  .pro-card__text {
    line-height: 20px;
    word-wrap: break-word;
    cursor: pointer; }
    .pro-card__text--truncated {
      overflow: hidden;
      position: relative;
      height: 60px;
      line-height: 20px; }
      .pro-card__text--truncated:before {
        content: "";
        float: left;
        width: 5px;
        height: 60px; }
      .pro-card__text--truncated > *:first-child {
        float: right;
        width: 100%;
        margin-left: -5px; }
      .pro-card__text--truncated:after {
        content: "(show more)";
        color: #3f93f3;
        -webkit-box-sizing: content-box;
                box-sizing: content-box;
        float: right;
        position: relative;
        top: -20px;
        left: 100%;
        width: 8em;
        margin-left: -8em;
        padding-right: 5px;
        text-align: right;
        background-size: 100% 100%;
        background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), color-stop(20%, white));
        background: linear-gradient(to right, rgba(255, 255, 255, 0), white 20%); }
  .pro-card__top {
    padding: 32px 24px 24px;
    position: relative; }
    @media (min-width: 701px) {
      .pro-card__top {
        min-height: 292px; } }
  .pro-card__top-pro {
    position: absolute;
    top: 0;
    left: 20px;
    height: 20px;
    width: 72px;
    border-radius: 0 0 4px 4px;
    background-color: #f27802;
    text-align: center;
    font-size: 10px;
    line-height: 16px;
    font-weight: 600;
    color: #ffffff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
  .pro-card__avatar {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    @media (min-width: 701px) {
      .pro-card__avatar {
        margin-bottom: 12px; } }
    .pro-card__avatar__img {
      border-radius: 50%;
      border: 0px;
      -webkit-box-shadow: none;
              box-shadow: none;
      height: 42px;
      width: 42px; }
      @media (min-width: 482px) {
        .pro-card__avatar__img {
          border: 2px solid #ffffff;
          -webkit-box-shadow: inset 0 1px 0 0 #e6f0f2, 0 1px 3px 0 rgba(0, 0, 0, 0.15);
                  box-shadow: inset 0 1px 0 0 #e6f0f2, 0 1px 3px 0 rgba(0, 0, 0, 0.15);
          height: 60px;
          width: 60px; } }
  .pro-card__profile {
    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; }
    @media (max-width: 700px) {
      .pro-card__profile {
        -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; } }
  .pro-card__id {
    width: 100%; }
    @media (max-width: 700px) {
      .pro-card__id {
        margin-left: 8px;
        width: initial;
        overflow: hidden; } }
  .pro-card__name {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    width: 100%; }
  .pro-card__review-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    margin-top: 4px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
  .pro-card__reviews {
    margin-left: 8px; }
  .pro-card__grade {
    color: #ff9f02;
    margin-right: 4px; }
  .pro-card__stats {
    margin-top: 12px; }
    .pro-card__stats__item {
      margin: 8px 0; }
      .pro-card__stats__item:last-child {
        margin-bottom: 0; }

/**
 * Mixin to clamp multiple lines of text using a fadeout and ellipsis.
 *
 * This approach works in a container of variable height with one caveat:
 * if the actual number of lines of text equals $max-lines, then the ellipsis always shows.
 */
/**
 * A second mixin to clamp multiple lines of text using a fadeout and ellipsis.
 * This approach requires that the containing element have a static height equal to
 * $max-lines * $line-height. The ellipsis only shows when appropriate.
 * http://dev.mobify.com/blog/multiline-ellipsis-in-pure-css/.
 */
.Pricing {
  background: white;
  border: 1px solid #edeeee;
  border-radius: 4px; }
  @media only screen and (max-width: 479px) {
    .Pricing.theme-bleedAtXs {
      border-radius: 0;
      border-left: 0;
      border-right: 0; } }
  .Pricing-inputLabel {
    display: block;
    margin: 8px 0 4px 0;
    border: 0; }
  .Pricing-categorySelect .Select-button {
    border: 0; }
  .Pricing-categorySelect select {
    border: 0;
    color: #3f93f3; }
    .Pricing-categorySelect select:hover {
      border: 0;
      -webkit-box-shadow: none;
              box-shadow: none;
      color: #3f93f3; }
  .Pricing-categorySelect .Select-label {
    font-family: AvenirNext-Medium, AvenirNext-Regular, Arial, sans-serif;
    color: #3f93f3; }
  .Pricing-categorySelect .Select-one-label {
    font-family: AvenirNext-Medium, AvenirNext-Regular, Arial, sans-serif;
    color: #4e4d4d;
    cursor: default; }
  .Pricing-categorySelect .Select-caret {
    fill: #3f93f3; }
  .Pricing-estimation {
    text-align: center;
    position: relative; }
    .Pricing-estimation-details {
      margin-bottom: 12px; }
    .Pricing-estimation.is-loading {
      opacity: 0.5; }
  .Pricing-questions {
    padding: 10px 20px; }
  .Pricing-error {
    color: #ff4847; }
  .Pricing-tryAgain {
    color: #3f93f3;
    cursor: pointer; }
  .Pricing-getQuotes {
    text-align: center;
    padding-bottom: 24px; }
  .Pricing-loadingOverlay {
    display: none;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1; }
    .Pricing-loadingOverlay svg-icon {
      margin-top: -34px; }
      .Pricing-loadingOverlay svg-icon svg {
        fill: transparent;
        stroke: #4e4d4d; }
    .is-loading .Pricing-loadingOverlay {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; }
  .Pricing .ZipcodeMap-map {
    background-color: #fafafa; }
  .Pricing .ZipcodeMap-zipcode {
    padding: 0 20px;
    border: 1px solid #edeeee;
    border-width: 0 0 1px; }

/**
 * Mixin to clamp multiple lines of text using a fadeout and ellipsis.
 *
 * This approach works in a container of variable height with one caveat:
 * if the actual number of lines of text equals $max-lines, then the ellipsis always shows.
 */
/**
 * A second mixin to clamp multiple lines of text using a fadeout and ellipsis.
 * This approach requires that the containing element have a static height equal to
 * $max-lines * $line-height. The ellipsis only shows when appropriate.
 * http://dev.mobify.com/blog/multiline-ellipsis-in-pure-css/.
 */
/**
 * Mixin to clamp multiple lines of text using a fadeout and ellipsis.
 *
 * This approach works in a container of variable height with one caveat:
 * if the actual number of lines of text equals $max-lines, then the ellipsis always shows.
 */
/**
 * A second mixin to clamp multiple lines of text using a fadeout and ellipsis.
 * This approach requires that the containing element have a static height equal to
 * $max-lines * $line-height. The ellipsis only shows when appropriate.
 * http://dev.mobify.com/blog/multiline-ellipsis-in-pure-css/.
 */
.SectionHeader {
  margin: 76px 0 55px;
  text-align: center; }
  .theme-short .SectionHeader {
    margin-top: 24px; }
  .SectionHeader.theme-align-left {
    text-align: left; }
  .SectionHeader.small-snippet {
    margin-top: 32px; }
  .SectionHeader.theme-smaller {
    margin-top: 40px;
    margin-bottom: 28px; }
  .SectionHeader.theme-center {
    text-align: center; }
  @media only screen and (max-width: 767px) {
    .SectionHeader.theme-mobile-reduced-spacing {
      margin-top: 20px; } }
  .SectionHeader-headline, .SectionHeader-copy {
    display: block;
    max-width: 518px;
    margin: 0 auto; }
  .theme-smaller .SectionHeader-copy {
    color: #8d9494; }
  .theme-smaller .SectionHeader-headline {
    font-size: 32px; }
  .theme-no-max-width .SectionHeader-headline {
    max-width: none; }
  .SectionHeader-small-snippet-description {
    display: block;
    max-width: 518px;
    margin: 12px auto; }
  .SectionHeader-input {
    width: 100%; }

.RecentRequests {
  display: block;
  background-color: #fafafa; }
  .RecentRequests.theme-transparent {
    background-color: transparent; }
  .RecentRequests-request {
    padding: 36px 32px 32px;
    margin-bottom: 40px;
    background: white;
    border: 1px solid #edeeee;
    border-radius: 4px;
    text-align: center; }
    .RecentRequests-request-title {
      margin-bottom: 6px; }
    .RecentRequests-request-location {
      margin-bottom: 32px; }
    .RecentRequests-request-propertyKey {
      text-align: left; }
    .RecentRequests-request-propertyValue {
      margin-bottom: 20px;
      text-align: left;
      color: #4e4d4d; }
    .RecentRequests-request-price {
      margin-bottom: 2px; }
    .RecentRequests-request-priceTitle {
      margin-bottom: 22px; }
  .RecentRequests-cta {
    display: block;
    padding: 12px 0px 8px; }

.how-tt-works {
  background: #f7fafb; }
  .how-tt-works.theme-cost-page {
    background: #ffffff; }
  .how-tt-works.experimental-instant-results-ui {
    background: transparent; }
  .how-tt-works__title {
    padding-top: 48px;
    text-align: center; }
    .how-tt-works__title.theme-how-to {
      padding-top: 32px; }
  .how-tt-works__step {
    padding: 24px 0;
    margin: 0 auto;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    text-align: center; }
    @media (max-width: 481px) {
      .how-tt-works__step {
        max-width: 200px; } }
  .how-tt-works__explanation {
    padding: 0 12px; }
  .how-tt-works__circle {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 68px;
    height: 68px;
    border-radius: 50%;
    background: #f27802;
    text-align: center;
    margin: 0 auto 16px auto;
    padding-top: 16px; }
    .how-tt-works__circle.theme-cost-page {
      background: #62cca7; }
  .how-tt-works.theme-new-home-page {
    background: #ffffff; }
  .how-tt-works.theme-explore {
    background: #ffffff;
    padding-top: 40px;
    padding-bottom: 72px; }
  .how-tt-works.theme-how-to {
    background: #ffffff; }
  .how-tt-works.theme-near-me-page {
    padding-bottom: 40px; }
  @media (max-width: 481px) {
    .how-tt-works.theme-cost-page, .how-tt-works.theme-reduced {
      padding-bottom: 24px; } }
  .how-tt-works.theme-cost-page .how-tt-works__step, .how-tt-works.theme-reduced .how-tt-works__step {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    text-align: left;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start; }
    @media (max-width: 481px) {
      .how-tt-works.theme-cost-page .how-tt-works__step, .how-tt-works.theme-reduced .how-tt-works__step {
        padding-bottom: 0;
        max-width: 100%; } }
    .how-tt-works.theme-cost-page .how-tt-works__step.experimental-instant-results-ui, .how-tt-works.theme-reduced .how-tt-works__step.experimental-instant-results-ui {
      padding-top: 16px;
      padding-bottom: 0; }
  .how-tt-works.theme-cost-page .how-tt-works__circle, .how-tt-works.theme-reduced .how-tt-works__circle {
    width: 36px;
    height: 36px;
    display: block;
    padding-top: 0; }
  .how-tt-works.theme-cost-page .how-tt-works__icon svg, .how-tt-works.theme-reduced .how-tt-works__icon svg {
    margin-top: 10px;
    fill: #ffffff; }
  .how-tt-works.theme-cost-page .how-tt-works__explanation, .how-tt-works.theme-reduced .how-tt-works__explanation {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1; }

/**
 * Mixin to clamp multiple lines of text using a fadeout and ellipsis.
 *
 * This approach works in a container of variable height with one caveat:
 * if the actual number of lines of text equals $max-lines, then the ellipsis always shows.
 */
/**
 * A second mixin to clamp multiple lines of text using a fadeout and ellipsis.
 * This approach requires that the containing element have a static height equal to
 * $max-lines * $line-height. The ellipsis only shows when appropriate.
 * http://dev.mobify.com/blog/multiline-ellipsis-in-pure-css/.
 */
.hire-skilled-pros {
  padding: 30px;
  border-top: solid 1px #e1e3e3; }
  .hire-skilled-pros__text {
    text-align: center; }
  .hire-skilled-pros__everything {
    font-family: AvenirNext-Demi, AvenirNext-Regular, Arial, sans-serif; }

/**
 * Mixin to clamp multiple lines of text using a fadeout and ellipsis.
 *
 * This approach works in a container of variable height with one caveat:
 * if the actual number of lines of text equals $max-lines, then the ellipsis always shows.
 */
/**
 * A second mixin to clamp multiple lines of text using a fadeout and ellipsis.
 * This approach requires that the containing element have a static height equal to
 * $max-lines * $line-height. The ellipsis only shows when appropriate.
 * http://dev.mobify.com/blog/multiline-ellipsis-in-pure-css/.
 */
.SeoPageHero {
  width: 100%;
  height: 100vh;
  min-height: 160px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  @media only screen and (min-width: 768px) {
    .SeoPageHero {
      min-height: 480px; } }
  @media only screen and (max-width: 1023px) {
    .SeoPageHero {
      background-color: rgba(49, 47, 47, 0.9); } }
  @media only screen and (max-width: 1023px) {
    .SeoPageHero.theme-fade-variant {
      background: transparent; } }
  .SeoPageHero-content {
    width: 100%;
    padding-bottom: 10vh; }
    @media only screen and (min-width: 1024px) {
      .SeoPageHero-content {
        padding-bottom: 5vh; } }
  .SeoPageHero-title {
    text-align: center;
    padding-bottom: 24px; }
    @media only screen and (min-width: 768px) {
      .SeoPageHero-title {
        padding-bottom: 40px; } }
    .SeoPageHero-title-keyword {
      font-family: AvenirNext-Demi, AvenirNext-Regular, Arial, sans-serif;
      display: block; }
      .SeoPageHero-title-keyword.theme-inverted {
        color: rgba(255, 255, 255, 0.75); }
    .SeoPageHero-title-location {
      display: block; }
  .SeoPageHero-keyword {
    font-family: AvenirNext-Demi, AvenirNext-Regular, Arial, sans-serif;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
    padding-bottom: 8px; }
  .SeoPageHero-geo {
    color: rgba(255, 255, 255, 0.75);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); }
  .SeoPageHero-error {
    margin-top: 8px;
    text-align: center;
    color: #ff4847; }
  .SeoPageHero-zip {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
    @media only screen and (max-width: 767px) {
      .SeoPageHero-zip {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column; } }
    .SeoPageHero-zip-input {
      text-align: center; }
      @media only screen and (max-width: 767px) {
        .SeoPageHero-zip-input.theme-vertical-border-fix.theme-horizontal-border-fix {
          border-radius: 4px 4px 0 0;
          border-bottom: none; } }
      @media only screen and (min-width: 768px) {
        .SeoPageHero-zip-input.theme-vertical-border-fix.theme-horizontal-border-fix {
          text-align: left;
          border-radius: 4px 0 0 4px;
          border: 1px solid #e1e3e3;
          min-width: 176px;
          border-right: 1px solid white; } }
    .SeoPageHero-zip-button {
      border-radius: 0 0 4px 4px;
      width: 100%;
      padding: 14px 0;
      height: 48px; }
      @media only screen and (min-width: 768px) {
        .SeoPageHero-zip-button {
          border-radius: 0 4px 4px 0;
          border: 1px 0 1px 1px solid #e1e3e3;
          padding: 0 16px;
          width: 96px; } }
      .SeoPageHero-zip-button-label {
        display: inherit; }
      .SeoPageHero-zip-button.theme-loading-rf > .SeoPageHero-zip-button-label {
        display: none; }
      .SeoPageHero-zip-button.theme-loaded-rf > .SeoPageHero-zip-button-label {
        display: inherit; }
      .SeoPageHero-zip-button-loader {
        display: none; }
      .SeoPageHero-zip-button.theme-loading-rf > .SeoPageHero-zip-button-loader {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex; }
      .SeoPageHero-zip-button.theme-loaded-rf > .SeoPageHero-zip-button-loader {
        display: none; }
  .SeoPageHero-card {
    padding: 28px 24px;
    text-align: center;
    background-color: white; }
    @media only screen and (min-width: 1024px) {
      .SeoPageHero-card {
        background-color: rgba(255, 255, 255, 0.9); } }
    @media only screen and (min-width: 768px) {
      .SeoPageHero-card {
        margin: 0 auto;
        max-width: 456px;
        padding: 52px 48px; } }
    @media only screen and (max-width: 479px) {
      .SeoPageHero-card {
        margin: 0 20px; } }
    .SeoPageHero-card-question {
      padding-bottom: 24px; }
    .SeoPageHero-card-introCopy {
      margin-top: 16px;
      color: #8d9494; }
      @media only screen and (min-width: 480px) {
        .SeoPageHero-card-introCopy {
          margin-top: 24px; } }
    .SeoPageHero-card-submitSection {
      position: absolute;
      height: 60px;
      width: 100%;
      bottom: 0;
      left: 0; }
      @media only screen and (min-width: 1024px) {
        .SeoPageHero-card-submitSection {
          height: 80px; } }
    .SeoPageHero-card-submitButton {
      border-radius: 0;
      height: 100%; }
  .SeoPageHero-explanation {
    padding: 24px 0;
    text-align: center; }

.SeoPageHeroNoImage {
  width: 100%;
  height: calc(100vh - 60px);
  min-height: 160px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  background: #ffffff; }
  @media only screen and (min-width: 1024px) {
    .SeoPageHeroNoImage {
      min-height: 480px; } }
  @media only screen and (max-width: 767px) {
    .SeoPageHeroNoImage-title {
      font-size: 24px; } }
  .SeoPageHeroNoImage-error {
    margin-top: 8px;
    text-align: center;
    color: #ff4847; }
  .SeoPageHeroNoImage-location {
    padding-bottom: 4px; }
    @media only screen and (min-width: 768px) {
      .SeoPageHeroNoImage-location {
        padding-bottom: 12px; } }
  .SeoPageHeroNoImage-zipContainer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-top: 20px; }
    .SeoPageHeroNoImage-zipContainer.theme-split-screen-experimental {
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
  .SeoPageHeroNoImage-zip {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    max-width: 280px; }
    @media only screen and (max-width: 767px) {
      .SeoPageHeroNoImage-zip {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        width: 100%; } }
    @media only screen and (max-width: 767px) {
      .SeoPageHeroNoImage-zip {
        max-width: none; } }
    .SeoPageHeroNoImage-zip-input {
      text-align: center; }
      @media only screen and (max-width: 767px) {
        .SeoPageHeroNoImage-zip-input.theme-vertical-border-fix.theme-horizontal-border-fix {
          border-radius: 4px 4px 0 0;
          border-bottom: none; } }
      @media only screen and (min-width: 768px) {
        .SeoPageHeroNoImage-zip-input.theme-vertical-border-fix.theme-horizontal-border-fix {
          text-align: left;
          border-radius: 4px 0 0 4px;
          border: 1px solid #e1e3e3;
          min-width: 176px;
          border-right: 1px solid white; } }
    .SeoPageHeroNoImage-zip-button {
      border-radius: 0 0 4px 4px;
      width: 100%;
      padding: 14px 0;
      height: 48px; }
      @media only screen and (min-width: 768px) {
        .SeoPageHeroNoImage-zip-button {
          border-radius: 0 4px 4px 0;
          border: 1px 0 1px 1px solid #e1e3e3;
          padding: 0 16px;
          width: 96px; } }
      .SeoPageHeroNoImage-zip-button-label {
        display: inherit; }
      .SeoPageHeroNoImage-zip-button.theme-loading-rf > .SeoPageHeroNoImage-zip-button-label {
        display: none; }
      .SeoPageHeroNoImage-zip-button.theme-loaded-rf > .SeoPageHeroNoImage-zip-button-label {
        display: inherit; }
      .SeoPageHeroNoImage-zip-button-loader {
        display: none; }
      .SeoPageHeroNoImage-zip-button.theme-loading-rf > .SeoPageHeroNoImage-zip-button-loader {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex; }
      .SeoPageHeroNoImage-zip-button.theme-loaded-rf > .SeoPageHeroNoImage-zip-button-loader {
        display: none; }
  .SeoPageHeroNoImage-card {
    padding: 28px 24px;
    text-align: center;
    background-color: #ffffff;
    -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.2);
            box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.2);
    margin: 24px 20px; }
    @media only screen and (min-width: 480px) {
      .SeoPageHeroNoImage-card {
        margin: 32px auto;
        max-width: 456px;
        padding: 52px 48px; } }
    .SeoPageHeroNoImage-card-question {
      padding-bottom: 24px; }
    .SeoPageHeroNoImage-card-introCopy {
      margin-top: 16px;
      color: #8d9494; }
      @media only screen and (min-width: 480px) {
        .SeoPageHeroNoImage-card-introCopy {
          margin-top: 24px; } }
    .SeoPageHeroNoImage-card-submitSection {
      position: absolute;
      height: 60px;
      width: 100%;
      bottom: 0;
      left: 0; }
      @media only screen and (min-width: 1024px) {
        .SeoPageHeroNoImage-card-submitSection {
          height: 80px; } }
    .SeoPageHeroNoImage-card-submitButton {
      border-radius: 0;
      height: 100%; }

/**
 * Mixin to clamp multiple lines of text using a fadeout and ellipsis.
 *
 * This approach works in a container of variable height with one caveat:
 * if the actual number of lines of text equals $max-lines, then the ellipsis always shows.
 */
/**
 * A second mixin to clamp multiple lines of text using a fadeout and ellipsis.
 * This approach requires that the containing element have a static height equal to
 * $max-lines * $line-height. The ellipsis only shows when appropriate.
 * http://dev.mobify.com/blog/multiline-ellipsis-in-pure-css/.
 */
.BelowHeader1Container {
  background-color: white;
  border-bottom: solid 1px #e1e3e3; }
  .BelowHeader1Container[data-is-visible='false'] {
    display: none; }

.BelowHeader2Container {
  background-color: white;
  border-bottom: solid 1px #e1e3e3;
  border-top: solid 1px #e1e3e3; }
  .BelowHeader2Container[data-is-visible='false'] {
    display: none; }

.InstallNativeAppHeader {
  background-color: #f27802;
  position: relative;
  height: 60px;
  width: 100%; }
  .InstallNativeAppHeader-title {
    position: absolute;
    color: white;
    line-height: 60px;
    left: 28px; }
  .InstallNativeAppHeader-iconWrapper {
    position: absolute;
    right: 48px;
    top: 13px; }
    .InstallNativeAppHeader-iconWrapper > a > img {
      width: 115px; }
  .InstallNativeAppHeader-closeButtonWrapper {
    position: absolute;
    right: 16px;
    top: 18px;
    cursor: pointer; }
    .InstallNativeAppHeader-closeButtonWrapper svg {
      fill: white; }
  .InstallNativeAppHeader[data-is-visible='false'] {
    display: none; }
  @media only screen and (min-width: 768px) {
    .InstallNativeAppHeader {
      display: none; } }

@media only screen and (min-width: 768px) {
  .InstallNativeAppBelowHeader1Desktop {
    height: 60px;
    width: 100%;
    position: relative; }
    .InstallNativeAppBelowHeader1Desktop-title {
      position: absolute;
      color: #4e4d4d;
      line-height: 60px;
      left: 0; }
    .InstallNativeAppBelowHeader1Desktop-iconWrapper {
      position: absolute;
      right: 40px;
      top: 13px; }
      .InstallNativeAppBelowHeader1Desktop-iconWrapper > a > img {
        width: 115px;
        height: 34px; }
    .InstallNativeAppBelowHeader1Desktop-closeButtonWrapper {
      position: absolute;
      right: 0;
      top: 18px;
      cursor: pointer; }
      .InstallNativeAppBelowHeader1Desktop-closeButtonWrapper svg {
        fill: #bdc4c4; } }

@media only screen and (max-width: 767px) {
  .InstallNativeAppBelowHeader1Desktop {
    display: none; } }

@media only screen and (max-width: 767px) {
  .InstallNativeAppBelowHeader1Mobile {
    height: 96px;
    width: 100%;
    background-color: white;
    line-height: 60px;
    position: relative; }
    .InstallNativeAppBelowHeader1Mobile-title {
      padding-top: 16px;
      padding-bottom: 8px;
      color: #4e4d4d;
      text-align: center; }
    .InstallNativeAppBelowHeader1Mobile-iconWrapper {
      text-align: center; }
      .InstallNativeAppBelowHeader1Mobile-iconWrapper-icon > img {
        display: inline-block;
        width: 119px; }
    .InstallNativeAppBelowHeader1Mobile-closeButtonWrapper {
      position: absolute;
      right: 8px;
      top: 36px;
      cursor: pointer; }
      .InstallNativeAppBelowHeader1Mobile-closeButtonWrapper svg {
        fill: #bdc4c4; } }

@media only screen and (min-width: 768px) {
  .InstallNativeAppBelowHeader1Mobile {
    display: none; } }

@media only screen and (min-width: 768px) {
  .InstallNativeAppBelowHeader2Desktop {
    height: 85px;
    width: 100%;
    position: relative; }
    .InstallNativeAppBelowHeader2Desktop-title {
      position: absolute;
      top: 26px; }
    .InstallNativeAppBelowHeader2Desktop-iconWrapper {
      position: absolute;
      right: 0;
      top: 25px; }
      .InstallNativeAppBelowHeader2Desktop-iconWrapper > a > img {
        width: 115px;
        height: 34px; } }

@media only screen and (max-width: 767px) {
  .InstallNativeAppBelowHeader2Desktop {
    display: none; } }

@media only screen and (max-width: 767px) {
  .InstallNativeAppBelowHeader2Mobile {
    height: 96px;
    width: 100%; }
    .InstallNativeAppBelowHeader2Mobile-titleWrapper {
      margin-top: 24px;
      margin-bottom: 8px;
      text-align: center; }
      .InstallNativeAppBelowHeader2Mobile-titleWrapper-text {
        vertical-align: top; }
    .InstallNativeAppBelowHeader2Mobile-iconWrapper {
      text-align: center; }
      .InstallNativeAppBelowHeader2Mobile-iconWrapper > a > img {
        width: 119px;
        display: inline-block; } }

@media only screen and (min-width: 768px) {
  .InstallNativeAppBelowHeader2Mobile {
    display: none; } }

.CostCalculator-titleSeparator {
  border-top: 1px solid #e1e3e3;
  margin-bottom: 40px; }
