/*=====================================================
  Zap Restaurant
  style.css  (reconstructed / corrected baseline)
=====================================================*/

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

html{
    scroll-behavior:smooth;
    scroll-padding-top:130px;
}

body{
    font-family:'Noto Sans Thai',sans-serif;
    background:#faf8f3;
    color:#333;
    line-height:1.6;
}

/*********************************************
    Navigation
*********************************************/

header{
    position:fixed;
    top:0;
    width:100%;
    z-index:1000;
    background:rgba(20,20,20,.75);
    backdrop-filter:blur(10px);
}

.navbar{
    max-width:1200px;
    margin:auto;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:18px 25px;
}

.logo{
    display:flex;
    align-items:center;
    gap:12px;
    color:white;
    text-decoration:none;
    letter-spacing:1px;
}

.logo .logoMarks{
    display:flex;
    align-items:center;
    gap:8px;
    flex-shrink:0;
}

.logo .logoMark{
    height:52px;
    width:auto;
    display:block;
}

.logoText{
    font-size:2rem;
    font-weight:700;
    line-height:1.1;
}

.logoSub{
    display:block;
    font-size:.95rem;
    color:#ffcf54;
    font-weight:400;
}

.navRight{
    display:flex;
    align-items:center;
    gap:28px;
}

.navMenu{
    display:flex;
    list-style:none;
    gap:28px;
}

.navbar a{
    color:white;
    text-decoration:none;
    transition:.25s;
    font-weight:500;
}

.navbar a:hover{
    color:#ffcf54;
}

/*********************************************
Hero
*********************************************/

.hero{
    position:relative;
    height:100vh;
    overflow:hidden;
    display:flex;
    justify-content:center;
    align-items:center;
    text-align:center;
    color:white;
}

.heroSlide{
    position:absolute;
    inset:0;
    background-size:cover;
    background-position:center;
    opacity:0;
    transition:opacity 2s ease-in-out;
}

.heroSlide.active{
    opacity:1;
}

.hero::after{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.55);
}

.hero-overlay{
    position:relative;
    z-index:2;
}

/*********************************************
Buttons
*********************************************/

.hero-buttons{
    display:flex;
    gap:18px;
    justify-content:center;
    flex-wrap:wrap;
    margin-top:30px;
}

.hero-buttons a{
    padding:16px 34px;
    border-radius:50px;
    text-decoration:none;
    font-weight:600;
    transition:.30s;
    box-shadow:0 8px 25px rgba(0,0,0,.30);
}

.hero-buttons i{
    margin-right:10px;
}

.grab{
    background:#00B14F;
    color:white;
}

.facebook{
    background:#1877F2;
    color:white;
}

.maps{
    background:#f57c00;
    color:white;
}

.hero-buttons a:hover{
    transform:translateY(-4px);
    box-shadow:0 15px 35px rgba(0,0,0,.35);
}

/*********************************************
Sections
*********************************************/

.section{
    padding:90px 25px;
}

.container{
    max-width:1200px;
    margin:auto;
}

.section h2{
    text-align:center;
    color:#8B0000;
    margin-bottom:30px;
    font-size:2.3rem;
}

.section p{
    max-width:950px;
    margin:18px auto;
    font-size:1.1rem;
}

/*********************************************
Gallery (legacy - retained)
*********************************************/

.gallery{
    margin-top:50px;
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:28px;
}

.gallery img{
    width:100%;
    border-radius:18px;
    overflow:hidden;
    display:block;
    box-shadow:0 10px 25px rgba(0,0,0,.18);
    transition:.35s;
}

.gallery img:hover{
    transform:scale(1.04);
}

/*********************************************
Location
*********************************************/

#location{
    background:white;
}

#location a{
    color:#00894c;
    text-decoration:none;
    font-weight:600;
}

/*********************************************
Animations
*********************************************/

.reveal{
    opacity:0;
    transform:translateY(60px);
    transition:all .9s ease;
}

.reveal.active{
    opacity:1;
    transform:translateY(0);
}

/*********************************************
Scrolled Navbar
*********************************************/

header.scrolled{
    background:rgba(15,15,15,.95);
    box-shadow:0 4px 15px rgba(0,0,0,.30);
}

/*********************************************
Top Button
*********************************************/

#topButton{
    position:fixed;
    right:30px;
    bottom:95px;
    width:48px;
    height:48px;
    border:none;
    border-radius:50%;
    background:#8B0000;
    color:white;
    cursor:pointer;
    opacity:0;
    transition:.3s;
    z-index:500;
    font-size:18px;
    line-height:48px;
    box-shadow:0 8px 20px rgba(0,0,0,.3);
}

#topButton.show{
    opacity:1;
}

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

/*********************************************
Floating GrabFood Button
*********************************************/

.floatingGrab{
    position:fixed;
    right:25px;
    bottom:25px;
    background:#00B14F;
    color:white;
    padding:15px 28px;
    border-radius:40px;
    text-decoration:none;
    font-weight:600;
    box-shadow:0 10px 25px rgba(0,0,0,.35);
    transition:.3s;
    z-index:1000;
}

.floatingGrab:hover{
    transform:translateY(-3px);
}

/*********************************************
Food Cards
*********************************************/

.sectionIntro{
    text-align:center;
    margin-bottom:50px;
    color:#666;
    max-width:850px;
    margin-left:auto;
    margin-right:auto;
}

.foodGrid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:35px;
}

.foodCard{
    background:white;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 15px 35px rgba(0,0,0,.12);
    transition:.35s;
}

