﻿html, body {
    font-family: 'Poppins', sans-serif;
    font-size: 15px;
    line-height: 100%;
    color: #405e7c;
    min-width: 320px;
}

#tcpa_ewc_disclosure label {
    font-weight: 100;
}

a, a:link, a:visited, a:hover, a:active {
    text-decoration: none;
    outline: none;
    transition: color ease .3s, border-color ease .3s;
    -webkit-transition: color ease .3s, border-color ease .3s;
}

    a.progressive-link {
        color: #2480fe;
    }

        a.progressive-link:hover {
            color: #0165ee;
        }

p {
    margin: 0px;
}

h1 {
    font-size: 20px;
    font-weight: 700;
    margin-top: 36px;
    margin-bottom: 0px;
    padding: 0px;
    line-height: 150%;
}

/**************************************************
    Utilities
**************************************************/
.hidden {
    display: none;
}

.visible {
    display: block;
}

/* Bootstrap Default - Extra Small devices (phone, 767px and below) */
/**************************************************
    Header / Hero
**************************************************/
header {
    height: 234px;
    width: 100%;
    padding-top: 8px;
    background-repeat: no-repeat;
    background-size: 762px;
    background-position: right;
}

    div.term-landing {
        margin-top: 66px;
        padding: 0px;
        color: #405e7c;
    }

    header.permanent-landing {
        background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.05)), url('/Content/images/hero-permanent.jpg');
    }
    header.term-landing {
        background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.05)), url('/Content/images/hero-term.jpg');
    }

    header.final-expense-landing {
        background-image: url('/Content/images/hero-final-expense.jpg');
    }

    header.efin-final-expense-landing {
        background-color: #64a523;
    }

    header.efin-permanent-landing {
        background-color: #64a523;
    }

    header.thank-you,
    header.error {
        height: 44px;
        background: white;
        border-bottom: 1px solid #f1f6f9;
    }

.progressive-logo-container {
    margin-left: 20px;
}

.progressive-logo {
    width: 200px;
    height: 25px;
}

.logo-container {
    margin-left: 20px;
}

.logo {
    width: 200px;
    height: 25px;
}

.phone-container {
    margin-right: 20px;
}

    .phone-container a {
        color: white;
    }

header.thank-you .phone-desktop,
header.error .phone-desktop {
    color: #555;
}

.phone-desktop {
    display: block;
    font-weight: 600;
}

.phone-icon {
    height: 16px;
    position: relative;
    top: -1px;
    margin-right: 8px;
}

.phone-mobile,
.phone-mobile:hover {
    margin-top: 7px;
    font-size: 12px;
    font-weight: 700;
}

header.thank-you .phone-mobile,
header.error .phone-mobile {
    color: #2480fe;
}

.hero-message-container {
    margin-top: 66px;
    padding: 0px;
    color: white;
}

.page-title {
    font-weight: 600;
    text-transform: uppercase;
    font-size: 12px;
}

.hero-message {
    line-height: 1.25;
    margin-top: 10px;
    font-size: 22px;
    font-weight: 600;
}

/**************************************************
    Landing Page Form
**************************************************/
.form-container {
    width: 100%;
    background: white;
    padding: 42px 30px 56px;
}

.landing-page-form {
    margin: 0 auto;
    font-size: 12px;
}

    .landing-page-form .form-control,
    .landing-page-form .control-label {
        font-size: 12px;
    }

.form-group {
    margin-bottom: 36px;
}

label {
    margin: 0;
}

.label-color-dark {
    color: #4B4F54;
}

.label-color-light {
    color: #727272;
}

.radio-group-label {
    margin-bottom: 20px;
}

.form-horizontal .control-label.multi-line-label {
    line-height: 1.5;
    padding-top: 0px;
}

.form-horizontal .control-label {
    text-align: left;
    font-weight: 600;
}

.form-control {
    height: 42px;
    color: #555555;
    font-weight: 600;
    padding-top: 9px;
    padding-left: 12px;
    margin-top: 12px;
    border-radius: 4px;
    border: 1px solid #c6c6c6;
    box-shadow: none;
    outline: none;
    -webkit-appearance: none;
}

    .form-control:hover {
        border-color: #999999;
    }

    .form-control:focus {
        border-color: #2480fe;
        box-shadow: none;
        outline: none;
        -webkit-appearance: none;
    }
