/* Shared Restaurant Page Styles */

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

:root { --gold:#b08d57; --brown:#8B4513; --dark-brown:#654321; --cream:#FFF8F0; --wood:#8B4513; --chalk:#F5F5F5; }

body { font-family:'Merriweather',serif; background-color:var(--cream); color:var(--dark-brown); line-height:1.6; }

/* Header */
header { background:var(--cream); padding:1rem 0; position:sticky; top:0; z-index:100; box-shadow:0 2px 10px rgba(0,0,0,0.1); }
.header-content { max-width:100%; margin:0; display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; padding:0 2rem; position:relative; }
.logo { display:flex; align-items:center; text-decoration:none; }
.logo img { height:80px; width:auto; transition:all .3s ease; }

/* Language selector */
.language-selector { display:flex; gap:10px; }
.lang-btn { width:40px; height:30px; border:none; background:transparent; cursor:pointer; transition:all .3s ease; display:flex; align-items:center; justify-content:center; text-decoration:none; overflow:hidden; opacity:.7; }
.lang-btn.active { opacity:1; transform:scale(1.1); }
.lang-btn img { width:100%; height:auto; display:block; }
.lang-btn:hover { transform:scale(1.15); opacity:1; }

/* Navigation */
nav { display:flex; justify-content:center; }
nav ul { display:flex; list-style:none; gap:2rem; }
nav a { color:var(--dark-brown); text-decoration:none; font-weight:500; transition:all .3s ease; position:relative; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:1px; }
nav a:after { content:''; position:absolute; bottom:-5px; left:0; width:0; height:3px; background:var(--gold); transition:width .3s ease; }
nav a:hover { color:var(--gold); }
nav a:hover:after { width:100%; }

/* Hero */
.hero { height:calc(100vh - 112px); display:flex; align-items:center; justify-content:center; text-align:center; color:white; position:relative; overflow:hidden; }
.hero-background { position:absolute; inset:0; z-index:-1; }
.hero-background img { width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-background::after { content:''; position:absolute; inset:0; background:linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.5)); }
.hero-content h1 { font-size:4rem; margin-bottom:1rem; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:3px; text-shadow:2px 2px 4px rgba(0,0,0,0.7); }
.hero-subtitle { font-size:1.5rem; margin-bottom:3rem; opacity:0.9; text-shadow:1px 1px 2px rgba(0,0,0,0.7); }

/* CTA */
.cta-buttons { display:flex; gap:2rem; justify-content:center; flex-wrap:wrap; }
.cta-button { padding:1rem 2.5rem; font-size:1.2rem; font-family:'Oswald',sans-serif; text-transform:uppercase; text-decoration:none; border-radius:0; transition:all .3s ease; display:inline-flex; align-items:center; gap:.5rem; position:relative; overflow:hidden; }
.cta-button-primary { background:var(--gold); color:white; box-shadow:0 10px 20px rgba(176,141,87,0.3); border:2px solid var(--gold); }
.cta-button-primary:hover { background:transparent; color:var(--gold); transform:translateY(-3px); }
.cta-button-secondary { background:transparent; color:white; border:2px solid white; }
.cta-button-secondary:hover { background:white; color:var(--dark-brown); transform:translateY(-3px); box-shadow:0 10px 20px rgba(255,255,255,0.3); }

/* Section title */
.section-title { text-align:center; font-family:'Oswald',sans-serif; font-size:3rem; color:var(--brown); margin-bottom:3rem; position:relative; }
.section-title:after { content:''; position:absolute; bottom:-10px; left:50%; transform:translateX(-50%); width:100px; height:3px; background:var(--gold); }

