/* CATEGORY PAGE REDESIGN - NEW STYLE - 2025-01-04-17:00 */
/* PEOPLE STEP SPLIT SCREEN REDESIGN - 2025-01-04-18:00 */
/* INTRO SECTION REDESIGN - CLEAN STYLE - 2025-01-04-18:15 */
/* MENU CSS - STATE MACHINE REFACTOR - CACHE BUST: 2025-01-04-16:30 */
/* Menu page CSS - Extracted from meny.html */

/* ============================================
   FIX HORIZONTAL OVERFLOW
   ============================================ */

/* Prevent horizontal scroll */
html, body {
    overflow-x: hidden !important;
    overflow-y: auto !important; /* Allow vertical scroll for page content */
    max-width: 100vw !important;
}

/* Ensure no element exceeds viewport width */
* {
    max-width: 100%;
}

/* Force remove all scrollbars from cards container */
.cards-scroll-container::-webkit-scrollbar {
    display: none !important;
}

.cards-scroll-container {
    -ms-overflow-style: none !important;  /* IE and Edge */
    scrollbar-width: none !important;  /* Firefox */
}

/* Bin icon color fix */
img[src*="bin-icon.svg"] {
    filter: brightness(0) saturate(100%) invert(45%) sepia(89%) saturate(1234%) hue-rotate(15deg) brightness(95%) contrast(89%) !important;
}

/* Fix container fluid overflow */
.container-fluid {
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow-x: hidden !important;
}

/* Fix full-bleed sections */
.pi-scope,
.praktisk-info-container,
section[style*="background:#fff5ee"] {
    overflow-x: hidden !important;
}

/* Ensure rows don't overflow */
.row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Fix full-width sections */
[style*="width:100vw"] {
    max-width: 100vw !important;
    overflow-x: hidden !important;
}

/* Set Albert Sans as default font */
* {
    font-family: 'Albert Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
}

/* Mobile responsive fixes */
@media (max-width: 991.98px) {
    /* Remove padding from body on mobile */
    body {
        padding: 0 !important;
        padding-top: 0 !important; /* remove mobile gap under navbar */
    }
    
    /* Fixed navbar on mobile */
    .navbar {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: 1050 !important;
    }
    
    /* Mobile logo styling - match home.html */
    .mobile-logo {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
    }
    
    .mobile-logo img {
        height: 40px !important;
        width: 199.43px !important;
        object-fit: contain !important;
        margin-top: 10px !important;
        margin-right: 5vw !important;
    }
    
    /* Remove body padding to match home.html */
    body {
        padding-top: 0 !important;
    }
    
    /* Main content additional padding */
    main {
        padding-top: 10px !important;
    }
    
    /* Ensure hero is visible by DEFAULT */
    .menu-hero {
        display: block !important;
        visibility: visible !important;
    }
    
    /* Allow gradient sections to show their background */
    section[style*="background: linear-gradient"] {
        display: block !important;
        visibility: visible !important;
    }
    
    /* ONLY hide when people step is ACTIVELY visible */
    body.people-step-visible .menu-hero,
    body.people-step-visible section[class*="menu-hero"],
    body.people-step-visible section[style*="background: linear-gradient"] {
        display: none !important;
    }
    
    /* Also hide marked sections during people step */
    body.people-step-visible .hide-when-people-step {
        display: none !important;
    }
    
    /* Also hide any blocks explicitly marked to hide during people step */
    .people-step-visible .hide-when-people-step { 
        display: none !important; 
    }
    
    /* When ONLY showing course selection (not people step) */
    body.course-selection-only .hide-when-people-step {
        display: block !important;
    }

    body.course-selection-only .menu-hero {
        display: none !important;
    }

    body.course-selection-only #course-selection {
        display: block !important;
    }
    .menu-cards {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        max-width: 1600px;
        margin: 0 auto;
        width: 100%;
        overflow-y: hidden !important;
    }
    
    .cards-scroll-container {
        overflow-x: auto !important;
        overflow-y: hidden !important;
        width: 100%;
        max-width: 1200px; /* Show 4 cards: 4 * 300px + 3 * 16px = 1248px */
        background-color: transparent;
        padding: 20px 0;
        padding-bottom: 5vh !important;
        margin: 0 auto;
    }
    
    .cards-wrapper {
        display: grid;
        grid-template-columns: repeat(9, 300px);
        gap: 24px;
        transition: transform 0.5s ease;
        width: max-content;
        overflow-y: hidden !important;
    }
    
    .menu-card {
        width: 300px !important;
        height: 300px !important; /* Square shape - 300x300 */
        margin-right: 20px;
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        border-radius: 0; /* Square shape */
        position: relative;
        overflow: hidden;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
        transition: transform 0.3s ease, box-shadow 0.3s ease;
        border: 1px solid #eee;
        cursor: pointer;
        flex-shrink: 0;
    }
    
    .menu-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
    }
    
    .card-overlay {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.4);
        transition: background 0.3s ease;
    }
    
    .menu-card:hover .card-overlay {
        background: rgba(0, 0, 0, 0.2);
    }
    
    .card-body {
        position: relative;
        z-index: 1;
        color: white;
        text-align: center;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        height: 100%;
        padding: 20px;
    }
    
    .card-title {
        font-weight: 700;
        font-size: 1.8rem;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
        margin: 0;
        line-height: 1.2;
    }
    
    /* Ensure all card titles read white over images */
    .menu-card .card-title {
        color: #fff !important;
    }
    
    .nav-arrow {
        background: none;
        border: none;
        cursor: pointer;
        transition: transform 0.2s ease;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 10px;
        margin: 0 40px; /* Move arrows further outside */
    }
    
    .nav-arrow:hover {
        transform: scale(1.25);
    }
    
    .nav-arrow:active {
        transform: scale(1);
    }
    
    .arrow-svg {
        stroke: #bf6d4b;
        fill: none;
    }
    
    .nav-arrow:hover .arrow-svg {
        stroke: #a85a3a;
        fill: none;
    }
    
    /* Button color standardization for Din Meny page */
    .btn-primary {
        background-color: #bf6d4b !important;
        border-color: #bf6d4b !important;
    }
    
    .btn-outline-primary {
        color: #bf6d4b !important;
        border-color: #bf6d4b !important;
    }
    
    /* Selected state buttons should also use brand color */
    .btn-success {
        background-color: #bf6d4b !important;
        border-color: #bf6d4b !important;
        color: #fff !important;
    }
    
    /* Card selection state */
    .menu-card.selected {
        border: 2px solid #bf6d4b;
        box-shadow: 0 0 10px rgba(191, 109, 75, 0.3);
    }
    
    /* Desktop only underline for selected menu items */
    @media (min-width: 768px) {
        .item.selected {
            border-bottom: 2px solid #b3ba8e;
        }
    }
    
    /* Category Navigation Styles - Show one category at a time */
    .category-navigation {
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 20px auto;
        padding: 0 20px;
        max-width: 100%;
        position: relative;
    }

    .category-navigation .menu-card {
        margin: 0 20px;
        flex-shrink: 0;
    }

    @media (max-width: 768px) {
        .category-navigation {
            flex-direction: row;
            justify-content: space-between;
            align-items: center;
            padding: 0 10px;
        }
        
        .category-navigation .menu-card {
            margin: 0 10px;
        width: 200px;
        height: 200px;
        }
        
        .category-nav-arrow {
            flex-shrink: 0;
        }
    }
        
        .category-nav-arrow {
            order: 2;
            margin: 0 10px;
        }
        
        .category-prev {
            order: 2;
        }
        
        .category-next {
            order: 3;
        }
    }
    
    /* Make category cards non-clickable and remove opacity */
    .category-navigation .menu-card {
        cursor: pointer;
        pointer-events: auto;
    }
    
    .category-navigation .menu-card .card-overlay {
        background: transparent !important;
    }
    
    .category-navigation .menu-card:hover .card-overlay {
        background: transparent !important;
    }
    
    .category-navigation .menu-card:hover {
        transform: none;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    }
    
    /* Hide all course steps except the active one */
    .course-step {
        display: none !important;
    }
    
    .course-step.active {
        display: block !important;
    }
    
    /* Ensure only one step is visible at a time */
    .course-steps .course-step:not(.active) {
        display: none !important;
    }
    
    
    .category-nav-arrow {
        background: transparent;
        border: none;
        width: 65px; /* 50px + 30% = 65px */
        height: 65px; /* 50px + 30% = 65px */
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all 0.3s ease;
        margin: 0 20px;
        position: relative;
    }
    
    .category-nav-arrow svg {
        width: 31px; /* 24px + 30% = 31px */
        height: 31px; /* 24px + 30% = 31px */
        fill: #bf6d4b;
        transition: fill 0.3s ease;
    }
    
    .category-nav-arrow:hover {
        transform: scale(1.1);
    }
    
    .category-nav-arrow:hover svg {
        fill: #a85a3a;
    }
    
    .category-nav-arrow:disabled {
        cursor: not-allowed;
        transform: none;
    }
    
    .category-nav-arrow:disabled svg {
        fill: #ccc;
    }
    
    /* Rotate left arrow */
    .category-prev svg {
        transform: rotate(180deg);
    }
    
    
    /* Center modal footer buttons */
    .modal-footer {
        justify-content: center !important;
        text-align: center !important;
    }
    
    .modal-footer .btn {
        margin: 0 10px !important;
    }
    
    /* Mobile: add 2vh spacing between buttons */
    @media (max-width: 576px) {
        .modal-footer {
            flex-direction: column !important;
            gap: 2vh !important;
        }
        
        .modal-footer .btn {
            margin: 0 !important;
            width: 100% !important;
        }
    }
    
    /* Style Hopp Over button - orange text and border, transparent background */
    .modal-footer .btn-secondary {
        background-color: transparent !important;
        border-color: #bf6d4b !important;
        color: #bf6d4b !important;
    }
    
    .modal-footer .btn-secondary:hover {
        background-color: #bf6d4b !important;
        border-color: #bf6d4b !important;
        color: white !important;
    }
    
    /* Consistent accordion button padding */
    .accordion-button {
        padding: 12px 16px 12px 20px !important;
        font-weight: 600 !important;
    }

    /* Modal accordion buttons - same padding */
    .modal .accordion-button {
        padding: 12px 16px 12px 20px !important;
    }
    