/* Special Inputs */
.calendar {
    background-image: url('/Content/images/calendar.svg');
    background-size: 22px 22px;
    background-position: 95%;
    background-repeat: no-repeat;
    padding-right: 40px;
}

.height-feet {
    padding-right: 0px;
}

    .height-feet .form-control {
        border-top-right-radius: 0px;
        border-bottom-right-radius: 0px;
    }

        .height-feet .form-control.remove-right-border {
            border-right-width: 0px;
        }

.height-inches {
    padding-left: 0px;
}

    .height-inches .form-control {
        border-left-width: 0px;
        border-top-left-radius: 0px;
        border-bottom-left-radius: 0px;
    }

        .height-inches .form-control.add-left-border {
            width: 83.33px;
            left: 63px;
            border-left-width: 2px;
        }

    .height-feet .form-control,
    .height-inches .form-control,
    .weight .form-control {
        position: relative;
        z-index: 1000;
        background: none;
    }
/* Pseudo-Element "Masks" */
.static-mask {
    font-size: 12px;
    font-weight: 400;
    color: #555555;
    position: absolute;
    top: 27px;
    opacity: 0.7;
}

.height-feet .static-mask {
    right: 20px;
}

.height-inches .static-mask {
    right: 30px;
}

.weight .static-mask {
    right: 25px;
}

.height-feet.has-value .static-mask,
.height-inches.has-value .static-mask,
.weight.has-value .static-mask,
.height-feet input:focus + span.static-mask,
.height-inches input:focus + span.static-mask,
.weight input:focus + span.static-mask {
    font-weight: 600;
    opacity: 1;
}
/* Validation Errors*/
.form-control.input-validation-error {
    color: #FF5353;
    border-color: #FF5353;
}

    .form-control.input-validation-error + .static-mask {
        color: #FF5353;
        opacity: 1;
    }

.form-control::-webkit-input-placeholder { /* Chrome/Opera/Safari */
    font-weight: 400;
    line-height: 1.7;
}

.form-control.input-validation-error::-webkit-input-placeholder { /* Chrome/Opera/Safari */
    color: #FF5353;
}

.form-control::-moz-placeholder { /* Firefox 19+ */
    font-weight: 400;
}

.form-control.input-validation-error::-moz-placeholder { /* Firefox 19+ */
    color: #FF5353;
}

.form-control:-ms-input-placeholder { /* IE 10+ */
    font-weight: 400;
}

.form-control.input-validation-error:-ms-input-placeholder { /* IE 10+ */
    color: #FF5353;
}

.form-control:-moz-placeholder { /* Firefox 18- */
    font-weight: 400;
}

.form-control.input-validation-error:-moz-placeholder { /* Firefox 18- */
    color: #FF5353;
}

.error-message {
    color: #FF5353;
    text-align: left;
    font-size: 10px;
    font-weight: 600;
    position: relative;
    top: 5px;
    height: 0px;
}

    .error-message.height-weight {
        height: 100%;
    }

        .error-message.height-weight span {
            display: block;
            width: 100%;
        }
/* Disclosure */
.disclosure {
    font-size: 11px;
}

    .disclosure a {
        color: #2480fe;
    }

/**************************************************
    Coverage Details
**************************************************/
.coverage-details {
    width: 100%;
    background-color: #f1f6f9;
    min-height: 800px;
    padding: 55px 0px 55px;
}

.details-header {
    font-size: 15px;
    font-weight: 600;
    line-height: 150%;
}

.details-subheader {
    font-size: 12px;
    margin-top: 25px;
}

.detail-item {
    margin-top: 45px;
}

.detail-icon img {
    width: 80px;
    height: 80px;
}

.efin-detail-icon img {
    max-width: 125px;
    max-height: 125px;
    width: 100%;
    height: 100%;
}

.detail-title {
    font-weight: 600;
    font-size: 12px;
    margin-top: 25px;
}

.detail-description {
    margin-top: 11px;
    font-size: 12px;
    line-height: 175%;
}

.detail-item,
.detail-title,
.detail-description {
    padding: 0px;
}

/**************************************************
    Thank You / Error
**************************************************/
.contact {
    margin: 30px auto;
}

.flex-text-box {
    border-top: 2px solid #f1f6f9;
    border-bottom: 2px solid #f1f6f9;
    padding: 0px;
    display: flex;
    align-items: center;
}

    .flex-text-box p {
        margin-bottom: 0px;
    }