/* Menu gallery and menu book */
.menu-gallery { padding:4rem 2rem 10rem; }
.menu-container { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(350px,1fr)); gap:4rem; align-items:start; }
.menu-section { text-align:center; display:flex; flex-direction:column; align-items:center; opacity:0; animation:fadeInUp .8s ease forwards; }
.menu-section:nth-child(2) { animation-delay:.2s; }
@keyframes fadeInUp { from { opacity:0; transform:translateY(30px); } to { opacity:1; transform:translateY(0); } }
.menu-section h3 { font-family:'Oswald',sans-serif; font-size:2rem; color:var(--brown); margin-bottom:2rem; transition:color .3s ease; text-transform:uppercase; }
.menu-book { position:relative; display:flex; justify-content:center; align-items:center; cursor:pointer; transition:all .4s cubic-bezier(.4,0,.2,1); width:100%; max-width:350px; height:450px; background:#2a2a2a; border-radius:0; overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,0.2); }
.menu-book:hover { transform:translateY(-10px) scale(1.02); box-shadow:0 20px 50px rgba(0,0,0,0.4); }
.menu-cover { width:100%; height:calc(100% - 3px); object-fit:cover; object-position:center top; transition:all .4s ease; }
.menu-book:hover .menu-cover { transform:scale(1.05); }
.menu-overlay { position:absolute; inset:0; background:rgba(176,141,87,0.9); display:flex; flex-direction:column; justify-content:center; align-items:center; opacity:0; transition:opacity .3s ease; border-radius:0; }
.menu-book:hover .menu-overlay { opacity:1; }
.menu-overlay i { font-size:3rem; color:white; margin-bottom:1rem; animation:iconPulse 1.5s ease-in-out infinite; }
@keyframes iconPulse { 0%,100%{transform:scale(1);} 50%{transform:scale(1.1);} }
.menu-overlay p { color:white; font-size:1.2rem; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:1px; }

/* Location */
.location-section { background:white; padding:4rem 2rem 10rem; }
.location-content { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:3rem; }
.map-container { width:100%; height:450px; border-radius:0; overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,0.2); transition:all .3s ease; }
.map-container:hover { box-shadow:0 15px 40px rgba(0,0,0,0.3); }
.map-container iframe { width:100%; height:100%; }
.opening-hours p { font-size:1.2rem; padding:.5rem 0; transition:all .3s ease; cursor:default; }

/* Food gallery */
.food-gallery { background:white; padding:4rem 2rem 10rem; overflow:hidden; }
.gallery-container { position:relative; width:100%; left:50%; transform:translateX(-50%); margin:0 auto; overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; scroll-behavior:smooth; scrollbar-width:none; padding:0; max-width:100%; }
.gallery-container::-webkit-scrollbar { display:none; }
.gallery-track { display:flex; gap:30px; padding:0 15px; transition:transform 1s linear; cursor:grab; }
.gallery-item { min-width:300px; position:relative; aspect-ratio:1; cursor:pointer; border-radius:0; overflow:hidden; flex-shrink:0; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.gallery-item:hover img { transform:scale(1.05); }

/* Modal */
.image-modal { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.9); z-index:1000; cursor:pointer; }
.modal-content { max-width:90%; max-height:90vh; margin:auto; display:block; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); cursor:default; }
.close-modal { position:absolute; top:15px; right:35px; color:#f1f1f1; font-size:40px; font-weight:bold; cursor:pointer; }
.modal-nav { position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,0.2); color:white; border:none; padding:20px; cursor:pointer; border-radius:0; transition:all .3s ease; }
.modal-nav.prev { left:20px; }
.modal-nav.next { right:20px; }

/* Instagram */
.instagram-section { padding:4rem 2rem 10rem; background:var(--cream); }
.instagram-posts { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:2rem; justify-items:center; }

