@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Lato:wght@300;400;700&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}

/* ── CSS VARS on :root so modal (appended to body) can see them ── */
:root{
    --wpdm-primary: #b8860b;
    --wpdm-accent:  #8B1A1A;
    --wpdm-bg:      #fdf6ef;
    --wpdm-bg2:     #f5ede0;
    --wpdm-bg3:     #ede0ce;
    --wpdm-text:    #1a1209;
    --wpdm-text2:   #5a4a3a;
    --wpdm-text3:   #9a8a7a;
    --wpdm-border:  rgba(0,0,0,.08);
    --wpdm-card:    #ffffff;
    --wpdm-header-bg: #8B1A1A;
    --wpdm-font-body:  'Lato', sans-serif;
    --wpdm-font-title: 'Playfair Display', serif;
}

/* ── APP ── */
#wpdm-app{
    --primary:    var(--wpdm-primary);
    --accent:     var(--wpdm-accent);
    --bg:         var(--wpdm-bg);
    --bg2:        var(--wpdm-bg2);
    --bg3:        var(--wpdm-bg3);
    --text:       var(--wpdm-text);
    --text2:      var(--wpdm-text2);
    --text3:      var(--wpdm-text3);
    --border:     var(--wpdm-border);
    --card:       var(--wpdm-card);
    --font-body:  var(--wpdm-font-body);
    --font-title: var(--wpdm-font-title);
    font-family: var(--font-body);
    background: var(--bg);
    color: var(--text);
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}

/* Dark theme */
#wpdm-app.theme-dark,
body.wpdm-theme-dark{
    --wpdm-bg:#0f172a;--wpdm-bg2:#1e293b;--wpdm-bg3:#334155;
    --wpdm-text:#f1f5f9;--wpdm-text2:#94a3b8;--wpdm-text3:#64748b;
    --wpdm-border:rgba(255,255,255,.08);--wpdm-card:#1e293b;
}
#wpdm-app.theme-warm,
body.wpdm-theme-warm{
    --wpdm-bg:#1c0a00;--wpdm-bg2:#2d1500;--wpdm-bg3:#3d1f00;
    --wpdm-text:#fef3c7;--wpdm-text2:#d97706;--wpdm-text3:#92400e;
    --wpdm-border:rgba(251,191,36,.12);--wpdm-card:#2d1500;
}
#wpdm-app.theme-light,
body.wpdm-theme-light{
    --wpdm-bg:#f8fafc;--wpdm-bg2:#ffffff;--wpdm-bg3:#f1f5f9;
    --wpdm-text:#0f172a;--wpdm-text2:#475569;--wpdm-text3:#94a3b8;
    --wpdm-border:rgba(0,0,0,.08);--wpdm-card:#ffffff;
}

/* ── HEADER ── */
.wpdm-header{
    background-color: var(--wpdm-header-bg);
    background-size: cover;
    background-position: center;
    padding: 36px 20px 28px;
    position: relative; overflow: hidden;
}
.wpdm-header[style*="background-image"]::after{
    content:''; position:absolute; inset:0;
    background: linear-gradient(to bottom, rgba(0,0,0,.45), rgba(0,0,0,.65));
    pointer-events:none;
}
.wpdm-header-inner{
    position:relative; z-index:1;
    display:flex; flex-direction:column; align-items:center; gap:12px;
    max-width:700px; margin:0 auto; text-align:center;
}
.wpdm-logo{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.3)}
.wpdm-restaurant-name{
    font-family: var(--font-title);
    font-size: clamp(26px,5vw,44px);
    font-weight: 700; color: #fff;
    text-shadow: 0 2px 12px rgba(0,0,0,.4);
}

/* ── LANG SWITCHER ── */
.wpdm-lang-switcher{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:6px}
.wpdm-lang-btn{
    background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);
    border-radius:99px;color:#fff;font-size:12px;font-weight:600;
    padding:6px 16px;cursor:pointer;transition:all .15s;font-family:var(--font-body);
}
.wpdm-lang-btn:hover,.wpdm-lang-btn.active{
    background:var(--wpdm-primary);border-color:var(--wpdm-primary);
}