.efin-coverage-landing {
    background-color: #F3F3F3;
}

.error .next-steps {
    margin-top: 36px;
}

.next-steps img {
    width: 120px;
    height: 120px;
}

.next-steps p {
    color: #555555;
    font-size: 12px;
    line-height: 20px;
}

    .next-steps p.title {
        font-weight: 700;
        margin-top: 30px;
        margin-bottom: 5px;
    }

.more-choices {
    height: 184px;
    margin-top: 50px;
}

    .more-choices p {
        font-size: 12px;
        line-height: 20px;
    }

        .more-choices p span {
            font-size: 14px;
            line-height: 22px;
            display: block;
            margin-bottom: 10px;
        }


/**************************************************
    Footer
**************************************************/
footer {
    width: 100%;
    margin-top: 45px;
    margin-bottom: 50px;
    position: relative;
    z-index: 0;
}

    footer.thank-you,
    footer.error {
        border-top: 1px solid #f1f6f9;
        margin-top: 60px;
        padding-top: 36px;
    }

.footer-content {
    margin-top: 30px;
}

.footer-links a {
    font-size: 11px;
    padding-left: 5%;
    padding-right: 5%;
}

.footer-content p {
    font-size: 10px;
    color: #555555;
    margin-bottom: 10px;
}

.privacy-policy-link,
.terms-of-use-link,
.program-facts-link{
    margin-bottom: 15px;
}


/* Small devices (tablets, 768px and up) */
@media (min-width: 768px) {
    /**************************************************
        Tablet & Desktop Utilities
    **************************************************/
    h1 {
        font-size: 28px;
        margin-top: 60px;
    }

    /* Placement */
    .shift-right-15 {
        position: relative;
        left: 15px;
    }

    .shift-right-25 {
        position: relative;
        left: 25px;
    }

    .shift-right-30 {
        position: relative;
        left: 30px;
    }

    .shift-right-65 {
        position: relative;
        left: 65px;
    }

    /**************************************************
        Header / Hero
    **************************************************/
    header {
        height: 367px;
        padding-top: 13px;
        background-size: 1196px;
        background-position: right;
    }

        header.thank-you,
        header.error {
            height: 60px;
            border-bottom-width: 2px;
        }

    .progressive-logo-container {
        margin-left: 30px;
    }

    .progressive-logo {
        width: 300px;
        height: 37px;
    }

    .phone-container {
        margin-top: 8px;
        margin-right: 30px;
    }

    .hero-message-container {
        margin-top: 105px;
    }

    .page-title {
        font-size: 15px;
    }

    .hero-message {
        font-size: 45px;
    }

    /**************************************************
        Landing Page Form
    **************************************************/
    .form-container {
        width: 100%;
        background: white;
        padding: 60px 0px;
    }

    .landing-page-form {
        width: 738px;
        margin: 0 auto;
        font-size: 15px;
    }

        .landing-page-form .form-control,
        .landing-page-form .control-label {
            font-size: 15px;
        }

        .landing-page-form .form-group {
            margin: 0px 35px 30px;
        }

        .landing-page-form .control-label {
            font-weight: 600;
            padding-top: 13px;
        }

    .radio-group-label {
        margin-bottom: 0px;
    }

    .form-control {
        padding-top: 7px;
        padding-left: 15px;
        margin-top: 0px;
        border-width: 2px;
    }
    /* Special Inputs */
    .zip-container {
        padding-left: 50px;
    }

    .height-feet {
        padding-left: 30px;
    }

    .height-inches {
        padding-right: 30px;
    }

    .weight {
        padding-left: 50px;
    }
    /* Pseudo-Element "Masks" */
    .static-mask {
        font-size: 15px;
        top: 14px;
    }

    .height-feet .static-mask {
        right: -35px;
    }

    .height-inches .static-mask {
        right: -5px;
    }

    .weight .static-mask {
        right: 45px;
    }
    /* Validation Errors*/
    .error-message {
        text-align: right;
    }

        .error-message.height-weight {
            height: 0px;
        }

            .error-message.height-weight span {
                display: inline;
                width: 100%;
            }

    .height-inches-validation .field-validation-error > span,
    .weight-validation .field-validation-error > span {
        margin-left: 10px;
    }

    /**************************************************
        Coverage Details
    **************************************************/
    .coverage-details {
        padding: 60px 0px 50px;
    }

    .permanent-landing.coverage-details {
        min-height: 490px;
    }

    .term-landing.coverage-details {
        min-height: 490px;
    }

    .final-expense-landing.coverage-details {
        min-height: 434px;
    }

    .details-header {
        font-size: 22px;
        line-height: 100%;
    }

    .details-subheader {
        font-size: 15px;
        padding: 0px;
        white-space: nowrap;
    }

    .details-static-wrapper,
    .details-carousel-wrapper {
        margin-top: 45px;
    }

    .detail-item {
        margin-top: 0px;
    }

    .detail-icon img {
        width: 68px;
        height: 68px;
    }

    .detail-title {
        margin-top: 20px;
        font-size: 15px;
    }

    .detail-description {
        margin-top: 11px;
        font-size: 15px;
        line-height: 175%;
    }

    .detail-item,
    .detail-title,
    .detail-description {
        padding: 0px 15px;
    }
    /* Carousel */
    .permanent-landing .carousel-inner {
        min-height: 244px;
    }

    .term-landing .carousel-inner {
        min-height: 244px;
    }

    .final-expense-landing .carousel-inner {
        min-height: 192px;
    }

    .carousel-indicators {
        bottom: -35px;
    }

        .carousel-indicators li,
        .carousel-indicators li.active {
            width: 20px;
            height: 20px;
            background-color: #d5e0ea;
            border: 0px;
            margin: 0px 5px;
        }

            .carousel-indicators li.active,
            .carousel-indicators li.active:hover {
                background-color: #2aa5fc;
            }

            .carousel-indicators li:hover {
                background-color: #aad5fd;
            }

    /**************************************************
        Thank You / Error
    **************************************************/
    .thank-you h1,
    .error h1 {
        margin-top: 100px;
    }

    .contact {
        margin: 0px auto;
    }

    .flex-text-box {
        padding-left: 15px;
        padding-right: 15px;
    }

    .next-steps,
    .error .next-steps {
        margin-top: 60px;
        display: flex;
        align-items: center;
    }

        .next-steps p {
            font-size: 15px;
            line-height: 24px;
        }

    .more-choices {
        margin-top: 100px;
        border-width: 4px;
    }

        .more-choices p {
            font-size: 15px;
            line-height: 24px;
        }

            .more-choices p span {
                font-size: 21px;
                line-height: 36px;
            }

    /**************************************************
        Footer
    **************************************************/
    footer {
        margin-top: 60px;
    }

        footer.thank-you,
        footer.error {
            border-top-width: 2px;
            margin-top: 90px;
            padding-top: 100px;
        }

    .footer-links a {
        font-size: 12px;
        width: auto;
    }

    .privacy-policy-link,
    .terms-of-use-link,
    .program-facts-link{
        margin-bottom: 0px;
    }
    
}

