#travelInsuranceTool { padding: 0 15px; color: #515151; }

.btn { font-size: 14px; cursor: pointer; white-space: nowrap; }
.btn-primary, .btn-default { position: relative; display: inline-block; padding: 9px 25px; border-radius: 5px; margin: 1px; font-weight: bold; }
.btn-primary { border: 1px solid #bd0000; margin: 1px; background-color: #d81e05; color: white; box-shadow: 0 1px 1px #900; }
.btn-default { border: 1px solid #d0d0d0; margin: 1px; background: linear-gradient(to bottom, #fefefe, #ededed); color: #d81e05; box-shadow: 0 1px 1px #666; }
    .btn-primary:hover, .btn-default:hover { top: 1px; text-decoration: none; }
    .btn-default:hover { background: linear-gradient(to bottom, #ededed, #fefefe); box-shadow: none; }
.btn-primary:hover { box-shadow: 0 -8px 4px -4px #f21b1b inset; }

.info-tip { position: relative; display: inline-block; width: 17px; height: 17px; vertical-align: text-top; }
    .info-tip > a { display: block; width: 100%; height: 100%; background: url('static-tools/common/slf/icons/slf_icon_info_off.png') no-repeat center center; background-size: contain; }
    .info-tip.open > a { background-image: url('static-tools/common/slf/icons/slf_icon_info_on.png'); }
    .info-tip span { position: absolute; display: none; bottom: 30px; left: 9px; width: 218px; padding: 16px; font-size: 0.8125em; font-weight: bold; line-height: 1.2em; text-align: left; background: #fff; border: 1px solid #c1c1c1; box-shadow: 1px 2px 3px rgba(0,0,0,0.15); box-sizing: border-box; z-index: 99; }
    .info-tip.open span { display: block; }
    .info-tip span:before { content: ""; position: absolute; bottom: -15px; left: -2px; width: 13px; height: 15px; background: url('static-tools/common/slf/icons/slf_gui_tooltip_tip.png') no-repeat 0 0; background-size: contain; }
    .info-tip span a { position: absolute; top: 1px; right: 5px; width: 20px; height: 20px; color: #515151; font-size: 20px; font-weight: normal; line-height: 20px; text-align: right; cursor: pointer; }
        .info-tip span a:hover { text-decoration: none; }
        .info-tip span a:before { content: "\d7"; }

/* Header */
#travelInsuranceTool header { padding: 16px 40px 16px 0; font-size: 29px; color: #d81e05; font-family: Frutiger, Arial, Helvetica, sans-serif; }

/* Form */
#travelInsuranceTool form { padding: 20px 10px 0 10px; font-size: 1.45em; border: 2px solid #e2e2e2; }
    #travelInsuranceTool form h3 { margin: 0 0 12px 0; font-size: 25px; font-weight: normal; line-height: 0.8em; text-align: center; }
#travelInsuranceTool legend, #travelInsuranceTool label { display: inline-block; padding: 0; font-weight: bold; }
#travelInsuranceTool .tripStops { margin-bottom: 20px; }
    #travelInsuranceTool .tripStops label { position: relative; vertical-align:top; display: inline-table; width: 46%; height: 80px; margin: 1px; font-size: 0.862em; line-height: 1.5em; border: 1px solid #a1a1a1; border-radius: 5px; }
        #travelInsuranceTool .tripStops label:last-of-type { float: right; }
        #travelInsuranceTool .tripStops label input { position: absolute; top: 50%; left: 8px; z-index:-1; }
        #travelInsuranceTool .tripStops label span { display: table-cell; padding: 0 0 0 32px; font-weight: normal; vertical-align: middle; }
            #travelInsuranceTool .tripStops label span:before { content: ""; position: absolute; top: 50%; left: 8px; width: 20px; height: 20px; margin-top: -10px; background: url('static-tools/common/slf/icons/slf_icon_checkbox.png') no-repeat center center; background-size: contain; }
        #travelInsuranceTool .tripStops label input:checked + span:before { background-image: url('static-tools/common/slf/icons/slf_icon_checkbox_checked.png'); }
        #travelInsuranceTool .tripStops label input:checked + span:after { content: ""; position: absolute; top: -2px; bottom: -2px; left: -2px; right: -2px; border: 2px solid #d81e05; border-radius: 7px; }
        #travelInsuranceTool .tripStops label strong { display: block; font-size: 1.333em; }
#travelInsuranceTool form > label { display: block; }
    #travelInsuranceTool form > label select, #travelInsuranceTool form > label input { width: 100%; height: 30px; padding: 0 0.5em; font-size: inherit; border: 1px solid #a1a1a1; border-radius: 5px; box-sizing: border-box; }
    #travelInsuranceTool form > label span { display: inline-block; }
#travelInsuranceTool fieldset { margin: 20px 0 10px 0; padding: 0; border: none; }
    #travelInsuranceTool fieldset div { margin: 10px 0; }
        #travelInsuranceTool fieldset div input { margin: 0; }
        #travelInsuranceTool fieldset div label span { font-weight: normal; }
        #travelInsuranceTool fieldset div .info-tip span { left: -130px; }
            #travelInsuranceTool fieldset div .info-tip span:before { left: 136px; }
#travelInsuranceTool form > .btn { display: block; margin: 30px auto 0 auto; }
#travelInsuranceTool form > small { display: block; margin: 12px 0; font-size: 0.72em; text-align: center; }
#travelInsuranceTool input[type='radio'][name='coverage'] { z-index: -1; position:relative; left: 0; top:-1px; margin-left:12px; }
    #travelInsuranceTool input[type='radio'][name='coverage'] + span { position:relative;}
    #travelInsuranceTool input[type='radio'][name='coverage'] + span::before {content: ""; position: absolute; top: -20%;left: -28px;display: block;width: 20px; height: 20px; background-image: url('static-tools/common/slf/icons/slf_radio.png');}
        #travelInsuranceTool input[type='radio'][name='coverage']:checked + span::before { background-image: url('static-tools/common/slf/icons/slf_radio_on.png'); }

/* Tables */
#travelInsuranceTool table { width: 100%; table-layout: fixed; border-collapse: collapse; color: #515151; font-size: 1.3em; border-bottom: 2px solid #c1c1c1; }
#travelInsuranceTool caption { width: calc(100vw - 30px); margin-bottom: 10px; padding: 20px; font-size: 25px; background: #f2f2f2; box-sizing: border-box; }
#travelInsuranceTool tbody:last-of-type tr:first-of-type td { border-bottom: 1px solid #c1c1c1; border-top: 1px solid #c1c1c1;}
#travelInsuranceTool tr > *:first-child { width: 130px; box-sizing: border-box; }
#travelInsuranceTool th { font-size: 1.115em; line-height: 1.1em; }
    #travelInsuranceTool th:first-of-type { position: relative; padding-left: 22px; text-align: left; }
#travelInsuranceTool thead th { height: 64px; font-size: 1.385em; vertical-align:top;}
#travelInsuranceTool tbody th { padding-top: 20px; padding-bottom: 16px; }
#travelInsuranceTool th:not(:first-of-type), #travelInsuranceTool td { border-left: 1px solid #c1c1c1; }
    #travelInsuranceTool td[title="included"] { background: url('static-tools/common/slf/icons/slf_icon_check.png') no-repeat center center; background-size: 12px 9px; }
#travelInsuranceTool tfoot td { padding: 10px 0 20px 0; text-align: center; }
    #travelInsuranceTool tbody:last-of-type tr:first-of-type td:first-of-type, #travelInsuranceTool tfoot td:first-of-type { border-left: none; }
#travelInsuranceTool tbody:last-of-type tr:first-of-type td:first-of-type { padding-bottom: 10px;padding-top: 10px; }
#travelInsuranceTool table .info-tip { position: absolute; display: block; top: 19px; left: 0; }
    #travelInsuranceTool table .info-tip span { font-size: 0.897em; }
#travelInsuranceTool > section[data-triptype] > .btn { display: block; margin: 30px auto; }

#travelInsuranceTool > section[data-triptype=''] { display: none; }
#travelInsuranceTool > section table { display: none; overflow: auto; }
#travelInsuranceTool > section[data-triptype='single'] table[data-triptype='single'] { display: block; }
#travelInsuranceTool > section[data-triptype='multi'] table[data-triptype='multi'] { display: block; }

/* Table clone */
.tableWrapper { position: relative; width: 100%; }
table[data-triptype]:not(.clone) tr > *:first-child, table[data-triptype]:not(.clone) tr > *:last-child { position: relative; }
    table[data-triptype]:not(.clone) tr > *:first-child:after { content: ""; position: absolute; top: 0; bottom: 0; left: 100%; width: 5px; background: linear-gradient(to right, rgba(0,0,0,0.1), rgba(0,0,0,0)); }
    table[data-triptype]:not(.clone):after { content: ""; position: absolute; top: 0; bottom: 0; right: 0; width: 5px; background: linear-gradient(to left, rgba(0,0,0,0.1), rgba(0,0,0,0)); }
.clone { position: absolute; top: 0; left: 0; overflow: visible !important; pointer-events: none; }
    .clone tr > *:first-child { background: #fff; border-right: 1px solid #c1c1c1; box-shadow: 2px 0 1px -1px #c1c1c1; }
    .clone tr > *:nth-child(1n + 2) { visibility: hidden; }
    .clone .info-tip { pointer-events: all; }

/* Ways to Save */
#travelInsuranceTool aside { padding: 30px 10px 20px 10px; margin-bottom: 20px; background: #f2f2f2; }
    #travelInsuranceTool aside h2 { font-weight: normal; font-size: 25px; text-align: center; }
    #travelInsuranceTool aside ul { display: block; margin: 20px 0 5px 0; }
    #travelInsuranceTool aside li { display: block; padding: 0 0 20px 0; font-size: 1.071em; box-sizing: border-box; }
    #travelInsuranceTool aside strong { font-size: 1.4em; }
    #travelInsuranceTool aside footer { padding-top: 20px; font-size: 1.5em; font-weight: bold; text-align: center; border-top: 1px solid #c1c1c1; }
    #travelInsuranceTool aside .btn { margin-top: 20px; }
#travelInsuranceTool small { display: block; font-size: 1em; }
    #travelInsuranceTool small:last-of-type { position: relative; padding-left: 40px; font-size: 1em; }
    #travelInsuranceTool small sup { position: absolute; top: 0; left: 0; font-size: 1em; }

/* SLF GLobal CSS Overrides*/
#travelInsuranceTool table tr:nth-child( even ) td { background-color: white;}
#travelInsuranceTool thead th { background-color: white; }