/* color and other variables */
:root {
    --color-white: #ffffff;
    --color-black: #000000;
    --color-grey: #737278;
    --color-light-grey: #dad9de;
    --color-grey-2: #b5b4ba;
    --color-red: #D5001C;

    --header-height: 549px;

    --space-lg: 108px;
    --space-md: 72px;
    --space-sm: 48px;


    /* Font Sizes */
    --font-size-headline: 40px;
    --font-size-subheadline: 21px;
    --font-size-text: 17px;
    --font-size-upload: 25px;
    --font-size-error-message: 14px;
    --font-size-filter: 14px;

    /* Font Weights */
    --font-weight-headline: bold;
    --font-weight-subheadline: bold;
    --font-weight-text: regular;
    --font-weight-upload: regular;
}

@media only screen and (max-width: 1200px) {
    :root {
        --space-lg: 72px;
        --space-md: 48px;
        --space-sm: 28px;
    }
}







/* #################################################################################################### */
/* General Settings */
/* #################################################################################################### */

html {
    /* set reference font size for rem */
    /*font-size: 16px;*/
    font-size: var(--font-size-text);
}

@media only screen and (max-width: 1200px) {
    html {}
}

@media only screen and (max-width: 992px) {
    html {}
}

@media only screen and (max-width: 800px) {
    html {}
}

body {
    background-color: var(--color-white);
    margin-left: auto;
    margin-right: auto;
    position: relative;
    font-family: "Porsche Next", Arial, Helvetica, sans-serif;
    overflow-x: hidden;
}

@media only screen and (min-width: 1200px) {
    .container-lg {
        max-width: 1400px;
    }
}



h1,
h2 {
    font-size: var(--font-size-headline);
    font-weight: var(--font-weight-headline);
}

h3,
h4,
h5,
h6 {
    font-size: var(--font-size-subheadline);
    font-weight: var(--font-weight-subheadline);
}

a,
a:hover {
    color: var(--color-black);
    text-decoration: none;
}


.visible-xs {
    display: none;
}
@media screen and (max-width: 768px) {
    .hidden-xs {
        display: none;
    }
    .visible-xs {
        display: block;
    }
}




/* #################################################################################################### */
/* Header */
/* #################################################################################################### */
.icon-button {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: end;
    cursor: pointer;
}

.icon-button span {
    font-size: var(--font-size-text);
    font-weight: bold;
}

.icon-button img {
    height: 30px;
    margin-left: 11px;
}


/* #################################################################################################### */
/* Header */
/* #################################################################################################### */
.header {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    padding-top: 20px;
}

.header .lang-select .lang-button {
    color: var(--color-light-grey);
    font-size: 0.8rem;
    font-weight: bold;
}

.header .lang-select .lang-button.active {
    color: var(--color-white);
}

.header .lang-select .lang-spacer {
    color: var(--color-light-grey);
    margin-left: 11px;
    margin-right: 11px;
}

.header .logo {
    display: flex;
    align-items: center;
    justify-content: safe center;
}

.header .logo img {
    width: 240px;
}


.header .icon-button span {
    color: var(--color-white);
}

.header .header-content {
    display: flex;
    justify-content: start;
    padding-top: 80px;
    padding-bottom: 100px;
}

.header .header-content img {
    max-height: 30vh;
    max-width: 50vw;
}



/* #################################################################################################### */
/* Intro */
/* #################################################################################################### */
.intro-text {
    margin-top: var(--space-lg);
    margin-bottom: var(--space-sm);
}

.intro-text h1 {
    margin-bottom: var(--space-sm);
}



.image-upload {
    position: relative;
    padding-right: 30px;
}

.image-upload-dropzone {
    margin-bottom: 10px;
    background-color: var(--color-light-grey);
    border-radius: 10px;
    aspect-ratio: 335 / 251;
    display: flex;
    align-items: center;
    justify-content: safe center;
    cursor: pointer;
}

.image-upload-dropzone img {
    width: 75%;
}

