/* ==================================================
   The North - Main Stylesheet
   ================================================== */

/* --- Global Styles & Variables --- */
:root {
    /* Brand Manual Colors */
    --primary-yellow: #FECF0A;
    --accent-orange: #F15622;
    --penguin-blue: #505E76;    /* Primary Dark/Secondary */
    --text-black: #231F20;      /* Primary Text Color */
    --shadow-gold: #B1822C;     /* Logo shadow - maybe border? */
    --peach: #F7C694;           /* Muted accent */
    --pole-brown: #A37E74;      /* Muted accent */
    --dark-grey-brown: #3F373A; /* Darker color for footer? */

    /* Theme Colors Derived from Palette */
    --primary-color: var(--accent-orange); /* Orange for CTAs */
    --secondary-color: #d84a1a; /* Darker Orange for hover */
    --dark-color: var(--penguin-blue);  /* Slate Blue sections */
    --darker-color: var(--text-black); /* Near Black for Footer */
    --light-color: #F8F9FA;     /* Off-white for light sections */
    --white-color: #ffffff;
    --text-dark: var(--text-black); /* Default text */
    --text-light: var(--white-color);

    /* Brand Manual Font */
    --font-primary: 'Montserrat', sans-serif;
    --font-secondary: 'Montserrat', sans-serif; /* Using one font family */
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-bold: 700;
    --font-weight-black: 800; /* Extra Bold */

    --header-height: 75px;
}

/* --- Base & Reset --- */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: var(--header-height);
}

body {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-normal);
    line-height: 1.6;
    color: var(--text-dark);
    background-color: var(--white-color);
    -webkit-font-smoothing: antialiased; /* Smoother fonts */
    -moz-osx-font-smoothing: grayscale;
}

a {
    text-decoration: none;
    color: var(--primary-color); /* Orange links */
    font-weight: var(--font-weight-medium); /* Medium weight links */
    transition: color 0.3s ease;
}

a:hover {
    color: var(--dark-color); /* Slate blue hover */
}

ul {
    list-style: none;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* --- Typography --- */
h1, h2, h3, h4 {
    font-family: var(--font-secondary);
    font-weight: var(--font-weight-bold);
    margin-bottom: 1rem;
    line-height: 1.3;
    color: var(--text-dark); /* Default dark text */
}
h1 { font-size: 2.8rem; font-weight: var(--font-weight-black); }
h2 { font-size: 2.2rem; }
h3 { font-size: 1.5rem; }
h4 { font-size: 1.1rem; font-weight: var(--font-weight-bold); }

p {
    margin-bottom: 1rem;
    color: var(--text-dark);
}

/* --- Utility Classes --- */
.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.section-padding { padding: 70px 0; }
.bg-light { background-color: var(--light-color); border-top: 1px solid #e9ecef; border-bottom: 1px solid #e9ecef; }
.bg-dark { background-color: var(--dark-color); color: var(--text-light); }
.bg-darker { background-color: var(--darker-color); color: #e0e0e0; }
.bg-yellow { background-color: var(--primary-yellow); color: var(--text-black); } /* Use black text on yellow bg */

/* Color adjustments for different backgrounds */
.bg-dark h1, .bg-dark h2, .bg-dark h3, .bg-dark h4,
.bg-darker h1, .bg-darker h2, .bg-darker h3, .bg-darker h4 { color: var(--white-color); }
.bg-dark p, .bg-darker p { color: var(--text-light); }
.bg-darker a { color: #e0e0e0; }
.bg-darker a:hover { color: var(--primary-yellow); }
.bg-yellow h1, .bg-yellow h2, .bg-yellow h3, .bg-yellow h4 { color: var(--text-black); }
.bg-yellow p { color: var(--text-black); }
.bg-yellow .feature-item i { color: var(--accent-orange); }

.text-center { text-align: center; }
.section-title { margin-bottom: 3rem; font-weight: var(--font-weight-black); }
.grid { display: grid; gap: 30px; align-items: start; } /* Align items top by default */

/* Base Grid Layouts */
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); } /* Default 4 columns for grid-4 */

/* --- Buttons --- */
.cta-button {
    display: inline-block;
    background-color: var(--primary-color); /* Orange */
    color: var(--white-color);
    padding: 12px 30px;
    border-radius: 30px;
    font-weight: var(--font-weight-bold);
    font-family: var(--font-secondary);
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: background-color 0.3s ease, transform 0.3s ease;
    border: none;
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.cta-button:hover {
    background-color: var(--secondary-color); /* Darker Orange */
    transform: translateY(-2px);
    box-shadow: 0 6px 8px rgba(0,0,0,0.15);
}

/* --- Header --- */
#main-header {
    background-color: var(--white-color); position: fixed; top: 0; left: 0; width: 100%; z-index: 1000;
    height: var(--header-height); box-shadow: 0 2px 5px rgba(0,0,0,0.08); transition: background-color 0.3s ease, box-shadow 0.3s ease;
}
#main-header .container { display: flex; justify-content: space-between; align-items: center; height: 100%; }
#logo img { height: 55px; width: auto; display: block; }

/* Navbar */
#navbar ul { display: flex; align-items: center; flex-wrap: wrap; /* Allow wrapping on smaller screens if needed */ }
#navbar li { margin-left: 20px; }
#navbar a {
    color: var(--text-dark); font-weight: var(--font-weight-medium); padding-bottom: 5px;
    position: relative; font-size: 0.95rem; letter-spacing: 0.5px; white-space: nowrap;
}
#navbar a:hover, #navbar a.active { color: var(--primary-color); }
#navbar a::after {
    content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 3px;
    background-color: var(--primary-color); transition: width 0.3s ease; border-radius: 2px;
}
#navbar a:hover::after, #navbar a.active::after { width: 100%; }
#navbar .nav-cta { margin-left: 25px; padding: 8px 20px; font-size: 0.9rem; }