/* Force brand color on all selected/success buttons */
.btn-success,
.btn-success:hover,
.btn-success:focus,
.btn-success:active,
.btn-select-item.btn-success,
.btn-select-extra.btn-success {
    background-color: #bf6d4b !important;
    border-color: #bf6d4b !important;
    color: white !important;
    border-radius: 0 !important;
}

/* Primary buttons */
.btn-primary,
.btn-primary:hover,
.btn-primary:focus {
    background-color: #bf6d4b !important;
    border-color: #bf6d4b !important;
    color: white !important;
    border-radius: 0 !important;
}

/* Outline primary */
.btn-outline-primary {
    color: #bf6d4b !important;
    border-color: #bf6d4b !important;
    background-color: transparent !important;
    border-radius: 0 !important;
}

.btn-outline-primary:hover {
    background-color: #bf6d4b !important;
    border-color: #bf6d4b !important;
    color: white !important;
}

/* Remove border radius from all buttons */
.btn,
.btn-sm,
.btn-lg,
button,
input[type="button"],
input[type="submit"] {
    border-radius: 0 !important;
}

/* Cart and offcanvas buttons */
.offcanvas .btn,
.offcanvas button,
#offcanvas-menu-cart .btn,
#offcanvas-menu-cart button {
    border-radius: 0 !important;
}

/* Modal buttons */
.modal .btn,
.modal button,
.modal .modal-content,
.modal .modal-header,
.modal .modal-body,
.modal .modal-footer,
#snackSelectionModal .btn,
#extrasModal .btn,
#extrasSelectionModal .btn {
    border-radius: 0 !important;
}

.modal .modal-content {
    background-color: #fdf5ef !important;
}

/* Modal accordion items background */
.modal .accordion-item {
    background-color: #fdf5ef !important;
}

.modal .accordion-item .accordion-header {
    background-color: #fdf5ef !important;
}

.modal .accordion-item .accordion-button {
    background-color: #fdf5ef !important;
}

.modal .accordion-item .accordion-collapse {
    background-color: #fdf5ef !important;
}

.modal .accordion-item .accordion-body {
    background-color: #fdf5ef !important;
}

/* Modal complete background coverage */
.modal .modal-header {
    background-color: #fdf5ef !important;
}

.modal .modal-body {
    background-color: #fdf5ef !important;
}

.modal .modal-footer {
    background-color: #fdf5ef !important;
}

.modal .extras-list {
    background-color: #fdf5ef !important;
}

.modal .item-detail {
    background-color: #fdf5ef !important;
}

.modal .accordion {
    background-color: #fdf5ef !important;
}

/* Specific classes background coverage */
.extras-list {
    background-color: #fdf5ef !important;
}

    .accordion-item.item {
    background-color: #fdf5ef !important;
}

.accordion-header {
    background-color: #fdf5ef !important;
}

.accordion-button.fw-semibold.item-toggle {
    background-color: #fdf5ef !important;
}

