@import url(//fonts.googleapis.com/css?family=Titillium+Web:400,700);

/* General styles */

a {
    color: inherit;
    text-decoration: none;
}

body {
    display: -ms-flexbox; display: -webkit-box; display: -webkit-flex; display: flex;
    -ms-flex-direction: column; -webkit-box-orient: vertical; -webkit-flex-direction: column; flex-direction: column;
    -webkit-box-align: center;

    min-height: 100vh;

    margin: 0;
    padding: 0;

    font-size: 1.5rem;
    font-family: 'Titillium Web', sans-serif;
}

button,
.button {

    box-sizing: border-box;
    width: auto;
    border: none;
    margin-top: 1em; margin-bottom: 1em;
    padding: .5em;

    font-size: inherit;
    font-family: inherit;


    cursor: pointer;
}
.button {
    display: table;
}
button:active,
.button:active {
    background-color: black;
    color: white;
}

.button_blue {
    background-color: rgb(0, 52, 102);
    color: white;
}

.button_purple {
    background-color: rgb(92, 78, 129);
    color: white;
}
.button_red {
    background-color: rgb(102, 0, 51);
    color: white;
}

.button_centered {
    margin-left: auto; margin-right: auto;
}

.centered-column h1 {
    margin: 0 0 3rem;
    font-weight: normal;

    text-align: center;
}
h1.message {
    max-width: 80%;

    margin-top: 8rem;
    padding: 1em;

    background: rgba(0, 0, 0, .5);

    line-height: 1;

    text-align: center;
}

h1.message:after {
    content: '';

    display: block;
    width: 100%;

    border-bottom: 1px solid white;
}
h2 {
    font-weight: normal;
    text-transform: uppercase;
}

input:not([type=checkbox]):not([type=radio]),
select,
textarea {
    /*-webkit-appearance: none;*/
    display: block;

    width: 100%;

    margin-bottom: 1em;
    padding: .5em;
    box-sizing: border-box;

    border: 1px solid #000;
    border-radius: 0;

    background-color: #fff;

    font-family: inherit;
    font-size: inherit;
}

fieldset {
    margin-bottom: 1rem;
    padding: 0;

    border: none;
}

label {
    cursor: pointer;
}

legend {
    margin: 0;
    padding: 0;
}

[type=checkbox],
[type=radio] {
    display: none;
}
[type=checkbox] + label,
[type=radio] + label {
    display: block;
    overflow: hidden;

    line-height: 100%;
}
[type=checkbox]:invalid + label,
[type=radio]:invalid + label {
    color: rgb(102, 0, 51);
}
[type=checkbox] + label:before,
[type=radio] + label:before {
    margin-right: .5rem;

    font-size: 3rem;
    line-height: 1;
}
[type=checkbox] + label:before {
    content: '☐';
}
[type=checkbox]:checked + label:before {
    content: '☑';
}
[type=radio] + label:before {
    content: '○';
}
[type=radio]:checked + label:before {
    content: '◉';
}

main {
    width: 100%;/* Patch for Safari 6.1 */
    -ms-flex: 1 1 auto; -webkit-flex: 1 1 auto; flex: 1 1 auto;

    display: -ms-flexbox; display: -webkit-box; display: -webkit-flex; display: flex;
    -ms-flex-direction: column; -webkit-box-orient: vertical; -webkit-flex-direction: column; flex-direction: column;
    -ms-flex-align: center; -webkit-box-align: center; -webkit-align-items: center; align-items: center;
    -ms-flex-pack: start; -webkit-box-pack: flex-start; -webkit-justify-content: flex-start; justify-content: flex-start;

    padding: 8rem 0;

    color: white;
}
main.home {
    -ms-flex-pack: center; -webkit-box-pack: center; -webkit-justify-content: center; justify-content: center;
    padding: 0;
}

nav.visitor {
    width: 100%;/* Patch for Safari 6.1 */
}
nav.visitor > ul {
    display: -ms-flexbox; display: -webkit-box; display: -webkit-flex; display: flex;
    -ms-flex-pack: justify; -webkit-box-pack: justify; -webkit-justify-content: space-between; justify-content: space-between;

    width: 100%;
    margin: 0;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, .5);

    background-color: #eee;
    background-image: url('isotipo.svg'), url('logotipo.svg');
    background-position: 90px, 150px;
    background-repeat: no-repeat, no-repeat;
    background-size: 3rem, 9rem;

    font-size: 2rem;

    list-style: none;
}
nav.visitor > ul > li {
    padding: 0 15px;
}
nav.visitor > ul > :first-child {
    border-right: 1px solid black;
}
nav.visitor > ul > :last-child {
    border-left: 1px solid black;
}
nav.visitor > ul > li > a:active {
    background-color: transparent;
    color: #bbb;
}
nav.visitor > ul > li > a > img {
    vertical-align: middle;
}
.without-margin {
    font-size: 2rem;
    font-weight: normal;

    text-align: center;
}

