@import url('https://fonts.googleapis.com/css2?family=Anton&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');

:root {

    --font-body: "Roboto", sans-serif;
    --font-secondary: "Anton", sans-serif;

    --accent: #F5E357;
    --light: whitesmoke;
    --dark: #1a1a1a;

    --pad-edge: 80px;

    --border-rad: 12px;
}
/*
font-family: "Anton", sans-serif;
font-family: "Roboto", sans-serif;
*/

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.opacity0 {
    opacity: 0 !important;
}
.off {
    display: none;
}

.material-symbols-outlined {
    font-variation-settings:
    'FILL' 0,
    'wght' 300,
    'GRAD' 0,
    'opsz' 48
}

html, body {
    font-family: var(--font-body);
    font-weight: 400;
    width: 100%;
    height: 100%;
    color: var(--dark);
    background: #1a1a1a;
    overflow-y: auto;
}

h1 {
    margin-bottom: 20px;

    @media only screen and (max-width: 580px) { 
        font-size: 1.125rem;
    }
}

#scroll-container {
    position: relative;
    width: 100%;
    height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
}

section {
    width: 100%;
    height: 100%;
    min-height: 100vh;
    overflow: hidden;
    padding: 80px;

    @media only screen and (max-width: 580px) { 
        padding: 40px;
        height: fit-content;
        min-height: 100%;
    }
}

button {
    font-family: var(--font-body);
    font-size: 1.125rem;
    font-weight: 600;
    text-transform: uppercase;
    padding: 12px 40px;
    cursor: pointer;
    background: var(--accent);
    border: thin solid #1a1a1a;

    -webkit-box-shadow: 4px 4px 8px 0px rgba(0,0,0,0.5);
    -moz-box-shadow: 4px 4px 8px 0px rgba(0,0,0,0.5);
    box-shadow: 4px 4px 8px 0px rgba(0,0,0,0.5);

    position: relative;

    transition: all 0.4s cubic-bezier(0.5, 0, 0.75, 0);

    &.secondary {
        color: white;
        border: thin solid white;

        background: rgba( 255, 255, 255, 0.1 );
        backdrop-filter: blur( 8px );
        -webkit-backdrop-filter: blur( 8px );
    }

    @media only screen and (max-width: 580px) { 
        font-size: 1rem;
    }
}

#hero {
    display: flex;
    background: url(../imgs/dog_lrg.jpg) bottom center no-repeat;
    background-size: cover;

    .wrapper {
        position: relative;
        top: 5vh;
        display: flex;
        flex-direction: column;

        .slogan {
            font-family: "Anton", sans-serif;
            font-size: 6rem;
            color: var(--accent);

            &.small {
                font-size: 1.5rem;
                color: white;
            }

            @media only screen and (max-width: 580px) { 
                font-size: 3rem;
            }
        }

        .text {
            color: white;
            margin-top: 40px;

            @media only screen and (max-width: 580px) { 
                margin-top: 20px;
            }
        }

        .btn-wrapper {
            display: flex;
            gap: 44px;
            margin-top: 40px;

            @media only screen and (max-width: 580px) { 
                flex-direction: column;
                gap: 20px;
            }
        }

        @media only screen and (max-width: 580px) { 
            top: 0;
        }
    }
}

#info {
    background: var(--light);
    display: flex;
    justify-content: center;

    .container {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
        max-width: 1200px;
        height: 100%;


        .wrapper {
            display: grid;
            grid-template-columns: 62% 38%;
            gap: 24px;

            .text {
                font-family: "Anton", sans-serif;
                font-size: 2.5rem;

                @media only screen and (max-width: 580px) { 
                    font-size: 1.5rem;
                }
            }
    
            .price {
                padding: 16px 16px 0px 48px;
                align-self: end;
    
                li {
                    line-height: 2rem;;
                }
            }

            @media only screen and (max-width: 580px) { 
                display: flex;
                flex-direction: column;
            }
        }

        .cards {
            flex-grow: 1;
            display: grid;
            grid-template-columns: repeat(4, calc(25% - 12px));
            gap: 24px;
            width: 100%;
            height: 100%;
            margin-top: 80px;

            @media only screen and (max-width: 1024px) { 
                grid-template-columns: repeat(2, calc(50% - 12px));
                grid-template-rows: repeat(2, calc(50% - 12px));
            }

            @media only screen and (max-width: 580px) { 
                display: flex;
                flex-direction: column;
                margin-top: 20px;
            }

            .card {
                width: 100%;
                height: 100%;
                border-radius: var(--border-rad);
                background: var(--light);
                display: grid;
                grid-template-rows: 50% 50%;

                box-shadow:  14px 14px 24px #dddddd, -14px -14px 24px #ffffff;
                padding: 40px;
                font-family: var(--font-body);
                font-weight: 600;
                font-size: 1.5rem;
                color: #6d7077;

                @media only screen and (max-width: 580px) { 
                    padding: 20px;
                    aspect-ratio: 3 / 2;
                }

                .icon {
                    transform: translateX(100%) translateY(100%) scale(300%);

                    @media only screen and (max-width: 580px) { 
                        transform: translateX(50%) translateY(50%) scale(200%);
                    }
                }
            }

            
        }

        button {
            margin-top: 80px;
            background: rgba( 255, 255, 255, 0.1 );
            backdrop-filter: blur( 8px );
            -webkit-backdrop-filter: blur( 8px );

            -webkit-box-shadow: 4px 4px 8px 0px rgba(0,0,0,0.5);
            -moz-box-shadow: 4px 4px 8px 0px rgba(0,0,0,0.5);
            box-shadow: 4px 4px 8px 0px rgba(0,0,0,0.25);

            @media only screen and (max-width: 580px) { 
                margin-top: 40px;
            }
        }
    }
}