.accordion-collapse.collapse.show {
    background-color: #fdf5ef !important;
}

.accordion-body {
    background-color: #fdf5ef !important;
}

.item-detail {
    background-color: #fdf5ef !important;
}

.mb-1 {
    background-color: #fdf5ef !important;
}

.item-price.text-primary.fw-bold {
    background-color: #fdf5ef !important;
}

.small.mb-1 {
    background-color: #fdf5ef !important;
}

.btn.btn-outline-primary.btn-select-item.btn-select-extra {
    background-color: #fdf5ef !important;
}

/* Form controls border radius */
.form-control,
.form-select,
.input-group-text,
.form-check-input {
    border-radius: 0 !important;
}

/* Close button */
.btn-close {
    border-radius: 0 !important;
}

/* Accordion buttons */
.accordion-button {
    border-radius: 0 !important;
}

/* Card elements */
.card {
    border-radius: 0 !important;
}

/* Offcanvas */
.offcanvas {
    border-radius: 0 !important;
}

/* ============================================
   PEOPLE STEP - SPLIT SCREEN DESIGN
   ============================================ */

.people-step-split {
    display: flex;
    min-height: 100vh;
    width: 100%;
}


/* Left side - Content area (cream background) */
.people-step-content {
    flex: 0 0 45%;
    background-color: #f5f0e8;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 40px;
}

.people-step-inner {
    max-width: 500px;
    width: 100%;
}

/* Step number - Large orange "02" */
.step-number {
    font-size: 4rem;
    font-weight: 700;
    color: #bf6d4b;
    line-height: 1;
    margin-bottom: 20px;
}

/* Step title */
.step-title {
    font-size: 2.5rem;
    font-weight: 400;
    color: #000;
    line-height: 1.2;
    margin-bottom: 15px;
}

.step-title .text-accent {
    color: #b4ba93;
}

/* Subtitle */
.step-subtitle {
    font-size: 1rem;
    color: #666;
    margin-bottom: 40px;
}

/* Input group - side by side */
.people-input-group {
    display: flex;
    gap: 0;
    margin-top: 40px;
}

.people-input {
    flex: 0 0 140px;
    padding: 16px 20px;
    font-size: 1.1rem;
    font-weight: 600;
    border: 2px solid #bf6d4b;
    border-right: none;
    background: #f5f0e8;
    color: #bf6d4b;
    text-align: center;
    outline: none;
    transition: all 0.3s ease;
}

.people-input:focus {
    background: #f5f0e8;
    border-color: #bf6d4b;
}

/* Remove number input arrows */
.people-input::-webkit-inner-spin-button,
.people-input::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.people-input[type=number] {
    -moz-appearance: textfield;
    appearance: textfield;
}

.btn-confirm {
    flex: 1;
    padding: 16px 40px;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    background-color: #bf6d4b;
    color: white;
    border: 2px solid #bf6d4b;
    border-left: none;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-confirm:hover {
    background-color: #a85a3a;
    border-color: #a85a3a;
}

.btn-confirm:active {
    transform: scale(0.98);
}

/* Right side - Full height image */
.people-step-image {
    flex: 0 0 55%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
}

/* Optional: Text overlay on image */
.people-step-image::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.2);
}

/* ============================================
   MOBILE RESPONSIVE - STACKED LAYOUT
   ============================================ */

@media (max-width: 991.98px) {
    .people-step-split {
        flex-direction: column;
        min-height: 100vh;
    }
    
    /* Image on top - reduced height */
    .people-step-image {
        flex: 0 0 auto;
        height: 40vh;
        min-height: 300px;
        order: 1;
    }
    
    /* Content below */
    .people-step-content {
        flex: 1;
        order: 2;
        padding: 40px 20px;
        padding-top: 0px !important;
        padding-bottom: 0px !important;
        min-height: 60vh;
        /* Slight bottom spacing for better mobile view */
        margin-bottom: 10px;
    }
    
    .step-number {
        font-size: 3rem;
    }
    
    .step-title {
        font-size: 2rem;
    }
    
    .people-input-group {
        flex-direction: column;
        gap: 0;
    }
    
    .people-input {
        flex: 1;
        border-right: 2px solid #bf6d4b;
        border-bottom: none;
    }
    
    .btn-confirm {
        border-left: 2px solid #bf6d4b;
        border-top: none;
    }
}

@media (max-width: 576px) {
    .people-step-content {
        padding: 30px 20px;
        padding-top: 0px !important;
        padding-bottom: 0px !important;
    }
    
    .step-number {
        font-size: 2.5rem;
    }
    
    .step-title {
        font-size: 1.75rem;
    }
    
    .people-input {
        font-size: 1rem;
        padding: 14px 16px;
    }
    
    .btn-confirm {
        padding: 14px 30px;
        font-size: 0.95rem;
    }
}

/* Ensure people step is full width when visible */
body.people-step-visible #people-step {
    display: flex !important;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
}

/* Hide other content when people step is active */
/* Do not hide the people-step itself when isolating content */
body.people-step-visible main > *:not(#menu-builder-flow):not(#offcanvas-menu-cart):not(#people-step) {
    display: none !important;
}

body.people-step-visible #menu-builder-flow > *:not(#people-step) {
    display: none !important;
}

/* Hide navbar during people step */
body.people-step-visible .navbar {
    display: none !important;
}

/* Restore navbar in category selection */
body.course-selection-only .navbar {
    display: flex !important;
}

@media (max-width: 991.98px) {
    /* Remove body padding during people step */
    body.people-step-visible {
        padding-top: 0 !important;
    }
}