.image-upload-button {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    font-size: var(--font-size-upload);
    font-weight: regular;
    cursor: pointer;
    margin-top: 20px;
}
.image-upload-button-label {
    display: flex;
    align-items: center;
}

.image-upload-button img {
    height: 30px;
}



.instructions {
    margin-top: var(--space-lg);
    margin-bottom: var(--space-sm);
}



.send-button {
    width: 100%;
    display: flex;
    justify-content: space-between;
}
.send-button .icon {
    
}






/*
.dropdown button {
    width: 100%;
    background: #000;
    border: 0;
}
.dropdown ul {
    background: #000;
}
.dropdown .dropdown-item {
    color: #fff;
}
.dropdown .dropdown-item:hover {
    background-color: rgba(255,255,255,0.2);
}
*/

/* text inputs */
input[type=text] {
    border-color: var(--color-grey);
    border-radius: 5px;
}

/* dropdowns */
.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) {
    width: 100%;
}

.dropdown-menu {
    margin-left: -1px;
}

.btn-light,
.btn-light:not(:disabled):not(.disabled).active,
.btn-light:not(:disabled):not(.disabled):active,
.show>.btn-light.dropdown-toggle,
.btn-light:hover,
.btn-light:focus,
.btn-light:active {
    color: var(--color-white);
    background-color: var(--color-black);
    border-color: var(--color-black);
}

.dropdown-item.active, .dropdown-item:active {
    background-color: var(--color-black);
    color:  var(--color-white);
}

/* buttons */
.btn-primary {
    color: var(--color-white);
    background-color: var(--color-black);
    border-color: var(--color-black);
}

.btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active,
.show>.btn-primary.dropdown-toggle,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    color: var(--color-white);
    background-color: var(--color-grey);
    border-color: var(--color-grey);
}

.form-col {
    margin-top: 15px;
}

/* checkboxes */
.custom-checkbox {
    height: auto;
}

.custom-checkbox label {
    font-size: var(--font-size-text);
    top: 0.2rem;
}

.custom-control-label::before,
.custom-control-label::after {
    top: 0rem;
    width: 1.25rem;
    min-height: 1.25rem;
    border-color: var(--color-grey);
}

.custom-control-input:checked~.custom-control-label::before {
    color: #fff;
    border-color: var(--color-black);
    background-color: var(--color-black);
}

/* increase padding between checkbox and label */
.custom-checkbox {
    margin-left: 10px;
}
.custom-control-label::before,
.custom-control-label::after {
    margin-left: -10px;
}


.field-error {
    border-color: var(--color-red) !important;
}

.field-error~label {
    color: var(--color-red) !important;
}
.field-error ~ button {
    border: 1px solid var(--color-red) !important;
}

.error-message {
    display: none;
    font-size: var(--font-size-error-message);
    color: var(--color-red);
}



#block-customer_care_accepted,
#block-customer_care_email,
#block-customer_care_phone {
    display: none;
}




/* #################################################################################################### */
/* Gallery */
/* #################################################################################################### */
.gallery {
    margin-top: var(--space-lg);
    margin-bottom: var(--space-lg);
}

.gallery-img {
    position: relative;
    aspect-ratio: 357 / 285;
    background-position: left top;
    background-size: cover;
    background-repeat: no-repeat;
    margin-bottom: 30px;
    border-radius: 10px;
    cursor: pointer;
}
.gallery-img span {
    position: absolute;
    right: 10px;
    top: 10px;
    color: var(--color-white);
    text-shadow: var(--color-black) 1px 0 10px;
}
.gallery-img.hidden {
    display: none;
}


.filter-menu {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    border: 1px solid var(--color-black);
    max-height: 30vh;
    overflow-y: auto;
    z-index: 100;
}

.filter-item {
    padding: 10px;
    background-color: var(--color-white);
    color: var(--color-black);
    font-size: var(--font-size-filter);
    cursor: pointer;
}
.filter-item.active,
.filter-item:hover {
    background-color: var(--color-black);
    color: var(--color-white);
}

.filter-button-default-text,
.filter-button-selection-text,
#gallery_more_btn span {
    font-weight: var(--font-weight-text) !important;
}

