/*
 * light.css — MenuSpace "Light" theme
 * Warm white background, dark text, soft card shadows.
 * Outfit font, rounded buttons, clean restaurant feel.
 */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&family=Syne:wght@700;800&display=swap');

:root {

/* ── Component variables ── */
--input-bg:         rgba(0,0,0,.04);
--btn-subtle-bg:    rgba(0,0,0,.06);
--btn-subtle-hover: rgba(0,0,0,.1);
--overlay-bg:       rgba(0,0,0,.45);
--hero-border:      rgba(0,0,0,.1);
--hero-featured-bg: rgba(0,0,0,.04);
--hero-ticker-bg:   rgba(0,0,0,.04);
--hero-ticker-color:rgba(17,17,21,.6);
--footer-bg:        #ffffff;
--footer-border:    rgba(0,0,0,.08);
--footer-text:      rgba(17,17,21,.55);
--footer-heading:   #111115;
--build-header-bg:  rgba(255,255,255,.85);

    --bg:       #f2f2f4;
    --surface:  #ffffff;
    --card:     #ffffff;
    --card-alt: #f7f7f9;
    --border:   rgba(0,0,0,.08);
    --border2:  rgba(0,0,0,.14);
    --text:     #111115;
    --muted:    rgba(17,17,21,.5);
    --muted2:   rgba(17,17,21,.3);
    --shadow:   0 2px 12px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.06);
    --shadow-hover: 0 6px 24px rgba(0,0,0,.12), 0 2px 6px rgba(0,0,0,.08);
    --radius:   14px;
    --font-body:    'Outfit', sans-serif;
    --font-display: 'Syne', sans-serif;
}

body {
    font-family: var(--font-body);
    color: var(--text);
    background: var(--bg);
}

/* ── Sidebar ── */
.sidebar-label { color: var(--muted2); }

.sidebar-link { color: var(--muted); border-radius: 8px; }
.sidebar-link:hover  { color: var(--text); background: rgba(0,0,0,.04); }
.sidebar-link.active {
    color: var(--accent);
    border-left-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 08%, transparent);
    font-weight: 600;
}