/* Mobile Menu Toggle */
#mobile-menu-toggle { display: none; background: none; border: none; font-size: 1.8rem; color: var(--text-dark); cursor: pointer; }
#main-header.scrolled { background-color: rgba(255, 255, 255, 0.98); box-shadow: 0 4px 10px rgba(0,0,0,0.1); }

/* --- Main Content Padding --- */
main { padding-top: var(--header-height); }

/* --- Hero Section --- */
#hero {
    /* Darker overlay */
    background: linear-gradient(rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0.65)),
                /* <<<==== REPLACE WITH YOUR HERO IMAGE URL ====>>> */
                url('img/IMG_7629 (Large).jpg')
                center center/cover no-repeat;
    min-height: calc(70vh - var(--header-height));
    display: flex; justify-content: center; align-items: center; text-align: center;
    color: var(--white-color); padding: 40px 20px;
	overflow: hidden; 
}
.hero-content { max-width: 700px; 
    position: relative; /* Ensure text stays above penguin if z-index is needed */
    z-index: 2;}
.hero-content h1 { color: var(--white-color); text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5); }
.hero-content p { font-size: 1.4rem; margin-bottom: 2rem; color: var(--text-light); font-weight: var(--font-weight-medium); text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.4); }

/* *** NEW: Styles for Hero Penguin *** */
#hero-penguin {
    position: absolute;
    bottom: 20px;  /* Adjust vertical position from bottom */
    right: 30px;   /* Adjust horizontal position from right */
    max-width: 180px; /* Adjust max size */
    height: auto;     /* Maintain aspect ratio */
    z-index: 1;       /* Sit behind text if needed, but above background */
    transition: max-width 0.3s ease, bottom 0.3s ease, right 0.3s ease; /* Smooth resizing */
}
/* --- About Section --- */
#about .grid-2 { align-items: center; }
#about .about-image img { border-radius: 12px; box-shadow: 0 8px 20px rgba(80, 94, 118, 0.15); }

/* --- Featured Dishes / Dish Cards --- */
/* Uses .grid and .grid-4 classes */
#featured-dishes .dishes-grid {
    }

