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

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Poppins', sans-serif;
    background: #f5f7fb;
    color: #333;
    overflow-x: hidden;
}

/* Scrollbar */

::-webkit-scrollbar {
    width: 10px;
}

::-webkit-scrollbar-track {
    background: #e8edf6;
}

::-webkit-scrollbar-thumb {
    background: #1d4ed8;
    border-radius: 20px;
}

a {
    text-decoration: none;
}

img {
    max-width: 100%;
}

section {
    width: 100%;
}

/* HEADER */

header {
    position: relative;
    height: 500px;
    background:linear-gradient(135deg,#123b91 0%, #1b4fb5 50%, #0b224d 100%);
    overflow: hidden;
}

/* Floating circles */

header::before {
    content: "";
    position: absolute;
    width: 350px;
    height: 350px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .08);
    top: -120px;
    left: -100px;
    animation: floatOne 8s infinite ease-in-out;
}

header::after {
    content: "";
    position: absolute;
    width: 250px;
    height: 250px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .05);
    right: -80px;
    bottom: -80px;
    animation: floatTwo 10s infinite ease-in-out;
}

@keyframes floatOne {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(25px);
    }

}

@keyframes floatTwo {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-30px);
    }

}

.overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .15);
}


.logo {
    width: 210px;
    display:block;
    margin:0 auto 30px;
    filter: drop-shadow(0 12px 25px rgba(0, 0, 0, .4));
}

/* HERO */

.hero-content {
    position: relative;
    z-index: 10;
    max-width: 900px;
    margin: 40px auto;
    text-align: center;
    padding: 20px;
    color: white;
    animation: fadeUp 1.2s ease;
}

.hero-content h1 {
    font-size: 58px;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 18px;
}

.hero-content p {
    font-size: 20px;
    line-height: 1.8;
    opacity: .95;
    margin-bottom: 35px;
}

/* Lunch Banner */

.lunch-banner {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 18px 35px;
    background: rgba(255, 255, 255, .18);
    backdrop-filter: blur(14px);
    border-radius: 50px;
    font-size: 18px;
    font-weight: 600;
    box-shadow: 0 12px 35px rgba(0, 0, 0, .25);
}

.lunch-banner span {
    background: #FFD54A;
    padding: 8px 18px;
    border-radius: 30px;
    color: #222;
    font-weight: 700;
}

/* SEARCH */

.search-section {

    position: relative;

    margin-top: -45px;

    z-index: 999;

    padding: 0 20px;

}

.search-box {
    max-width: 800px;
    margin: auto;
    background: white;
    padding: 18px 28px;
    border-radius: 60px;
    display: flex;
    align-items: center;
    gap: 18px;
    box-shadow: 0 15px 35px rgba(0, 0, 0, .12);
    transition: .3s;
}

.search-box:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 45px rgba(0, 0, 0, .18);
}

.search-box i {
    font-size: 22px;
    color: #1d4ed8;
}

.search-box input {
    border: none;
    outline: none;
    width: 100%;
    font-size: 18px;
    font-family: Poppins;
    background: none;
}

/* RESTAURANT GRID */

.restaurants {
    width: 90%;
    max-width: 1600px;
    margin: 70px auto;
    padding: 20px;
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 30px;
}

/* Animation */

@keyframes fadeUp {

    from {
        opacity: 0;
        transform: translateY(40px);

    }

    to {
        opacity: 1;
        transform: translateY(0);

    }

}

/* MOBILE RESPONSIVE */

@media(max-width:768px) {

    header {
        height: 420px;
    }
    .logo {
        width: 170px;
    }
    .hero-content {
        margin-top: 20px;
    }
    .hero-content h1 {
        font-size: 36px;
    }
    .hero-content p {
        font-size: 16px;
    }
    .lunch-banner {
        flex-direction: column;
        padding: 15px 20px;
    }
    .restaurants {
        grid-template-columns: 1fr;
    }
    .restaurant-card{
        min-height:auto;
    }
    .search-box {
        padding: 15px 20px;
    }
}
/* RESTAURANT CARD */

.restaurant-card{
    width:100%;
    min-height: 360px;
    background:#fff;
    border-radius:22px;
    overflow:hidden;
    box-shadow:0 18px 45px rgba(0,0,0,.08);
    transition:.4s ease;
    position:relative;
    opacity:0;
    transform:translateY(50px);
    cursor: pointer;
    padding-top:25px;

}

.restaurant-card.show{
    opacity:1;
    transform:translateY(0);
}