#form {
    color: var(--light);
    display: flex;
    justify-content: center;

    .container {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
        max-width: 1200px;
        height: 100%;

        .text {
            font-size: 1.5rem;
            font-weight: 600;
            white-space: nowrap;
    
            a {
                text-decoration: none;
                color: #0091DB;
                font-size: 1.5rem;
                font-weight: 600;
            }

            @media only screen and (max-width: 580px) { 
                font-size: 1rem;
                white-space: wrap;

                a {
                    font-size: 1.125rem;
                }
            }
        }

        .circles {
            display: flex;
            margin-top: 44px;
            align-items: center;
            opacity: 1;
            transition: all 0.4s cubic-bezier(0.5, 0, 0.75, 0);
            

            .circle {
                width: 80px;
                height: 80px;
                border: 2px solid var(--light);
                border-radius: 50%;
                text-align: center;
                line-height: 76px;
                font-size: 2.5rem;
                font-weight: 600;
                cursor: pointer;

                &[active] {
                    background: var(--light);
                    color: #1a1a1a;
                }

                @media only screen and (max-width: 580px) { 
                    width: 60px;
                    height: 60px;
                    line-height: 56px;
                    font-size: 2rem;
                    font-weight: 500;
                }
            }

            .line {
                width: 44px;
                height: 2px;
                border-top: 2px solid var(--light);
            }
            
        }

        .wrapper {
            width: 100%;
            height: fit-content;
            margin-top: 44px;
            display: flex;
            border-top: 1px solid var(--light);
            overflow-x: hidden;

            .form-page {
                flex: 0 0 100%;
                width: 100% !important;
                height: 100%;
                padding: 40px;
                display: flex;
                flex-direction: column;
                align-items: center;
                position: relative;
                left: 0;
                transition: all 0.4s cubic-bezier(0.5, 0, 0.75, 0);

                @media only screen and (max-width: 580px) { 
                    padding: 0;
                    padding-top: 40px;
                }
            } 
        }

        #reservation-success {
            margin-top: 80px;
            text-align: center;
            font-size: 1.25rem;
        }

        #reservation-error {
            margin-top: 80px;
            text-align: center;
            font-size: 1.25rem;

            a {
                text-decoration: none;
                color: #0091DB;
                font-size: 1.5rem;
                font-weight: 600;
            }

            h2 {
                color: rgb(190, 32, 32);
            }
        }
    }
}

@media only screen and (max-width: 580px) { 
    #form-btn {
        width: 100%;
        margin-top: 24px;
    }
}

/*===========================================================================*/
/*===========================================================================*/
/* INPUT STYLING */
/*===========================================================================*/
/*===========================================================================*/

/* form starting stylings ------------------------------- */
.group { 
    position:relative; 
    margin-bottom:40px; 
    width: 50%;

    @media only screen and (max-width: 1024px) { 
        width: 80%;
    }
    @media only screen and (max-width: 580px) { 
        width: 100%;
    }
}
input         {
    font-size:1.125rem;
    padding:10px 10px 10px 5px;
    display:block;
    width: 100%;
    background: none;
    border:none;
    border-bottom:1px solid #757575;
    color: var(--light);

    @media only screen and (max-width: 580px) { 
        font-size: 1rem;
    }
}
input:focus { outline:none; }

