@font-face {
    font-family: 'Acumin Pro';
    src: url('/fonts/AcuminPro-Regular.woff2') format('woff2'),
         url('/fonts/AcuminPro-Regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Acumin Pro';
    src: url('/fonts/AcuminPro-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
}

body {
	font-family: 'Acumin Pro', sans-serif;
}

header {
	max-height:100px;
	margin-bottom:3%;
	padding:0;
}

footer {
	margin-top:2%;
}

.large-logo {
	width:15%;
}

nav.bbq-navbar {
    width: auto;       /* FIX: Let it expand naturally to the left */
    float: right;
    margin-right: 5%;  /* FIX: Add margin space to push it away from the right edge */
    margin-top: 4%;
    position: relative;
    z-index: 9999;
}

nav.bbq-navbar ul.navbar-menu {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: row;
}

nav.bbq-navbar ul.navbar-menu li {
    padding: 2%;
    white-space: nowrap; /* Prevents long titles from snapping awkwardly to next lines */
}

nav.bbq-navbar ul.navbar-menu li a {
    display: block;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
    color: #000000;
    font-weight: bold;
}


.navbar-toggle {
    display: none;
}

.intro-div {
	width:98%;
	margin-left:auto;
	margin-right:auto;
}

.index-div {
	min-height: 425px;
}

table {
	border-collapse:collapse!important;
}

.appetizer-column {
	padding-right:10px;
	border-right:1px solid #000000;
}

.category {
	font-size:35px;
}

td {
	vertical-align:text-top;
	font-size:16px;
}

.special {
	vertical-align:initial;
	font-size:16px;
}

.appetizer-menu{
	width:25%!important;
	float:left;
}

.meats-menu {
	float:right
}

.menu-item, .price {
	font-size:22px;
}

.meal-description {
	font-style:italic;
}

.safety {
	font-size:16px;
	font-style:italic;
}

.meats {
	background-color:#e3e1dc;
}

.location-intro p {
	text-align:center;
}

.locations-calendar {
	width:75%;
	margin-left:auto;
	margin-right:auto;
}

.locations-calendar iframe {
	width:100%;
	height: 500px;
}

table.registration {
	table-layout:fixed;
	width:35%;
	margin-left:auto;
	margin-right:auto;
}

table.registration .spacing {
	padding-bottom:2%;
}

table.registration td{
		width:100%;
}	
	
table.registration input[type="text"], 
table.registration input[type="date"], 
table.registration input[type="time"], 
table.registration select {
	width:100%;
	padding: 1% 2%;
	margin-bottom:10%;
	background-color: #ffffff;
	border-radius: 4px;
}

td.assistance {
	padding-bottom:5%;
}

#firstname, #lastname, #date, #time {
	width:97%;
}

#lastname, #lastnameLabel, #time, #timeLabel {
	margin-left:7%;
}

.required-indicator {
		color:red;
}
footer.site-footer {
    width: 100%;
    margin-top: 4%;
    padding: 20px 0;
    box-sizing: border-box;
}

.footer-container {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 20px; /* Clean horizontal separation between copyright and icons */
}

.footer-copyright {
    margin: 0;
    padding: 0;
    font-size: 16px;
    font-weight: bold;
    color: #000000;
}

.footer-social-wrapper {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px; /* Breathing room space between individual icon slots */
    margin: 0;
    padding: 0;
}

.social-link {
    display: inline-block;
    width: 24px;  /* FIXED SIZE: Keeps containers perfectly square */
    height: 24px;
    margin: 0;
    padding: 0;
}

.social-icon {
    width: 100%;  /* DIMENSIONS MASTER: Shrinks images down to scale within links */
    height: 100%;
    object-fit: contain;
    display: block;
    transition: transform 0.2s ease-in-out;
}

.social-icon:hover {
    transform: scale(1.1); /* Subtle interactive enlargement on hover */
}

