/* New Larvik — Premium Indian Restaurant CSS */
:root{
  --nl-green:#0d3b2e;
  --nl-green-2:#0f4a39;
  --nl-gold:#c9a24b;
  --nl-gold-2:#e6c56a;
  --nl-orange:#e67a2b;
  --nl-cream:#f7f1e3;
  --nl-white:#ffffff;
  --nl-ink:#1a1a1a;
  --nl-muted:#6b7280;
  --nl-shadow:0 20px 60px rgba(13,59,46,.18);
  --nl-radius:18px;
  --nl-font-sans:'Poppins',system-ui,sans-serif;
  --nl-font-serif:'Playfair Display',Georgia,serif;
}
*{box-sizing:border-box}
html,body{scroll-behavior:smooth}
body{font-family:var(--nl-font-sans);color:var(--nl-ink);background:var(--nl-cream);line-height:1.6;margin:0}
h1,h2,h3,h4{font-family:var(--nl-font-serif);color:var(--nl-green);letter-spacing:-.01em}
h1{font-size:clamp(2.4rem,5vw,4.4rem);line-height:1.05}
h2{font-size:clamp(1.8rem,3.5vw,2.8rem)}
a{color:var(--nl-green);text-decoration:none}
a:hover{color:var(--nl-orange)}
img{max-width:100%;height:auto}

.container-nl{max-width:1240px;margin:0 auto;padding:0 20px}

