/*--------------------------------------------------------------------------------------------------------------------
    Resets
--------------------------------------------------------------------------------------------------------------------*/

div, section, ul, li, h1, h2, h3, h4, table, td {
    margin: 0;
    padding: 0;
    font-weight: normal;
}

div {
    display: block;
}

a, a:hover, a:active, a:visited {
    text-decoration: none;
}

b, strong {
    font-weight: normal;
    color: #40526a;
    font-family: "Graphik Web Medium", Helvetica, Arial, sans-serif;
}

input, button, select, textarea {
    color: #40526a;
    font-family: "Graphik Web Regular", Helvetica, Arial, sans-serif;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

.sandbox-warning {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 9999;
    background: url('../images/sandbox.png');
    width: 60px;
    height: 60px;
    overflow: hidden;
    color: transparent;
}

#waitPanel {

    position: fixed;
    display: none;
    bottom: 20px;
    right: 20px;
    text-align: right;
    z-index: 400;
    clear: both;
    background: url('../images2/spinner.gif') no-repeat 14px 10px;
    background-color: rgba(17,56,140,0.6);
    color: #fff;
    padding: 8px 16px 8px 40px;
    border-radius: 44px;
    font-size: 13px;
    line-height: 20px;
    height: 20px;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

html, body {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

body {
    background: url('../images2/external/background.png') repeat-x #f3f6f9;
    margin: 0;
    padding: 0;
    color: #40526a;
    font-family: "Graphik Web Regular", Helvetica, Arial, sans-serif;
    font-size: 15px;
    font-weight: normal;
    overflow-x: hidden;

}

/*--------------------------------------------------------------------------------------------------------------------
    Typography
--------------------------------------------------------------------------------------------------------------------*/

h1 {
    font-size: 22px;
    color: #40526a;
}

h2 {
    font-size: 15px;
    font-family: "Graphik Web Medium", Helvetica, Arial, sans-serif;
    color: #40526a;
    margin-bottom: 10px;
}

h3 {
    font-size: 15px;
    font-family: "Graphik Web Medium", Helvetica, Arial, sans-serif;
    line-height: 34px;
}

p {
    line-height: 22px;
}

.hint {
    font-size: 13px;
    line-height: 20px;
    color: #8991a7;
}

.noselect {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

a, a:visited {
    font-family: "Graphik Web Medium", Helvetica, Arial, sans-serif;
    color: #3a7cdb;
}

a:hover {
    color: #40526a;
}

.ellipsis {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    width: 100%;
    display: block;
}

/*--------------------------------------------------------------------------------------------------------------------
    Scaffolding
--------------------------------------------------------------------------------------------------------------------*/

.tp-ng-root,
.main {
    width: 100%;
    height: 100%;
    display: table;
}

.tp-bootstrapped-app,
.main {
    width: 100%;
    height: 100%;
    display: table;
}

.tp-ng-template,
.content {
    width: 100%;
    height: 100%;
    display: table-cell;
    vertical-align: middle;
    text-align: center;
}

.subheader {
    margin: 0px 0px 15px 0px;
}

.section, .row {
    *zoom: 1;
}

.row::before, .row::after,
.section::before, .section::after {
    content: "";
    display: table;
}

.row::after, .section::after {
    clear: both;
}

.section {
    padding: 25px 0px 0px 0px;
}

.section:first-child {
    padding-top: 0px;
}

.center {
    text-align: center;
}

.fade {
    opacity: 0;
    -webkit-transition: opacity 0.15s linear;
    -moz-transition: opacity 0.15s linear;
    -o-transition: opacity 0.15s linear;
    transition: opacity 0.15s linear;
}

.hide {
    display: none;
}

.fade.in {
    opacity: 1;
}

/*--------------------------------------------------------------------------------------------------------------------
    Downloads
--------------------------------------------------------------------------------------------------------------------*/

#downloadPurchase.center-container {
    margin: 0 auto;
    width: 640px;
}

.download {
    display: table;
    max-width: 640px;
    max-height: 280px;
    position: relative;
}

.download .resource-section,
.download .offer-section {
    display: table-cell;
    vertical-align: middle;
}

.download .resource-section {
    width: 280px;
    max-width: 280px;
    padding-right: 30px;
}

.download .offer-section {
    text-align: left;
    width: 330px;
    max-width: 330px;
}

.download .offer-description {
    text-overflow: ellipsis;
    word-wrap: break-word;
}

.download .cover-image {
    display: block;
    list-style-type: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
    position: relative;
    top: 0px;
}

.download .cover-image:before {
    -webkit-transition: 150ms all ease-in-out;
    -moz-transition: 150ms all ease-in-out;
    -o-transition: 150ms all ease-in-out;
    transition: 150ms all ease-in-out;
    content: '';
    position: absolute;
    background: url("../images2/external/resource-shadow.png") no-repeat top center;
    height: 312px;
    width: 312px;
    margin-left: 50%;
    left: -156px;
    display: block;
    opacity: 1;
    top: -8px;
}

.download .cover-image:hover:before,
.download .cover-image.hover:before {
    opacity: 0.5;
    top: -2px;
}


.download .cover-image .resource-image {
    width: 280px;
    height: 280px;
    top: 0px;
    overflow: hidden;
    display: inline-block;
    position: relative;
    background-color: #89b0e9;
    -webkit-transition: 150ms all ease-in-out;
    -moz-transition: 150ms all ease-in-out;
    -o-transition: 150ms all ease-in-out;
    transition: 150ms all ease-in-out;
}

.download .cover-image:hover .resource-image,
.download .cover-image.hover .resource-image {
    top: -10px;
}

.resource-image img {
    width: 100%;
    height: 100%;
}

.download .offer-info {
    color: #868997;
    font-size: 13px;
    margin-bottom: 30px;
}

.download .offer-info h1 {
    margin-bottom: 8px;
    line-height: 32px;
    max-height: 200px;
    width: 330px;
    overflow: hidden;
}

.download .offer-info b {
    color: #40526a;
}

.download .publisher-link,
.download .publisher-link:visited {
    color: #40526a;
    font-family: "Graphik Web Medium", Helvetica, Arial, sans-serif;
    position: relative;
    display: block;
    padding-left: 25px;
    margin-bottom: 8px;
}

.publisher-link img {
    display: block;
    width: 18px;
    height: 18px;
    position: absolute;
    top: 0px;
    left: 0px;
}

.button-purchase {
    display: inline-block;
    margin-bottom: 15px;
    opacity: 0.9;
    -webkit-transition: 150ms opacity ease-in-out;
    -moz-transition: 150ms opacity ease-in-out;
    -o-transition: 150ms opacity ease-in-out;
    transition: 150ms opacity ease-in-out;
}

.button-access {
    margin-bottom: 15px;
}

.button-purchase:hover {
    opacity: 1;
}

.download .offer-login {
    color: #868997;
    font-size: 13px;
}

/*--------------------------------------------------------------------------------------------------------------------
    Videos
--------------------------------------------------------------------------------------------------------------------*/


.video {
    position: relative;
    overflow: hidden;
    background: #000;
    margin: 0 auto;
    text-align: left;
}

.video .preview-image {
    width: 100%;
    height: auto;
}

.video .preview-image {
}

.video .offer-section {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 120px;
    background: url('../img/salepage/video-overlay.png') repeat-x;
    color: #fff;
    overflow: hidden;
}

.video .offer-table {
    display: table;
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.video .publisher-badge {
    color: #fff;
    position: relative;
    display: inline;
    padding: 2px 5px;
    border-radius: 2px;
    color: #000;
    background: #fff;
    text-transform: uppercase;
    font-family: "Graphik Web Medium", Helvetica, Arial, sans-serif;
    font-size: 10px;
}

.video .play-button {
    background: url('../img/salepage/video-play.png') no-repeat;
    width: 80px;
    height: 80px;
    top: 50%;
    left: 50%;
    margin: -40px 0px 0px -40px;
    cursor: pointer;
    position: absolute;
}

.video h1 {
    color: #fff;
    font-size: 18px;
    margin: 10px 0px 4px 0px;
    line-height: 32px;
}

.video .offer-section .wrapper  {
    padding: 20px;
}

.video .offer-info,
.video .offer-purchase {
    display: table-cell;
    vertical-align: bottom;
    padding: 0px 20px;
    height: 100px;
}

.video .offer-info {
    width: 50%;
}

.video .offer-purchase {
    width: 50%;
    text-align: right;
    font-size: 13px;
}

.video .offer-description {
    font-size: 13px;
    opacity: .6;
}

.video .translucent {
    opacity: .6;
}

.video .button-purchase {
    margin-bottom: 0px;
    margin-left: 10px;
}

.video .login-link, .video .login-link:visited {
    color: #fff;
    font-family: "Graphik Web Medium", Helvetica, Arial, sans-serif;
}

.video .offer-login {
    margin-top: 8px;
}

/*--------------------------------------------------------------------------------------------------------------------
    Footer
--------------------------------------------------------------------------------------------------------------------*/

.footer {
    text-align: center;
    position: fixed;
    bottom: 40px;
    left: 50%;
    margin-left: -64px;
    -webkit-transition: opacity linear 0.2s;
    -moz-transition: opacity linear 0.2s;
    -o-transition: opacity linear 0.2s;
    transition: opacity linear 0.2s;
}

#logo {
    display: inline-block;
    width: 128px;
    height: 70px;
    background: url('../images2/external/powered-by-tinypass.png') no-repeat center center;
    opacity: .4;
    cursor: pointer;
    clear: both;
    -webkit-transition: opacity linear 0.2s;
    -moz-transition: opacity linear 0.2s;
    -o-transition: opacity linear 0.2s;
    transition: opacity linear 0.2s;
}

#logo:hover {
    opacity: 1;
}

@media screen and (max-height:540px) {
    .footer {
        opacity: 0;
    }
}

@media screen and (max-height:400px) {
    html, body {
        overflow-y: visible;
    }
}

/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Primary buttons
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/

.btn {
    text-decoration: none;
    cursor: pointer;
    padding: 0px 18px;
    line-height: 40px;
    border-collapse: separate;
    border-radius: 4px;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    text-align: center;
    vertical-align: middle;
    text-decoration: none;
    display: inline-block;
    color: #8991a7;
    border: 1px solid #d8dadd;
    box-shadow: inset 0px -1px 0px rgba(216,218,221,0.4);
    background: url('../images2/gift/bottom-white-button.png') repeat-x #fff;
    background-position: bottom;
    text-shadow: none;
    margin-right: 10px;
    font-family: "Graphik Web Regular", Helvetica, Arial, sans-serif;
    white-space: nowrap;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-transition: opacity linear 0.2s;
    -moz-transition: opacity linear 0.2s;
    -o-transition: opacity linear 0.2s;
    transition: opacity linear 0.2s;
}

.btn:last-child {
    margin-right: 0px;
}

.btn:hover {
    color: #40526A;
}

.btn.active, .btn:active {
    background-image: none;
    outline: 0;
    -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);
    -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);
    color: #40526A;
}

