/**
* basic form holders
*/

.typography form {
    padding: 1em 0;
    clear: right;
    width: 100%!important;
    margin-left: auto;
    margin-right: auto;
}

.typography fieldset {
}

.typography div.field {
    padding-top: 1em;
}

.typography .field {
    width: 100%;
    padding-bottom: 0.8em;
    padding-top: 0.8em;
    clear: left;
}

.typography .middleColumn,
.typography .Actions,
.typography input.action,
.typography p.ForgotPassword,
.typography p.checkbox {
    display: block;
    text-align: left;
}

.typography .fieldgroup .middleColumn {
    margin-left: 0px;
}



/**
 * input fields basics
 *
 */

.typography .middleColumn input,
.typography .middleColumn textarea,
.typography .middleColumn select,
.typography .middleColumn span.readonly {
    border: 1px solid #f8f8f8;
    padding: 0.7em;
    font-family: Arial, Verdana,helvetica, sans-serif;
    margin-top: 0px;
    width: calc(100% - 20px);
    color: #808383;
    font-weight: bold;
    max-width: 40em;
    transition: all 0.5s ease 0s;
    -webkit-transition: all 0.5s ease 0s;
}

.typography input[type=text],
.typography input[type=email],
.typography input[type=password],
.typography textarea,
.typography select,
.typography .middleColumn span.readonly  {
    background-color: #f8f8f8;
    border-bottom: 3px solid #ccc!important;
}



/**
* fields interaction
*/


.typography .middleColumn input:focus,
.typography .middleColumn textarea:focus,
.typography .middleColumn select:focus {
    color: #FF336D;
    outline: none!important;
}

.typography input[type=text]:focus,
.typography input[type=email]:focus,
.typography input[type=password]:focus,
.typography textarea:focus,
.typography select:focus{
    border-bottom: 3px solid #ffcc1a!important;
}


/**
* labels
*/


.typography label {
    padding-bottom: 0.5em;
}

.typography label.FormHeading {
    display: block;
    color: #808383;
    font-weight: bold;
    margin-bottom: 1em;
}

.typography label.left {
    display: block;
}

.typography label.required {
    display: block;
    color: #298599;
    font-size: 0.8em;
}

/**
* labels right
*/

.typography .middleColumn + label.right {
    display: block;
    text-align: left;
    font-family: serif;
    font-style: italic;
    padding-top: 0.5em;
}


/**
* messages
*/

.typography .message {
    font-weight: bold;
    background-color: #ffcc1a;
    display: block;
    padding: 0.3em;
    text-align: center;
    border-bottom: 1px solid #D3D4B6;
    color: #FF336D;
    max-width: calc(40em);
}


.typography .field span.message {
    margin-top: 0.5em;
    display: block;
    max-width: calc(40em);
    padding: 0.5em;
}

.typography .field .middleColumn .message {
    margin-left: 0px;
}

.typography span.bad,
.typography span.required {
    background-color: #FF336D;
    color: #fff;
}

.typography span.good,
.typography span.good {
    background-color: #298599;
    color: #fff;
}



/**
* actions
*/
.typography .Actions {
    padding-top: 2em;
}

.typography .Actions input,
.typography input.action {
    padding-right: 30px;
}

.typography .Actions input.action {
    margin-left: 0px;
}

.typography .Actions input.action:focus {
    outline: none;
    color: #FF336D;
}