p {
    margin: 0 0 1em;

    line-height: 1.5;
    text-align: justify;
}

.background-1 {
    background-image: url('backgrounds/1.jpeg');
    background-repeat: no-repeat;
    background-position: bottom right;
    background-size: cover;
    background-attachment: fixed;
}
.background-2 {
    background-image: url('backgrounds/2.jpeg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-attachment: fixed;
}
.background-3 {
    background-image: url('backgrounds/3.jpeg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-attachment: fixed;
}
.background-4 {
    background-image: url('backgrounds/4.jpeg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-attachment: fixed;
}
.background-5 {
    background-image: url('backgrounds/5.jpeg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-attachment: fixed;
}
.background-6 {
    background-image: url('backgrounds/6.jpeg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-attachment: fixed;
}
.background-plain {
    background-color: rgb(245, 242, 235);
}
.background-plain .centered-column {
    padding-bottom: 0; padding-top: 0;

    background: url('backgrounds/isotipo.png') no-repeat right bottom, transparent;
}
.background_semi-black {
    padding: 2rem;

    background-color: rgba(0, 0, 0, .5);
    color: #fff;
}

/* Modules */

footer > p {
    text-align: center;
}
footer > :last-child {
    margin-bottom: 0;
}

form {
    min-width: 22rem;
}
form > :last-child {
    margin-bottom: 0;
}

label[for=bicubic-customer-club] {/* label cancels specificity of other rules */
    display: none;
}

.bar-separated-links {
    display: -ms-flexbox; display: -webkit-box; display: -webkit-flex; display: flex;

    width: auto;
    margin: 0 auto;
    padding: 0;

    list-style: none;
}
.bar-separated-links > * {
    display: block;

    padding: 0 1rem;
}
.bar-separated-links > li:not(:first-child) {
    border-left: 1px solid;
}

#bicubic-review-rating {
}
#bicubic-review-rating > label {
    box-sizing: border-box;
    width: 20%;

    text-align: center;

    float: left;
}
#bicubic-review-rating > label:before {
    content: '';

    display: block;
    width: 67px;
    height: 67px;
    margin: 0 auto;

    background-image: url('../comments/spritesheet.png');
    background-repeat: no-repeat;

}
#bicubic-review-rating > legend {
    margin-bottom: 1rem;
}
[for=bicubic-review-rating-lang_verybad]:before {
    background-position: -469px 0px;
}
:checked + [for=bicubic-review-rating-lang_verybad]:before {
    background-position: -402px 0px;
}
[for=bicubic-review-rating-lang_verygood]:before {
    background-position: -603px 0px;
}
:checked + [for=bicubic-review-rating-lang_verygood]:before {
    background-position: -536px 0px;
}
[for=bicubic-review-rating-lang_regular]:before {
    background-position: -335px 0px;
}
:checked + [for=bicubic-review-rating-lang_regular]:before {
    background-position: -268px 0px;
}
[for=bicubic-review-rating-lang_good]:before {
    background-position: -201px 0px;
}
:checked + [for=bicubic-review-rating-lang_good]:before {
    background-position: -134px 0px;
}
[for=bicubic-review-rating-lang_bad]:before {
    background-position: -67px 0px;
}
:checked + [for=bicubic-review-rating-lang_bad]:before {
    background-position: 0px 0px;
}

.centered-column {
    width: 37em;
    max-width: 100%;
    box-sizing: border-box;

    padding: 2em;

    background: rgba(255, 255, 255, .7);
    color: black;
}
.centered-column h2 {
    margin: 0;
}


.club_sign-up {
    display: block;

    padding-right: -webkit-calc(130px + 2em) !important;
    padding-right: calc(130px + 2em) !important;

    background:
	url('../club/challa/1.png') no-repeat 100% 2em,
	url('../club/challa/2.png') no-repeat 100% 35%,
	url('../club/challa/3.png') no-repeat 100% 63%,
	url('../club/challa/4.png') no-repeat 100% 93%
}

.comment {
    border-bottom: 1px solid white;
    margin-bottom: 1em;
}
.comment > footer {
    background-repeat: no-repeat;
    background-position: center right;
    background-size: contain;

    font-size: 1.1em;
}
.comment > footer > b {
    text-transform: uppercase;
}
.rating_bad {
    background-image: url('../comments/icons/rating_bad-selected.svg');
}
.rating_good {
    background-image: url('../comments/icons/rating_good-selected.svg');
}
.rating_regular {
    background-image: url('../comments/icons/rating_regular-selected.svg');
}
.rating_very-bad {
    background-image: url('../comments/icons/rating_very-bad-selected.svg');
}
.rating_very-good {
    background-image: url('../comments/icons/rating_very-good-selected.svg');
}

#errormessage {
    max-width: 33em;
}
.flex_centered-content {
    -ms-flex-pack: center; -webkit-box-pack: justify; -webkit-justify-content: center; justify-content: center;
}
.flex_right-content {
    -ms-flex-pack: end; -webkit-box-pack: end; -webkit-justify-content: flex-end; justify-content: flex-end;
}
.flex_stack {
    display: -ms-flexbox; display: -webkit-box; display: -webkit-flex; display: flex;
    -ms-flex-direction: column; -webkit-box-orient: vertical; -webkit-flex-direction: column; flex-direction: column;
}
.flex_row {
    display: -ms-flexbox; display: -webkit-box; display: -webkit-flex; display: flex;

    -ms-flex-align: center; -webkit-box-align: center; -webkit-align-items: center; align-items: center;
    -ms-flex-direction: row; -webkit-box-orient: horizontal; -webkit-flex-direction: row; flex-direction: row;
}
.flex_row > * {
    margin: 0 1em;
}