.dish-card {
    background: var(--white-color); border-radius: 12px; box-shadow: 0 5px 15px rgba(0,0,0,0.06);
    overflow: hidden; text-align: center; transition: transform 0.3s ease, box-shadow 0.3s ease;
    border: 1px solid #eee; display: flex; flex-direction: column;
}
.dish-card:hover { transform: translateY(-8px); box-shadow: 0 10px 20px rgba(80, 94, 118, 0.12); }
.dish-card img { width: 100%; height: 200px; object-fit: cover; }
.dish-card h3 { margin: 1.2rem 1rem 0.5rem 1rem; color: var(--dark-color); font-size: 1.3rem; font-weight: var(--font-weight-bold); }
.dish-card p { padding: 0 1rem; font-size: 0.9rem; color: #555; flex-grow: 1; min-height: 45px; }
.dish-card .price {
    display: inline-block; background-color: var(--primary-yellow); color: var(--text-black);
    padding: 5px 15px; border-radius: 20px; font-weight: var(--font-weight-bold);
    margin: 1rem 0 1rem 0; font-size: 1rem;
}
/* Adding Rupee symbol before price */
.dish-card .price::before,
.item-price::before { content: '₹'; margin-right: 2px; }

/* Featured card specific styles */
.featured-card .price { margin-bottom: 0.8rem; }
.view-more-btn {
    display: inline-block; margin: 0 1rem 1rem 1rem; padding: 6px 12px;
    background-color: var(--light-color); border: 1px solid #ddd; border-radius: 20px;
    font-size: 0.8rem; color: var(--dark-color); font-weight: var(--font-weight-medium);
    transition: background-color 0.3s ease, color 0.3s ease;
}
.view-more-btn:hover { background-color: var(--penguin-blue); color: var(--white-color); border-color: var(--penguin-blue); }

/* --- Menu Sections --- */
.menu-section .menu-description { max-width: 600px; margin: -1.5rem auto 3rem auto; font-size: 1.1rem; color: #555; }
.bg-light .menu-description { color: #666; }
.menu-grid { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 40px; }
/*.menu-grid { grid-template-columns: repeat(2, 1fr); gap: 40px; }*/

.menu-category-title {
    background-color: var(--penguin-blue); color: var(--white-color); padding: 10px 20px;
    border-radius: 8px; margin-bottom: 1.5rem; display: inline-block;
    font-size: 1.3rem; font-weight: var(--font-weight-bold);
}
.category-description { font-style: italic; color: #777; margin-bottom: 1.5rem; margin-top: -0.8rem; font-size: 0.95rem; }
.menu-list li {
	max-width:600px;
    display: flex; justify-content: space-between; align-items: baseline;
    padding: 10px 0; border-bottom: 1px dashed #ddd; font-size: 1rem;
}
.menu-list li:last-child { border-bottom: none; }
.item-name { margin-right: 15px; font-weight: var(--font-weight-medium); }
.item-price { font-weight: var(--font-weight-bold); color: var(--text-dark); white-space: nowrap; }
.menu-category-image { max-width: 100%; height: auto; border-radius: 8px; margin-bottom: 1.5rem; box-shadow: 0 4px 10px rgba(0,0,0,0.1); }

/* --- Why Choose Us Section --- */
.features-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 30px; text-align: center; align-items: start; }
.feature-item i { font-size: 3rem; color: var(--primary-color); margin-bottom: 1rem; }
.bg-yellow .feature-item i { color: var(--accent-orange); }
.feature-item h3 { font-size: 1.3rem; margin-bottom: 0.5rem; font-weight: var(--font-weight-bold); }

/* --- CTA Section --- */
#cta-section h2 { margin-bottom: 0.5rem; color: var(--white-color); font-weight: var(--font-weight-black); }
#cta-section p { margin-bottom: 1.5rem; font-size: 1.2rem; color: var(--text-light); font-weight: var(--font-weight-medium); }

/* --- Locations Section --- */
#locations {
    /* Optional background color: */
    /* background-color: var(--light-color); */
    /* border-top: 1px solid #e9ecef; */
}
#locations .locations-grid {
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 40px;
    align-items: start;
}
.location-item { text-align: center; }
.location-item h3 { color: var(--dark-color); margin-bottom: 1rem; font-weight: var(--font-weight-bold); font-size: 1.4rem; }
.map-container {
    position: relative; overflow: hidden; padding-top: 75%; /* Aspect ratio (4:3). Adjust if needed */
    margin-bottom: 1rem; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}
.map-container iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }
.location-item p { font-size: 0.95rem; line-height: 1.5; color: #555; }

/* --- Footer --- */
#footer .grid-3 { align-items: start; gap: 35px; }
#footer h4 { margin-bottom: 1rem; color: var(--white-color); font-weight: var(--font-weight-bold); }
#footer ul li { margin-bottom: 0.6rem; }
#footer ul li a { font-size: 0.95rem; font-weight: var(--font-weight-normal); color: #e0e0e0; }
#footer ul li a:hover { color: var(--primary-yellow); }
#footer .social-links { margin-top: 1rem; }
#footer .social-links a { color: #e0e0e0; margin-right: 18px; font-size: 1.6rem; transition: color 0.3s ease, transform 0.3s ease; }
#footer .social-links a:hover { color: var(--primary-yellow); transform: scale(1.1); }

/* Footer Address Styling */
.footer-addresses { /* Container for logo and address blocks */ }
.address-block { margin-bottom: 1.5rem; }
.address-block:last-child { margin-bottom: 0; }
.footer-addresses h4 { font-size: 1rem; margin-bottom: 0.5rem; }
.footer-addresses p { color: #ccc; font-size: 0.9rem; line-height: 1.5; }

.copyright { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid #555; font-size: 0.9rem; color: #aaa; }

/* Define the pulsing animation */
@keyframes pulse {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(241, 86, 34, 0.5); /* Use accent orange with some transparency */
  }
  70% {
    transform: scale(1.1); /* Scale up slightly */
    box-shadow: 0 0 10px 20px rgba(241, 86, 34, 0); /* Fading shadow effect */
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(241, 86, 34, 0);
  }
}
.ai-chat-widget {
    position: fixed;
    bottom: 90px; /* Position above the toggle button */
    right: 20px;
    width: 350px;
    max-width: calc(100% - 40px); /* Ensure it fits on small screens */
    height: 500px;
    max-height: calc(100vh - 110px); /* Limit height */
    background-color: var(--white-color);
    border-radius: 15px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
    display: none; /* Hidden by default */
    flex-direction: column;
    overflow: hidden;
    z-index: 999;
    transition: transform 0.3s ease-out, opacity 0.3s ease-out;
    transform: translateY(10px);
    opacity: 0;
}

.ai-chat-widget.active {
    display: flex;
    transform: translateY(0);
    opacity: 1;
}

.chat-header {
    background: var(--penguin-blue); /* Use brand dark blue */
    color: var(--white-color);
    padding: 12px 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top-left-radius: 15px;
    border-top-right-radius: 15px;
}

.chat-header span {
    font-weight: var(--font-weight-bold);
}

.chat-close-btn {
    background: none;
    border: none;
    color: var(--white-color);
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0.8;
    transition: opacity 0.2s ease;
}
.chat-close-btn:hover {
    opacity: 1;
}

.chat-messages {
    flex-grow: 1;
    padding: 15px;
    overflow-y: auto;
    background-color: #f9f9f9; /* Slightly off-white message area */
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.message {
    padding: 10px 15px;
    border-radius: 18px;
    max-width: 80%;
    line-height: 1.4;
    word-wrap: break-word;
}

.message.user {
    background-color: var(--accent-orange); /* User messages in Orange */
    color: var(--white-color);
    border-bottom-right-radius: 5px; /* Slightly different shape */
    margin-left: auto; /* Align user messages to the right */
    align-self: flex-end;
}

.message.assistant {
    background-color: var(--light-color); /* Assistant messages light grey */
    color: var(--text-dark);
    border-bottom-left-radius: 5px; /* Slightly different shape */
    margin-right: auto; /* Align assistant messages to the left */
    align-self: flex-start;
}

/* Loading indicator */
.message.loading {
    color: #888;
    font-style: italic;
    align-self: flex-start;
    background: none;
    padding: 5px 0;
}
.message.loading span {
    display: inline-block;
    animation: bounce 1.4s infinite ease-in-out both;
}
.message.loading span:nth-child(1) { animation-delay: -0.32s; }
.message.loading span:nth-child(2) { animation-delay: -0.16s; }
@keyframes bounce {
  0%, 80%, 100% { transform: scale(0); }
  40% { transform: scale(1.0); }
}
.loading-dot {
    width: 8px;
    height: 8px;
    background-color: var(--penguin-blue);
    border-radius: 50%;
    display: inline-block;
    margin: 0 2px;
}


.chat-input-form {
    display: flex;
    padding: 10px;
    border-top: 1px solid #eee;
    background-color: var(--white-color);
}

.chat-input {
    flex-grow: 1;
    border: 1px solid #ddd;
    border-radius: 20px;
    padding: 10px 15px;
    font-size: 0.95rem;
    margin-right: 8px;
    font-family: var(--font-primary);
}
.chat-input:focus {
    outline: none;
    border-color: var(--penguin-blue);
    box-shadow: 0 0 0 2px rgba(80, 94, 118, 0.2);
}

.chat-send-btn {
    background-color: var(--accent-orange);
    color: var(--white-color);
    border: none;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    font-size: 1rem;
    transition: background-color 0.2s ease;
    flex-shrink: 0; /* Prevent button from shrinking */
}
.chat-send-btn:hover {
    background-color: var(--secondary-color); /* Darker orange */
}
.chat-send-btn i {
    margin-left: 2px; /* Slight adjustment for icon centering */
}

/* Chat Toggle Button */
.chat-toggle-btn {
	/* --- Add the animation property --- */
    animation: pulse 2s infinite cubic-bezier(0.66, 0, 0, 1); /* Apply the pulse animation, repeating infinitely */
    /* Ensure transform originates from the center */
    transform-origin: center;

    position: fixed;
    bottom: 20px;
    right: 20px;
    background-color: var(--penguin-blue);
    color: var(--white-color);
    border: none;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.8rem;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
    transition: transform 0.2s ease, background-color 0.2s ease;
    z-index: 1000;
}
.chat-toggle-btn:hover {
    transform: scale(1.1);
    background-color: var(--secondary-color); /* Darker orange on hover */
}
.chat-toggle-btn .close-icon {
    display: none; /* Hide close icon by default */
    font-size: 2rem; /* Make X slightly larger */
}

/* Styles when chat is active */
.ai-chat-widget.active + .chat-toggle-btn .fa-comment-dots {
    display: none; /* Hide chat icon */
}
.ai-chat-widget.active + .chat-toggle-btn .close-icon {
    display: block; /* Show close icon */
}

/* --- Optional: Stop animation when chat widget is open --- */
#ai-chat-widget.active + #chat-toggle-btn {
     /* Hide or simply stop animation when widget is active */
     /* Option 1: Hide the button 
      opacity: 0;
      visibility: hidden;
      transform: scale(0.5); /* Optional shrink effect 
      transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
*/
     /* Option 2: Stop animation but keep button visible (uncomment if preferred) */
      animation: none; 
}

/* Add transition back when widget closes */
#chat-toggle-btn {
    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease, background-color 0.2s ease; /* Include transitions */
     opacity: 1;
     visibility: visible;
     /* transform: scale(1); */ /* Already handled by animation or hover */
}


/* --- Order Popup Styles --- */

#popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6); /* Semi-transparent black overlay */
    z-index: 1040; /* Below popup, above other content */
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0s linear 0.3s; /* Fade transition */
}
#popup-overlay.active {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.3s ease;
}