input::placeholder { color: #1a1a1a; }

/* LABEL ======================================= */
label {
    color:#999; 
    font-size: 1rem;
    font-weight:normal;
    position:absolute;
    pointer-events:none;
    left:5px;
    top:10px;
    transition:0.2s ease all; 
    -moz-transition:0.2s ease all; 
    -webkit-transition:0.2s ease all;

    @media only screen and (max-width: 580px) { 
        font-size: 0.875rem;
    }
}
/*input:not(:placeholder-shown) ~ label  */
/* active state */
input:focus ~ label, input:valid ~ label    {
    top:-20px;
    font-size: 0.875rem;
    color:var(--accent);
}

input:optional ~ label{
    color:#999; 
    font-size: 1rem;
    font-weight:normal;
    position:absolute;
    pointer-events:none;
    left:5px;
    top:10px;
    transition:0.2s ease all; 
    -moz-transition:0.2s ease all; 
    -webkit-transition:0.2s ease all;

    @media only screen and (max-width: 580px) { 
        font-size: 0.875rem;
    }
}
input:optional:focus ~ label, input:optional:not(:placeholder-shown) ~ label {
    top:-20px;
    font-size: 0.875rem;
    color:var(--accent);
}


/* BOTTOM BARS ================================= */
.bar  { position:relative; display:block; width:100%; }
.bar:before, .bar:after   {
    content:'';
    height:2px; 
    width:0;
    bottom:1px; 
    position:absolute;
    background:var(--accent);
    transition:0.2s ease all; 
    -moz-transition:0.2s ease all; 
    -webkit-transition:0.2s ease all;
}
.bar:before {
    left:50%;
}
.bar:after {
    right:50%; 
}

/* active state */
input:focus ~ .bar:before, input:focus ~ .bar:after {
    width:50%;
}

/* HIGHLIGHTER ================================== */
.highlight {
    position:absolute;
    height:60%; 
    width:100px; 
    top:25%; 
    left:0;
    pointer-events:none;
    opacity:0.5;
}

/* active state */
input:focus ~ .highlight {
    -webkit-animation:inputHighlighter 0.3s ease;
    -moz-animation:inputHighlighter 0.3s ease;
    animation:inputHighlighter 0.3s ease;
}

/* ANIMATIONS ================ */
@-webkit-keyframes inputHighlighter {
    from { background:var(--accent); }
    to  { width:0; background:transparent; }
}
@-moz-keyframes inputHighlighter {
    from { background:var(--accent); }
    to  { width:0; background:transparent; }
}
@keyframes inputHighlighter {
    from { background:var(--accent); }
    to  { width:0; background:transparent; }
}

/* TEXTAREA ------------------------------- */
.wrapper-comment {
    width: 50%;

    textarea {
        width: 100%;
        height: 100px;
        margin-top: 10px;
        border: thin solid #999;
        background: none;
        font-family: var(--font-body);
        font-size: 1.125rem;
        font-weight:normal;
        color: var(--light);
        padding: 10px;
    }

    @media only screen and (max-width: 1024px) { 
        width: 80%;
    }
    @media only screen and (max-width: 580px) { 
        width: 100%;
        font-size: 1rem;
    }
}

/* NUMBER INPUT ------------------------------- */

@media only screen and (max-width: 580px) { 
    .group-spinner {
        width: 100%;
    }
}

.group-spinner > span {
    font-size: 1.125rem;

    @media only screen and (max-width: 580px) { 
        font-size: 1rem;
    }
}

.group-spinner:nth-of-type(2) {
    margin-top: 24px;
}

.input-number {
    width: 340px;
    height: 120px;
    background: #252525;
    border: 1px solid #999;
    border-radius: var(--border-rad);
    padding: 20px;
    margin-top: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;

    .input-number-btn {
        -webkit-box-shadow: none;
        -moz-box-shadow: none;
        box-shadow: none;

        width: 80px;
        aspect-ratio: 1 / 1;
        border-radius: 50%;
        text-align: center;
        padding: 0;
        cursor: pointer;

        span {
            font-size: 3rem;
            font-weight: bolder;
        }

    }

    .value {
        flex-grow: 1;
        display: flex;
        height: 100%;
        align-items: center;
        justify-content: center;
        flex-direction: column;

        .number {
            flex-grow: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 3rem;
            margin-top: 12px;
        }
        .number-text {
            font-size: 1rem;
            font-weight: 400;
        }
    }

    @media only screen and (max-width: 580px) { 
        width: 100%;
        height: 80px;

        .input-number-btn {
            width: 44px;
    
            span {
                font-size: 2rem;
                font-weight: bolder;
            }
        }

        .value {   
            .number {
                font-size: 2rem;
                margin-top: 12px;
            }
            .number-text {
                font-size: 0.875rem;
            }
        }
    }
}

/* DATE PICKER ------------------------------- */

.group-date { 
    /*position:relative; */
    width: 340px;
    height: fit-content;
    display: flex;
    flex-direction: column;
    margin-top: 24px;
    span {
        font-size: 1.125rem;
    }

    @media only screen and (max-width: 580px) { 
        width: 100%;
        align-self: flex-start;  
    }
}

input[type="date"]{
    background-color: #252525;
    padding: 15px;
    width: 340px;
    font-family: var(--font-body);
    color: var(--accent);
    font-size: 18px;
    border: none;
    outline: none;
    border: 1px solid #999;
    border-radius: var(--border-rad);
    margin-top: 10px;

    @media only screen and (max-width: 580px) { 
        width: 100%;
    }
}
::-webkit-calendar-picker-indicator{
    background-color: var(--accent);
    padding: 5px;
    cursor: pointer;
    border-radius: 3px;
}





/*===========================================================================*/
/*===========================================================================*/
/* LENIS SMOOTH SCROLL*/
/*===========================================================================*/
/*===========================================================================*/
/*
html.lenis, html.lenis body {
    height: auto;
    min-height: 100%;
}

.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

.lenis.lenis-smooth iframe {
    pointer-events: none;
}
*/