/* Custom confirmation popup */
.custom-confirmation-popup {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.custom-confirmation-popup.show {
    opacity: 1;
    visibility: visible;
}

.custom-confirmation-content {
    background: white;
    padding: 30px;
    max-width: 500px;
    width: 90%;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    border-radius: 0;
}

.custom-confirmation-content h4 {
    color: #bf6d4b;
    font-size: 1.3rem;
    font-weight: 600;
    margin-bottom: 20px;
}

.custom-confirmation-content p {
    color: #666;
    font-size: 1rem;
    line-height: 1.5;
    margin-bottom: 30px;
}

.custom-confirmation-buttons {
    display: flex;
    gap: 15px;
    justify-content: center;
}

.custom-confirmation-buttons .btn {
    min-width: 120px;
    padding: 12px 24px;
    font-weight: 600;
    border-radius: 0;
}

.custom-confirmation-buttons .btn-primary {
    background-color: #bf6d4b;
    border-color: #bf6d4b;
}

.custom-confirmation-buttons .btn-primary:hover {
    background-color: #a55a3a;
    border-color: #a55a3a;
}

.custom-confirmation-buttons .btn-secondary {
    background-color: #6c757d;
    border-color: #6c757d;
}

.custom-confirmation-buttons .btn-secondary:hover {
    background-color: #5a6268;
    border-color: #5a6268;
}

@media (max-width: 576px) {
    .custom-confirmation-content {
        padding: 20px;
        width: 95%;
    }
    
    .custom-confirmation-buttons {
        flex-direction: column;
    }
    
    .custom-confirmation-buttons .btn {
        width: 100%;
    }
}
    
    /* Padding for all accordion items - main menu */
    .accordion-item.item,
    .course-step .accordion-item {
        padding: 2vh 0 !important;
        margin-bottom: 0 !important;
    }

    /* Padding for modal accordion items */
    .modal .accordion-item,
    #snackSelectionModal .accordion-item,
    #extrasModal .accordion-item,
    #extrasSelectionModal .accordion-item {
        padding: 2vh 0 !important;
        margin-bottom: 0 !important;
    }
    
    /* Offcanvas cart styling */
    #offcanvas-menu-cart {
        z-index: 1055 !important;
    }
    
    /* Force 3px orange underline on ALL modal accordion items */
    .modal .accordion-item,
    .modal-body .accordion-item,
    #snackSelectionModal .accordion-item,
    #extrasModal .accordion-item,
    #extrasSelectionModal .accordion-item {
        margin-bottom: 0 !important;
        border: none !important;
        border-bottom: 3px solid #bf6d4b !important;
        border-radius: 0 !important;
        background: white !important;
        box-shadow: none !important;
        padding: 2vh 0 !important;
    }

    /* Override Bootstrap's default accordion borders */
    .modal .accordion-item:first-child,
    .modal .accordion-item:last-child,
    .modal .accordion-item:not(:first-child):not(:last-child) {
        border-bottom: 3px solid #bf6d4b !important;
        border-top: none !important;
        border-left: none !important;
        border-right: none !important;
    }

    /* Last item can have thinner border if needed */
    .modal .accordion-item:last-child {
        border-bottom: 3px solid #bf6d4b !important;
    }
    
    #snackSelectionModal .accordion-button,
    #extrasModal .accordion-button,
    #extrasSelectionModal .accordion-button {
        padding: 12px 16px;
    }
    
    #snackSelectionModal .accordion-button:not(.collapsed),
    #extrasModal .accordion-button:not(.collapsed),
    #extrasSelectionModal .accordion-button:not(.collapsed) {
        color: #bf6d4b;
    }
    
    /* Modal accordion body layout */
    .modal .accordion-body,
    #snackSelectionModal .accordion-body,
    #extrasModal .accordion-body,
    #extrasSelectionModal .accordion-body {
        padding: 16px !important;
        display: flex !important;
        flex-direction: row !important;
        align-items: flex-start !important;
        justify-content: space-between !important;
        gap: 20px !important;
    }

    /* Item detail takes available space */
    .modal .accordion-body .item-detail {
        flex: 1 1 auto !important;
        min-width: 0 !important;
    }

    /* Button stays on the right */
    .modal .accordion-body .btn-select-extra,
    .modal .accordion-body .btn-select-item {
        flex: 0 0 auto !important;
        min-width: 160px !important;
        margin-left: auto !important;
        align-self: flex-start !important;
    }

    /* Mobile: stack vertically */
    @media (max-width: 576px) {
        .modal .accordion-body,
        #snackSelectionModal .accordion-body,
        #extrasModal .accordion-body,
        #extrasSelectionModal .accordion-body {
            flex-direction: column !important;
            align-items: stretch !important;
            gap: 12px !important;
        }
        
        .modal .accordion-body .btn-select-extra,
        .modal .accordion-body .btn-select-item {
            width: 100% !important;
            margin-left: 0 !important;
            margin-top: 10px !important;
        }
        }
        
        #snackSelectionModal .btn-select-extra,
        #extrasModal .btn-select-extra,
        #extrasSelectionModal .btn-select-extra {
            align-self: flex-end !important;
            appearance: button !important;
            display: block !important;
            flex-shrink: 0 !important;
            float: none !important;
            margin: 0 !important;
            margin-top: 10px !important;
            width: 290px !important;
            height: 39px !important;
            min-width: 160px !important;
            max-width: none !important;
            box-sizing: border-box !important;
            padding: 8px 16px !important;
            font-family: "Albert Sans", sans-serif !important;
            font-size: 14px !important;
            font-weight: 600 !important;
            line-height: 21px !important;
            text-align: center !important;
            text-transform: uppercase !important;
            border: 1px solid !important;
            border-radius: 0px !important;
            background-color: #bf6d4b !important;
            border-color: #bf6d4b !important;
            color: white !important;
            cursor: pointer !important;
}

/* ULTRA SPECIFIC CSS FOR MODAL EXTRAS - VERSION 4.0 - FORCE REFRESH */
.modal .accordion-item {
    border-bottom: 3px solid #bf6d4b !important;
    margin-bottom: 0 !important;
    padding: 2vh 0 !important; /* Top & bottom padding */
}

.modal .accordion-body {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
}

.modal .accordion-body .item-detail {
    flex: 1 !important;
}

.modal .accordion-body button.btn-select-extra,
.modal .accordion-body button.btn-select-item {
    margin-left: auto !important;
    float: right !important;
    min-width: 160px !important;
    width: 160px !important;
}

/* FORCE SAME COLOR FOR SELECTED BUTTONS */
.modal button.btn-success.btn-select-extra {
    background-color: #bf6d4b !important;
    border-color: #bf6d4b !important;
    color: white !important;
}

/* Menu Cards Styles - Added for meny.html */
.menu-cards {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 1400px;
    margin: 0 auto;
    width: 100%;
    overflow-x: hidden !important; /* Prevent card overflow */
    overflow-y: hidden !important;
}

.cards-scroll-container {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    width: 100%;
    max-width: 1200px; /* Show 4 cards: 4 * 300px + 3 * 16px = 1248px */
    background-color: transparent;
    padding: 20px 0;
    margin: 0 auto;
}

.cards-wrapper {
    display: grid;
    grid-template-columns: repeat(9, 300px);
    gap: 16px; /* reduced spacing between cards */
    transition: transform 0.5s ease;
    width: max-content;
    overflow-y: hidden !important;
}

/* Ensure no extra spacing inside grid (avoid cut off of last card) */
.cards-wrapper .menu-card { 
    margin-right: 0 !important; 
    width: 300px !important;
    height: 300px !important;
    min-width: 300px !important;
    min-height: 300px !important;
    max-width: 300px !important;
    max-height: 300px !important;
    flex-shrink: 0 !important;
}