/* ---------- Promo strip ---------- */
.promo-strip{background:var(--nl-orange);color:#fff;text-align:center;padding:10px 12px;font-weight:600;font-size:.95rem}
.promo-strip .fa-tag{margin-right:8px}

/* ---------- Navbar ---------- */
.nl-nav{background:var(--nl-green);color:#fff;position:sticky;top:0;z-index:1000;box-shadow:var(--nl-shadow)}
.nl-nav .container-nl{display:flex;align-items:center;justify-content:space-between;padding:2px 20px}
.nl-brand{font-family:var(--nl-font-serif);font-size:1.7rem;color:#fff;display:flex;align-items:center;gap:10px}
.nl-brand small{font-family:var(--nl-font-sans);font-size:.65rem;letter-spacing:.35em;color:var(--nl-gold-2);text-transform:uppercase;display:block;line-height:1}
.nl-brand .logo-dot{width:38px;height:38px;border-radius:50%;background:var(--nl-gold);display:inline-flex;align-items:center;justify-content:center;color:var(--nl-green)}
.nl-menu{list-style:none;display:flex;gap:26px;margin:0;padding:0}
.nl-menu a{color:#e8f0ec;font-weight:500;padding:6px 0;position:relative}
.nl-menu a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--nl-gold);transition:width .3s}
.nl-menu a:hover::after,.nl-menu a.active::after{width:100%}
.nl-menu a:hover{color:var(--nl-gold-2)}
.nl-nav-cta{display:flex;gap:10px}
.nl-toggle{background:none;border:0;color:#fff;font-size:1.4rem;display:none}
@media(max-width:960px){
  .nl-menu{display:none}
  .nl-toggle{display:block}
  .nl-nav.open .nl-menu{display:flex;flex-direction:column;background:var(--nl-green-2);position:absolute;top:100%;left:0;right:0;padding:16px;gap:10px}
  .nl-nav-cta{display:none}
}
/*----------- Logo --------*/
.nl-brand{
    display:flex;
    align-items:center;
    gap:15px;
    text-decoration:none;
}

.site-logo{
    width:150px;
    height:100px;
    object-fit:cover;
    display:block;
}

.brand-text{
    display:flex;
    flex-direction:column;
}

.brand-title{
    font-size:42px;
    font-family:'Playfair Display', serif;
    color:#fff;
    line-height:1;
}

.brand-text small{
    color:#d8b15a;
    text-transform:uppercase;
    letter-spacing:4px;
    font-size:12px;
}

/*-------------Chef------------*/

.team-section{
    background:#faf8f3;
}

.team-grid{
    display:flex;
    flex-direction:column;
    gap:70px;
    margin-top:60px;
}

.team-card{
    display:grid;
    grid-template-columns:420px 1fr;
    gap:50px;
    align-items:center;
}

.team-card.reverse{
    grid-template-columns:1fr 420px;
}

.team-card.reverse .team-image{
    order:2;
}

.team-card.reverse .team-content{
    order:1;
}

.team-image img{
    width:100%;
    border-radius:25px;
    box-shadow:0 20px 50px rgba(0,0,0,.15);
    transition:.4s;
}

.team-image img:hover{
    transform:scale(1.03);
}

.team-role{
    display:inline-block;
    background:#d4af37;
    color:#fff;
    padding:8px 18px;
    border-radius:30px;
    font-size:13px;
    font-weight:600;
    letter-spacing:1px;
    text-transform:uppercase;
    margin-bottom:18px;
}

.team-content h3{
    font-size:42px;
    color:#123524;
    margin-bottom:15px;
    font-family:'Playfair Display',serif;
}

.team-exp{
    color:#d97706;
    font-weight:600;
    margin-bottom:20px;
}

.team-content p{
    line-height:1.9;
    color:#555;
    margin-bottom:18px;
}

.team-highlights{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:25px;
}

.team-highlights span{
    background:#fff;
    border:1px solid #e8e8e8;
    padding:10px 18px;
    border-radius:30px;
    font-size:14px;
    font-weight:600;
}

@media(max-width:992px){

.team-card,
.team-card.reverse{

    grid-template-columns:1fr;
}

.team-card.reverse .team-image,
.team-card.reverse .team-content{

    order:unset;
}

.team-content h3{

    font-size:32px;
}

}

/* ---------- Buttons ---------- */
.btn-nl{display:inline-flex;align-items:center;gap:8px;padding:12px 26px;border-radius:999px;font-weight:600;border:0;cursor:pointer;transition:transform .25s,box-shadow .25s,background .25s;font-size:.95rem}
.btn-nl.primary{background:var(--nl-gold);color:var(--nl-green)}
.btn-nl.primary:hover{background:var(--nl-gold-2);transform:translateY(-2px);box-shadow:0 12px 30px rgba(201,162,75,.4)}
.btn-nl.outline{background:transparent;color:#fff;border:2px solid var(--nl-gold)}
.btn-nl.outline:hover{background:var(--nl-gold);color:var(--nl-green)}
.btn-nl.orange{background:var(--nl-orange);color:#fff}
.btn-nl.orange:hover{background:#c66518;transform:translateY(-2px)}
.btn-nl.dark{background:var(--nl-green);color:#fff}
.btn-nl.dark:hover{background:var(--nl-green-2)}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:88vh;color:#fff;display:flex;align-items:center;overflow:hidden;background:linear-gradient(135deg,#0d3b2e 0%,#0f4a39 55%,#0a2d24 100%)}
.hero::before{content:"";position:absolute;inset:0;background:url('https://images.unsplash.com/photo-1585937421612-70a008356fbe?w=1800&q=80') center/cover;opacity:.22;filter:sepia(.2)}
.hero-grid{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:50px;align-items:center;padding:80px 0 100px;z-index:1}
.hero h1{color:#fff}
.hero h1 span{color:var(--nl-gold-2);font-style:italic}
.hero p.tagline{color:var(--nl-gold-2);font-size:.85rem;letter-spacing:.4em;text-transform:uppercase;margin-bottom:8px}
.hero p.lead{color:#e6dcc4;font-size:1.15rem;max-width:520px;margin:22px 0 32px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.hero-visual{position:relative}
.hero-visual .plate{aspect-ratio:1;border-radius:50%;background:url('https://images.unsplash.com/photo-1631452180519-c014fe946bc7?w=900&q=80') center/cover;box-shadow:0 40px 80px rgba(0,0,0,.5);border:6px solid var(--nl-gold);animation:spin 40s linear infinite}
.hero-visual .badge{position:absolute;bottom:20px;left:-10px;background:var(--nl-orange);color:#fff;padding:14px 22px;border-radius:16px;font-weight:700;box-shadow:0 20px 40px rgba(230,122,43,.4);transform:rotate(-6deg)}
.hero-visual .badge b{font-size:1.6rem;display:block;font-family:var(--nl-font-serif)}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;padding:60px 0} .hero-visual{max-width:340px;margin:0 auto}}

/* ---------- Sections ---------- */
.section{padding:90px 0}
.section-title{text-align:center;margin-bottom:60px}
.section-title small{color:var(--nl-orange);letter-spacing:.4em;text-transform:uppercase;font-size:.8rem;font-weight:600}
.section-title h2{margin:8px 0 12px}
.section-title p{color:var(--nl-muted);max-width:620px;margin:0 auto}

/* ---------- Cards / Menu ---------- */
.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:26px}
.food-card{background:#fff;border-radius:var(--nl-radius);overflow:hidden;box-shadow:0 8px 24px rgba(13,59,46,.08);transition:transform .35s,box-shadow .35s;display:flex;flex-direction:column}
.food-card:hover{transform:translateY(-6px);box-shadow:var(--nl-shadow)}
.food-card .thumb{aspect-ratio:4/3;background:linear-gradient(135deg,#0d3b2e,#1a5d47);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--nl-gold);font-size:3.5rem}
.food-card .thumb img{width:100%;height:100%;object-fit:cover}
.food-card .badges{position:absolute;top:10px;left:10px;display:flex;gap:6px}
.food-card .badge-veg,.food-card .badge-nonveg{width:22px;height:22px;border:2px solid #fff;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;background:#fff}
.food-card .badge-veg::after{content:"";width:10px;height:10px;background:#2ecc71;border-radius:50%}
.food-card .badge-nonveg::after{content:"";width:10px;height:10px;background:#c0392b;border-radius:50%}
.food-card .flag-special,.food-card .flag-chef{position:absolute;top:10px;right:10px;background:var(--nl-orange);color:#fff;padding:4px 10px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.food-card .flag-chef{background:var(--nl-gold);color:var(--nl-green)}
.food-card .body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.food-card h3{font-family:var(--nl-font-serif);font-size:1.25rem;margin:0;color:var(--nl-green)}
.food-card .desc{font-size:.9rem;color:var(--nl-muted);flex:1}
.food-card .foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.price{color:var(--nl-orange);font-weight:700;font-family:var(--nl-font-serif);font-size:1.25rem}
.spice{color:#c0392b;letter-spacing:2px}
.spice.mild{color:#27ae60}

/* ---------- About / Chef ---------- */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.about-grid img{border-radius:var(--nl-radius);box-shadow:var(--nl-shadow)}
@media(max-width:900px){.about-grid{grid-template-columns:1fr}}

/* ---------- Services strip ---------- */
.services{background:var(--nl-green);color:#fff;padding:70px 0}
.services .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:28px}
.svc{background:rgba(255,255,255,.05);padding:26px;border-radius:var(--nl-radius);border:1px solid rgba(201,162,75,.25);transition:transform .25s,background .25s}
.svc:hover{background:rgba(201,162,75,.12);transform:translateY(-4px)}
.svc .icn{width:56px;height:56px;background:var(--nl-gold);border-radius:14px;display:inline-flex;align-items:center;justify-content:center;color:var(--nl-green);font-size:1.4rem;margin-bottom:14px}
.svc h3{color:#fff;margin:0 0 8px;font-size:1.2rem}
.svc p{color:#d5c9a8;font-size:.92rem;margin:0}

/* ---------- Gallery ---------- */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.gallery-grid a{display:block;aspect-ratio:1;border-radius:14px;overflow:hidden;position:relative}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gallery-grid a:hover img{transform:scale(1.08)}

/* ---------- Reviews ---------- */
.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.review{background:#fff;padding:26px;border-radius:var(--nl-radius);box-shadow:0 8px 20px rgba(13,59,46,.06)}
.review .stars{color:var(--nl-gold);letter-spacing:2px}
.review p{margin:12px 0;font-style:italic}
.review b{color:var(--nl-green)}

/* ---------- Forms ---------- */
.form-card{background:#fff;padding:38px;border-radius:var(--nl-radius);box-shadow:var(--nl-shadow);max-width:720px;margin:0 auto}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:640px){.form-row{grid-template-columns:1fr}}
label{display:block;font-weight:600;color:var(--nl-green);margin:14px 0 6px;font-size:.9rem}
input,select,textarea{width:100%;padding:12px 14px;border:1.5px solid #e5e7eb;border-radius:12px;font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s;background:#fff}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--nl-gold);box-shadow:0 0 0 4px rgba(201,162,75,.18)}
textarea{resize:vertical;min-height:100px}

/* ---------- Menu page ---------- */
.menu-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:30px}
.menu-filters button{background:#fff;border:1.5px solid #e5e7eb;padding:8px 18px;border-radius:999px;font-weight:600;cursor:pointer;transition:all .2s}
.menu-filters button.active,.menu-filters button:hover{background:var(--nl-green);color:#fff;border-color:var(--nl-green)}

/* ---------- Order builder ---------- */
.order-grid{display:grid;grid-template-columns:2fr 1fr;gap:30px;align-items:start}
@media(max-width:900px){.order-grid{grid-template-columns:1fr}}
.cart{background:#fff;padding:24px;border-radius:var(--nl-radius);position:sticky;top:100px;box-shadow:var(--nl-shadow)}
.cart h3{margin-top:0}
.cart .row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed #eee;font-size:.95rem}
.cart .totals{margin-top:12px;padding-top:12px;border-top:2px solid var(--nl-green)}
.qty-btn{background:var(--nl-green);color:#fff;border:0;width:32px;height:32px;border-radius:8px;cursor:pointer;font-weight:700}
.add-btn{background:var(--nl-orange);color:#fff;border:0;padding:8px 14px;border-radius:999px;cursor:pointer;font-weight:600}

/* ---------- Footer ---------- */
.footer{background:#0a2d24;color:#c9b881;padding:70px 0 24px}
.footer .grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:40px}
@media(max-width:900px){.footer .grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.footer .grid{grid-template-columns:1fr}}
.footer h4{color:var(--nl-gold-2);font-family:var(--nl-font-sans);font-size:1rem;text-transform:uppercase;letter-spacing:.15em;margin:0 0 16px}
.footer a{color:#a89661;display:block;padding:4px 0;font-size:.95rem}
.footer a:hover{color:var(--nl-gold-2)}
.footer .socials a{display:inline-flex;width:38px;height:38px;background:rgba(201,162,75,.15);border-radius:50%;align-items:center;justify-content:center;margin-right:6px;color:var(--nl-gold-2)}
.footer .socials a:hover{background:var(--nl-gold);color:var(--nl-green)}
.copy{border-top:1px solid rgba(201,162,75,.15);margin-top:40px;padding-top:20px;text-align:center;color:#8a7748;font-size:.85rem}

/* ---------- Alerts ---------- */
.alert{padding:14px 18px;border-radius:12px;margin-bottom:20px;font-weight:500}
.alert.ok{background:#d4edda;color:#155724;border:1px solid #c3e6cb}
.alert.err{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}

/* ---------- Animations ---------- */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.fade-up{animation:fadeUp .8s ease both}
.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}

/* ---------- Utility ---------- */
.text-center{text-align:center}
.mt-40{margin-top:40px}
.mb-20{margin-bottom:20px}

/* ---------- Floating cart button ---------- */
.nl-cart-btn{position:fixed;bottom:24px;left:24px;background:var(--nl-green);color:#fff;padding:14px 22px;border-radius:999px;display:flex;align-items:center;gap:10px;box-shadow:0 12px 30px rgba(13,59,46,.35);cursor:pointer;font-weight:600;z-index:999;border:0;font-family:inherit;transition:transform .2s}
.nl-cart-btn:hover{transform:translateY(-3px)}
.nl-cart-btn .nl-cart-count{background:var(--nl-gold);color:var(--nl-green);border-radius:999px;padding:2px 10px;font-weight:800;font-size:.85rem;min-width:26px;text-align:center}
.nl-cart-btn .nl-cart-total{font-family:var(--nl-font-serif);font-size:1.05rem}

/* ---------- Modals ---------- */
.nl-modal{position:fixed;inset:0;background:rgba(10,45,36,.75);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .3s}
.nl-modal.open{opacity:1;pointer-events:auto}
.nl-modal-body{background:#fff;border-radius:20px;max-width:560px;width:100%;max-height:90vh;overflow-y:auto;transform:translateY(20px);transition:transform .3s;box-shadow:0 40px 80px rgba(0,0,0,.4)}
.nl-modal.open .nl-modal-body{transform:translateY(0)}
.nl-modal-header{padding:22px 26px 12px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#fff;border-radius:20px 20px 0 0}
.nl-modal-header h3{margin:0;font-family:var(--nl-font-serif);color:var(--nl-green)}
.nl-modal-close{background:none;border:0;font-size:1.6rem;color:#999;cursor:pointer;line-height:1}
.nl-modal-content{padding:22px 26px}
.nl-modal-footer{padding:16px 26px 22px;border-top:1px solid #eee;position:sticky;bottom:0;background:#fff}

/* Cart rows */
.nl-cart-row{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px dashed #eee}
.nl-qty{display:inline-flex;align-items:center;gap:6px;background:#f7f1e3;padding:4px 8px;border-radius:999px}
.nl-qty span{min-width:22px;text-align:center;font-weight:700}
.nl-totals{padding-top:14px}
.nl-totals .row{display:flex;justify-content:space-between;padding:5px 0}
.nl-totals .grand{font-size:1.2rem;color:var(--nl-green);font-weight:700;padding-top:10px;border-top:2px solid var(--nl-green);margin-top:8px}
.nl-order-type{display:flex;gap:8px;margin-bottom:16px}
.nl-order-type label{flex:1;background:#f7f1e3;padding:12px;border-radius:12px;cursor:pointer;text-align:center;font-weight:600;font-size:.9rem;margin:0;transition:all .2s;border:2px solid transparent}
.nl-order-type input{display:none}
.nl-order-type input:checked + span{color:var(--nl-green)}
.nl-order-type label:has(input:checked){background:var(--nl-green);color:#fff;border-color:var(--nl-gold)}

/* Dish detail modal */
.nl-dish-img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:14px;margin-bottom:14px}
.nl-dish-badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.nl-dish-badges span{padding:5px 12px;border-radius:999px;font-size:.8rem;font-weight:600}
.nl-dish-badges .badge-price{background:var(--nl-orange);color:#fff;font-family:var(--nl-font-serif)}
.nl-dish-qty{display:flex;align-items:center;gap:14px;background:#f7f1e3;padding:10px;border-radius:14px;justify-content:center;margin:14px 0}
.nl-dish-qty button{width:38px;height:38px;border-radius:50%;border:0;background:var(--nl-green);color:#fff;font-size:1.3rem;cursor:pointer}
.nl-dish-qty input{width:60px;text-align:center;font-size:1.2rem;border:0;background:transparent;font-weight:700}

/* Toast */
.nl-toast{position:fixed;top:80px;right:20px;background:var(--nl-green);color:#fff;padding:14px 22px;border-radius:12px;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.25);z-index:99999;opacity:0;transform:translateX(20px);transition:all .3s}
.nl-toast.show{opacity:1;transform:translateX(0)}

/* Menu card click affordance */
.food-card{cursor:pointer}
.food-card .add-btn{position:relative;z-index:2}

@media (max-width: 640px) {
  .nl-cart-btn{bottom:16px;left:16px;padding:12px 18px}
  .nl-modal{padding:0;align-items:flex-end}
  .nl-modal-body{max-height:88vh;border-radius:20px 20px 0 0}
}