/* --- MOBILE BREAKPOINT OVERRIDES --- */
@media screen and (max-width: 480px) {
    .footer-container {
        flex-direction: row; /* FORCE: Prevents vertical stacking on tiny phone windows */
        justify-content: center;
        gap: 15px;
    }
    
    .footer-copyright {
        font-size: 14px; /* Scaled down slightly for tight screen columns */
    }
    
    .social-link {
        width: 20px;  /* Sizes down slightly on phone touch target areas */
        height: 20px;
    }
}
@media screen and (max-width: 992px) {
     header {
        position: relative !important;
        max-height: none !important;
        width: 100% !important;
        display: block !important;
        padding: 15px 4% !important;
        box-sizing: border-box !important;
        float: none !important;
    }

    img.large-logo, 
    .large-logo {
        width: 45% !important;
        max-width: 180px !important;
        display: block !important;
        float: none !important;
        margin: 0 auto 15px auto !important; /* Centers logo perfectly above the menu on mobile viewports */
    }

    /* Target any nav tag on the site globally to prevent class naming dropouts */
    nav, 
    nav.bbq-navbar {
        position: static !important;
        width: 100% !important;
        float: none !important;
        margin: 0 !important;
        padding: 0 !important;
        display: block !important;
    }

    /* 2. Hide Mobile Toggles completely */
    nav button,
    button.navbar-toggle,
    .navbar-toggler, 
    #js-hamburger-btn, 
    .hamburger-menu-icon {
        display: none !important;
    }

    /* 3. Enforce clean, centered row layout on mobile frames */
    nav ul,
    nav ul.navbar-menu {
        display: flex !important; 
        flex-direction: row !important; /* Forces row flow over mobile layout stacking */
        justify-content: center !important; /* Centers the navigation links across the screen width */
        align-items: center !important;
        width: 100% !important;
        background-color: transparent !important; /* Keeps original clean header background style */
        position: static !important;
        padding: 10px 0 !important;
        box-shadow: none !important;
        overflow: visible !important;
        z-index: 99999 !important;
        float: none !important;
        height: auto !important;
    }

    nav ul li,
    nav ul.navbar-menu li {
        width: auto !important;
        float: none !important;
        margin: 0 5px !important;
        padding: 0 !important;
        text-align: center !important;
    }

    nav ul li a,
    nav ul.navbar-menu li a {
        display: inline-block !important;
        padding: 10px 12px !important;
        width: auto !important;
        color: #000000 !important; /* Restores desktop dark text presentation styles */
        font-size: 15px !important; /* Slightly sizes down text strings so they comfortably fit mobile widths in a row */
        box-sizing: border-box !important;
    }

    nav ul li a:hover,
    nav ul.navbar-menu li a:hover {
        text-decoration: none !important;
        background-color: #292929 !important;
    }
	
	.navbar-toggler, 
	#js-hamburger-btn, 
	.hamburger-menu-icon {
		display: none !important;
	}
	
    /* 5. Catering Registration Form Structure Stacking Blocks */
    #catering-form table.registration,
    #catering-form table.registration tbody {
        display: block !important;
        width: 100% !important;
    }

    #catering-form tr, 
    #catering-form td[colspan="2"] {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    #catering-form tr.responsive-row {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        box-sizing: border-box !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    #catering-form td.responsive-cell {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        padding: 10px 0 !important;
        margin: 0 !important; 
    }

    #catering-form input[type="text"],
    #catering-form input[type="email"],
    #catering-form input[type="date"],
    #catering-form input[type="time"],
    #catering-form select {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 100% !important;
        height: 46px !important;
        font-size: 16px !important;
        box-sizing: border-box !important;
        display: block !important;
        margin-top: 5px !important;
    }
		
    #catering-form table.registration tr td:nth-of-type(2) label,
    #catering-form table.registration tr td:nth-of-type(2) input,
    #catering-form td.responsive-cell:nth-of-type(2) label,
    #catering-form td.responsive-cell:nth-of-type(2) input {
        margin-left: 0 !important;
        padding-left: 10px !important;
        text-indent: 0 !important;
        left: 0 !important;
        position: relative !important;
    }
    
    #catering-form table.registration tr td:nth-of-type(2) label,
    #catering-form td.responsive-cell:nth-of-type(2) label {
        padding-left: 0 !important;
    }
	
    /* --- SECTION 6: RESPONSIVE GOOGLE CALENDAR EMBED OVERRIDES --- */
    .locations-calendar {
        width: 100% !important;
        max-width: 100% !important;
        position: relative !important;
        padding-bottom: 75% !important;
        height: 0 !important;
        overflow: hidden !important;
        margin: 20px auto !important;
        box-sizing: border-box !important;
    }

    .locations-calendar iframe {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        border: 0 !important;
    }
}

@media screen and (min-width: 993px) and (max-width: 1200px) {
    nav.bbq-navbar {
        margin-right: 3%;
    }

    nav.bbq-navbar ul.navbar-menu li a {
        padding: 10px 12px;
        font-size: 16px;
    }

    table.registration {
        width: 60% !important;
    }

    #firstname, #lastname, #date, #time {
        width: 100% !important;
    }
}

@media screen and (min-width: 1201px) {
    .desktop-navigation-wrapper { display: block !important; }
    .mobile-navigation-wrapper  { display: none !important; }

    nav.bbq-navbar {
        margin-right: 5%;
    }
}

/* ====================================================================
   EXTRACTED DESKTOP ONLY COUPLING RULES
   ==================================================================== */
.large-menus {
    width: 100% !important;
    max-width: 1320px !important;
    margin: 40px auto !important;
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    padding: 0 10px !important;
    box-sizing: border-box !important;
}

.menu-left-sidebar {
    width: 20% !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    border-right: 2px solid #000000 !important; 
    padding-right: 20px !important;
}