.btn-primary {
    border: #3a7cdb 1px solid;
    color: white;
    background: #3878D8 url('../images2/gift/btn-blue.png') repeat-x;
    background-position: 0px 0px;
    text-shadow: 0 -1px #365F9A;
    box-shadow: inset 0px -1px 0px rgba(40,107,202,1);
    -webkit-box-shadow:  inset 0px -1px 0px rgba(40,107,202,1);
    -moz-box-shadow:  inset 0px -1px 0px rgba(40,107,202,1);
}

.btn-primary:hover, .btn-primary.hover {
    text-decoration: none;
    color: white;
    border: #2A6BcA 1px solid;
    background: #2b65ce url('../images2/gift/btn-blue-hover.png') repeat-x;
}

.btn-primary:active, .btn-primary.active {
    background: #2b65ce url('../images2/gift/btn-blue-hover.png') repeat-x;
    -webkit-box-shadow: inset 0 2px 4px rgba(32, 87, 168, 0.5);
    -moz-box-shadow: inset 0 2px 4px rgba(32, 87, 168, 0.5);
    box-shadow: inset 0 2px 4px rgba(32, 87, 168, 0.5);
    color: white;
}

.btn[disabled] {
    opacity: 0.8;
}

.btn[disabled]:active, .btn[disabled]:hover {
    background: #3878D8 url('../images2/gift/btn-blue.png') repeat-x;
    text-shadow: 0 -1px #365F9A;
    box-shadow: inset 0px -1px 0px rgba(40,107,202,1);
    -webkit-box-shadow:  inset 0px -1px 0px rgba(40,107,202,1);
    -moz-box-shadow:  inset 0px -1px 0px rgba(40,107,202,1);
}