.order-popup {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.9); /* Initial smaller scale for animation */
    background-color: var(--white-color);
    padding: 30px 40px;
    border-radius: 12px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);
    z-index: 1050; /* Above overlay */
    width: 90%;
    max-width: 450px; /* Max width for the popup */
    text-align: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28), visibility 0s linear 0.3s; /* Animation */
}

.order-popup.active {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, -50%) scale(1); /* Scale up to full size */
    transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);
}

.popup-close-btn {
    position: absolute;
    top: 10px;
    right: 15px;
    background: none;
    border: none;
    font-size: 2rem;
    line-height: 1;
    color: #aaa;
    cursor: pointer;
    padding: 5px;
    transition: color 0.2s ease;
}
.popup-close-btn:hover {
    color: var(--text-black);
}

.popup-title {
    font-size: 1.4rem;
    font-weight: var(--font-weight-bold);
    color: var(--dark-color); /* Slate blue title */
    margin-bottom: 25px;
    margin-top: 10px; /* Space below close button */
}

.popup-buttons {
    display: flex;
    flex-direction: column; /* Stack buttons vertically */
    gap: 15px; /* Space between buttons */
    align-items: center; /* Center buttons if needed */
}

.popup-order-btn {
    display: inline-block; /* Or block if full width */
    width: 100%; /* Make buttons take full width */
    max-width: 300px; /* Limit button width if desired */
    padding: 14px 25px;
    border-radius: 30px; /* Match CTA style */
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 1px;
    text-align: center;
    transition: background-color 0.3s ease, transform 0.2s ease;
    cursor: pointer;
    text-decoration: none; /* Ensure no underline */
}

