/* FONT */

@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap');


/* VARIABLES */

:root {
    --font: 'Rubik', sans-serif;
    --fa: 'Font Awesome 7 Free';
}


/* TEMPLATE */

hr {
    background: transparent;
    border: 0;
    border-bottom: 3px dashed #eee;
    clear: both;
    height: 0;
    margin: 40px 0;
    padding: 0;
}

sup {
    position: relative;
    vertical-align: middle;
}


/* TOP MENU */

#menu12 {
    column-gap: 25px;
    display: flex;
    font-family: var(--font);
    font-size: 15px;
    justify-content: flex-end;
    margin: 0;
    padding: 0 40px 0 0;
    
    li {
        list-style-type: none;
        
        a {
            color: #dcf9de;
            font-weight: 500;
            
            &:hover {
                color: #fff;
            }
        }
    }
    
    #menuItem62 a {
        color: #ffd8a6;
    }
}

/* COLUMNS */

.columns {
    column-gap: 50px;
    display: flex;
    
    &>div {
        flex: 1;
    }
}


/* HOMEPAGE */

#homeGrid {
    column-gap: 30px;
    display: flex;
    margin: 30px auto;
   
    #homeGrid1 {
        flex: 0 0 250px;
    }
    
    #homeGrid2 {
        flex: 1;
    }
    
    #homeGrid3 {
        flex: 0 0 300px;
    }
}

/* SLIDESHOWS */

#slideshowProducts  {
    box-shadow: 0 2px 5px rgb(150 150 150 / 35%);
    width: 250px;

    li img {
        width: 100%;
    }
}

/* ERROR */

.error {
    background: #ad0707;
    border-radius: 10px;
    color: #fff;
    font-family: var(--font);
    font-size: 15px;
    line-height: 20px;
    font-weight: 600;
    margin: 15px 0 25px 0;
    padding: 20px 30px;

    &:before {
        content: "\f071";
        font-family: var(--fa);
        font-size: 20px;
        margin-right: 25px;
        vertical-align: middle;
    }
}


/* BUTTONS */

#btnDelete {
    bottom: 50px;
    color: #b90f0f;
    cursor: pointer;
    font-weight: 600;
    position: absolute;
    right: 50px;
    text-align: right;
    text-decoration: underline;
}

#btnSubmit,
.blueBtn,
.grayBtn,
.redBtn {
    border: 0;
    border-radius: 20px;
    color: #fff;
    cursor: pointer;
    display: inline-block;
    font-family: var(--font);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: .7px;
    line-height: 1em;
    outline: 0;
    padding: 15px 25px;

    &:visited {
        color: #fff;
    }
    
    i {
        margin-right: 8px;
    }
}

#btnSubmit,
.blueBtn,
.redBtn {
    &:hover,
    &:visited {
        color: #fff;
    }
    
    &:active {
        box-shadow: inset 0 0 10px 0 rgb(0 0 0 / 40%);
        filter: brightness(1);
    }
}

#btnSubmit,
.blueBtn {
    background: #275bc3;
    
    &:hover {
        background: #467be7;
    }    
}

.grayBtn {
    background: #999;
    color: #ddd;
    cursor: not-allowed;
}

.redBtn {
    background: #b90f0f;
    
    &:hover {
        background: #ed3c3c;
    }
}

.btnSm {
    padding: 10px 17px;
}


/* FORM LAYOUT */

.form {
    color: #000;
    font-family: var(--font);
    
    .formSection {
        border-top: 3px dashed #eee;
        margin-top: 30px;
        padding-top: 30px;
        
        .formSectionTitle {
            color: #275bc3;
            font-size: 20px;
            font-style: italic;
            font-weight: 700;
            padding-bottom: 20px;
            text-align: center;
        }
    }    
}

.field {
    display: flex;
    flex-direction: column;
    font-family: var(--font);
    font-size: 15px;
    line-height: 18px;
    padding: 10px 0;
    row-gap: 3px;
    
    &>div:nth-child(1) {
        font-weight: 600;
    }
    
    &.required {
        &>div:nth-child(1) {
            color: #275bc3;
        }        
      
    }
}
    
.formSubmit {
    border-top: 3px dashed #eee;
    margin-top: 30px;
    padding-top: 30px;
    text-align: center;
}


/* FORM FIELDS */

select,
textarea,
input[type=email],
input[type=number],
input[type=password],
input[type=text] {
    background: #f3f3f3;
    border: 1px solid #888;
    border-radius: 2px;
    box-shadow: inset 1px 1px 3px rgb(150 150 150 / 30%);
    box-sizing: border-box;
    color: #000;
    font-family: var(--font);
    font-size: 15px;
    height: 40px;
    padding: 0 10px;
    
    &:focus {
        background: #fff;
        border-color: #0f74c9
        color: #000;
        outline: 0;
    }      
}

input[type=email],
input[type=password],
input[type=text] {
    max-width: 100%;
    width: 500px;
}

input[type=number] {
    font-feature-settings: 'tnum';
    width: 95px;
    
    &::-webkit-outer-spin-button,
    &::-webkit-inner-spin-button {
        -webkit-appearance: none;
        margin: 0;
    }
}

