:root {
    --color-gray-lightest: #f3f3f3;
    --color-gray-lighter: #fafafa;
    --color-gray-light: red;
    --color-gray: red;
    --color-gray-dark: red;
    --color-gray-darker: #333;
    --color-gray-darkest: #1d1d1d;
    --color-green-light: #f1f7f4;
    --color-green: #2a9740;
    --color-gold: #EFBF04;
    --color-blue: red;
    --color-gray: #736f76;
}

* {
    box-sizing: border-box;
    font-family: Calibri, Arial;

    &:focus-visible {
        outline: var(--color-gold) dotted 2px;
    }
}

body {
    /* background-image: url('/images/hex.svg');
    background-repeat: repeat;
    background-size: 25px 40px; */
    position: relative;
    margin: 0;
    background-color: #181818;

    &::after{
        content: "";
        position: fixed;
        inset: 0;
        pointer-events: none;
        background-image:
            repeating-linear-gradient(45deg, rgba(255,255,255,0.15) 0 1px, transparent 1px 3px),
            repeating-linear-gradient(-45deg, rgba(0,0,0,0.15) 0 1px, transparent 1px 3px);
        opacity: .6;
        mix-blend-mode: overlay;
        z-index: -1;
        }
}

h2 {
    letter-spacing: .05ch;
    color: var(--color-gray-lighter);
}

p {
    margin: 0;
}

button, .button {
    border: none;
    cursor: pointer;
    transition: filter .3s;
    border-radius: .75rem;
    font-size: 1.125rem;

    &:hover {
        filter: brightness(.95);
    }
}

.container {
    padding: clamp(1rem, 4.2667vw, 2rem) clamp(1rem, 4.2667vw, 3rem);
    margin: auto;
}

.foodplanner__form {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    width: 100%;
}

.foodplanner__search-wrapper {
    display: flex;
    width: 100%;
}

.foodplanner__filter-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    width: 100%;

    button {
        height: 2.5rem;
        width: max-content;
    }
}

.foodplanner__fieldset{
    position: relative;
    border: none;
    padding: 0;
    margin: 0;
    width: 100%;
}

.foodplanner__input-label {
    display: block;
    visibility: hidden;
    height: 0;
    width: 0;
    clip: rect(0, 0, 0, 0);
    padding: 0;
    margin: 0;
}

.foodplanner__search{
    height: 2.5rem;
    width: 100%;
    padding: .5rem .75rem;
    border: 1px solid var(--color-gray-darker);
    background-color: var(--color-gray-darker);
    color: var(--color-gray-lighter);
    border-radius: .5rem 0 0 .5rem;
    font-size: 1.125rem;
}

.foodplanner__submit-icon{
    width: 100%;
    height: 100%;
    fill: var(--color-gray-darkest);;
}

.foodplanner__random-icon,
.foodplanner__trash-icon {
    width: 2rem;
    height: 2rem;
    fill: #fff;
}

.foodplan__select-wrapper{
    position: relative;
    &:after {
        content: "";
        display: inline-block;
        width: .7rem;
        height: .7rem;
        background: url("data:image/svg+xml;utf8,<svg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'><path fill='%23fafafa' d='M505.183,123.179c-9.087-9.087-23.824-9.089-32.912,0.002l-216.266,216.27L39.729,123.179c-9.087-9.087-23.824-9.089-32.912,0.002c-9.089,9.089-9.089,23.824,0,32.912L239.55,388.82c4.364,4.364,10.283,6.816,16.455,6.816c6.172,0,12.092-2.453,16.455-6.817l232.721-232.727C514.272,147.004,514.272,132.268,505.183,123.179z'/></svg>") no-repeat center;
        background-size: contain; 
        position: absolute;
        right: .75rem;
        top: 50%;
        transform: translateY(-50%);
    }
}

.foodplanner__select{
    height: 2.5rem;
    padding: .5rem 1.5rem .5rem 1rem;
    width: fit-content;
    border: 1px solid var(--color-gray-darker);
    background-color: var(--color-gray-darker);
    color: var(--color-gray-lighter);
    border-radius: .5rem;
    font-size: 1.125rem;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.foodplanner__submit {
    height: 2.5rem;
    background-color: var(--color-gold);
    border: none;
    border-radius: 0 .5rem .5rem 0;
    padding: .5rem 1rem;
    font-size: 1.125rem;
}

.foodplanner__miscellaneous {
    display: flex;
    margin-top: 2rem;
    gap: 1rem;
}

.button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    text-decoration: none;
    padding: 1rem 1.5rem;
}

.button--blue {
    background-color: #2a8797;
    color: #fff;
    transition: background-color .3s;

    &:hover {
        background-color: #236f7d;
    }
}

.button--green {
    background-color: var(--color-green);
    color: #fff;
    transition: background-color .3s;

    &:hover {
        background-color: var(--color-green);
    }
}

.button--square {
    aspect-ratio: 1;
    padding: .5rem;
}

.button--gray {
    background-color: var(--color-gray-darker);
    color: #fff;
    transition: background-color .3s;

    &:hover {
        background-color: var(--color-gray);
    }
}

/* Results */
.foodplanner__top-row {
    display: flex;
    align-items: start;
    margin-bottom: 1rem;
    border-bottom: 1px solid #3e3e3e;
}

.foodplanner__results-headline {
    margin-top: clamp(3rem, 12.8vw, 5rem);
    margin-bottom: .5rem;
}