/* ── Search ── */
.search-inner {
    background: #ffffff;
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.search-icon  { color: var(--muted2); }
.search-input { color: var(--text); font-family: var(--font-body); }
.search-input::placeholder { color: var(--muted2); }
.search-clear { color: var(--muted2); }
.search-clear:hover { color: var(--text); }

/* ── Search wrap background so it blends on scroll ── */
.search-wrap { background: var(--bg); }

/* ── Pill bar (mobile) ── */
.pill-bar { background: #ffffff; border-bottom: 1px solid var(--border); }

.pill-tab {
    border-radius: 999px;
    border: 1px solid var(--border);
    background: transparent;
    color: var(--muted);
    transition: all .15s;
}
.pill-tab.active {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

/* ── Section ── */
.section-title {
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: .01em;
    color: var(--text);
}
.section-line  { background: var(--border); }
.section-count { font-size: 11px; color: var(--muted2); }

/* ── Mobile section header ── */
@media (max-width: 800px) {
    .section-header { background: var(--bg); border-top: 1px solid var(--border); }
}

/* ── Items list ── */
.items-list {
    background: transparent;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* ── Item row ── */
.item-row {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: box-shadow .2s, border-color .2s, transform .15s;
    animation: rowInLight .3s ease both;
}

@keyframes rowInLight {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.item-row:hover {
    box-shadow: var(--shadow-hover);
    border-color: var(--border2);
    transform: translateY(-1px);
}

.item-img-wrap { background: var(--card-alt); }
.item-img { transition: transform .4s ease; }
.item-row:hover .item-img { transform: scale(1.05); }
.item-no-img { color: var(--muted2); background: var(--card-alt); font-size: 1.6rem; }

.item-name  { font-family: var(--font-display); font-size: .95rem; font-weight: 700; color: var(--text); }
.item-desc  { font-size: .8rem; color: var(--muted); }
.item-badge { padding: 1px 7px; border-radius: 999px; font-size: .68rem; font-weight: 700; }
.item-price { font-family: var(--font-display); font-size: 1.05rem; font-weight: 800; color: var(--text); }

/* ── Mobile item row ── */
@media (max-width: 800px) {
    .item-row {
        border-radius: var(--radius);
        border: 1px solid var(--border);
        box-shadow: var(--shadow);
        background: var(--card);
        animation: none;
        transform: none !important;
    }
    .item-row:hover { box-shadow: var(--shadow-hover); transform: none !important; }
    .item-price { color: var(--accent); }
}

/* ── Qty picker ── */
.qty-picker {
    border: 1px solid var(--border2);
    border-radius: 999px;
    background: var(--card-alt);
}
.qty-btn { color: var(--text); transition: background .15s; }
.qty-btn:hover { background: rgba(0,0,0,.06); }
.qty-val { font-weight: 800; font-size: 13px; color: var(--text); }

@media (max-width: 800px) {
    .qty-picker { border-radius: 8px; }
}

/* ── Buttons ── */
.add-btn {
    border-radius: 999px;
    background: var(--accent);
    color: #fff;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .03em;
    transition: opacity .2s, transform .1s, box-shadow .2s;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--accent) 35%, transparent);
}
.add-btn:hover  { opacity: .9; box-shadow: 0 4px 16px color-mix(in srgb, var(--accent) 45%, transparent); }
.add-btn:active { transform: scale(.96); }
.add-btn:disabled { opacity: .3; box-shadow: none; }

@media (max-width: 800px) {
    .add-btn { border-radius: 8px; }
}

.customize-btn {
    border-radius: 999px;
    border: 1.5px solid color-mix(in srgb, var(--accent) 50%, transparent);
    background: color-mix(in srgb, var(--accent) 06%, transparent);
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .03em;
    transition: background .2s, border-color .2s;
}
.customize-btn:hover  { background: color-mix(in srgb, var(--accent) 12%, transparent); border-color: var(--accent); }
.customize-btn:active { opacity: .8; }

@media (max-width: 800px) {
    .customize-btn { border-radius: 8px; }
}

/* ── Closed banner ── */
.closed-banner {
    background: rgba(255,60,60,.06);
    border: 1px solid rgba(255,60,60,.2);
    border-radius: var(--radius);
    color: #cc2222;
    font-size: .9rem;
}

/* ── No results ── */
.no-results { color: var(--muted); font-size: .9rem; }

/* ── Brand strip ── */
.brand-strip {
    background: #ffffff;
    border-bottom: 1px solid var(--border);
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.brand-strip-title { color: var(--text); }
.hours-tag.open  { background: rgba(0,160,67,.1); color: #007a32; border: 1px solid rgba(0,160,67,.25); }
.hours-tag.soon  { background: rgba(200,130,0,.1); color: #8a5700; border: 1px solid rgba(200,130,0,.25); }
.brand-action-btn { color: var(--text); background: rgba(0,0,0,.04); border: 1px solid var(--border2); }
.brand-action-btn.call { background: rgba(0,160,67,.08); border-color: rgba(0,160,67,.25); color: #007a32; }
.brand-action-btn.nav  { background: rgba(37,99,235,.08); border-color: rgba(37,99,235,.25); color: #1d4ed8; }

/* ── Food truck ── */
.ft-card         { border: 1px solid var(--border); box-shadow: var(--shadow); }
.ft-header       { background: #ffffff; border-bottom: 1px solid var(--border); }
.ft-title        { color: var(--text); }
.ft-address      { color: var(--muted); }
.ft-distance-bar { background: #f7f7f9; color: var(--text); border-color: var(--border); }
.ft-actions      { background: #f7f7f9; border-color: var(--border); }
.ft-btn-navigate { background: rgba(0,0,0,.04); color: var(--text); border-color: var(--border2); }
.ft-manual       { background: #f7f7f9; border-color: var(--border); }
.ft-input        { background: #fff; border-color: var(--border2); color: var(--text); }
.ft-no-loc       { background: var(--bg); color: var(--muted); }