.keyboard {
    display: -ms-flexbox; display: -webkit-box; display: -webkit-flex; display: flex;
    -ms-flex-pack: end; -webkit-box-pack: end; -webkit-justify-content: flex-end; justify-content: flex-end;

    margin: 0;
    padding: 1rem 0;

    list-style: none;

    background-color: rgba(0, 0, 0, .1);
    color: white;

    position: absolute; left: 0;
}
.keyboard > li {
    display: inline;

    padding: 0 1rem;
}

/* TODO: Move to .bar-separated-links */
.languages {
    display: -ms-flexbox; display: -webkit-box; display: -webkit-flex; display: flex;
    -ms-flex-pack: end; -webkit-box-pack: end; -webkit-justify-content: flex-end; justify-content: flex-end;

    margin: 0;
    padding: 1rem 0;

    list-style: none;

    background-color: rgba(0, 0, 0, .1);
    color: white;

    position: absolute; right: 0;
}
.languages > li {
    display: inline;

    padding: 0 1rem;
}
.languages > li:not(:first-child) {
    border-left-style: solid;
    border-left-width: 1px;
}
.languages > li > a:active {
    background-color: transparent;
    color: black;
}

.last-comments {
    padding: 1rem 2rem;

    background-color: rgba(0, 0, 0, .4);
    color: white;
}

.logo_vertical {
    margin: 0;

    height: 260px;

    text-align: center;
}
.logo_vertical > img {
    height: 100%;
}

