body {
    counter-reset: passengers;
}

.insurance {
    padding: 30px 50px;
    background-color: #f5f5f5;
}

.insurance .steps {
    margin: 0px;
    background-color: #ffffff;
    color: #666666;
    font: 500 18px / 50px Roboto;
    box-shadow: 0px 1px 3px 0.00px rgba(0, 0, 0, 0.1);
    text-align: center;
    list-style-type: decimal;
    word-spacing: 30px;
}

.insurance .steps li {
    display: inline-block;
    list-style-position: inside;
    word-spacing: normal;
}

.insurance .steps li.current-step {
    color: #f2a900;
}

.insurance .box {
    background: #FFF;
    padding: 50px;
    margin-top: 10px;
    text-align: center;
    color: #666666;
    font: 400 14px / 24px Roboto;
    box-shadow: 0px 1px 3px 0.00px rgba(0, 0, 0, 0.1);
}

.insurance .box h2 {
    color: #005787;
    font: 500 32px / 40px Roboto;
    margin-bottom: 20px;
}

.insurance .box h3 {
    color: #005787;
    font: 500 24.13px / 20px Roboto;
}

.insurance .box p {
    margin-bottom: 20px;
}

.insurance fieldset {
    text-align: left;
    padding-bottom: 10px;
}

.insurance hr {
    margin: 20px -50px;
    border-top: 1px solid #f5f5f5;
    background: none;
}

.insurance .passenger-information ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin: 0px -10px;
}

.insurance .passenger-information li {
    display: inline-block;
    margin: 0 10px 15px;
    width: calc(25% - 20px);
}

.insurance .passenger-information li.half-wide {
    width: calc(50% - 20px);
}

.insurance .passenger-list li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    align-items: stretch;
    height: 40px;
    margin-bottom: 10px;
}

.insurance .passenger-list li label {
    display: none;
}

.insurance .passenger-list .heading {
    height: auto;
    margin-bottom: 0px;
}

.insurance .passenger-list .heading label {
    display: inline-block;
    margin: none;
    width: 25%;
    text-indent: 20px;
}

.insurance .passenger-list li:not(.heading):before {
    counter-increment: passengers;
    content: counter(passengers) '.';
    line-height: 40px;
    margin-right: 10px;
}

.insurance .passenger-list li>div {
    display: inline-block;
    width: calc(25% - 10px);
}

.insurance .passenger-list li>div+div {
    margin-left: 10px
}

.insurance .passenger-list li[aria-hidden="true"] {
    display: none;
}

.insurance .passenger-list .multiple-fields {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.insurance .passenger-list .multiple-fields div {
    display: inline-block;
    margin: 0 5px 15px;
}

.insurance .passenger-birthdays {
    max-width: 500px;
    margin: 0 auto;
}

.passenger-birthdays .passengers li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    margin-bottom: 10px;
}

.passenger-birthdays .passengers label {
    display: inline-block;
    width: 40%;
    vertical-align: middle;
    font-weight: normal;
}

.passenger-birthdays .passengers .heading label {
    width: 40%;
    font-weight: bold;
    flex-grow: 0;
    flex-shrink: 0;
}

.passenger-birthdays .passengers .multiple-fields {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    flex-grow: 0;
    flex-shrink: 0;
    width: 60%;
}

.passenger-birthdays .passengers .multiple-fields div+div {
    margin-left: 10px;
}

.passenger-birthdays h3 {
    text-align: center;
    margin-bottom: 15px;
}

.passenger-birthdays .trip-details {
    color: #666666;
    font: 400 16px / 30px Roboto;
}

.passenger-birthdays .trip-details li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.passenger-birthdays .trip-details strong,
.passenger-birthdays .trip-details>span {
    display: inline-block;
    width: 50%;
    height: 100%;
}

.passenger-birthdays .trip-details strong span {
    font-weight: normal;
}

.insurance li.autocomplete {
    position: relative;
}

.insurance .autocomplete__dropdown {
    display: none;
    width: 100%;
    position: absolute;
    z-index: 100;
    top: 100%;
    left: 10px;
    background: #f5f5f5;
    border: 1px solid #005786;
    border-width: 0 1px 1px;
    font: 14px/1.286 Roboto, sans-serif;
}

.insurance .autocomplete__dropdown[aria-hidden="false"] {
    display: block;
}

.insurance .autocomplete__dropdown li {
    display: block;
    width: 100%;
    margin: 0;
}