/* Ensure anchor cards are clickable above overlays */
.cards-wrapper a.menu-card,
.category-navigation a.menu-card {
    pointer-events: auto !important;
    position: relative;
    z-index: 2;
}

.menu-card {
    width: 300px !important;
    height: 300px !important; /* Square shape - 300x300 */
    margin-right: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 0; /* Square shape */
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border: 1px solid #eee;
    cursor: pointer;
    flex-shrink: 0;
}

.menu-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
}

.card-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    transition: background 0.3s ease;
}

.menu-card:hover .card-overlay {
    background: rgba(0, 0, 0, 0.2);
}

/* INTRO SECTION - Aumentare larghezza su desktop */
.intro-section .container { max-width: 1400px !important; }
@media (min-width: 1200px) {
  .intro-section .container { max-width: 1400px !important; padding-left: 60px !important; padding-right: 60px !important; }
}
@media (min-width: 1400px) {
  .intro-section .container { max-width: 1600px !important; padding-left: 80px !important; padding-right: 80px !important; }
}

/* Menu Cards Section - Stessa larghezza */
.container.menu-cards { max-width: 1600px !important; }
@media (min-width: 1200px) { .container.menu-cards { max-width: 1600px !important; } }
@media (min-width: 1400px) { .container.menu-cards { max-width: 1800px !important; } }

/* INTRO SECTION - LARGHEZZA AUMENTATA DA DESKTOP (cat slider) */
#cat-slider-section .container {
    max-width: 1600px !important;
    width: 100% !important;
}

@media (min-width: 1200px) {
    #cat-slider-section { padding: 80px 40px !important; }
    #cat-slider-section .container { max-width: 1600px !important; width: 100% !important; }
}

@media (min-width: 1400px) {
    #cat-slider-section .container { max-width: 1800px !important; }
}
.card-body {
    position: relative;
    z-index: 1;
    color: white;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100%;
    padding: 20px;
}

.card-title {
    font-weight: 700;
    font-size: 1.8rem;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7);
    margin: 0;
    line-height: 1.2;
}

/* Ensure all card titles read white over images */
.menu-card .card-title {
    color: #fff !important;
}

.nav-arrow {
    background: none;
    border: none;
    cursor: pointer;
    transition: transform 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
    margin: 0 40px; /* Move arrows further outside */
}

.nav-arrow:hover {
    transform: scale(1.25);
}

.nav-arrow:active {
    transform: scale(1);
}

.arrow-svg {
    stroke: #bf6d4b;
    fill: none;
}

.nav-arrow:hover .arrow-svg {
    stroke: #a85a3a;
    fill: none;
}

/* Card selection state */
.menu-card.selected {
    border: 2px solid #bf6d4b;
    box-shadow: 0 0 10px rgba(191, 109, 75, 0.3);
}

/* ============================================
   CATEGORY PAGE - NEW DESIGN STYLE
   ============================================ */

/* Category step container - cream background */
.course-step {
    background-color: #fdf5ef;
    padding: 40px 20px;
    min-height: 100vh;
}

/* Main page background */
body {
    background-color: #fdf5ef;
}

/* Menu page specific background */
.menu-page,
#meny-page {
    background-color: #fdf5ef !important;
}

/* Allow hero image to show - don't override background */
.menu-hero {
    /* Let the inline style background image show */
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
}

/* Specific sections background */
#cat-slider-section {
    background-color: #fdf5ef !important;
}

/* ============================================
   INTRO SECTION - "TAILORED TO YOUR NEEDS" STYLE
   ============================================ */

.intro-section {
    background-color: #f5f0e8;
    padding: 80px 20px;
    overflow-x: hidden !important;
}

/* Header - Number + Title side by side */
.intro-header {
    display: flex;
    align-items: flex-start;
    gap: 30px;
    margin-bottom: 30px;
}

.intro-number {
    font-size: 4rem;
    font-weight: 700;
    color: #bf6d4b;
    line-height: 1;
    flex-shrink: 0;
}

.intro-title h1 {
    font-size: 2.5rem;
    font-weight: 400;
    color: #000;
    line-height: 1.2;
    margin: 0;
}

.intro-title .text-accent {
    color: #b4ba93;
}

/* Horizontal divider */
.intro-divider {
    width: 100%;
    height: 2px;
    background-color: #bf6d4b;
    margin: 30px 0;
}

/* Info section - PRIZE label */
.intro-info {
    text-align: left;
    margin: 30px 0;
}

.info-label {
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #000;
    margin-bottom: 8px;
}

.info-text {
    font-size: 0.95rem;
    color: #666;
    line-height: 1.5;
}

/* Action button - centered */
.intro-action {
    text-align: center;
    margin-top: 40px;
}

.intro-action .btn {
    border-radius: 0;
    padding: 14px 40px;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    background-color: #bf6d4b;
    border-color: #bf6d4b;
    color: white;
    transition: all 0.3s ease;
}

.intro-action .btn:hover {
    background-color: #a85a3a;
    border-color: #a85a3a;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(191, 109, 75, 0.3);
}

/* ============================================
   MOBILE RESPONSIVE
   ============================================ */

@media (max-width: 768px) {
    .intro-section {
        padding: 60px 20px;
    }
    
    .intro-header {
        gap: 20px;
    }
    
    .intro-number {
        font-size: 3rem;
    }
    
    .intro-title h1 {
        font-size: 2rem;
    }
    
    .intro-divider {
        margin: 20px 0;
    }
    
    .intro-action .btn {
        padding: 12px 30px;
        font-size: 0.95rem;
        width: 100%;
        max-width: 300px;
    }
}

@media (max-width: 576px) {
    .intro-header {
        flex-direction: column;
        gap: 15px;
    }
    
    .intro-number {
        font-size: 2.5rem;
    }
    
    .intro-title h1 {
        font-size: 1.75rem;
    }
}

/* Consistent container widths */
.intro-section .container,
.course-step,
.items-container {
    max-width: 900px !important;
}

/* Card wrapper styling - Desktop */
@media (min-width: 769px) {
    .cards-wrapper .menu-card,
    .cards-wrapper .menu-gallery-card {
        width: 300px !important;
        height: 300px !important;
        min-width: 300px !important;
        min-height: 300px !important;
        max-width: 300px !important;
        max-height: 300px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex-shrink: 0 !important;
    }
}

.cards-wrapper .card-title {
    font-size: 22px !important;
    text-align: center !important;
}

/* Card title font size for all cards */
.menu-card .card-title,
.meny-card .card-title {
    font-size: 22px !important;
    text-align: center !important;
}