/* Reviews */
.reviews-section { background:white; padding:4rem 2rem 10rem; position:relative; overflow:hidden; }
.reviews-container { max-width:1200px; margin:0 auto; position:relative; z-index:2; }
.reviews-header { text-align:center; margin-bottom:3rem; }
.google-rating { display:flex; align-items:center; justify-content:center; gap:1rem; margin:2rem 0; }
.rating-number { font-size:3.5rem; font-weight:bold; color:var(--dark-brown); font-family:'Oswald',sans-serif; }
.rating-stars { display:flex; gap:.3rem; }
.rating-stars i { color:#FBC02D; font-size:2rem; }
.total-reviews { color:#666; margin-top:.5rem; font-size:1.1rem; }
.reviews-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(350px,1fr)); gap:2rem; margin-top:3rem; }
.review-card { background:white; padding:2rem; border-radius:8px; box-shadow:0 4px 20px rgba(0,0,0,0.08); display:flex; flex-direction:column; gap:1rem; }
.review-header { display:flex; align-items:center; gap:1rem; }
.reviewer-avatar { width:48px; height:48px; border-radius:50%; }
.reviewer-avatar img { width:100%; height:100%; object-fit:cover; }
.reviewer-name { font-weight:bold; color:var(--dark-brown); margin-bottom:.2rem; }
.review-date { color:#666; font-size:.9rem; }
.review-stars { color:#FBC02D; font-size:1rem; margin:.5rem 0; }
.review-text { color:#333; line-height:1.6; margin-bottom:1rem; }
.review-footer { margin-top:auto; display:flex; align-items:center; gap:.5rem; }
.google-icon { width:20px; height:20px; }
.view-all-button { display:inline-flex; align-items:center; gap:.8rem; padding:1rem 2rem; background:var(--gold); color:#fff; text-decoration:none; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:1px; transition:all .3s ease; font-size:1.1rem; }
.view-all-button:hover { background:var(--dark-brown); color:white; transform:translateY(-3px); }

/* Bar */
.bar-section { background:var(--dark-brown); padding:4rem 2rem 10rem; color:white; }
.bar-content { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
.bar-image { width:100%; height:auto; border-radius:0; box-shadow:0 20px 40px rgba(0,0,0,0.3); transition:transform .3s ease; }
.bar-image:hover { transform:scale(1.02); }
.bar-text h2 { font-family:'Oswald',sans-serif; font-size:3rem; color:var(--gold); margin-bottom:2rem; }
.bar-text p { margin-bottom:1rem; transition:transform .3s ease; }

/* Quick reserve enhanced */
.quick-reserve-enhanced { position:relative; padding:0; overflow:hidden; }
.reserve-background { background:linear-gradient(135deg,var(--gold) 0%, #c9a567 100%); padding:5rem 2rem 10rem; position:relative; }
.reserve-background::before { content:''; position:absolute; top:0; left:0; right:0; bottom:0; background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="50" cy="50" r="40" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="0.5"/></svg>') center/cover; opacity:.3; }
.reserve-content { position:relative; text-align:center; max-width:800px; margin:0 auto; }
.reserve-content h2 { font-family:'Oswald',sans-serif; font-size:3rem; color:#fff; margin-bottom:1rem; text-shadow:2px 2px 4px rgba(0,0,0,0.2); }
.reserve-content p { color:#fff; font-size:1.3rem; margin-bottom:2.5rem; opacity:.95; }
.reserve-phone-enhanced { display:inline-flex; align-items:center; gap:1rem; background:#fff; color:var(--gold); padding:1.2rem 2.5rem; border-radius:0; font-size:1.5rem; font-weight:bold; text-decoration:none; transition:all .5s ease; box-shadow:0 5px 20px rgba(0,0,0,0.2); }
.reserve-phone-enhanced:hover { transform:translateY(-3px); box-shadow:0 10px 30px rgba(0,0,0,0.3); }
.or-divider { margin:2rem 0; position:relative; }
.or-divider span { background:var(--gold); padding:0 1rem; color:#fff; font-size:1.1rem; position:relative; z-index:1; }
.or-divider::before { content:''; position:absolute; top:50%; left:0; right:0; height:1px; background:rgba(255,255,255,0.3); }
.social-links { display:flex; justify-content:center; gap:1rem; }
.social-link { width:50px; height:50px; border-radius:0; background:rgba(255,255,255,0.2); border:2px solid white; display:flex; align-items:center; justify-content:center; color:white; font-size:1.3rem; transition:all .3s ease; }
.social-link:hover { background:#fff; transform:translateY(-5px); }
.social-link.facebook:hover { color:#3b5998; border-color:#3b5998; }
.social-link.instagram:hover { color:#e1306c; border-color:#e1306c; }
.social-link.email:hover { color:var(--gold); border-color:var(--gold); }

/* Footer enhanced */
footer.footer-enhanced { position:relative; background:#1a1a1a; color:white; overflow:hidden; }
.footer-wave { position:absolute; top:-1px; left:0; width:100%; height:120px; overflow:hidden; }
.footer-content { position:relative; padding-top:80px; }
.footer-main { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:3rem; padding:2rem; }
.footer-section h3 { color:var(--gold); margin-bottom:1.5rem; font-family:'Oswald',sans-serif; font-size:1.5rem; display:flex; align-items:center; gap:.5rem; }
.footer-info { list-style:none; padding:0; width:100%; }
.footer-info li { margin-bottom:1rem; display:flex; align-items:center; gap:.8rem; }
.footer-info i { color:var(--gold); width:20px; }
.footer-info a { color:white; text-decoration:none; transition:color .3s ease; }
.footer-info a:hover { color:var(--gold); }
.opening-hours-footer { list-style:none; padding:0; width:100%; }
.opening-hours-footer li { margin-bottom:.8rem; display:flex; justify-content:space-between; padding:.5rem .8rem; border-bottom:1px solid rgba(255,255,255,0.1); }
.social-icons { display:flex; gap:1rem; margin-bottom:2rem; }
.social-icon { width:45px; height:45px; background:rgba(255,255,255,0.1); border:2px solid rgba(255,255,255,0.2); display:flex; align-items:center; justify-content:center; color:white; font-size:1.2rem; transition:all .3s ease; position:relative; overflow:hidden; }
.social-icon::before { content:''; position:absolute; top:50%; left:50%; width:0; height:0; background:rgba(255,255,255,0.1); transform:translate(-50%,-50%); border-radius:50%; transition:width .4s ease, height .4s ease; }
.social-icon:hover::before { width:120%; height:120%; }
.footer-bottom { text-align:center; padding:2rem; background:transparent; }
.footer-divider { width:100px; height:3px; background:var(--gold); margin:0 auto 2rem; }

/* Latest Articles */
.latest-articles { padding:4rem 2rem 10rem; background:var(--cream); }
.articles-grid { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:2rem; }
.article-card { background:white; border-radius:0; overflow:hidden; box-shadow:0 5px 15px rgba(0,0,0,0.1); transition:all .3s ease; }
.article-card:hover { transform:translateY(-10px); box-shadow:0 15px 30px rgba(0,0,0,0.2); }
.article-image { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.article-card:hover .article-image { transform:scale(1.1); }
.article-content { padding:1.5rem; }
.article-title { font-family:'Oswald',sans-serif; font-size:1.5rem; color:var(--dark-brown); margin-bottom:1rem; transition:color .3s ease; }
.article-excerpt { color:var(--dark-brown); margin-bottom:1.5rem; opacity:.8; line-height:1.6; }
.article-link { display:flex; align-items:center; gap:.5rem; color:var(--gold); text-decoration:none; font-weight:bold; transition:all .3s ease; }
.article-link i { transition:transform .3s ease; }
.article-link:hover { color:var(--dark-brown); }
.article-link:hover i { transform:translateX(5px); }
.view-all-articles { text-align:center; margin-top:3rem; }
.view-all-button.alt { background:var(--gold); color:#fff; border:none; }

/* Daily Menu block spacings */
#denni-menu { scroll-margin-top:120px; padding-top:20px; margin-top:4rem; padding-bottom:10rem; }
#denni-menu .menu-content { background-color:var(--chalk); padding:2.5rem; border-radius:1px; box-shadow:0 10px 30px rgba(0,0,0,0.15); max-width:900px; margin:0 auto; }
.menu-category { margin-bottom:2rem; }
.menu-category:last-child { margin-bottom:1rem; }
.menu-item { display:flex; flex-direction:column; padding:1.5rem; border-bottom:1px dashed rgba(0,0,0,0.08); text-align:center; }
.menu-item:last-child { border-bottom:none; margin-bottom:0; }
.menu-item h4 { font-family:'Oswald',sans-serif; font-size:1.2rem; color:var(--dark-brown); margin:0 0 0.5rem 0; text-transform:uppercase; letter-spacing:.5px; }
.menu-grammage-price { font-size:0.9rem; color:#666; margin:0 0 0.5rem 0; line-height:1.4; }
.menu-price { font-family:'Oswald',sans-serif; font-size:1.1rem; color:var(--gold); font-weight:500; margin:0 0 0.5rem 0; }
.menu-description { font-size:0.9rem; color:#666; margin:0; line-height:1.4; font-style:italic; }
.menu-business-bonus { font-size:0.9rem; color:#8B4513; margin:0.5rem 0 0 0; line-height:1.4; font-weight:bold; font-style:italic; }
.menu-item.business-item { 
    background: linear-gradient(135deg, #f5f5dc 0%, #faf0e6 50%, #f5f5dc 100%);
    position: relative;
    overflow: hidden;
}

.menu-item.business-item::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.4), transparent);
    animation: shimmer 3s infinite;
    pointer-events: none;
}

.menu-item.business-item h4 {
    color: #8B4513 !important;
    font-weight: bold;
}

.menu-item.business-item p {
    color: #654321 !important;
    font-weight: 500;
}

.menu-item.business-item .price {
    color: #8B4513 !important;
    font-weight: bold;
}

@keyframes shimmer {
    0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); }
    100% { transform: translateX(100%) translateY(100%) rotate(45deg); }
}
.menu-notes { margin-top:5rem; padding:1rem 1.5rem; background:#f8f8f8; border-left:4px solid var(--gold); border-radius:4px; color:#555; }
.menu-notes p { margin:.3rem 0; }
.menu-notes p:first-child { font-weight:500; }
.menu-disclaimer { font-size:.85rem; color:#666; font-style:italic; }

/* Responsive */
@media (max-width:1024px) {
  .header-content{grid-template-columns:auto 1fr auto;}
  nav{order:1; position:absolute; top:100%; left:0; width:100%; background:#8B4513;}
  nav ul{display:none; flex-direction:column; padding:1rem;}
  nav ul.active{display:flex;}
  nav a{color:#fff; text-align:center;}
}

@media (max-width:768px){
  .header-content{grid-template-columns:auto 1fr auto; justify-content:space-between; align-items:center;}
  .hero-content h1{font-size:2.5rem;}
  .bar-content,.location-content{grid-template-columns:1fr;}
  .menu-container{grid-template-columns:1fr;}
  .instagram-section{display:none !important;}
  .cta-buttons{flex-direction:column; align-items:center;}
  .cta-button{width:100%; max-width:300px; justify-content:center;}
  .opening-hours{margin-left:0 !important; text-align:center;}
  .footer-main{grid-template-columns:1fr; text-align:center; justify-items:center;}
}

@media (min-width:769px){ .opening-hours{ margin-left:6rem; } }

/* Gallery responsive grid on mobile */
@media (max-width:768px){
  .gallery-container{ width:100%; overflow:visible; padding:0 1rem; }
  .gallery-track{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; animation:none !important; transform:none !important; padding:0; cursor:default; }
  .gallery-item{ min-width:auto !important; width:100%; aspect-ratio:1; border-radius:8px; overflow:hidden; box-shadow:0 4px 12px rgba(0,0,0,0.15); transition:transform .3s ease; position:relative; }
  .gallery-item:hover{ transform:scale(1.05); }
}
@media (max-width:480px){ .gallery-track{ grid-template-columns:repeat(2,1fr); gap:.8rem; } }