.restaurant-card:hover{
    transform:translateY(-10px);
    box-shadow:0 25px 60px rgba(0,0,0,.18);
}

/* Blue top border */

.restaurant-card::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:6px;
    background:linear-gradient(90deg,#2563eb,#06b6d4);
}

/*CARD HEADER */

.card-header{
    display:flex;
    align-items:center;
    gap:25px;
    padding:25px 25px 0;
}

/* Restaurant Logo */

.restaurant-logo{
    width:90px;
    height:90px;
    object-fit:contain;
}

.restaurant-card:hover .restaurant-logo{

    transform:rotate(8deg) scale(1.08);
}

/* DETAILS */

.restaurant-details{
    flex:1;
}

.restaurant-details h2{
    font-size:28px;
    color:#1f2937;
    margin-bottom:8px;
}

.restaurant-details p{
    color:#6b7280;
    font-size:16px;
    margin-bottom:18px;
}

/* BADGES */

.badges{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
}

.rating{
    background:#16a34a;
    color:#fff;
    padding:7px 14px;
    border-radius:30px;
    font-size:14px;
    font-weight:600;
}

.open{
    background:#e0fce9;
    color:#15803d;
    padding:7px 14px;
    border-radius:30px;
    font-size:14px;
    font-weight:600;
}

/* CARD FOOTER */

.card-footer{

    padding:0 30px 30px;
}

/* Lunch Box */

.time{
    display:flex;
    align-items:center;
    gap:10px;
    background:#f8fafc;
    border-left:5px solid #22c55e;
    padding:15px 18px;
    border-radius:12px;
    margin-bottom:25px;
    font-size:15px;
    color:#374151;
}

.time strong{
    margin-left:auto;
    color:#2563eb;
}

/* BUTTONS */

.buttons{
    display:flex;
    gap:12px;
}

.btn{
    flex:1;
    padding:16px;
    border-radius:12px;
    text-align:center;
    color:#fff;
    font-weight:600;
    transition:.3s;
    position:relative;
    overflow:hidden;
    letter-spacing:.3px;
}

.btn i{
    margin-right:8px;
}

.lunch-btn{
    background:linear-gradient(135deg,#22c55e,#16a34a);
}

.order-btn{
    background:linear-gradient(135deg,#ff7b00,#ff5500);
}

.btn:hover{
    transform:translateY(-3px);
    box-shadow:0 12px 25px rgba(0,0,0,.18);
}

/* Ripple */

.ripple{
    position:absolute;
    border-radius:50%;
    transform:translate(-50%,-50%);
    animation:ripple .6s linear;
    background:rgba(255,255,255,.45);
}

@keyframes ripple{

    from{
    width:0;
    height:0;
    opacity:1;
    }

    to{
    width:350px;
    height:350px;
    opacity:0;

    }
}

/* FOOTER */

footer{
    margin-top:80px;
    background:#123b91;
    color:#fff;
    text-align:center;
    padding:60px 20px;
}

.footer-logo{
    width:170px;
    margin-bottom:20px;
}

footer h3{
    font-size:28px;
    margin-bottom:12px;
}

footer p{
    opacity:.9;
    font-size:16px;
}

/* SCROLL TO TOP */

#topBtn{
    position:fixed;
    bottom:25px;
    right:25px;
    width:55px;
    height:55px;
    border:none;
    border-radius:50%;
    background:#2563eb;
    color:#fff;
    font-size:20px;
    cursor:pointer;
    display:none;
    transition:.3s;
    z-index:999;
    box-shadow:0 12px 25px rgba(0,0,0,.25);
}

#topBtn:hover{
    background:#ff6600;
    transform:scale(1.1);
}

/* MOBILE */

@media(max-width:1200px){

.card-header{
    flex-direction:column;
    text-align:center;
}

.restaurant-logo{
    width:90px;
    height:90px;
}

.restaurant-details h2{
    font-size:24px;
}

.buttons{
    flex-direction:column;
}

.time{
    flex-direction:column;
    align-items:flex-start;
}

.time strong{
    margin-left:0;
    margin-top:8px;

}
}
/* Location badge */
.location-badge{
    position:absolute;
    top:12px;
    right:15px;

    background:#f8fafc;
    border:1px solid #e2e8f0;

    color:#374151;

    padding:8px 14px;

    border-radius:25px;

    font-size:12px;
    font-weight:700;

    display:flex;
    align-items:center;
    gap:6px;

    z-index:50;
}

.location-badge i{
    color:#ef4444;
}