/* Category descriptions */
.category-desc {
    font-size: 0.9rem !important;
    color: #666 !important;
    margin-bottom: 20px !important;
    text-align: center !important;
    line-height: 1.4 !important;
}

/* Navigation arrows alignment */
.category-navigation {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
}

.category-navigation .category-nav-arrow {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Desktop: card dimensions - 300x300px */
@media (min-width: 769px) {
    .cards-wrapper .menu-card {
        width: 300px !important;
        height: 300px !important;
        min-width: 300px !important;
        min-height: 300px !important;
        max-width: 300px !important;
        max-height: 300px !important;
        flex-shrink: 0 !important;
    }
    
    /* Category navigation cards during menu building - 300x300px */
    .category-navigation .menu-card {
        width: 300px !important;
        height: 300px !important;
        min-width: 300px !important;
        min-height: 300px !important;
        max-width: 300px !important;
        max-height: 300px !important;
    }
}

/* Desktop: 22px for all card titles */
@media (min-width: 769px) {
    .category-navigation .menu-card .card-title,
    .category-navigation .menu-card h3.card-title,
    .cards-wrapper .menu-card .card-title,
    .cards-wrapper .menu-card h3.card-title {
        font-size: 22px !important;
        font-weight: 700 !important;
    }
}

/* Desktop: align nav arrows to card center */
@media (min-width: 769px) {
    .nav-arrow,
    .scroll-cards-left,
    .scroll-cards-right {
        align-self: center !important;
        margin-top: 0 !important;
        height: auto !important;
    }
    
    .category-nav-arrow,
    .category-navigation .category-nav-arrow {
        align-self: center !important;
        margin-top: 0 !important;
    }
    
    /* Ensure containers center arrows properly */
    .menu-cards,
    .category-navigation {
        display: flex !important;
        align-items: center !important;
    }
    
    .nav-arrow {
        width: 75px !important;
        height: 75px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        border: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        margin-top: 35px !important;
        padding-top: 0 !important;
    }
    
    .nav-arrow .arrow-svg {
        width: 60px !important;
        height: 60px !important;
    }
    
    .menu-cards {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 20px !important;
    }
}

/* Mobile navigation arrows positioning */
@media (max-width: 768px) {
    .category-navigation {
        position: relative !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 0 !important;
        padding: 0 20px !important;
        margin: 0 !important;
    }
    
    .category-navigation .category-nav-arrow {
        position: relative !important;
        flex: 0 0 auto !important;
        z-index: 10 !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    .category-navigation .category-prev {
        order: 1 !important;
    }
    
    .category-navigation .category-next {
        order: 3 !important;
    }
    
    .category-navigation .menu-card {
        order: 2 !important;
        flex: 0 0 auto !important;
        z-index: 5 !important;
    }
    
    /* Sticky navigation on mobile */
    .category-navigation.sticky {
        position: fixed !important;
        top: 70px !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 1000 !important;
        background: #fdf5ef !important;
        padding: 0 20px !important;
        box-shadow: 0 2px 10px rgba(0,0,0,0.1) !important;
        margin-top: 0 !important;
    }
    
    /* Reduce card size when sticky */
    .category-navigation.sticky .menu-card {
        width: 200px !important;
        height: 200px !important;
    }
    
    /* Mobile category navigation for dinmeny - always sticky */
    body.menu-builder-active .category-navigation {
        position: sticky !important;
        top: 70px !important;
        z-index: 1000 !important;
        background: #fdf5ef !important;
        padding: 15px 20px !important;
        box-shadow: 0 2px 10px rgba(0,0,0,0.1) !important;
        margin-bottom: 20px !important;
    }
    
    /* Mobile card size for dinmeny */
    body.menu-builder-active .category-navigation .menu-card {
        width: 200px !important;
        height: 200px !important;
    }
}

/* Intro section without animation */
.intro-section {
    opacity: 1;
}

/* ============================================
   MOBILE CARD LAYOUT - VERTICAL STACK
   ============================================ */

@media (max-width: 768px) {
    /* Hide scroll arrows on mobile */
    .nav-arrow {
        display: none !important;
    }
    
    /* Vertical scroll on mobile */
    .cards-wrapper {
        display: grid !important;
        grid-template-columns: 1fr !important;
        grid-auto-rows: 300px !important;
        gap: 16px !important;
        width: 100% !important;
        transform: none !important;
        padding: 0 !important;
        margin: 0 auto !important;
    }
    
    /* Make cards square with same dimensions on mobile */
    .menu-card {
        width: 300px !important;
        height: 300px !important;
        flex-shrink: 0 !important;
    }
    
    /* Ensure cards-wrapper cards are 300x300 on mobile */
    .cards-wrapper .menu-card {
        width: 300px !important;
        height: 300px !important;
    }
    
    /* Keep horizontal scroll on mobile */
    .cards-scroll-container {
        overflow: hidden !important;
        overflow-y: hidden !important;
        height: auto !important;
        padding-right: 0 !important; /* Remove mobile padding */
    }
    
    /* Remove padding-right from cards-scroll-container on mobile */
    .cards-scroll-container {
        padding-right: 0 !important;
    }
    
    /* Keep cards horizontal on mobile */
    .menu-cards {
        flex-direction: row !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        padding: 0 !important;
        overflow-y: hidden !important;
    }
    
    /* Keep horizontal scroll container on mobile */
    .cards-scroll-container {
        display: block !important;
        justify-content: center !important;
        align-items: center !important;
        width: 100% !important;
        overflow-y: hidden !important;
    }
    
    /* Remove padding top from cat-slider-section on mobile */
    #cat-slider-section {
        padding-top: 0 !important;
    }
    
    /* Center display-4 text on mobile */
    .display-4.fw-normal.text-center {
        text-align: center !important;
        margin: 0 auto !important;
        max-width: 100% !important;
    }
    
    /* Align 01 and h1 on same line on mobile */
    .intro-header {
        flex-direction: row !important;
        align-items: flex-start !important;
        gap: 15px !important;
    }
    
    .intro-number {
        font-size: 2.5rem !important;
        line-height: 1 !important;
        margin-bottom: 0 !important;
    }
    
    .intro-title h1 {
        font-size: 1.5rem !important;
        line-height: 1.2 !important;
        margin: 0 !important;
    }
    
    /* Mobile padding for Din Meny title */
    .intro-section {
        padding-top: 10vh !important;
    }
}

/* Mobile category navigation - global enforcement */
@media (max-width: 991.98px) {
  .category-navigation {
    position: sticky !important;
    top: 0 !important;
    z-index: 1000 !important;
    background: #fdf5ef !important;
    padding: 10px 0 !important;
    border: none !important;
    box-shadow: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
  }
  .category-navigation .menu-card {
    order: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .category-navigation .category-prev { order: 0 !important; }
  .category-navigation .category-next { order: 2 !important; }
  .category-nav-arrow {
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    height: 40px !important;
    width: 40px !important;
  }
}

#people-step {
    background-color: #fdf5ef !important;
}

/* Accordion background color */
.accordion-item,
.accordion-item .accordion-header,
.accordion-item .accordion-button,
.accordion-item .accordion-collapse,
.accordion-item .accordion-body {
    background-color: #fdf5ef !important;
}

#people-step .col-12 {
    background-color: #fdf5ef !important;
}

