/* ── DineFlow Default Theme ────────────────────────────────── */
:root {
    --t-bg:       #0d0f14;
    --t-surface:  #13161f;
    --t-card:     #181b26;
    --t-border:   #1f2235;
    --t-text:     #e2e8f0;
    --t-muted:    #94a3b8;
    --t-accent:   #e85d2f;
    --t-accent2:  #f59e0b;
    --t-green:    #22c55e;
    --t-radius:   12px;
    --t-font:     'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
body   { margin:0; font-family:var(--t-font); background:var(--t-bg); color:var(--t-text); font-size:16px; line-height:1.65 }
a      { color:var(--t-accent); text-decoration:none }
a:hover{ color:#ff7a52 }
img    { max-width:100%; display:block }

/* ── Nav ─────────────────────────────────────────────────── */
.t-nav { position:sticky;top:0;z-index:100;background:rgba(13,15,20,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--t-border);padding:.9rem 0 }
.t-nav-inner { max-width:1160px;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;gap:1.5rem }
.t-logo { font-size:1.4rem;font-weight:800;color:#fff;letter-spacing:-.03em;flex-shrink:0 }
.t-logo span { color:var(--t-accent) }
.t-nav-links { display:flex;gap:.1rem;list-style:none;padding:0;margin:0 auto }
.t-nav-links a { padding:.45rem .85rem;border-radius:6px;color:var(--t-muted);font-size:.88rem;font-weight:500;transition:all .15s }
.t-nav-links a:hover,.t-nav-links a.active { color:#fff;background:rgba(255,255,255,.07) }
.t-nav-cta { background:var(--t-accent);color:#fff!important;padding:.45rem 1.1rem;border-radius:8px;font-weight:600;font-size:.85rem;flex-shrink:0 }
.t-nav-cta:hover { background:#cf4e25 }
.t-nav-mobile-btn { display:none;background:none;border:1px solid var(--t-border);border-radius:8px;padding:.4rem .6rem;color:var(--t-text);cursor:pointer;margin-left:auto }
.t-mobile-menu { display:none;background:var(--t-surface);border-top:1px solid var(--t-border);padding:1rem 1.5rem }
.t-mobile-menu.open { display:block }
.t-mobile-menu a { display:block;padding:.65rem 0;color:var(--t-muted);border-bottom:1px solid var(--t-border);font-size:.9rem }

/* ── Hero ────────────────────────────────────────────────── */
.t-hero { position:relative;min-height:88vh;display:flex;align-items:center;overflow:hidden }
.t-hero-bg { position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(.35) }
.t-hero-gradient { position:absolute;inset:0;background:linear-gradient(to right,rgba(13,15,20,.85) 40%,transparent 80%) }
.t-hero-content { position:relative;max-width:1160px;margin:0 auto;padding:5rem 1.5rem;width:100% }
.t-hero-tag { display:inline-block;background:rgba(232,93,47,.15);color:var(--t-accent);border:1px solid rgba(232,93,47,.3);border-radius:20px;padding:.3rem 1rem;font-size:.8rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;margin-bottom:1.25rem }
.t-hero-title { font-size:clamp(2.2rem,5vw,4rem);font-weight:800;line-height:1.1;letter-spacing:-.03em;color:#fff;margin:0 0 1rem;max-width:600px }
.t-hero-sub { font-size:1.1rem;color:rgba(255,255,255,.75);margin:0 0 2.25rem;max-width:480px }
.t-hero-actions { display:flex;gap:.75rem;flex-wrap:wrap }
.t-btn { display:inline-flex;align-items:center;gap:.4rem;padding:.75rem 1.75rem;border-radius:10px;font-weight:600;font-size:.92rem;cursor:pointer;border:none;transition:all .2s }
.t-btn-primary { background:var(--t-accent);color:#fff }
.t-btn-primary:hover { background:#cf4e25;color:#fff }
.t-btn-outline { background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.2) }
.t-btn-outline:hover { background:rgba(255,255,255,.18);color:#fff }
.t-hero-stats { display:flex;gap:2.5rem;margin-top:3rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.12) }
.t-hero-stat-num { font-size:1.8rem;font-weight:800;color:#fff;line-height:1 }
.t-hero-stat-lbl { font-size:.78rem;color:rgba(255,255,255,.5);margin-top:.2rem }

/* ── Sections ────────────────────────────────────────────── */
.t-section { padding:5rem 0 }
.t-section-sm { padding:3rem 0 }
.t-container { max-width:1160px;margin:0 auto;padding:0 1.5rem }
.t-section-header { text-align:center;margin-bottom:3rem }
.t-section-tag { display:inline-block;background:rgba(232,93,47,.12);color:var(--t-accent);border-radius:20px;padding:.25rem .85rem;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.85rem }
.t-section-title { font-size:clamp(1.6rem,3vw,2.4rem);font-weight:800;letter-spacing:-.03em;color:#fff;margin:0 0 .75rem }
.t-section-sub { color:var(--t-muted);font-size:1rem;max-width:520px;margin:0 auto }

/* ── Cards ───────────────────────────────────────────────── */
.t-card { background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--t-radius);overflow:hidden;transition:transform .2s,box-shadow .2s }
.t-card:hover { transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.3) }
.t-card-body { padding:1.25rem }
.t-card-img { width:100%;aspect-ratio:4/3;object-fit:cover }

/* ── Menu ────────────────────────────────────────────────── */
.t-menu-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem }
.t-menu-item { display:flex;gap:1rem;background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--t-radius);padding:1rem }
.t-menu-item-img { width:80px;height:80px;border-radius:8px;object-fit:cover;flex-shrink:0;background:var(--t-surface) }
.t-menu-item-info { flex:1;min-width:0 }
.t-menu-item-name { font-weight:700;color:#fff;margin-bottom:.25rem }
.t-menu-item-desc { font-size:.8rem;color:var(--t-muted);margin-bottom:.5rem;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical }
.t-menu-item-price { font-weight:700;color:var(--t-accent);font-size:1rem }
.t-menu-item-sale { text-decoration:line-through;color:var(--t-muted);font-size:.8rem;margin-left:.4rem }
.t-dietary-badge { display:inline-block;font-size:.62rem;padding:.1rem .4rem;border-radius:4px;background:rgba(34,197,94,.12);color:var(--t-green);border:1px solid rgba(34,197,94,.2) }

/* ── Gallery ─────────────────────────────────────────────── */
.t-gallery-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem }
.t-gallery-item { aspect-ratio:4/3;border-radius:var(--t-radius);overflow:hidden;cursor:pointer;position:relative }
.t-gallery-item img,.t-gallery-item video { width:100%;height:100%;object-fit:cover;transition:transform .35s }
.t-gallery-item:hover img,.t-gallery-item:hover video { transform:scale(1.06) }
.t-gallery-item-overlay { position:absolute;inset:0;background:linear-gradient(transparent 50%,rgba(0,0,0,.6));opacity:0;transition:opacity .2s;display:flex;align-items:flex-end;padding:.75rem }
.t-gallery-item:hover .t-gallery-item-overlay { opacity:1 }
.t-gallery-item-caption { color:#fff;font-size:.82rem;font-weight:500 }

/* ── Blog ────────────────────────────────────────────────── */
.t-blog-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem }
.t-blog-cover { aspect-ratio:16/9;object-fit:cover;width:100% }
.t-blog-meta { font-size:.78rem;color:var(--t-muted);margin-bottom:.5rem }
.t-blog-title { font-size:1.05rem;font-weight:700;color:#fff;line-height:1.35;margin-bottom:.5rem }
.t-blog-excerpt { font-size:.85rem;color:var(--t-muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical }

/* ── Forms ───────────────────────────────────────────────── */
.t-form { background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--t-radius);padding:2rem }
.t-form-title { font-size:1.3rem;font-weight:700;color:#fff;margin:0 0 1.5rem }
.t-label { display:block;font-size:.82rem;font-weight:600;color:var(--t-muted);margin-bottom:.4rem;letter-spacing:.02em }
.t-input { width:100%;background:var(--t-surface);border:1px solid var(--t-border);border-radius:8px;padding:.65rem .9rem;color:var(--t-text);font-size:.9rem;transition:border-color .15s;outline:none }
.t-input:focus { border-color:var(--t-accent);box-shadow:0 0 0 3px rgba(232,93,47,.15) }
.t-input::placeholder { color:var(--t-muted) }
.t-mb { margin-bottom:1rem }
.t-row { display:grid;grid-template-columns:1fr 1fr;gap:1rem }
.t-row-3 { display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem }
.t-submit { background:var(--t-accent);color:#fff;border:none;border-radius:10px;padding:.8rem 2rem;font-weight:700;font-size:.95rem;cursor:pointer;transition:background .2s;width:100% }
.t-submit:hover { background:#cf4e25 }

/* ── Stars ───────────────────────────────────────────────── */
.t-stars { color:var(--t-accent2);font-size:1rem }
.t-stars-input { display:flex;gap:.35rem;margin-bottom:1rem }
.t-stars-input input { display:none }
.t-stars-input label { font-size:1.5rem;color:var(--t-border);cursor:pointer;transition:color .1s }
.t-stars-input input:checked ~ label,
.t-stars-input label:hover,
.t-stars-input label:hover ~ label { color:var(--t-accent2) }

/* ── Info panels ─────────────────────────────────────────── */
.t-info-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem }
.t-info-item { background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--t-radius);padding:1.25rem;display:flex;gap:.85rem;align-items:flex-start }
.t-info-icon { width:40px;height:40px;border-radius:8px;background:rgba(232,93,47,.12);color:var(--t-accent);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0 }
.t-info-label { font-size:.75rem;color:var(--t-muted);margin-bottom:.15rem }
.t-info-value { font-size:.9rem;font-weight:600;color:#fff }

/* ── Flash / alerts ──────────────────────────────────────── */
.t-alert { padding:1rem 1.25rem;border-radius:10px;margin-bottom:1.5rem;display:flex;gap:.75rem;align-items:flex-start }
.t-alert-success { background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.25);color:var(--t-green) }
.t-alert-error   { background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.25);color:#f87171 }

/* ── Page header ─────────────────────────────────────────── */
.t-page-header { background:var(--t-surface);border-bottom:1px solid var(--t-border);padding:3rem 0 2.5rem }
.t-page-header-title { font-size:2rem;font-weight:800;color:#fff;letter-spacing:-.03em }
.t-breadcrumb { font-size:.82rem;color:var(--t-muted);margin-top:.4rem }
.t-breadcrumb a { color:var(--t-muted) }
.t-breadcrumb a:hover { color:#fff }

/* ── Hall cards ──────────────────────────────────────────── */
.t-hall-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem }
.t-hall-badge { display:inline-block;background:rgba(99,102,241,.12);color:#a5b4fc;border-radius:20px;padding:.2rem .7rem;font-size:.72rem;font-weight:600 }

/* ── Footer ──────────────────────────────────────────────── */
.t-footer { background:var(--t-surface);border-top:1px solid var(--t-border);padding:3rem 0 1.5rem;margin-top:5rem }

/* ── App shell (customer-facing ordering UI) ─────────────────────────── */
.t-appbar { position:sticky;top:0;z-index:90;background:var(--t-bg);padding:.9rem 1.1rem .8rem;border-bottom:1px solid var(--t-border) }
.t-appbar-location { display:flex;align-items:center;gap:.4rem;color:var(--t-text);font-weight:600;font-size:.92rem;margin-bottom:.75rem }
.t-appbar-location i { color:var(--t-accent) }
.t-appbar-location .chev { margin-left:auto;color:var(--t-muted);font-size:.8rem }
.t-search { display:flex;align-items:center;gap:.6rem;background:var(--t-card);border:1px solid var(--t-border);border-radius:999px;padding:.7rem 1.05rem }
.t-search i { color:var(--t-muted) }
.t-search input { flex:1;background:none;border:none;outline:none;color:var(--t-text);font-size:.88rem;font-family:var(--t-font) }
.t-search input::placeholder { color:var(--t-muted) }

.t-chip-row { display:flex;gap:.55rem;overflow-x:auto;padding:1rem 1.1rem;scrollbar-width:none }
.t-chip-row::-webkit-scrollbar { display:none }
.t-chip { flex-shrink:0;display:inline-flex;align-items:center;gap:.35rem;background:var(--t-card);border:1px solid var(--t-border);color:var(--t-muted);
    border-radius:999px;padding:.45rem 1rem;font-size:.8rem;font-weight:600;white-space:nowrap;transition:all .15s }
.t-chip.active,.t-chip:hover { background:rgba(232,93,47,.15);border-color:var(--t-accent);color:var(--t-accent) }

.t-rest-list { display:flex;flex-direction:column;gap:1rem;padding:0 1.1rem 6.5rem }
.t-rest-card { display:flex;gap:1rem;background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--t-radius);overflow:hidden;text-decoration:none;color:inherit }
.t-rest-card:hover { border-color:var(--t-accent) }
.t-rest-card-img { width:104px;height:104px;object-fit:cover;flex-shrink:0;background:var(--t-surface) }
.t-rest-card-img-ph { width:104px;height:104px;flex-shrink:0;background:linear-gradient(135deg,rgba(232,93,47,.15),rgba(99,102,241,.12));display:flex;align-items:center;justify-content:center;font-size:1.8rem }
.t-rest-card-body { padding:.8rem .9rem .8rem 0;min-width:0;flex:1;display:flex;flex-direction:column;justify-content:center }
.t-rest-card-name { font-weight:700;color:#fff;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.t-rest-card-tag { font-size:.78rem;color:var(--t-muted);margin-top:.15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.t-rest-card-meta { display:flex;align-items:center;gap:.7rem;margin-top:.5rem;font-size:.76rem;color:var(--t-muted) }
.t-rest-card-meta .rating { color:var(--t-accent2);font-weight:700;display:flex;align-items:center;gap:.2rem }

.t-tabbar { position:fixed;left:0;right:0;bottom:0;z-index:95;display:flex;background:var(--t-surface);border-top:1px solid var(--t-border);
    padding:.5rem 0 max(.5rem, env(safe-area-inset-bottom)) }
.t-tabbar-item { flex:1;display:flex;flex-direction:column;align-items:center;gap:.2rem;color:var(--t-muted);text-decoration:none;font-size:.66rem;font-weight:600;position:relative }
.t-tabbar-item i { font-size:1.25rem }
.t-tabbar-item.active { color:var(--t-accent) }
.t-tabbar-badge { position:absolute;top:-2px;right:calc(50% - 18px);background:var(--t-accent);color:#fff;font-size:.6rem;font-weight:700;border-radius:999px;min-width:15px;height:15px;display:flex;align-items:center;justify-content:center;padding:0 3px }
body.t-has-tabbar { padding-bottom:4.75rem }
.t-footer-grid { display:grid;grid-template-columns:2fr 1fr 1fr;gap:2.5rem;margin-bottom:2rem }
.t-footer-brand { font-size:1.3rem;font-weight:800;color:#fff;margin-bottom:.75rem }
.t-footer-brand span { color:var(--t-accent) }
.t-footer-desc { color:var(--t-muted);font-size:.85rem;line-height:1.7 }
.t-footer-heading { font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#fff;margin-bottom:.85rem }
.t-footer-links { list-style:none;padding:0;margin:0 }
.t-footer-links li { margin-bottom:.45rem }
.t-footer-links a { color:var(--t-muted);font-size:.85rem;transition:color .15s }
.t-footer-links a:hover { color:#fff }
.t-footer-socials { display:flex;gap:.5rem;margin-top:.85rem }
.t-footer-socials a { width:34px;height:34px;border-radius:8px;background:var(--t-card);border:1px solid var(--t-border);color:var(--t-muted);display:flex;align-items:center;justify-content:center;font-size:.9rem;transition:all .15s }
.t-footer-socials a:hover { background:var(--t-accent);border-color:var(--t-accent);color:#fff }
.t-footer-bottom { border-top:1px solid var(--t-border);padding-top:1.25rem;font-size:.78rem;color:var(--t-muted);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem }
.t-powered { color:var(--t-muted);font-size:.72rem }
.t-powered a { color:var(--t-muted) }

/* ── Lightbox ────────────────────────────────────────────── */
.t-lightbox { position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.95);display:none;align-items:center;justify-content:center }
.t-lightbox.open { display:flex }
.t-lightbox img,.t-lightbox video { max-width:90vw;max-height:88vh;object-fit:contain;border-radius:8px }
.t-lightbox-close { position:absolute;top:1.25rem;right:1.25rem;background:rgba(255,255,255,.1);border:none;color:#fff;width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 768px) {
    .t-nav-links { display:none }
    .t-nav-cta { display:none }
    .t-nav-mobile-btn { display:block }
    .t-hero-stats { gap:1.25rem;flex-wrap:wrap }
    .t-footer-grid { grid-template-columns:1fr }
    .t-row,.t-row-3 { grid-template-columns:1fr }
    .t-hero { min-height:70vh }
    .t-section { padding:3rem 0 }
}