@-webkit-keyframes spin {
    to { -webkit-transform: rotate(1turn); }
}
@keyframes spin {
    to { transform: rotate(1turn); }
}

#throbber {
    display: none;

    -ms-flex-align: center; -webkit-box-align: center; -webkit-align-items: center; align-items: center;
    -ms-flex-pack: center; -webkit-box-pack: center; -webkit-justify-content: center; justify-content: center;

    width: 100%;
    height: 100%;

    background-color: rgba(0, 0, 0, .8);

    position: fixed;
    top: 0;
    left: 0;
}
#throbber > div {
    position: relative;
    display: inline-block;
    width: 5em;
    height: 5em;
    margin: 0 .5em;
    font-size: 12px;
    text-indent: 999em;
    overflow: hidden;
    -webkit-animation: spin 1s infinite steps(8); animation: spin 1s infinite steps(8);
}
#throbber > div:before,
#throbber > div:after,
#throbber > div > div:before,
#throbber > div > div:after {
    content: '';
    position: absolute;
    top: 0;
    left: 2.25em; /* (container width - part width)/2  */
    width: .5em;
    height: 1.5em;
    border-radius: .2em;
    background: #eee;
    box-shadow: 0 3.5em #eee; /* container height - part height */
    -webkit-transform-origin: 50% 2.5em; transform-origin: 50% 2.5em; /* container height / 2 */
}
#throbber > div:before {
    background: #555;
}

#throbber > div:after {
    -webkit-transform: rotate(-45deg); transform: rotate(-45deg);
    background: #777;
}

#throbber > div > div:before {
    -webkit-transform: rotate(-90deg); transform: rotate(-90deg);
    background: #999;
}

#throbber > div > div:after {
    -webkit-transform: rotate(-135deg); transform: rotate(-135deg);
    background: #bbb;
}

.visitor-apps {
    display: -ms-flexbox; display: -webkit-box; display: -webkit-flex; display: flex;
    -ms-flex-pack: center; -webkit-box-pack: center; -webkit-justify-content: center; justify-content: center;

    width: 100%;

    margin: 4rem 0;
    padding: 2rem 0;

    list-style: none;
}
.visitor-apps > li {
    width: 15rem;
}
.visitor-apps > li > a {
    display: block;
    height: 100%;

    padding: 0 1rem;

    position: relative;

    line-height: 100%;

    text-align: center;
    text-transform: uppercase;
}
.visitor-apps > li > a:before {/* Circular and clickeable image */
    content: '';
    display: block;
    width: 12rem;
    height: 12rem;

    margin-bottom: 2em;

    border-radius: 7rem;
    border-style: solid;
    border-width: .5rem;
    box-shadow: 0 0 1px white;	

    background-clip: padding-box;
    background-position: center top;
    background-size: 12rem;
}
.visitor-apps > li > a:active,
.visitor-apps > li > a:active:before {
    border-color: black;

    background-color: transparent;
    box-shadow: 0 0 1px black;	
}
.visitor-apps > li:not(:first-child) > a:after {/* Vertical line that separates text */
    content: '';
    width: 1px;
    height: -webkit-calc(100% - 15rem);
    height: calc(100% - 15rem);

    border-left: 1px solid white;

    position: absolute;
    left: 0;
    bottom: 0;
}
.club:before {
    background-image: url('../home/icons/app_club.jpeg');
}
.comments:before {
    background-image: url('../home/icons/app_comments.jpeg');
}
.tour:before {
    background-image: url('../home/icons/app_tour.jpeg');
}

input.status_error,
select.status_error,
textarea.status_error {
}

input.status_loading,
select.status_loading,
textarea.status_loading {
    border-color: rgb(253,249, 231);
}

input.status_valid,
select.status_valid,
textarea.status_valid {
}

input.status_warning,
select.status_warning,
textarea.status_warning{
    border-color: rgb(133, 51, 46);
}

.checkresultok {
    color: green;
    font-style: italic;
}
.checkresultnotok {
    color: red;
    font-style: italic;
}

.underline {
    text-decoration: underline;
}