.btn-block {
    display: block;
    width: 100%;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    margin-bottom: 10px;
    padding-left: 0px;
    padding-right: 0px;
}

.btn-large {
    border-radius: 40px;
    font-size: 20px;
    padding: 6px 30px;
}

/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Complex widgets: datepicker;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/

.widget-calendar {
    display: inline-block;
}

.widget-calendar .btn {
    position: relative;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    cursor: pointer;
    padding: 0px;
    width: 184px;
    height: 32px;
    padding: 0px;
}

.widget-calendar .btn input[type="text"] {
    z-index: 1;
    cursor: pointer;
    width: 120px;
    position: absolute;
    margin: 0;
    left: 0;
    top: 0;
    padding: 0px 32px;
    background: none;
    height: 30px;
    line-height: 30px;
    color: #8991a7;
}

.widget-calendar .btn:hover input[type="text"] {
    color: #40526A;
}

.widget-calendar input[disabled], .widget-calendar select[disabled], .widget-calendar textarea[disabled] {
    border: none;
    background: #f2f4f8;
}

.widget-calendar .btn i {
    opacity: 0.6;
    filter: alpha(opacity = 60);
    z-index: 0;
    position: absolute;
}

.widget-calendar .btn:hover i {
    filter: alpha(opacity = 100);
    opacity: 1.0;
}