/* Example styling for specific platform buttons (adjust colors) */
.popup-order-btn.platform-1 {
    background-color: var(--primary-color); /* Orange */
    color: var(--white-color);
}
.popup-order-btn.platform-1:hover {
    background-color: var(--secondary-color); /* Darker Orange */
    transform: translateY(-2px);
}

.popup-order-btn.platform-2 {
    background-color: var(--penguin-blue); /* Slate Blue */
    color: var(--white-color);
}
.popup-order-btn.platform-2:hover {
    background-color: #3e4a75; /* Darker Slate Blue */
    transform: translateY(-2px);
}

/* Optional: Style for platform logos within buttons */
.popup-order-btn img {
    height: 60px; /* Adjust size as needed */
    width: auto;
    vertical-align: middle;
    margin-right: 8px;
    margin-bottom: 2px; /* Align better with text */
}

/* --- Add these styles to the end of style.css --- */

/* ==================================================
   Gallery Page Styles
   ================================================== */

#gallery-page .gallery-intro {
    max-width: 600px;
    margin: -1.5rem auto 3rem auto;
    font-size: 1.1rem;
    color: #555;
}

.gallery-grid {
    display: grid;
    /* Responsive columns: 2 on small, 3 on medium, 4 on large */
    grid-template-columns: repeat(2, 1fr);
    gap: 20px; /* Gap between thumbnails */
}