/* Medium devices (desktops, 992px and up) */
@media (min-width: 992px) {
    /**************************************************
        Header / Hero
    **************************************************/
    header {
        height: 442px;
        background-size: 1440px;
        background-position: right;
    }

    .progressive-logo-container {
        margin-left: 50px;
    }

    .phone-container {
        margin-right: 50px;
    }

    .efin-detail-icon img {
        max-width: 200px;
        max-height: 200px;
        width: 100%;
        height: 100%;
    }

    /**************************************************
        Landing Page Form
    **************************************************/
    .form-container {
        width: 838px;
        margin-top: -75px;
        border-radius: 4px;
    }

    /**************************************************
        Coverage Details
    **************************************************/
    .permanent-landing.coverage-details {
        min-height: 437px;
        padding: 60px 0px;
    }

    .term-landing.coverage-details {
        min-height: 437px;
        padding: 60px 0px;
    }

    .final-expense-landing.coverage-details {
        min-height: 386px;
        padding: 60px 0px;
    }

    /**************************************************
        Footer
    **************************************************/
    footer {
        margin-top: 100px;
    }

    .privacy-policy-link {
        text-align: right;
    }

    .terms-of-use-link {
        text-align: center;
    }

    .program-facts-link {
        text-align: center;
    }

    .efin-privacy-policy-link {
        text-align: right;
    }

    .efin-terms-of-use-link {
        text-align: center;
    }

    .do-not-share-link {
        text-align: left;
    }
}

/* Large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {
}

/* Extra Large devices (extra large desktops, 1400px and up) */
@media (min-width: 1400px) {
    header {
        background-size: cover;
        background-position: center;
    }
}