#gallery_single_popup .overlay-box {
    position: relative;
    width: auto;
    height: 80vh;
    width: 80vw;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

/* #################################################################################################### */
/* Terms */
/* #################################################################################################### */
.terms-link, .privacy-policy-link, .privacy-external-link {
    cursor: pointer;
    text-decoration: underline;
}
.footer .terms-link {
    text-decoration: none;
}

#terms_popup .container,
#privacy_policy_popup .container {
    height: calc(100vh - 100px);
}

#terms_popup .container,
#privacy_policy_popup .container {
    position: relative;
}


.overlay {
    display: none;
    position: fixed;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.8);
    align-items: center;
    justify-content: safe center;
    z-index: 100;
}

.overlay-box {
    position: relative;
    background-color: var(--color-white);
    border-radius: 10px;
    -webkit-box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.5);
    -moz-box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.5);
    box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.5);
}

.overlay-box .row {
    height: 100%;
    overflow-y: auto;
}

.overlay-box .close-icon {
    position: absolute;
    right: 20px;
    top: 20px;
    width: 30px;
    cursor: pointer;
    z-index: 1000;
}

/* #################################################################################################### */
/* Upload finished */
/* #################################################################################################### */
.uploaded-image-filename {
    display: none;
    align-items: center;
    margin-bottom: -20px;
}
.uploaded-image-filename span {
    color: var(--color-grey-2);
}

.upload-form-complete {
    display: none;
}
.upload-form-complete .form-col {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

#upload-finished {
    
}

#upload-finished .container {
    padding: 50px;
    max-height: 100vh;
    display: flex;
    justify-content: safe center;
    align-items: center;
    flex-direction: column;
}

.upload-finished-image {
    position: relative;
    width: 100%;
    aspect-ratio: 595 / 475;
    margin-bottom: 20px;
    background-position: center;
    background-size: cover;
}

.upload-finished-image .logo {
    position: absolute;
    left: 5%;
    top: 5%;
    width: 20%;
}

.share-controls {
    display: flex;
    justify-content: safe center;
    align-items: center;
    flex-direction: column;
}

.share-icons {
    display: flex;
    justify-content: safe center;
    align-items: center;
}
.share-icons img {
    height: 30px;
    cursor: pointer;
    margin: 10px;
}

.download-for-instagram-container {
    position: absolute;
    border: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    display: flex;
    justify-content: center;
}

.download-for-instagram {
    display: none;
    position: absolute;
    bottom: -40px;
    padding-top: 10px;
    padding-bottom: 10px;
    padding-left: 30px;
    padding-right: 30px;
    background-color: var(--color-white);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-radius: 10px;
    -webkit-box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.5);
    -moz-box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.5);
    box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.5);
}

.instagram-logo {
    height: 35px;
    max-width: 50vw;
    padding-top: 5px;
    padding-bottom: 5px;
}


.download-for-instagram .upload-finished-image {
    width: 250px;
    max-width: 80vw;
    margin-bottom: 0;
}

.instagram-download-link {
    text-decoration: underline;
    cursor: pointer;
}

.instagram-close-icon {
    position: absolute;
    right: 10px;
    top: 10px;
    width: 30px;
    cursor: pointer;
}


/* #################################################################################################### */
/* Footer */
/* #################################################################################################### */
.footer {
    background-color: var(--color-black);
    color: var(--color-white);
    padding-top: var(--space-md);
    padding-bottom: var(--space-md);
    margin-top: var(--space-lg);
}

.footer a {
    color: var(--color-white);
}

.footer .copyright {
    margin-bottom: 10px;
}

.wpml-ls-statics-footer {
    display: none;
}


/* #################################################################################################### */
/* Single Page: Uploads */
/* #################################################################################################### */
#single-uploads h1 {
    margin-top: var(--space-lg);
}

#single-uploads .image-container {
    position: relative;
}

#single-uploads .image-container .image {
    position: relative;
    width: 100%;
}

#single-uploads .image-container .logo {
    position: absolute;
    left: 5%;
    top: 5%;
    width: 20%;
    max-height: 50%
    ;
}