.typography .action,
.typography .Actions input,
.typography input.action {
    color: #808383;
    padding: 0.7em;
    background: -moz-linear-gradient(top,#ffffff 0%,#cfd4d4);
    background: -webkit-gradient(linear,left top,left bottom,from(#ffffff),to(#cfd4d4));
    border-radius: 5px 5px 5px 5px;
    -moz-border-radius: 5px 5px 5px 5px;
    -webkit-border-radius: 5px 5px 5px 5px;
    border: 1px solid #808383;
    text-decoration: none!important;
    padding-right: 17px!important;
    color: #808383;
    width: auto;
    text-align: center;
}

.typography .action:hover,
.typography .Actions input:hover,
.typography input.action:hover {
    background: -moz-linear-gradient(top,#ffffff 0%,#ffcc1a);
    background: -webkit-gradient(linear,left top,left bottom,from(#ffffff),to(#ffcc1a));
    border: 1px solid #808383;
    color: #808383;
    -moz-box-shadow: 0px 1px 3px rgba(000,000,000,0.5), inset 0px 0px 1px rgba(355,355,355,0.7);
    -webkit-box-shadow: 0px 1px 3px rgba(000,000,000,0.5), inset 0px 0px 1px rgba(355,355,355,0.7);
    text-decoration: none;
}

/**
* special fields several
*/


.typography input.password,
.typography input.numeric,
.typography input.currency,
.typography input.date {
    max-width: 17em;
}


/**
* dropdown
*/

.typography .middleColumn select {
    max-width: calc(40em + 1.4em);
    width: 100%;
}

.typography .dropdown label.left {
    padding-bottom: 3px;
}


/**
 * textarea
 */

 .typography .middleColumn textarea {
     margin-top: 0px;
 }


/**
* checkboxes and list boxes
*/

.typography .optionset label.left,
.typography .checkboxset label.left {
    border: 0;
}

.typography .middleColumn ul {
    margin-left: 0!important;
    padding-left: 0!important;
    margin-top: 0px;
    padding-top: 0px;
}

.typography .middleColumn li:nth-child(odd) {
    margin-right: 3em!important;
}
.typography .middleColumn li {
    list-style: none!important;
    margin-top: 0px;
    padding-top: 0px;
    width: 19em;
    float: left;
    max-width: calc(40em + 3em);
}

.typography .middleColumn .radio,
.typography .middleColumn .checkbox,
.typography .middleColumn .radio:hover,
.typography .middleColumn .checkbox:hover,
.typography .middleColumn .radio:focus,
.typography .middleColumn .checkbox:focus {
    border: 0;
}

.typography .radio,
.typography .checkbox {
    width: auto!important;
}

.typography .checkbox label.right {
    display: block;
    margin-left: 0px;
    font-size: 1em;
    text-align: left;
    line-height: 1;
    max-width: calc(40em - 3em);
}

.typography .checkbox input {
    float: left;
    margin-top: 0px;
}

.optionset li {
    padding: 0px!important;
    margin: 0px!important;
    width: 100%;
}

.optionset li label {
    display: inline-block;
    width: calc(100% - 50px);
}

.optionset .middleColumn ul,
.checkboxset .middleColumn ul {
    max-width: calc(40em + 3em);
}

/** hide the input itself **/
.optionset li input,
.optionset li input[type='radio'],
.field.checkbox input {
    display: none;
}

/** create basic outline for label */
.optionset li input + label,
.optionset li input[type='radio'] + label,
.field.checkbox input + label {
    background-color: none;
    border: none;
    border-radius: 3px;
    display: inline-block;
    position: relative;
    -webkit-appearance: none;
    padding-left: 25px;
    font-size: 16px!important;
}

/** highlight label when selected **/
.optionset li input:checked + label,
.optionset li input[type='radio']:checked + label,
.field.checkbox input:checked + label {
    font-weight: bold;
    border: none;
    color: #808383!important;
    background-color: transparent;
}



/** add active state for checked and unchecked **/
.optionset li input + label:active,
.optionset li input:checked + label:active ,
.optionset li input[type='radio'] + label:active,
.optionset li input[type='radio']:checked + label:active,
.field.checkbox input + label:active,
.field.checkbox input:checked + label:active {
}

/** hover state for label **/
.optionset li:hover input + label,
.optionset li:hover input[type='radio'] + label,
.field.checkbox:hover input + label {
    color: #808383!important;
}

/** standard tickbox **/
.optionset li input + label:after,
.optionset li input[type='radio'] + label:after,
.field.checkbox input + label:after {
    content: '×';
    font-size: 28px;
    position: absolute;
    top: 0px;
    margin-top: -12px;
    left: 0px;
    color: #d3d4b6;
    opacity: 0.66;
    font-weight: normal;
}


/** hover state for tick-box */
.optionset li:hover input + label:after,
.optionset li:hover input[type='radio'] + label:after,
.field.checkbox:hover input + label:after {
    color: #808383;
    opacity: 0.77;
    content: '✔';
}
/** hover state for checked tick-box **/
.optionset li:hover input:checked + label:after,
.optionset li:hover input[type='radio']:checked + label:after,
.field.checkbox:hover input:checked + label:after {
    color: #ffcc1a;
    opacity: 0.77;
    filter: alpha(opacity=77);
}

/* checked state */
.optionset li input:checked + label:after,
.optionset li input[type='radio']:checked + label:after,
.field.checkbox input:checked + label:after {
    content: '✔';
    color: #ffcc1a;
}

/* checked state */
.optionset li input:checked + label:after,
.optionset li input[type='radio']:checked + label:after,
.field.checkbox input:checked + label:after {
    opacity: 1;
    color: #ffcc1a;
}

/* active state */
.optionset li input + label:active:after,
.optionset li input[type='radio'] + label:active:after,
.field.checkbox input + label:active:after {
    color: #ff336d;
}


/**
* password
*/

.typography .confirmedpassword .middleColumn {
    margin-left: 0px;
}

.typography .confirmedpassword .middleColumn a {
    display: block;
}



/**
* readonly
*/

.readonly .middleColumn span {
    display: block;
    padding: 0.7em;
    font-family: Arial, Verdana, sans-serif;
    max-width: 40em;
}


/**
* mobile only!
*
*/

@media (max-width: 960px) {
    .typography .middleColumn li {
        width: 100%;
    }

    .typography .middleColumn,
    .typography .Actions,
    .typography input.action,
    .typography p.ForgotPassword,
    .typography p.checkbox {
        margin-left: 0px!important;
    }
}