.btn.disabled:hover i {
    filter: alpha(opacity = 60);
    opacity: 0.6 ! important;
}

.widget-calendar .btn .icon-calendar {
    left: 6px;
    top: 5px;
}

.widget-calendar .btn .icon-caret {
    right: 6px;
    top: 5px;
}

.form-small .widget-calendar .btn {
    height: 30px;
}

.form-small .widget-calendar .btn input[type="text"] {
    padding: 0px 32px;
    height: 28px;
    line-height: 28px;
}

.form-small .widget-calendar .btn .icon-calendar {
    top: 7px;
}

.form-small .widget-calendar .btn .icon-caret {
    top: 7px;
}

.ui-widget {
    z-index: 400 !important;
}

/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Errors
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/

.alert {
    padding: 8px 35px 8px 14px;
    margin-bottom: 30px;
    background-color: #eef7f9;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    border-radius: 4px;
    color: #8991a7;
    margin-top: -10px;
}

.alert-error {
    color: #fff;
    background: url('../images2/error.png') repeat-x #c74d41;
    border: 0;
    margin-bottom: 40px;
}

.alert-danger h4, .alert-error h4 {
    color: #fff;
}

.alert-error .close {
    top: 0px;
    color: #fff;
    opacity: .5;
    filter: alpha(opacity = 50);
}

.error-header {
    font-family: "Graphik Web Medium", Helvetica, Arial, sans-serif;
    font-size: 15px;
    line-height: 15px;
    margin-bottom: 10px;
}

.error-line {
    font-size: 13px;
}
.fade.in {
    opacity: 1;
}

.alert-block {
    padding-top: 14px;
    padding-bottom: 14px;
}

.alert-block > p,
.alert-block > ul {
    margin-bottom: 0;
}

.alert-block p + p {
    margin-top: 5px;
}

.control-group.error input,
.control-group.error select,
.control-group.error textarea {
    border-color: #e1a49f;
}

.control-group.error input:focus,
.control-group.error select:focus,
.control-group.error textarea:focus {
    border-color: #c74d41;
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
    -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
}

input.ng-invalid, select.ng-invalid, textarea.ng-invalid {
    color: #c74d41;
    border-color: #ee5f5b;
}

input:focus:invalid, textarea:focus:invalid, select:focus:invalid {
    color: #c74d41;
    border-color: #ee5f5b;
}

input:focus:invalid:focus, textarea:focus:invalid:focus, select:focus:invalid:focus {
    border-color: #e9322d;
    -webkit-box-shadow: 0 0 6px #f8b9b7;
    -moz-box-shadow: 0 0 6px #f8b9b7;
    box-shadow: 0 0 6px #f8b9b7;
}

/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Iconography
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/

[class^="icon-"], [class*=" icon-"] {
    display: inline-block;
    width: 20px;
    height: 20px;
    /*margin-top: 3px;*/
    *margin-right: .3em;
    line-height: 14px;
    vertical-align: middle;
    background-image: url('../images2/gift/small-icons.png');
    background-position: 14px 14px;
    background-repeat: no-repeat;
}

.icon-arrow { background: url('../images2/gift/icon-arrow.gif') no-repeat center center; }
.icon-caret { background-position: -380px -80px; }
.icon-calendar { background-position: -260px -260px; }

/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Access
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/

.no-access {
    display: inline-block;
    padding: 8px 15px 8px 45px;
    line-height: 30px;
    height: 30px;
    overflow-y: hidden;
    font-size: 13px;
    background: #fff;
    border-radius: 4px;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    cursor: default;
}

.no-access.state-processing {
    background: #fff url('../images2/icon-spinner.gif') no-repeat 15px center;
}

.no-access.state-error {
    background: #fff url('../images2/small-icons.png') no-repeat -425px -488px;
}

.no-access.state-general {
    background: #fff url('../images2/icon-tooltip.png') no-repeat 15px center;
}

.tp_login_link {
    display: none;
}

.tinypass_login_link {
    color: #fff;
    font-family: "Graphik Web Medium", Helvetica, Arial, sans-serif;
}

.tinypass_button {
    display: inline-block;
    opacity: 0.9;
    -webkit-transition: 150ms opacity ease-in-out;
    -moz-transition: 150ms opacity ease-in-out;
    -o-transition: 150ms opacity ease-in-out;
    transition: 150ms opacity ease-in-out;
    text-align: right;
}

.video .offer-description2 {
    font-size: 13px;
    opacity: .6;
    display: inline;
}

#allAccess a.tinypass_login_link {
    color: #1982d1;
    font-family: "Graphik Web Medium", Helvetica, Arial, sans-serif;
}

#allAccess .label {
    display: inline;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
    font-size: 13px;
}