/* ── CART BTN ── */
.wpdm-cart-btn{
    position:fixed;top:16px;right:16px;z-index:1000;
    background:var(--wpdm-primary);border:none;border-radius:99px;
    color:#fff;font-size:13px;font-weight:700;
    padding:10px 18px;cursor:pointer;
    box-shadow:0 4px 16px rgba(0,0,0,.25);
    display:flex;align-items:center;gap:6px;
    transition:transform .15s;font-family:var(--font-body);
}
.wpdm-cart-btn:hover{transform:scale(1.04)}
#wpdmCartCount{
    background:rgba(0,0,0,.25);border-radius:50%;
    width:20px;height:20px;
    display:inline-flex;align-items:center;justify-content:center;
    font-size:11px;font-weight:700;
}

/* ── SEARCH ── */
.wpdm-search-wrap{
    padding:14px 20px;
    background:var(--wpdm-bg);
    border-bottom:1px solid var(--wpdm-border);
}
.wpdm-search{
    width:100%;background:var(--wpdm-bg);
    border:1px solid rgba(0,0,0,.12);border-radius:10px;
    color:var(--wpdm-text);font-size:14px;padding:10px 18px;
    outline:none;transition:border-color .15s;font-family:var(--font-body);
}
.wpdm-search:focus{border-color:var(--wpdm-primary)}
.wpdm-search::placeholder{color:var(--wpdm-text3)}

/* ── CAT TABS — Artisti style ── */
.wpdm-cat-nav{
    display:flex;
    overflow-x:auto;
    background:var(--wpdm-bg);
    border-bottom:1px solid rgba(0,0,0,.1);
    scrollbar-width:none;
    position:sticky;top:0;z-index:100;
    padding:0 16px;
    -webkit-overflow-scrolling:touch;
}
.wpdm-cat-nav::-webkit-scrollbar{display:none}
.wpdm-cat-tab{
    flex-shrink:0;
    padding:16px 24px;
    background:none;border:none;
    border-bottom:2px solid transparent;
    margin-bottom:-1px;
    color:rgba(0,0,0,.45);
    font-family:var(--font-body);
    font-size:12px;font-weight:700;
    letter-spacing:.08em;text-transform:uppercase;
    cursor:pointer;white-space:nowrap;
    transition:all .15s;
}
.wpdm-cat-tab:hover{color:var(--wpdm-text)}
.wpdm-cat-tab.active{
    color:var(--wpdm-primary);
    border-bottom-color:var(--wpdm-primary);
}

/* ── CONTENT ── */
.wpdm-content{
    padding:28px 24px 80px;
    max-width:1100px;margin:0 auto;
}

/* ── FEATURED ── */
.wpdm-featured-section{margin-bottom:28px}
.wpdm-section-label{
    font-size:11px;font-weight:700;letter-spacing:.1em;
    text-transform:uppercase;color:var(--wpdm-primary);
    margin-bottom:12px;display:flex;align-items:center;gap:6px;
}
.wpdm-featured-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}
.wpdm-featured-scroll::-webkit-scrollbar{display:none}
.wpdm-featured-card{
    flex-shrink:0;width:150px;
    background:var(--wpdm-card);border:1px solid var(--wpdm-border);
    border-radius:12px;overflow:hidden;cursor:pointer;
    transition:transform .15s;
}
.wpdm-featured-card:hover{transform:translateY(-2px)}
.wpdm-featured-img{width:100%;height:96px;object-fit:cover;background:var(--wpdm-bg3);display:flex;align-items:center;justify-content:center;font-size:28px}
.wpdm-featured-info{padding:8px 10px}
.wpdm-featured-name{font-size:12px;font-weight:700;display:block;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wpdm-featured-price{font-size:13px;font-weight:700;color:var(--wpdm-primary)}

/* ── CAT SECTION ── */
.wpdm-cat-section{margin-bottom:40px}
.wpdm-cat-title{
    font-family:var(--font-title);
    font-size:24px;font-weight:700;
    color:var(--wpdm-text);
    padding-bottom:10px;
    border-bottom:2px solid var(--wpdm-accent);
    margin-bottom:2px;
    display:flex;align-items:center;gap:8px;
}
.wpdm-cat-icon{font-size:20px}

/* ── ITEMS GRID ── */
.wpdm-items-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    column-gap:40px;
}