/* Medium screens */
@media (min-width: 600px) {
    .gallery-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Large screens */
@media (min-width: 992px) {
    .gallery-grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 25px;
    }
}

.gallery-item a {
    display: block;
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.gallery-item a:hover {
    transform: scale(1.03);
    box-shadow: 0 6px 12px rgba(0,0,0,0.15);
}

.gallery-item img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1; /* Force square aspect ratio */
    object-fit: cover; /* Crop image to fit */
    transition: opacity 0.3s ease;
}

.gallery-item a:hover img {
    opacity: 0.85;
}

/* Add a small play icon overlay for videos */
.gallery-item a[data-type="video"]::after,
.gallery-item a[data-type="youtube"]::after {
    content: '\f04b'; /* Font Awesome play icon */
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 3rem;
    color: rgba(255, 255, 255, 0.8);
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
    pointer-events: none; /* Don't interfere with clicks */
    opacity: 0;
    transition: opacity 0.3s ease;
}

.gallery-item a[data-type="video"]:hover::after,
.gallery-item a[data-type="youtube"]:hover::after {
    opacity: 1;
}


/* ==================================================
   Gallery Popup (Lightbox/Modal) Styles
   ================================================== */

#gallery-popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.85); /* Dark overlay */
    z-index: 1050; /* High z-index */
    display: none; /* Hidden by default */
    opacity: 0;
    transition: opacity 0.3s ease;
    cursor: pointer; /* Indicate clicking closes */
}

#gallery-popup-overlay.popup-active {
    display: block;
    opacity: 1;
}

#gallery-popup {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.9);
    max-width: 90vw;
    /* ** INCREASED Max Height slightly, adjust if needed ** */
    max-height: 90vh;
    background-color: #fff;
    /* ** Adjusted Padding ** */
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    z-index: 1060;
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease 0.1s, transform 0.3s ease 0.1s;
    cursor: default;
    display: flex; /* Keep flex for overall layout */
    flex-direction: column;
    /* ** REMOVED overflow: hidden from here ** */
}

