/* CSV Digital Menu - Public Styles v7 (Dots on Mobile Attempt) */
.cdm-menu-category-wrap {
    margin-bottom: 30px;
    font-family: Arial, Helvetica, sans-serif; /* Base font, overridden by admin setting for this wrap */
    width: 100%; 
    box-sizing: border-box;
}

.cdm-menu-list {
    list-style: none !important; 
    padding: 0 !important;
    margin: 0 !important;
    width: 100%; 
}

.cdm-menu-item {
    padding: 10px 0 !important; 
    border-bottom: 1px solid rgba(128, 128, 128, 0.2); 
    box-sizing: border-box;
    /* The li itself is not a flex container here, the .cdm-item-main-line is */
}
.cdm-menu-item:last-child {
    border-bottom: none !important;
}

.cdm-item-main-line { 
    display: flex !important;       /* Ensures name, dots, price are in a row */
    align-items: baseline !important; /* Aligns text baselines */
    width: 100% !important;
    box-sizing: border-box !important;
    line-height: 1.5; /* Base line height for this line */
}

.cdm-item-name {
    flex-shrink: 1; /* Allow name to shrink and wrap if necessary */
    flex-grow: 0;   /* Don't let it grow unnecessarily */
    margin-right: 0.5em;
    font-weight: 600; 
    font-size: 1.1em;  /* Default desktop name size - overridden by admin if set */
    color: #333;      /* Default name color - overridden by admin if set */
    /* white-space: normal; /* Allow wrapping by default, can be overridden by admin if a 'nowrap' option were added */
}

.cdm-item-dots {
    flex-grow: 1 !important; /* Takes up available space */
    border-bottom: 1px dotted #888888 !important; /* Default dots color - overridden by admin if set */
    height: 1px; 
    min-width: 0.5em; /* Can be very short on mobile */
    margin-bottom: 0.3em; /* Adjust for vertical alignment of dots with text */
    align-self: center; /* Helps vertically center the 1px high line */
}

.cdm-item-price {
    flex-shrink: 0; /* Price should not shrink */
    white-space: nowrap; /* Keep price on one line */
    margin-left: 0.5em;
    font-weight: 600; 
    font-size: 1.1em;  /* Default desktop price size - overridden by admin if set */
    color: #333;      /* Default price color - overridden by admin if set */
}

.cdm-item-description {
    font-size: 0.9em;  /* Default desktop description size - overridden by admin if set */
    color: #555555;   /* Default description color - overridden by admin if set */
    padding-left: 0; /* No indent by default, can be added if desired */
    margin-top: 5px; /* Space below the name/price line */
    line-height: 1.4;
    width: 100%; /* Ensure description takes full width below */
    clear: both; /* Just in case, though flex should handle it */
}

/* --- Error/Info messages for admin --- */
.cdm-error, .cdm-info { 
    padding:10px; 
    border-left:4px solid red; 
    background-color:#ffebee; 
    margin:15px 0; 
    color:#c62828; 
    border-radius:3px; 
}
.cdm-info { 
    border-left-color:#0277bd; 
    background-color:#e1f5fe; 
    color:#01579b; 
}

/* --- Mobile Responsiveness (for specific mobile font sizes IF set in admin) --- */
/* The general layout (name...dots...price on one line) will be maintained by default. */
/* The admin panel's mobile font size settings will generate inline CSS within a media query. */
/* If you need to TWEAK the layout for mobile beyond font sizes (e.g., margins), you can do it here. */
/* For example, if you want less padding on mobile items: */
/*
@media (max-width: 767px) {
    .cdm-menu-item {
        padding: 5px 0 !important; 
    }
    .cdm-item-name, .cdm-item-price {
        font-size: 0.9em; // A base mobile size if not set by admin options
    }
    .cdm-item-description {
        font-size: 0.8em; // A base mobile size
    }
}
*/