/* Main content background */
main {
    background-color: #fdf5ef !important;
}

/* Contact form section */
.hide-when-people-step {
    background-color: #fdf5ef !important;
}

/* Practical info section */
.container-fluid.hide-when-people-step {
    background-color: #fdf5ef !important;
}

.course-step.active {
    display: block !important;
}

/* Category header - centered */
.category-header {
    text-align: center;
    max-width: 900px;
    margin: 0 auto 60px;
}

.category-header h3 {
    font-size: 2.5rem;
    font-weight: 400;
    color: #b4ba93;
    margin-bottom: 20px;
    letter-spacing: 0.5px;
}

.category-header .category-desc {
    font-size: 1rem;
    line-height: 1.6;
    color: #666;
    margin: 0 auto;
    max-width: 700px;
}

/* Category navigation with card - show in new design */
.category-navigation {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 40px auto;
    padding: 0 20px;
    max-width: 100%;
    position: relative;
}

.category-navigation .menu-card {
    margin: 0 20px;
    flex-shrink: 0;
    width: 300px;
    height: 300px;
    background-size: cover;
    background-position: center;
    border-radius: 0;
    position: relative;
    overflow: hidden;
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
    cursor: pointer;
    pointer-events: auto;
}

.category-navigation .menu-card .card-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.category-navigation .menu-card .card-body {
    position: relative;
    z-index: 2;
    text-align: center;
    color: white;
}

.category-navigation .menu-card .card-title {
    font-size: 1.8rem;
    font-weight: 600;
    margin: 0;
    text-shadow: 0 2px 4px rgba(0,0,0,0.5);
}