.foodplanner__results-count {
    margin-bottom: 1.5rem;
}

.foodplanner__list {
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: 1rem;
}

.foodplanner__recipe-img-name-wrapper {
    display: flex;
    align-items: center;
    gap: .625rem;
}

.foodplanner__list-item {
    list-style-type: none;
    /* padding: 1rem; */
    text-decoration: none;
    font-size: 1rem;
    color: var(--color-gray-lighter);
    background-color: #333333;
    background-image: linear-gradient(#333, #252525);
    display: flex;
    flex-direction: column;
    height: fit-content;
    border-radius: 1rem;
    position: relative;
    overflow: hidden;
}

.foodplanner__recipe-tags{
    display: flex;
    gap: .25rem;
    flex-wrap: wrap;
    font-size: .7rem;
    margin-top: 1rem;
}

.foodplanner__recipe-tag {
    background-color: #181818;
    padding: .2rem .4rem;
    border-radius: 1rem;
    color: var(--color-gray-lighter);
    line-height: 1;
}

.foodplanner__recipe--link {
    display: flex;
    align-items: center;
    text-decoration: none;
    color: #1d1d1d;
    width: fit-content;
    position: absolute;
    top: 0;
    right: 0;
}

.foodplanner__recipe-icon {
    fill: #ececec;
    display: flex;
    padding: .75rem;

    svg {
        transition: transform .3s;
    }

    &:hover {
        svg{
            transform: scale(1.1);
        }
    }
}

.foodplanner__recipe-name {
    width: 100%;
    hyphens: auto;
    font-weight: 600;
    /* margin-bottom: 1.5rem; */
    padding-right: 1rem;
}

.foodplanner__recipe-img{
    height: 8rem;
    transition: height .5s;
    border-radius: .5rem .5rem 0 0;
    object-fit: cover;
    z-index: 2;
}

.foodplanner__recipe-servings {
    font-weight: 600;
}

.foodplanner__servings {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-weight: 600;
    color: var(--color-gray-lighter);
}

.foodplanner__servings-btn {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 1.75rem;
    width: 1.75rem;
    padding: 0;
    border-radius: 50%;
    background-color: var(--color-gray-darker);
    color: var(--color-gray-lighter);
}

.foodplanner__servings-count {
    min-width: 1.5rem;
    text-align: center;
    font-size: 1.125rem;
}

.foodplanner__recipe-description-headline {
    margin-top: 1rem;
    margin-bottom: .25rem;
    font-weight: 600;
}

.foodplanner__details-toggle {
    cursor: pointer;
    border: 2px solid transparent;
    border-radius: 0 0 1rem 1rem;
    transition: border .3s;

    &:open {
        /* border: 2px solid var(--color-gold); */
        /* border-top: transparent; */

        .foodplanner__summary-icon {
            transform: rotate(180deg) translateY(4px);
        }
    }
}

.foodplanner__details-summary {
    position: relative;
    padding: 1rem 2.5rem 1rem 1rem;
    font-size: 1rem;
    list-style: none;
   

    &::-webkit-details-marker{
        display: none;
    }

    .foodplanner__summary-icon{
        fill:  var(--color-gray-lighter);
        transition: transform .3s;
        transform-origin: center;
        width: 1rem;
        position: absolute;
        top: 1.25rem;
        right: 1rem;
    }
}

.foodplanner__recipe-content{
    padding: 0 1rem 1rem;
}

.foodplanner__ingredient-headline {
    margin-top: 1rem;
    margin-bottom: .25rem;
    font-weight: 600;
}

.foodplanner__ingredient-list{
    padding-left: 1.25rem;
    list-style-type: disc;
}

.foodplanner__recipe-button{
    padding: .25rem .75rem;
    border-radius: .5rem;
    margin-top: 1.5rem;
    background-color: #181818;
    color: var(--color-gray-lighter);
    font-size: .9rem;
    transition: background .3s;

    &:hover {
        background-color: var(--color-gray-darkest);
    }
}

/* Popup */
/* .popup {
    width: 20rem;
    border: 2px solid var(--color-gray-dark);
    border-radius: .5rem;
    position: relative;
}

.popup__form {
    display: flex;
    flex-direction: column;
    gap: .5rem;

    input[type="text"] {
        height: 2rem;
        width: 100%;
    }
}

.popup__close {
    position: absolute;
    top: 0;
    right: 0;
    padding: 0;
    margin: 0;
    aspect-ratio: 1;
    width: 2rem;
    border-radius: 0;
    background-color: #fff;
}

.popup__add-ingredient {
    margin-top: .5rem;
    padding: .5rem 1rem;
}

.popup__add {
    margin-top: 1rem;
}

.checkbox-wrapper {
    display: flex;
    gap: .25rem;
    flex-direction: row-reverse;
    width: fit-content;
}

.popup__headline {
    margin-top: 1rem;
}

.popup__ingredients {
    border: none;
    padding: 0;
    margin: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: .5rem;
} */

.visually-hidden {
    position: absolute;
    left: 50%;
    height: 50%;
    width: 1px;
    height: 1px;
    margin: -1px;
    border: 0;
    padding: 0;
    outline: 0;
    outline-offset: 0;
    
    white-space: nowrap;
    clip-path: inset(100%);
    clip: rect(0 0 0 0);
    overflow: hidden;
}

@media screen and (min-width: 64em) {
    .container {
        max-width: 75rem;
    }
}