/* ── ITEM ROW ── */
.wpdm-item{
    padding:16px 0;
    border-bottom:1px solid rgba(0,0,0,.07);
    cursor:pointer;
    transition:opacity .1s;
}
.wpdm-item:last-child{border-bottom:none}
.wpdm-item.unavailable{opacity:.45}

/* images hidden by default */
.wpdm-item-img,.wpdm-item-img-placeholder{display:none}
.show-images .wpdm-item-img{
    display:block;width:100%;height:160px;
    object-fit:cover;border-radius:8px;margin-bottom:10px;
}
.show-images .wpdm-item-img-placeholder{
    display:flex;height:100px;
    align-items:center;justify-content:center;
    font-size:32px;background:var(--wpdm-bg3);
    border-radius:8px;margin-bottom:10px;
}

.wpdm-item-body{flex:1}

/* FIX: name-row — price always sticks right, regardless of text height */
.wpdm-item-name-row{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:16px;
    margin-bottom:4px;
}
.wpdm-item-name{
    font-family:var(--font-body);
    font-size:15px;font-weight:700;
    color:var(--wpdm-text);line-height:1.3;
    flex:1;
}
/* FIX: price always top-right, no shift on long names */
.wpdm-item-price{
    font-size:15px;font-weight:700;
    color:var(--wpdm-primary);
    white-space:nowrap;
    flex-shrink:0;
    margin-left:auto;
    padding-left:8px;
}

/* italic EN desc — gold */
.wpdm-item-desc-en{
    font-family:var(--font-title);
    font-style:italic;font-size:13px;
    color:var(--wpdm-primary);
    margin-bottom:3px;line-height:1.4;
}
/* main desc */
.wpdm-item-desc{
    font-size:13px;color:var(--wpdm-text3);
    line-height:1.5;margin-bottom:4px;
}

.wpdm-item-footer{display:flex;align-items:center;gap:6px;margin-top:6px;flex-wrap:wrap}
.wpdm-item-allergens{font-size:12px;color:var(--wpdm-text3);cursor:help}
.wpdm-item-calories{font-size:11px;color:var(--wpdm-text3);opacity:.7}