#gallery-popup-overlay.popup-active #gallery-popup {
    display: flex; /* Changed from block */
    opacity: 1;
    transform: translate(-50%, -50%) scale(1); /* Scale to full size */
}

#popup-close-btn {
    position: absolute;
    /* ** Adjusted position slightly for padding change ** */
    top: -5px;
    right: -5px;
    background-color: var(--primary-color);
    color: white;
    border: none;
    font-size: 22px;
    line-height: 1;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    cursor: pointer;
    z-index: 1070;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    transition: background-color 0.2s ease;
}
#popup-close-btn:hover {
    background-color: var(--secondary-color);
}



#popup-content {
    display: block; /* Let content flow */
    flex-grow: 1; /* Take up space */
    overflow: auto; /* Allow scrolling for TALL content */
    min-height: 200px;
    padding-right: 5px; /* Space for scrollbar */
    text-align: center; /* Center inline/block content like images */
}

/* Style for the loading indicator/error message */
.popup-loading,
.popup-error {
    color: #555;
    font-style: italic;
    text-align: center;
    padding: 50px 20px;
}


/* Styling for Instagram Embed within the popup */
#popup-content .instagram-media {
    /* Instagram's embed usually controls its own width/max-width */
    /* We might just need to ensure centering if its max-width is hit */
    margin: auto !important; /* Force centering */
    max-height: calc(85vh - 80px); /* Limit height like other content */
    overflow-y: auto; /* Allow scrolling if embed is tall */
    display: block; /* Ensure it behaves as a block */
}

/* --- Styling for content *inside* the popup --- */
/* Images */
#popup-content img {
    display: block; /* Or inline-block if centering needed */
    max-width: 100%;
    /* ** Restore max-height for standard images ** */
    max-height: calc(90vh - 80px); /* Adjust calc as needed */
    height: auto;
    margin: 0 auto; /* Center */
    object-fit: contain;
}

/* Direct Videos (.mp4) */
#popup-content video {
    display: block;
    max-width: 100%;
    /* ** Restore max-height for direct videos ** */
    max-height: calc(90vh - 80px); /* Adjust calc as needed */
    height: auto;
    margin: 0 auto; /* Center */
    background-color: #000; /* Background while loading */
}

/* YouTube iFrames */
#popup-content iframe {
    display: block;
    aspect-ratio: 16 / 9;
    width: 100%; /* Let aspect-ratio control height within width */
    /* ** Restore max-height for YouTube videos ** */
    max-height: calc(90vh - 80px); /* Adjust calc as needed */
    margin: 0 auto; /* Center */
    background-color: #000;
    border: none; /* Remove default iframe border */
}

#popup-caption {
    text-align: center;
    margin-top: 15px;
    font-size: 0.95rem;
    color: #333;
    padding-top: 10px;
    border-top: 1px solid #eee;
    /* Removed max-height - let the main popup height limit it */
    /* overflow-y: auto; */
    flex-shrink: 0; /* Prevent caption from shrinking */
}

/* Styling for Instagram Embed within the popup */
#popup-content .instagram-media {
    /* Instagram's own styles usually handle width */
    margin: 10px auto !important; /* Center */
    display: block; /* Ensure block display */
    min-width: 326px; /* From Instagram's styles */
    max-width: 540px; /* From Instagram's styles */
    width: calc(100% - 2px); /* From Instagram's styles */
    /* ** NO max-height here - let the #popup-content scrollbar handle it ** */
}

/* ==================================================
   Responsiveness
   ================================================== */

/* Medium screens (Tablets, smaller desktops) */
@media (max-width: 992px) {
    /* General rule for 2 columns */
    .grid-3, .grid-4 {
        grid-template-columns: repeat(2, 1fr); /* Affects featured dishes, footer */
    }
    #locations .locations-grid {
        grid-template-columns: repeat(2, 1fr); /* Ensure location grid is 2 columns */
    }

    h1 { font-size: 2.5rem; } h2 { font-size: 2rem; }
    .hero-content p { font-size: 1.2rem; }
    #logo img { height: 50px; }
    #navbar li { margin-left: 15px; }
    #navbar a { font-size: 0.9rem; }
	#hero-penguin {
        max-width: 140px; /* Smaller penguin */
        right: 20px;
        bottom: 15px;
    }
}