.menu-right-main {
    width: 78% !important;
    display: block !important;
}

.appetizer-menu, .beverages-menu, table.meat-menu {
    width: 100% !important;
    float: none !important;
    margin: 0 0 40px 0 !important;
}

.large-menus .menu-table {
    width: 100% !important;
    border-collapse: collapse !important;
}

.large-menus .menu-table td {
    padding: 6px 0 !important;
    vertical-align: top !important;
}

.large-menus .menu-table td.price,
.large-menus .menu-table td:nth-child(2) {
    text-align: right !important;
    white-space: nowrap !important;
}

.large-menus td.description {
    padding-bottom: 16px !important; 
}

table.meat-menu tr {
    margin-bottom: 12px !important;
}

table.meat-menu td {
    padding: 8px 5px !important; 
}

table.meat-menu td.description {
    padding-bottom: 16px !important;
}

.large-menus .menu-table td.category,
.beverages-menu td.category {
    display: none !important;
}

/* ====================================================================
   EXTRACTED MOBILE ONLY COUPLING RULES
   ==================================================================== */
.bbq-mobile-wrapper {
    width: 100% !important;
    padding: 15px 5% !important;
    box-sizing: border-box !important;
    font-family: Arial, sans-serif !important;
}

.bbq-mobile-section {
    width: 100% !important;
    margin-bottom: 35px !important;
}

.bbq-mobile-heading {
    color: #cc6600 !important;
    border-bottom: 2px solid #cc6600 !important;
    padding-bottom: 5px !important;
    margin-bottom: 15px !important;
    font-size: 22px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    text-align: left !important;
}

.bbq-mobile-intro {
    font-size: 14px !important;
    color: #555555 !important;
    line-height: 1.5 !important;
    margin-bottom: 20px !important;
    text-align: left !important;
}

.bbq-mobile-item-box {
    width: 100% !important;
    padding-top: 5px !important;
    padding-bottom: 25px !important;
    box-sizing: border-box !important;
}

.bbq-mobile-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: baseline !important;
    width: 100% !important;
}

.bbq-mobile-name {
    font-weight: bold !important;
    font-size: 18px !important;
    color: #000000 !important;
    text-align: left !important;
}

.bbq-mobile-price {
    font-weight: bold !important;
    font-size: 18px !important;
    color: #cc6600 !important;
    text-align: right !important;
}

.bbq-mobile-desc {
    font-size: 15px !important;
    color: #444444 !important;
    line-height: 1.4 !important;
    margin: 2px 0 0 0 !important;
    text-align: left !important;
    padding-bottom: 10px !important;
    border-bottom: 1px dashed #cccccc !important;
}

.bbq-mobile-list-row {
    display: flex !important;
    justify-content: space-between !important;
    width: 100% !important;
    padding: 10px 0 !important;
    border-bottom: 1px dashed #dddddd !important;
}

.bbq-mobile-list-item {
    font-size: 17px !important;
    font-weight: bold !important;
    color: #000000 !important;
    text-align: left !important;
}

.bbq-mobile-list-price {
    font-size: 17px !important;
    font-weight: bold !important;
    color: #cc6600 !important;
    text-align: right !important;
}

/* ====================================================================
   TABLET ORIENTATION MASTER CONTROLLER (GALAXY TAB A9+)
   ==================================================================== */

/* Standard Baseline (Desktop monitors): Keep the mobile structure hidden */
.hide-on-desktop {
    display: none !important;
}
.large-menus {
    display: flex !important;
}

/* Landscape Viewports: Enforces desktop panel arrays from 992px up to 1280px wide */
@media screen and (min-width: 992px) and (max-width: 1280px) and (orientation: landscape) {
    .hide-on-desktop {
        display: none !important;
    }
    .large-menus {
        display: flex !important;
    }
}

/* Portrait & Phone Stacking Layouts: Activates completely under 991px wide,
   or pushes all the way up to 1024px if held vertically (Portrait) */
@media screen and (max-width: 991px), screen and (max-width: 1024px) and (orientation: portrait) {
    .large-menus {
        display: none !important;
    }
    .hide-on-desktop {
        display: block !important;
    }
}

@media screen and (min-width: 1201px) {
    .desktop-navigation-wrapper { display: block !important; }
    .mobile-navigation-wrapper  { display: none !important; }

    /* Your standard, full-size desktop presentation styles */
    nav.bbq-navbar {
        margin-right: 5%;
    }

    /* EXPANSION ENGINE: Widens your find-me calendar frame layout on big monitors */
    .locations-calendar {
        width: 90% !important; /* Boosted from 75% to widen the map viewbox space */
        max-width: 1400px;    /* Safeguard limit so it doesn't look stretched on ultra-wide screens */
        margin-left: auto;
        margin-right: auto;
    }
}