/* ── BADGES ── */
.wpdm-badge{
    display:inline-block;font-size:10px;font-weight:700;
    padding:2px 8px;border-radius:20px;
    background:var(--wpdm-primary);color:#fff;
    letter-spacing:.04em;text-transform:uppercase;
}
.wpdm-badge-new{background:#2563eb}
.wpdm-badge-hot,.wpdm-badge-spicy{background:#dc2626}
.wpdm-badge-vegan{background:#16a34a}
.wpdm-badge-gluten-free{background:#7c3aed}
.wpdm-badge-chef{background:#0891b2}
.wpdm-badge-promo{background:#ea580c}

/* ── ADD BTN ── */
.wpdm-add-btn{
    background:var(--wpdm-primary);border:none;
    color:#fff;width:28px;height:28px;
    border-radius:50%;font-size:20px;
    cursor:pointer;display:flex;align-items:center;justify-content:center;
    transition:transform .15s;flex-shrink:0;line-height:1;font-weight:300;
}
.wpdm-add-btn:hover{transform:scale(1.12)}

/* ── VARIANTS — pill ── */
.wpdm-variants{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.wpdm-variant-btn{
    padding:5px 14px;border-radius:99px;
    border:1.5px solid rgba(0,0,0,.15);background:transparent;
    font-size:12px;font-weight:600;color:var(--wpdm-text2);
    cursor:pointer;transition:all .15s;font-family:var(--font-body);
}
.wpdm-variant-btn:hover,.wpdm-variant-btn.selected{
    background:var(--wpdm-primary);border-color:var(--wpdm-primary);color:#fff;
}

/* ── EMPTY ── */
.wpdm-empty{
    color:var(--wpdm-text3);font-style:italic;
    padding:40px 0;text-align:center;font-size:14px;
}

/* ── TABLE FIELD ── */
#wpdmTableField{
    display:block;width:calc(100% - 40px);margin:12px 20px;
    background:var(--wpdm-bg2);border:1.5px solid var(--wpdm-border);
    border-radius:10px;color:var(--wpdm-text);
    font-size:14px;padding:10px 14px;outline:none;
    font-family:var(--font-body);
}
#wpdmTableField:focus{border-color:var(--wpdm-primary)}

/* ── MODAL — uses :root vars so body append works ── */
.wpdm-modal-overlay{
    position:fixed;inset:0;z-index:2000;
    background:rgba(0,0,0,.55);
    display:flex;align-items:flex-end;justify-content:center;
    font-family:'Lato',sans-serif;
}
@media(min-width:600px){.wpdm-modal-overlay{align-items:center}}
.wpdm-modal{
    background:var(--wpdm-bg);
    color:var(--wpdm-text);
    border-radius:20px 20px 0 0;
    width:100%;max-width:520px;max-height:90vh;
    overflow-y:auto;padding:24px 20px 36px;
    position:relative;
}
@media(min-width:600px){.wpdm-modal{border-radius:16px}}
.wpdm-modal-close{
    position:absolute;top:14px;right:16px;
    background:rgba(0,0,0,.08);border:none;border-radius:50%;
    width:32px;height:32px;font-size:16px;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    color:var(--wpdm-text);
}
.wpdm-modal-img{width:100%;height:200px;object-fit:cover;border-radius:10px;margin-bottom:16px}
.wpdm-modal-name{
    font-family:'Playfair Display',serif;
    font-size:22px;font-weight:700;
    color:var(--wpdm-text);margin-bottom:6px;
}
.wpdm-modal-price{font-size:20px;font-weight:700;color:var(--wpdm-primary);margin-bottom:10px}
.wpdm-modal-desc{font-size:14px;color:var(--wpdm-text2);line-height:1.65;margin-bottom:14px}
.wpdm-modal-allergens{font-size:12px;color:var(--wpdm-text3);margin-bottom:14px}
.wpdm-item-desc-en{
    font-family:'Playfair Display',serif;
    font-style:italic;font-size:13px;
    color:var(--wpdm-primary);
    margin-bottom:3px;line-height:1.4;
}

/* ── ORDER SECTION ── */
.wpdm-order-section{margin-top:18px;padding-top:18px;border-top:1px solid var(--wpdm-border)}
.wpdm-qty-control{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.wpdm-qty-btn{
    width:36px;height:36px;border-radius:50%;
    border:1.5px solid var(--wpdm-border);background:var(--wpdm-bg2);
    font-size:22px;cursor:pointer;color:var(--wpdm-text);
    display:flex;align-items:center;justify-content:center;
    transition:all .15s;
}
.wpdm-qty-btn:hover{border-color:var(--wpdm-primary);color:var(--wpdm-primary)}
.wpdm-qty{font-size:20px;font-weight:700;min-width:32px;text-align:center;color:var(--wpdm-text)}
.wpdm-notes-field{
    width:100%;background:var(--wpdm-bg2);
    border:1.5px solid var(--wpdm-border);border-radius:10px;
    color:var(--wpdm-text);font-size:13px;padding:10px 14px;
    outline:none;resize:vertical;min-height:64px;
    margin-bottom:12px;font-family:'Lato',sans-serif;
}
.wpdm-notes-field:focus{border-color:var(--wpdm-primary)}
.wpdm-add-to-cart-btn{
    width:100%;padding:14px;
    background:var(--wpdm-primary);border:none;border-radius:12px;
    color:#fff;font-size:15px;font-weight:700;
    cursor:pointer;transition:opacity .15s;
    font-family:'Lato',sans-serif;
}
.wpdm-add-to-cart-btn:hover{opacity:.9}

/* ── CART PANEL ── */
.wpdm-cart-panel{
    position:fixed;inset:0;z-index:3000;
    background:var(--wpdm-bg);
    color:var(--wpdm-text);
    display:flex;flex-direction:column;
    font-family:'Lato',sans-serif;
}
@media(min-width:600px){
    .wpdm-cart-panel{left:auto;width:420px;right:0;
    box-shadow:-4px 0 30px rgba(0,0,0,.15);}
}
.wpdm-cart-header{
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 20px;border-bottom:1px solid var(--wpdm-border);
}
.wpdm-cart-header h3{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:var(--wpdm-text)}
.wpdm-cart-close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--wpdm-text)}
.wpdm-cart-items{flex:1;overflow-y:auto;padding:16px 20px}
.wpdm-cart-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--wpdm-border)}
.wpdm-cart-item-info{flex:1}
.wpdm-cart-item-name{font-size:14px;font-weight:600;display:block;color:var(--wpdm-text)}
.wpdm-cart-item-variant{font-size:12px;color:var(--wpdm-text3)}
.wpdm-cart-item-price{font-size:14px;font-weight:700;color:var(--wpdm-primary);white-space:nowrap}
.wpdm-cart-item-remove{background:none;border:none;color:#aaa;cursor:pointer;font-size:18px;padding:4px}
.wpdm-cart-item-remove:hover{color:#ef4444}
.wpdm-cart-footer{padding:16px 20px;border-top:1px solid var(--wpdm-border)}
.wpdm-cart-notes{width:100%;background:var(--wpdm-bg2);border:1.5px solid var(--wpdm-border);border-radius:10px;color:var(--wpdm-text);font-size:13px;padding:10px 14px;outline:none;resize:vertical;min-height:56px;margin-bottom:12px;font-family:'Lato',sans-serif}
.wpdm-cart-total{display:flex;justify-content:space-between;font-size:17px;font-weight:700;margin-bottom:14px;color:var(--wpdm-text)}
.wpdm-checkout-btn{
    width:100%;padding:14px;background:var(--wpdm-accent);border:none;
    border-radius:12px;color:#fff;font-size:15px;font-weight:700;
    cursor:pointer;font-family:'Lato',sans-serif;transition:opacity .15s;
}
.wpdm-checkout-btn:hover{opacity:.9}

/* ── ORDER SUCCESS ── */
.wpdm-order-success{
    position:fixed;inset:0;z-index:4000;
    background:var(--wpdm-bg);
    color:var(--wpdm-text);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:16px;text-align:center;padding:32px;
    font-family:'Lato',sans-serif;
}
.wpdm-success-icon{font-size:72px}
.wpdm-success-title{font-family:'Playfair Display',serif;font-size:28px;font-weight:700;color:var(--wpdm-text)}
.wpdm-success-msg{font-size:15px;color:var(--wpdm-text2);line-height:1.65;max-width:320px}
.wpdm-success-close{
    margin-top:16px;padding:12px 36px;
    background:var(--wpdm-primary);border:none;border-radius:12px;
    color:#fff;font-size:15px;font-weight:700;
    cursor:pointer;font-family:'Lato',sans-serif;
}

/* ── TOAST ── */
.wpdm-toast{
    position:fixed;bottom:90px;left:50%;transform:translateX(-50%);
    background:#1a1a1a;color:#fff;border-radius:10px;
    padding:10px 22px;font-size:13px;font-weight:600;
    z-index:9999;opacity:0;transition:opacity .3s;
    pointer-events:none;white-space:nowrap;
    font-family:'Lato',sans-serif;
}
.wpdm-toast.show{opacity:1}
.wpdm-toast.error{background:#dc2626}
.wpdm-toast.success{background:#16a34a}

/* ── RESPONSIVE ── */
@media(max-width:760px){
    .wpdm-items-grid{grid-template-columns:1fr!important;column-gap:0}
    .wpdm-content{padding:18px 16px 60px}
    .wpdm-cat-tab{padding:12px 14px;font-size:11px}
    .wpdm-cat-title{font-size:20px}
}
@media(max-width:380px){
    .wpdm-restaurant-name{font-size:22px}
    .wpdm-item-name{font-size:14px}
    .wpdm-item-price{font-size:14px}
}
@media print{
    .wpdm-cart-btn,.wpdm-cat-nav{display:none!important}
    .wpdm-items-grid{grid-template-columns:repeat(2,1fr)!important}
    .wpdm-content{padding:0}
}