/* Small screens (Phones) */
@media (max-width: 768px) {
    :root { --header-height: 70px; }
    #logo img { height: 45px; }

    /* --- Mobile Nav Styles --- */
    #main-header .container { position: relative; }
    #navbar {
        display: none; position: absolute; top: var(--header-height); left: 0; width: 100%;
        background-color: var(--white-color); box-shadow: 0 5px 10px rgba(0,0,0,0.1);
        border-top: 1px solid #eee; padding-bottom: 10px; overflow-y: auto; max-height: calc(100vh - var(--header-height) - 20px);
    }
    #navbar.active { display: block; }
    #navbar ul { flex-direction: column; align-items: stretch; }
    #navbar li { margin: 0; }
    #navbar a { display: block; padding: 14px; border-bottom: 1px solid #eee; font-size: 1rem; font-weight: var(--font-weight-medium); text-align: center; }
    #navbar li:last-child a { border-bottom: none; }
    #navbar a::after { display: none; }
    #navbar .nav-cta { margin: 15px; text-align: center; display: block; }
    #mobile-menu-toggle { display: block; }
    /* --- End Mobile Nav Styles --- */


    /* --- General Stacking & Spacing --- */
    .grid-2, .grid-3, .grid-4 {
        grid-template-columns: 1fr; /* Stack all grids */
    }
    .grid { gap: 40px; } /* Consistent gap for stacked items */

    /* --- SPECIFIC GRID ADJUSTMENTS FOR MOBILE --- */

    /* Featured Dishes: Center the single column */
    #featured-dishes .dishes-grid {
        max-width: 350px;
        margin-left: auto;
        margin-right: auto;
    }

    /* Reset max-width for other grids that should be full width */
    #about .grid-2,
    #menu-sandwiches .menu-grid,
    #menu-desserts .menu-grid,
    #menu-drinks .menu-grid,
    #locations .locations-grid {
        grid-template-columns: 1fr; /* Stack all grids */
    }
    #footer .grid-3 {
         max-width: none;
         margin-left: 0;
         margin-right: 0;
     }
     /* --- End Specific Grid Adjustments --- */


    /* Hero adjustments */
    #hero { min-height: calc(60vh - var(--header-height)); }
    .hero-content h1 { font-size: 2.4rem; }
    .hero-content p { font-size: 1.1rem; }

	#hero-penguin {
        max-width: 100px; /* Even smaller */
        right: 15px;
        bottom: 10px;
    }
	
     /* About adjustments */
    #about .about-image { order: 1; margin-bottom: 20px; max-width: 350px; margin-left: auto; margin-right: auto; }
    #about .about-text { order: 2; text-align: center; }

    /* Menu sections adjustments */
    .menu-grid { gap: 50px; } /* Increase gap between categories */
    .menu-category-title { display: block; text-align: center; }
    .menu-category-image { max-width: 250px; margin-left: auto; margin-right: auto; }
    .menu-section .menu-description { font-size: 1rem; }

    /* Locations adjustments */
    .locations-grid { gap: 50px; }
    .map-container { padding-top: 80%; }

     /* Footer adjustments */
    #footer .footer-content { text-align: center; }
    .footer-addresses .address-block { margin-bottom: 2rem; }
	
	.order-popup {
        padding: 25px 20px;
        max-width: 90%;
    }
    .popup-title {
        font-size: 1.2rem;
        margin-bottom: 20px;
    }
    .popup-order-btn {
        padding: 12px 20px;
        font-size: 0.9rem;
    }
}

/* Specific adjustments for very narrow screens if needed */
@media (max-width: 400px) {
    h1 { font-size: 2rem; }
    .hero-content p { font-size: 1rem; }
	#hero-penguin {
        max-width: 80px; /* Tiny penguin */
        right: 10px;
        bottom: 10px;
        /* Consider hiding if it gets too cluttered: */
        /* display: none; */
    }
    .dish-card, #featured-dishes .dishes-grid { max-width: 300px; } /* Make cards slightly smaller */
}