.insurance .autocomplete__dropdown li a {
    display: block;
    width: 100%;
    padding: 6px 10px;
}

.insurance .autocomplete__dropdown li.selected a,
.insurance .autocomplete__dropdown li a:hover,
.insurance .autocomplete__dropdown li a:focus {
    background: #e8e8e8;
}

.insurance .autocomplete__airport {
    overflow: auto;
}

.insurance .autocomplete__airport__code {
    float: left;
    width: 30px;
    margin: 0 10px 0 0;
    font-weight: bold;
}

.insurance .autocomplete__airport__name {
    overflow: auto;
}

.insurance .plans {
    text-align: left;
    display: inline-block;
    margin: 0 auto;
}

.plans ul {
    display: inline-block;
    width: auto;
    margin: 10px auto;
}

.plans li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.plans .heading {
    padding: 0px 0px 10px 30px;
}

.plans .heading em {
    font-style: normal;
    font-weight: bold;
    color: #4a4a4a;
    font: 500 16.11px / 20px Roboto;
}

.plans .heading em:nth-child(2) {
    width: auto;
    -webkit-box-flex: 2;
    -ms-flex-positive: 2;
    flex-grow: 2;
    margin-right: auto;
    margin-right: 20px;
}

.plans label {
    display: -webkit-inline-box !important;
    display: -ms-inline-flexbox !important;
    display: inline-flex !important;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    -webkit-box-flex: 10;
    -ms-flex-positive: 10;
    flex-grow: 10;
    padding: 20px;
    background-color: #f5f5f5;
}

.plans label span,
.plans .heading em {
    flex-grow: 0;
    flex-shrink: 0;
    font-style: normal;
    width: 55px;
    margin-right: 20px;
}

.plans label span em {
    display: none;
}

.plans label span:last-child {
    margin-right: 0px;
}

.plans label a {
    width: auto;
    -webkit-box-flex: 2;
    -ms-flex-positive: 2;
    flex-grow: 2;
    margin-right: auto;
    margin-right: 20px;
    margin-left: 5px;
    color: #005787;
    text-decoration: underline;
}

.plans .total-amount {
    display: block;
    margin-bottom: 20px;
    color: #005787;
    font: 500 16.11px / 20px Roboto;
}

.insurance .review-and-payment {
    max-width: 800px;
    margin: auto;
    text-align: center;
}