input[type=email],
input[type=password],
input[type=number],
input[type=text] {
    &.field-sm {
        width: 95px;
    }
    
    &.field-md {
        width: 190px;
    }
    
    &.field-lg { 
        width: 450px;
    }
    
    &.field-full {
        margin: 0;
        width: 100%;
    }
}    

select {
    cursor: pointer;
    padding: 0 5px;
}

textarea {
    height: 100px;
    padding: 10px;
    width: 100%;
}

input[type=checkbox],
input[type=radio] {
    accent-color: black;
    cursor: pointer;
    height: 1.5em;
    margin: 0;
    vertical-align: middle;
    width: 1.5em;
    
    &.delete {
        accent-color: #cd0000;
    }
}

label {
    cursor: pointer;
    
    input[type=checkbox],
    input[type=radio] {
        margin: 0 10px 0 0;
    }
    
    &:hover {
        color: black;
    }
    
    &:has(input[type=checkbox]:checked),
    &:has(input[type=radio]:checked) {
        color: black;
        font-weight: 600;
    }
}

.options {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 20px;
    list-style: none;
    margin: 0;
    padding: 0;
    
    li {
        flex-basis: 100%;
        padding: 3px 0;
        overflow-x: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    
    &.options-2 li {
        flex-basis: 420px;
    }
    
    &.options-3 li {
        flex-basis: 250px;
    }
}


/* DIALOG */

body:has(dialog[open]) {
    filter: blur(5px) grayscale(.8);
    overflow: hidden;
}

dialog {
    border: 0;
    border-radius: 20px;
    box-sizing: border-box;
    box-shadow: 0 0 20px rgb(0 0 0 / 40%);
    color: #000;
    font-family: var(--font);
    font-size: 16px;
    line-height: 1.5;
    max-width: 500px;
    min-width: 400px;
    outline: 0;
    padding: 35px;
    
    &.large {
        max-width: 90%;
        width: 650px;
    }

    strong {
        color: #b51313;
    }
    
    .dialogBody {
        max-height: 500px;
        overflow-y: auto;
    }
    
    .dialogBtns {
        margin-top: 30px;
        text-align: right;
        
        button {
            background: #275bc3;
            border: 0;
            border-radius: 20px;
            color: #fff;
            cursor: pointer;
            display: inline-block;
            font-family: var(--font);
            font-size: 16px;
            font-weight: 400;
            line-height: 1;
            outline: 0;
            padding: 15px 25px;
        
            &:hover {
                background: #467be7;
            }
            
            &:active {
                box-shadow: inset 0 0 10px 0 rgb(0 0 0 / 40%);
            }
            
            &.btnDisabled {
                background: #bbb;
                color: #eee;
                cursor: not-allowed;
            }
            
            &.btnRed {
                background: #b51313;
                
                &:hover {
                    background: #d51c1c;
                }
            }
            
            &+button {
                margin-left: 15px;
            }
        }
    }
    
    &&::backdrop {
        background: rgb(100 100 100 / 50%);
    }
}


/* PRODUCT */

#productLang {
    background: #f5f2ee;
    padding: 5px 10px;
    position: absolute;
    right: 0;
    top: 0;
}

#productTop {
    color: #000;
    column-gap: 50px;
    display: flex;
    margin: 30px 0;
    
    &>div:nth-child(1) {
        flex: 0 0 370px;
        
        #productImage {
            max-width: 100%;
        }
        
        #productThumbs {
            column-gap: 15px;
            display: flex;
            justify-content: center;
            margin-top: 20px;
            
            img {
                border: 1px solid #eee;
                cursor: pointer;
            }
        }
    }
    
    &>div:nth-child(2) {
        flex: 1;
        font-family: var(--font);
        font-size: 17px;
        line-height: 25px;
        
        h1 {
            color: #467be7;
            font-size: 26px;
            font-weight: 700;
            margin: 0 0 35px 0;
        }
    }
}

#productPurchase {
    align-items: center;
    background: #f5f2ee;
    border-radius: 10px;
    column-gap: 40px;
    display: flex;
    font-family: var(--font);
    justify-content: center;
    line-height: 35px;
    padding: 20px 0;
    
    &>div {
        flex: 1;
        text-align: center;
    
        &:nth-child(1) {
            color: #009370;
            font-feature-settings: 'tnum';
            font-size: 23px;
            font-weight: 700;
        }
        
        &:nth-child(2) {
            font-weight: 600;
        }
    }
}

#productSpecs {
    color: #888;
    column-gap: 30px;
    display: flex;
    font-family: var(--font);
    font-feature-settings: 'tnum';
    font-size: 14px;
    font-style: italic;
    font-weight: 400;
    justify-content: center;
    margin: 10px 0 20px 0;
}


/* MOBILE */

@media only screen and (max-width: 750px) 
{
    #menu12 {
        #menuItem62 {
            display: none;
        }
    }
    
    #homeGrid {
        flex-direction: column;
        row-gap: 20px;
        
        #homeGrid1,
        #homeGrid2,
        #homeGrid3 {
            flex: 0 0 100%;
            padding: 0 30px;
            text-align: center;
        }
    }
    
    #slideshowProducts {
        margin: 0 auto;
        width: 100%;
    }
    
    #productTop {
        flex-direction: column;
    }
    
    #productSpecs {
        align-items: center;
        flex-direction: column;
    }
}