
/* =========================================
   Hero
   ========================================= */
.hero {
    position: relative;
    height: 100vh;
    min-height: 600px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: hidden;
    &::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient(
            to bottom,
            rgba(128, 128, 128, 0.1) 0%,
            rgba(128, 128, 128, 0.3) 50%,
            rgba(128, 128, 128, 1) 100%
        );
        z-index: -1;
    }
    .bg {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-image: url('../img/fv.jpg');
        background-size: cover;
        background-position: center;
        z-index: -2;
        transform: scale(1.05);
        /* Slight scale for breathing effect */
        animation: heroZoom 20s infinite alternate;
    }

    .content {
        opacity: 0;
        transform: translateY(30px);
        animation: fadeInUp 1s ease 0.5s forwards;

        .copy {
            font-family: var(--font-serif);
            font-size: clamp(2rem, 5vw, 4rem);
            font-weight: 700;
            line-height: 1.4;
            margin-bottom: 0.5rem;
            text-shadow: 0 4px 20px rgba(0, 0, 0, 0.8);
            letter-spacing: 0.05em;
            color: #fff;
        }

        .logo-img {
            max-width: 780px;
            width: 90%;
            margin: 0 auto 2.5rem;
            display: block;
            filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.5));
        }
    }

    .scroll {
        position: absolute;
        bottom: 40px;
        left: 50%;
        transform: translateX(-50%);
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
        font-size: 0.8rem;
        letter-spacing: 0.2em;
        opacity: 0.7;
        color: #fff;
    }

    .scroll::after {
        content: '';
        width: 1px;
        height: 40px;
        background-color: #fff;
        animation: scrollLine 2s infinite cubic-bezier(0.4, 0, 0.2, 1);
    }
}


@keyframes heroZoom {
    0% { transform: scale(1); }
    100% { transform: scale(1.1); }
}

@keyframes fadeInUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes scrollLine {
    0% { transform: scaleY(0); transform-origin: top; }
    50% { transform: scaleY(1); transform-origin: top; }
    50.1% { transform: scaleY(1); transform-origin: bottom; }
    100% { transform: scaleY(0); transform-origin: bottom; }
}

/* =========================================
   Concept
   ========================================= */
.concept {
    .inner {
        display: flex;
        align-items: center;
        gap: 8%;
        .text-area {
            flex: 1;
            .text {
                font-size: 1.1rem;
                margin-bottom: 1.5rem;
                color: var(--color-text-muted);
            }
        }
        .image-area {
            flex: 1;
            position: relative;
            .image-wrapper {
                position: relative;
                border-radius: 8px;
                overflow: hidden;
                box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);
                &::before {
                content: '';
                    position: absolute;
                    top: 0;
                    left: 0;
                    width: 100%;
                    height: 100%;
                    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
                    border-radius: 8px;
                    z-index: 1;
                    pointer-events: none;
                }
                & img {
                    transition: transform var(--transition-slow);
                }
                & img:hover {
                    transform: scale(1.05);
                }
            }
        }
    }
    @media (max-width: 960px) {
    .inner {
        flex-direction: column;
        gap: 40px;
    }
}
}

.features{
    background-color: var(--color-surface);
    .list {
        display: flex;
        gap: 20px;
        justify-content: space-between;
        .card {
            position: relative;
            width: 50%; 
            aspect-ratio: 4 / 3; 
            border-radius: 8px;
            overflow: hidden;
            .img {
                width: 100%;
                height: 100%;
                object-fit: cover; 
                display: block;
            }
            .overlay {
                position: absolute;
                bottom: 0;
                left: 0;
                width: 100%;
                padding: 40px 20px 20px;
                background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.8) 100%);
                color: #fff; 
                box-sizing: border-box;
                .title {
                    margin: 0 0 8px 0;
                    font-size: 1.4rem;
                    font-weight: bold;
                    color: #ffffff; 
                }
                .desc {
                    margin: 0;
                    font-size: 0.95rem;
                    line-height: 1.6;
                    opacity: 0.9;
                }
            }
        }
    }
    @media (max-width: 768px) {
        .list {
            flex-direction: column;
            gap: 20px;
            .card {
                width: 100%;
            }
        }
    }
}

.occasions{

    .occasions-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
        margin-top: 40px;

        .card {
            background-color: #ffffff;
            border-radius: 8px;
            overflow: hidden;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);

            .img-wrapper {
                aspect-ratio: 16 / 9;
                overflow: hidden;
            }
            .img {
                width: 100%;
                height: 100%;
                object-fit: cover;
                transition: transform 0.4s ease;
            }
            .card:hover .img {
                transform: scale(1.05);
            }
            .text {
                padding: 24px 20px;
                text-align: center;

                .title {
                    margin: 0 0 8px 0;
                    font-size: 1.25rem;
                    font-weight: bold;
                    color: #333333;
                }

                .desc {
                    margin: 0;
                    font-size: 0.95rem;
                    color: #666666;
                }
            }


        }

    }

    @media (max-width: 768px) {
    .occasions-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    
    .text {
        padding: 16px;
    }
    }
}