.foodCard:hover{
    transform:translateY(-8px);
    box-shadow:0 22px 45px rgba(0,0,0,.18);
}

.foodCard img{
    width:100%;
    display:block;
    aspect-ratio:4 / 3;
    object-fit:cover;
}

.foodText{
    padding:25px;
}

.foodText h3{
    color:#8B0000;
    margin-bottom:15px;
    font-size:1.4rem;
}

.foodText p{
    margin:0;
    color:#555;
    font-size:1rem;
}

/*********************************************
Features
*********************************************/

.featureGrid{
    margin-top:50px;
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:30px;
}

.feature{
    background:white;
    padding:35px;
    border-radius:18px;
    text-align:center;
    box-shadow:0 12px 30px rgba(0,0,0,.10);
    transition:.35s;
}

.feature:hover{
    transform:translateY(-8px);
}

.icon{
    font-size:3rem;
    margin-bottom:20px;
}

.feature h3{
    color:#8B0000;
    margin-bottom:15px;
}

/*********************************************
Location Grid
*********************************************/

.locationGrid{
    display:grid;
    grid-template-columns:1fr 1.4fr;
    gap:45px;
    align-items:center;
}

.locationInfo h3{
    margin-top:20px;
    color:#8B0000;
}

.locationButtons{
    margin-top:30px;
    display:flex;
    gap:15px;
    flex-wrap:wrap;
}

#location .locationButtons a{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:12px 26px;
    border-radius:50px;
    text-decoration:none;
    font-weight:600;
    color:white;
    transition:.30s;
    box-shadow:0 6px 18px rgba(0,0,0,.20);
}

.locationButtons a:hover{
    transform:translateY(-3px);
    box-shadow:0 12px 28px rgba(0,0,0,.28);
}

.map iframe{
    width:100%;
    height:420px;
    border:none;
    border-radius:18px;
    box-shadow:0 10px 30px rgba(0,0,0,.15);
}

/*********************************************
Reviews
*********************************************/

.reviewGrid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:30px;
    margin-top:50px;
}

.reviewCard{
    background:white;
    padding:35px;
    border-radius:18px;
    box-shadow:0 12px 30px rgba(0,0,0,.12);
    font-size:1.05rem;
    transition:.3s;
}

.reviewCard:hover{
    transform:translateY(-6px);
}

/*********************************************
CTA
*********************************************/

.cta{
    padding:100px 20px;
    background:#8B0000;
    color:white;
    text-align:center;
}

.cta h2{
    font-size:3rem;
    margin-bottom:20px;
}

.cta p{
    max-width:700px;
    margin:auto auto 40px;
    font-size:1.2rem;
}

/*********************************************
Footer
*********************************************/

footer{
    background:#202020;
    color:white;
    text-align:center;
    padding:45px 20px;
}

footer .copyright,
footer p{
    opacity:.8;
}

/*********************************************
Lead Paragraph
*********************************************/

.lead{
    font-size:1.3rem;
    font-weight:500;
    margin-bottom:30px;
    color:#444;
}

/*********************************************
FAQ
*********************************************/

.faq{
    max-width:900px;
    margin:auto;
}

.faq h3{
    margin-top:35px;
    color:#8B0000;
}

.faq p{
    margin-top:8px;
}

/*********************************************
Language Switcher
*********************************************/

.languageSwitcher{
    display:flex;
    align-items:center;
    color:white;
    font-size:.95rem;
}

.languageSwitcher .langBtn{
    background:none;
    border:0;
    color:rgba(255,255,255,.65);
    text-decoration:none;
    font-weight:600;
    padding:4px 8px;
    cursor:pointer;
    font-family:inherit;
    font-size:inherit;
    transition:color .2s;
}

.languageSwitcher .langBtn:hover{
    color:white;
}

html[lang="th"] .languageSwitcher .langBtn[data-set-lang="th"],
html[lang="en"] .languageSwitcher .langBtn[data-set-lang="en"]{
    color:#ffcf54;
}

/* Real styled divider bar - white on all platforms */
.languageSwitcher .divider{
    display:inline-block;
    width:1px;
    height:1.1em;
    background:white;
    margin:0 4px;
}

/*********************************************
Bilingual content toggle
Elements with data-lang show only when <html lang> matches.
Elements without data-lang are always visible (for content that
exists in only one language).
*********************************************/

html[lang="th"] [data-lang="en"],
html[lang="en"] [data-lang="th"]{
    display:none !important;
}

/*********************************************
Responsive
*********************************************/

@media (max-width:900px){

    .hero h1{
        font-size:3rem;
    }

    .hero h2{
        font-size:1.5rem;
    }

    .hero p{
        font-size:1.1rem;
    }

    .navbar{
        flex-direction:column;
        gap:12px;
        padding:12px 20px;
    }

    .logo .logoMarks{
        gap:6px;
    }

    .logo .logoMark{
        height:40px;
    }

    .logoText{
        font-size:1.6rem;
    }

    .navRight{
        flex-direction:column;
        gap:12px;
    }

    .navMenu{
        flex-wrap:wrap;
        justify-content:center;
        gap:20px;
    }

    .locationGrid{
        grid-template-columns:1fr;
    }
}

@media (max-width:600px){

    .hero{
        background-position:center center;
    }

    .hero-buttons{
        flex-direction:column;
    }

    .hero-buttons a{
        width:260px;
    }

    .logo{
        text-align:center;
    }

    .gallery{
        grid-template-columns:1fr;
    }

    .section{
        padding:70px 18px;
    }
}