.category-navigation .menu-card:hover {
    transform: none;
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

.category-navigation .menu-card:hover .card-overlay {
    background: transparent;
}

/* Category navigation arrows */
.category-navigation .category-nav-arrow {
    width: 70px;
    height: 70px;
    background: transparent;
    border: none;
    color: #bf6d4b;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: none;
}

.category-navigation .category-nav-arrow:hover:not(:disabled) {
    background: transparent;
    color: #bf6d4b;
    transform: scale(1.1);
}

.category-navigation .category-nav-arrow:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.category-navigation .category-nav-arrow svg {
    width: 32px;
    height: 32px;
    fill: currentColor;
}

/* Mobile responsive for category navigation */
@media (max-width: 768px) {
    .category-navigation {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        padding: 0 10px;
        margin: 20px auto;
    }
    
    .category-navigation .menu-card {
        margin: 0 10px;
        width: 180px;
        height: 180px;
    }
    
    .category-navigation .category-nav-arrow {
        width: 50px;
        height: 50px;
    }
    
    .category-navigation .category-nav-arrow svg {
        width: 24px;
        height: 24px;
    }
}

/* Extra small mobile */
@media (max-width: 480px) {
    .category-navigation {
        flex-direction: column;
        gap: 20px;
        padding: 0 20px;
    }
    
    .category-navigation .menu-card {
        width: 200px;
        height: 200px;
        margin: 0;
    }
    
    .category-navigation .category-nav-arrow {
        width: 60px;
        height: 60px;
    }
    
    .category-navigation .category-nav-arrow svg {
        width: 28px;
        height: 28px;
    }
}

/* Items container - centered with max width */
.items-container {
    max-width: 900px;
    margin: 0 auto;
}

/* Category title section - "Scegli i tuoi bignè" style */
.category-items-title {
    text-align: center;
    margin-bottom: 40px;
}

.category-items-title h4 {
    font-size: 1.8rem;
    font-weight: 400;
    color: #b4ba93;
    margin: 0;
}

/* Individual item styling - clean, minimal */
.accordion-item.item {
    background-color: transparent !important;
    border: none !important;
    border-bottom: 1px solid #d4c8b8 !important;
    padding: 30px 0 !important;
    margin-bottom: 0 !important;
}

.accordion-item.item:last-child {
    border-bottom: none !important;
}

/* Item header - title */
.accordion-item .accordion-header {
    background: transparent !important;
}

.accordion-item .accordion-button {
    background: transparent !important;
    border: none !important;
    padding: 0 0 15px 0 !important;
    font-size: 1.3rem;
    font-weight: 600;
    color: #333;
    box-shadow: none !important;
}

.accordion-item .accordion-button:not(.collapsed) {
    background: transparent !important;
    color: #333 !important;
}

.accordion-item .accordion-button::after {
    display: none;
}

/* Item body - description and button layout */
.accordion-item .accordion-collapse {
    border: none !important;
}

.accordion-item .accordion-body {
    padding: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 30px !important;
}

/* Item details - left side */
.accordion-item .accordion-body .item-detail {
    flex: 1 1 auto;
}

.accordion-item .accordion-body .item-detail > div:first-child {
    font-size: 0.95rem;
    line-height: 1.6;
    color: #666;
    margin-bottom: 15px;
}

.accordion-item .accordion-body .item-price {
    display: block !important;
    font-size: 1rem;
    font-weight: 600;
    color: #bf6d4b !important;
    margin-top: 10px;
    margin-bottom: 15px;
}

/* Allergens styling */
.accordion-item .accordion-body .small {
    font-size: 0.85rem !important;
}

.accordion-item .accordion-body .small span:first-child {
    color: #b4ba93 !important;
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: 0.5px;
}

.accordion-item .accordion-body .small span:last-child {
    color: #999 !important;
}

/* Price styling - force display and color */
.accordion-item .item-price,
.accordion-item .accordion-body .item-price,
.item .item-price {
    display: block !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: #bf6d4b !important;
    margin-top: 10px !important;
    margin-bottom: 15px !important;
    line-height: 1.2 !important;
}

/* SELECT button - styled like "250 KR" button in image */
.accordion-item .btn-select-item {
    flex: 0 0 auto;
    min-width: 140px;
    padding: 12px 30px;
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    border: 2px solid #bf6d4b !important;
    background-color: transparent !important;
    color: #bf6d4b !important;
    border-radius: 0 !important;
    transition: all 0.3s ease;
    align-self: flex-start;
}

.accordion-item .btn-select-item:hover {
    background-color: #bf6d4b !important;
    color: white !important;
}

/* SELECTED state - filled button */
.accordion-item.selected .btn-select-item,
.accordion-item .btn-select-item.btn-success {
    background-color: #bf6d4b !important;
    border-color: #bf6d4b !important;
    color: white !important;
}

/* Mobile responsive */
@media (max-width: 768px) {
    .category-header h3 {
        font-size: 2rem;
    }
    
    .category-header .category-desc {
        font-size: 0.95rem;
    }
    
    .accordion-item .accordion-button {
        font-size: 1.1rem;
    }
    
    .accordion-item .accordion-body {
        flex-direction: column !important;
        gap: 15px !important;
    }
    
    .accordion-item .btn-select-item {
        width: 100%;
        align-self: stretch;
    }
}

/* Navigation arrows - bottom fixed position */
.category-navigation-fixed {
    position: fixed;
    bottom: 100px;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    gap: 40px;
    z-index: 100;
    pointer-events: none;
}

.category-navigation-fixed button {
    pointer-events: all;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: white;
    border: 2px solid #bf6d4b;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.category-navigation-fixed button:hover:not(:disabled) {
    background: #bf6d4b;
    transform: scale(1.1);
}

.category-navigation-fixed button:hover:not(:disabled) svg {
    fill: white;
}

.category-navigation-fixed button:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.category-navigation-fixed button svg {
    width: 24px;
    height: 24px;
    fill: #bf6d4b;
}

/* Complete order button - centered at bottom */
.complete-order-btn {
    position: static !important; /* Changed from fixed */
    display: inline-block !important;
    margin: 0 auto !important;
    min-width: 300px;
    padding: 15px 40px;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 1px;
    border-radius: 0 !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}

@media (max-width: 576px) {
    .complete-order-btn {
        width: 100% !important;
        margin: 0 !important;
        padding: 15px 0 !important;
    }
}

/* Progress bar - minimal style */
.progress {
    height: 3px;
    background-color: #e8dfd3;
    border-radius: 0;
    margin-bottom: 40px;
}

.progress-bar {
    background-color: #be6d4c !important;
    transition: width 0.4s ease;
}

/* Card hover - show which category it goes to */
.menu-card.meny-card[data-category-index]::after {
    content: 'Inizia da ' attr(data-category-index);
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    background: rgba(191, 109, 75, 0.95);
    color: white;
    padding: 8px 20px;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 600;
    opacity: 0;
    transition: all 0.3s ease;
    pointer-events: none;
    white-space: nowrap;
}

.menu-card.meny-card[data-category-index="0"]::after { content: 'Inizia da Tartelet'; }
.menu-card.meny-card[data-category-index="1"]::after { content: 'Inizia da Bignè'; }
.menu-card.meny-card[data-category-index="2"]::after { content: 'Inizia da Mini-Bun'; }
.menu-card.meny-card[data-category-index="3"]::after { content: 'Inizia da Maritozzo'; }
.menu-card.meny-card[data-category-index="4"]::after { content: 'Inizia da Bruschetta'; }
.menu-card.meny-card[data-category-index="5"]::after { content: 'Inizia da Polpettine'; }
.menu-card.meny-card[data-category-index="6"]::after { content: 'Inizia da Finger Food'; }
.menu-card.meny-card[data-category-index="7"]::after { content: 'Inizia da Insalate'; }
.menu-card.meny-card[data-category-index="8"]::after { content: 'Inizia da Pasta'; }

.menu-card.meny-card:hover::after {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

@media (max-width: 768px) {
    .menu-card.meny-card::after {
        display: none;
    }
}

/* ===== Offcanvas cart background (all content except buttons) ===== */
#offcanvas-menu-cart,
#offcanvas-menu-cart .offcanvas-header,
#offcanvas-menu-cart .offcanvas-body,
#offcanvas-menu-cart .list-cart,
#offcanvas-menu-cart .cart-item,
#offcanvas-menu-cart form,
#offcanvas-menu-cart .form-control,
#offcanvas-menu-cart .form-select,
#offcanvas-menu-cart .form-check,
#offcanvas-menu-cart .text-center,
#offcanvas-menu-cart .total-cart,
#offcanvas-menu-cart .div-delivery {
  background-color: #fdf5ef !important;
}

/* Do not alter buttons background */
#offcanvas-menu-cart .btn { background-color: inherit; }

/* ===== Mobile centering for cards scroll (ensure centered on page) ===== */
@media (max-width: 768px) {
  .menu-cards {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
  }
  .cards-scroll-container {
    display: block !important;
    justify-content: center !important;
    width: 100% !important;
    margin: 0 auto !important;
    overflow: visible !important;
    overflow-y: visible !important;
    padding-right: 0 !important; /* Remove mobile padding */
  }
  .cards-wrapper { display:grid !important; grid-template-columns:1fr !important; grid-auto-rows:300px !important; gap:16px !important; width:100% !important; margin:0 auto !important; overflow-y: auto !important; max-height:60vh !important; }
  .menu-card { margin: 0 auto !important; }
}

/* ===== Mobile category nav arrows margins reset ===== */
@media (max-width: 768px) {
  .category-nav-arrow.category-next { margin-left: 0 !important; }
  .category-nav-arrow.category-prev { margin-right: 0 !important; }
}

/* ============================================
   ACCORDION STYLES - MATCH HOMEPAGE PRAKTISK INFO
   Applied to menu page accordions (e.g., #menu-accordion)
   ============================================ */
#menu-accordion .accordion-button {
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 1rem 0 !important;
    font-weight: 600 !important;
    color: #000 !important;
    border-radius: 0 !important;
    position: relative !important;
    letter-spacing: 1px !important;
}

#menu-accordion .accordion-button:not(.collapsed) {
    background-color: transparent !important;
    color: #bf6d4b !important;
    box-shadow: none !important;
}

#menu-accordion .accordion-button:focus {
    border-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
}

#menu-accordion .accordion-button::after {
    transform: rotate(-90deg) !important;
    margin-left: auto !important;
    width: 1rem !important;
    height: 1rem !important;
    transition: transform 0.3s ease !important;
}

#menu-accordion .accordion-button:not(.collapsed)::after {
    transform: rotate(0deg) !important;
}

#menu-accordion .accordion-item {
    border: none !important;
    border-bottom: 1px solid #bf6d4b !important;
    background-color: #fdf4ee !important;
    margin-bottom: 20px !important;
}

#menu-accordion .accordion-item:last-child {
    border-bottom: none !important;
}

#menu-accordion .accordion-body {
    padding: 1rem 0 !important;
    color: #333 !important;
    background-color: #fdf4ee !important;
}