/* =========================================
   Menu
   ========================================= */
.menu {
    background-color: var(--color-surface);

    .menu-grid {
        display: grid;
        /* grid-template-columns: repeat(3, 1fr); */
        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
        gap: 30px;

        .card {
            display: flex;
            flex-direction: column;
            height: 100%;
            background-color: var(--color-bg);
            border-radius: 8px;
            overflow: hidden;
            transition: transform var(--transition-normal), box-shadow var(--transition-normal);
            border: 1px solid var(--color-border);

            .img-wrapper {
                position: relative;
                overflow: hidden;
                aspect-ratio: 4/3;

                & img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                    transition: transform var(--transition-slow);
                }
            }

            .body {
                padding: 24px;
                display: flex;
                flex-direction: column;
                flex-grow: 1;
                .title {
                    font-family: var(--font-serif);
                    font-size: 1.3rem;
                    margin-bottom: 12px;
                }

                .desc {
                    color: var(--color-text-muted);
                    font-size: 0.95rem;
                }
            }
        }

        .card:hover {
            transform: translateY(-8px);
            box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5);
            border-color: rgba(255, 255, 255, 0.1);

            .img-wrapper img {
                transform: scale(1.08);
            }
        }
    }

    .note {
        text-align: right;
        margin-top: 16px;
        font-size: 0.9rem;
        color: var(--color-text-muted);
    }
}



/* =========================================
   Locations
   ========================================= */
.locations{
    .locations-grid {
        display: grid;
        /* This grid rule makes the layout completely fluid and responsive, gracefully wrapping to the next line */
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
        gap: 24px;
                .card {
            display: flex;
            flex-direction: column;
            height: 100%;
            background-color: var(--color-bg);
            border-radius: 8px;
            overflow: hidden;
            transition: transform var(--transition-normal), box-shadow var(--transition-normal);
            border: 1px solid var(--color-border);

            .img-wrapper {
                position: relative;
                overflow: hidden;
                aspect-ratio: 16/9;

                & img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                    transition: transform var(--transition-slow);
                }
            }

            .body {
                padding: 24px;
                display: flex;
                flex-direction: column;
                flex-grow: 1;
                .info {
                    display: flex;
                    align-items: center;
                    gap: 8px;
                    color: var(--color-text-muted);
                    font-size: 0.9rem;
                    margin-top: auto;
                    margin-bottom: 20px;
                }
                .title {
                    font-family: var(--font-serif);
                    font-size: 1.3rem;
                    margin-bottom: 12px;
                }
            }
        }

        .card:hover {
            transform: translateY(-8px);
            box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5);
            border-color: rgba(255, 255, 255, 0.1);

            .img-wrapper img {
                transform: scale(1.08);
            }
        }
    }
}



/* =========================================
   News
   ========================================= */
.news {
    background-color: var(--color-surface);

    .list {
        max-width: 800px;
        margin: 0 auto;
        border-top: 1px solid var(--color-border);

        .item {
            display: flex;
            align-items: center;
            padding: 24px 0;
            border-bottom: 1px solid var(--color-border);
            transition: background-color var(--transition-fast);

            .meta {
                display: flex;
                align-items: center;
                gap: 16px;
                width: 250px;
                flex-shrink: 0;

                .date {
                    color: var(--color-text-muted);
                    font-size: 1rem;
                }

                .category {
                    font-size: 0.8rem;
                    padding: 4px 12px;
                    border-radius: 20px;
                    background-color: var(--color-border);
                    color: var(--color-text-main);
                    font-weight: 500;
                }

                .category[data-cat="info"] {
                    background-color: #333;
                    color: #fff;
                }

                .category[data-cat="menu"] {
                    background-color: #8b0000;
                    color: #fff;
                }

                .category[data-cat="open"] {
                    background-color: #e65100;
                    color: #fff;
                }
            }

            .title {
                font-size: 1.1rem;
                font-weight: 400;
                transition: color var(--transition-fast);
            }
        }

        .item:hover {
            background-color: rgba(255, 255, 255, 0.02);

            .title {
                color: #fff;
            }
        }
    }

    @media (max-width: 768px) {
        .list {
            .item {
                flex-direction: column;
                align-items: flex-start;
                gap: 12px;

                .meta {
                    width: auto;
                }
            }
        }
    }
}