.review-and-payment .summary {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.review-and-payment .summary ul {
    display: inline-block;
    vertical-align: top;
    width: 50%;
    color: #4a4a4a;
    font: 400 16.11px / 30.156px Roboto;
    text-align: left;
    white-space: nowrap;
}

.review-and-payment .summary ul+ul {
    margin-left: 20px;
}

.review-and-payment .summary .heading {
    color: #005787;
    font: 500 16.11px / 20px Roboto;
    margin-bottom: 10px;
}

.review-and-payment .summary strong {
    display: inline-block;
    width: 50%;
}

.review-and-payment .selected-plan {
    display: block;
    color: #005787;
    font: 400 16.08px / 20px Roboto;
    text-decoration: underline;
    text-align: center;
}

.review-and-payment h3 {
    margin: 15px 0px 20px;
    text-align: center;
}

.review-and-payment .split-payments {
    text-align: center;
}

.review-and-payment .payments {
    text-align: center;
    margin: 20px 0px;
}

.review-and-payment .payments ul {
    max-width: 380px;
    width: 49%;
    box-sizing: border-box;
    padding: 30px;
    margin: 0 auto;
    background-color: #f5f5f5;
    text-align: left;
}

.review-and-payment .payments.multiple ul {
    display: inline-block;
    margin: 0px;
}

.review-and-payment .payments.multiple ul:nth-child(2n) {
    margin-left: 20px;
}

.review-and-payment .payments li {
    vertical-align: top;
    margin-bottom: 15px;
}

.review-and-payment .payments strong {
    display: block;
    color: #005787;
    font: 500 16.11px / 20px Roboto;
    text-align: center;
}

.review-and-payment .payments strong em {
    color: #666666;
    font: 500 16.11px / 20px Roboto;
}

.review-and-payment .payments .multiple-fields {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.review-and-payment .payments .multiple-fields div {
    width: calc(50% - 10px);
}

.review-and-payment .payments .multiple-fields div+div {
    margin-left: 20px;
}

.review-and-payment .payments input,
.review-and-payment .payments .select {
    background-color: #ffffff;
}

.review-and-payment .payments[aria-hidden="true"] {
    display: none;
}

.insurance .error input[type="text"],
.insurance .error input[type="date"],
.insurance .error input[type="email"],
.insurance .error .select {
    border: 1px solid #c81616;
}

@media (min-width: 1400px) {
    .insurance {
        padding: 30px calc((100% - 1300px) / 2);
    }
}

@media (max-width: 1400px) {
    .insurance .passenger-list .heading label {
        width: 20%;
    }
    .insurance .passenger-list li>div {
        width: calc(20% - 10px);
    }
    .insurance .passenger-list .multiple-fields {
        width: calc(50% - 10px);
    }
}

@media (max-width: 1000px) {
    .review-and-payment .payments {
        display: block;
    }
    .review-and-payment .payments ul,
    .review-and-payment .payments.multiple ul {
        width: 100%;
        max-width: 100%;
        margin: 15px 0px;
    }
    .review-and-payment .payments.multiple ul:nth-child(2n) {
        margin-left: 0px;
    }
}

@media (max-width: 900px) {
    .insurance .passenger-information li {
        width: calc(50% - 20px);
    }
    .insurance .passenger-information li.half-wide {
        width: 100%;
    }
    .insurance .passenger-list li {
        height: auto;
        flex-wrap: wrap;
    }
    .insurance .passenger-list li>div {
        width: calc((100% / 3) - 15px);
    }
    .insurance .passenger-list li label {
        display: block;
        width: 100%;
        flex-grow: 100;
    }
    .insurance .passenger-list .heading label {
        display: none;
    }
    .insurance .passenger-list .multiple-fields {
        width: 100%;
        margin: 10px 0px 0px 20px;
        flex-wrap: wrap;
    }
    .insurance .passenger-list .multiple-fields div {
        display: inline-block;
        width: calc((100% / 3) - 7px);
        margin: 0px;
    }
    .insurance .passenger-list .multiple-fields div+div {
        margin-left: 10px;
    }
    .review-and-payment .summary {
        display: block;
    }
    .review-and-payment .summary ul {
        display: block;
        width: 100%;
        margin: 10px 0px 15px;
    }
    .review-and-payment .summary ul+ul {
        margin-left: 0px;
    }
    .insurance .steps li {
        font: 500 14px / 30px Roboto;
    }
}

@media (max-width: 700px) {
    .passenger-birthdays .passengers li {
        display: block;
    }
    .passenger-birthdays .passengers label {
        display: block;
        width: 100%;
        margin-bottom: 10px;
    }
    .passenger-birthdays .passengers .multiple-fields {
        width: 100%;
    }
    .passenger-birthdays .passengers .multiple-fields .select {
        flex-grow: 2;
        flex-shrink: .5;
        width: auto;
    }
}

@media (max-width: 600px) {
    .insurance {
        padding: 20px;
    }
    .insurance .steps li:not(.current-step) {
        display: none;
    }
    .insurance .box {
        padding: 20px;
        margin-top: 20px;
    }
    .insurance .passenger-information li {
        width: 100%;
        margin: 0px 0px 10px;
    }
    .insurance .passenger-list li>div,
    .insurance .passenger-list .multiple-fields {
        width: 100%;
        margin: 0px 0px 10px
    }
    .insurance .passenger-list li>div+div {
        margin-left: 0px;
    }
    .passenger-birthdays .passengers .heading {
        display: none;
    }
    .passenger-birthdays .trip-details li {
        display: block;
    }
    .passenger-birthdays .trip-details strong,
    .passenger-birthdays .trip-details>span,
    .passenger-birthdays .trip-details strong span {
        display: block;
        width: 100%;
    }
    .review-and-payment .payments ul {
        padding: 15px;
    }
    .review-and-payment .summary strong {
        display: block;
        width: 100%;
    }
    .insurance .box h3 {
        line-height: 30px;
    }
    .insurance .plans {
        display: block;
    }
    .plans ul {
        width: 100%;
    }
    .plans .heading {
        display: none;
    }
    .plans label {
        display: block !important;
    }
    .plans label span,
    .plans label a {
        display: block;
        width: 100%;
        margin-bottom: 5px;
    }
    .plans label span em {
        display: inline-block;
        font-weight: bold;
        font-style: normal;
        margin-right: 10px;
    }
}
