/**
 * Teme Meniu Digital — template nou tematizabil (md/theme-render.php). MOBILE-FIRST.
 * Culorile/fonturile vin din CSS variables --dm-* injectate inline pe body (per temă).
 * Stilurile de bază = telefon; @media (min-width:768px) = tabletă/desktop.
 *
 * Ultima modificare: 2026-09-21 20:15
 * Modificari:
 *   2026-09-21 20:30 — Skin-uri pentru temele noi 51–55 (hanromanesc, taverna, cabana, dimsum, roomservice).
 *   2026-09-21 20:15 — Logo mai mare (vine decupat de marginile goale) + spațiu sub comutatorul de limbă pe copertă.
 *   2026-09-21 16:30 — Logo în hero (.dm-hero-logo, pastilă albă), datele firmei în subsol (.dm-footer-company),
 *                       butonul de nutriție la stilul ziar (.dm-paper-nutri), fereastra de nutriție lizibilă
 *                       (rânduri păstrate, scroll la 70vh, încape pe telefon).
 *   2026-09-12 19:30 — Secțiuni pe categorii pentru setarea „Doar pozele categoriilor" (.dm-catsec*):
 *                       banner cu poza categoriei + titlu peste ea, variantă cu pictogramă/emoji,
 *                       card de produs fără poză (.dm-card--nopic) și butonul de nutriție inline.
 *   2026-09-04 17:40 — Regula .dm-vars[data-display="card"] — pastile pe rand pentru modul de afisare „card" (SQL 340).
 *   2026-08-10 23:15 — Comutatorul de limba (.dm-lang*) pentru meniul multilingv: pastila peste
 *                       coperta din hero (alb/negru translucid, ca .dm-chip) + panou pe suprafata
 *                       temei. Un singur set de reguli pentru TOATE temele.
 *   2026-07-12 20:45 — Mobile-first complet + newspaper: poză custom (banner) vs pictogramă stock (icon) vs emoji, dimensiuni corecte
 */

* { box-sizing: border-box; }
.dm-theme {
    margin: 0; padding: 0;
    background: var(--dm-bg);
    color: var(--dm-text);
    font-family: var(--dm-body-font);
    -webkit-font-smoothing: antialiased;
    line-height: 1.5;
    overflow-x: hidden;
}
.dm-theme img { max-width: 100%; display: block; }
.dm-theme a { color: inherit; text-decoration: none; }

/* ═══════════ HERO (mobile-first) ═══════════ */
.dm-hero { position: relative; min-height: 210px; display: flex; align-items: center; justify-content: center; text-align: center; overflow: hidden; }
.dm-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.dm-hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.3), rgba(0,0,0,.66)); }
.dm-hero-inner { position: relative; z-index: 2; padding: 34px 16px; width: 100%; }
.dm-brand { font-family: var(--dm-heading-font); font-size: clamp(30px, 9vw, 60px); font-weight: 800; color: #fff; margin: 0 0 6px; text-shadow: 0 3px 18px rgba(0,0,0,.45); line-height: 1.1; }
.dm-tagline { font-size: clamp(13px, 4vw, 20px); color: rgba(255,255,255,.93); margin: 0 0 14px; font-style: italic; padding: 0 6px; }
.dm-hero-contact { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.dm-chip { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; background: rgba(255,255,255,.16); color: #fff; font-size: 13px; font-weight: 600; backdrop-filter: blur(6px); border: 1px solid rgba(255,255,255,.28); transition: all .15s; }
.dm-chip:active { transform: scale(.96); }
.dm-chip.dm-ic { width: 42px; height: 42px; padding: 0; justify-content: center; font-size: 16px; }
@media (hover:hover) { .dm-chip:hover { background: var(--dm-accent); border-color: var(--dm-accent); transform: translateY(-2px); } }

/* ═══════════ CĂUTARE (mobile-first) ═══════════ */
.dm-search { position: sticky; top: 0; z-index: 30; background: var(--dm-bg); padding: 12px 12px 10px; border-bottom: 1px solid rgba(128,128,128,.14); }
.dm-search-box { position: relative; max-width: 640px; margin: 0 auto; display: flex; align-items: center; }
.dm-search-ic { position: absolute; left: 15px; color: var(--dm-muted); font-size: 15px; pointer-events: none; transition: color .15s; }
.dm-search input { width: 100%; border: 1.5px solid rgba(128,128,128,.28); background: var(--dm-surface); color: var(--dm-text); border-radius: 999px; padding: 13px 44px 13px 42px; font-family: var(--dm-body-font); font-size: 15px; outline: none; transition: border-color .15s, box-shadow .15s; -webkit-appearance: none; }
.dm-search input::placeholder { color: var(--dm-muted); opacity: .8; }
.dm-search input:focus { border-color: var(--dm-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--dm-accent) 18%, transparent); }
.dm-search input:focus ~ .dm-search-ic, .dm-search-box:focus-within .dm-search-ic { color: var(--dm-accent); }
.dm-search input::-webkit-search-cancel-button { display: none; }
.dm-search-clear { display: none; position: absolute; right: 8px; width: 30px; height: 30px; border: none; border-radius: 50%; background: rgba(128,128,128,.16); color: var(--dm-text); font-size: 20px; line-height: 1; cursor: pointer; align-items: center; justify-content: center; }
.dm-search-clear:active { transform: scale(.9); }
.dm-search-count { max-width: 640px; margin: 7px auto 0; font-size: 12px; color: var(--dm-muted); font-weight: 600; min-height: 15px; padding-left: 6px; }

.dm-search-empty { text-align: center; padding: 46px 24px 40px; color: var(--dm-muted); }
.dm-search-empty .em { font-size: 46px; display: block; margin-bottom: 12px; opacity: .5; }
.dm-search-empty .t { font-size: 16px; font-weight: 700; color: var(--dm-text); font-family: var(--dm-heading-font); }
.dm-search-empty .s { font-size: 13px; margin-top: 5px; }
@media (min-width: 768px) { .dm-search { padding: 14px 16px 12px; } .dm-search input { font-size: 15.5px; } }

/* ═══════════ GRID LAYOUT (mobile-first: 2 coloane) ═══════════ */
.dm-filters { display: flex; gap: 7px; overflow-x: auto; padding: 11px 12px; background: var(--dm-bg); border-bottom: 1px solid rgba(128,128,128,.16); scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.dm-filters::-webkit-scrollbar { display: none; }
.dm-filter { flex-shrink: 0; display: inline-flex; align-items: center; gap: 6px; border: 1.5px solid rgba(128,128,128,.28); background: var(--dm-surface); color: var(--dm-text); padding: 8px 15px; border-radius: 999px; font-family: var(--dm-body-font); font-size: 13px; font-weight: 600; cursor: pointer; white-space: nowrap; transition: all .15s; }
.dm-filter.is-active { background: var(--dm-accent); border-color: var(--dm-accent); color: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.16); }
.dm-filter-emoji { font-size: 15px; }
.dm-filter-ic { width: 18px; height: 18px; object-fit: contain; }
.dm-filter.is-active .dm-filter-ic { filter: brightness(0) invert(1); }
@media (hover:hover) { .dm-filter:hover { border-color: var(--dm-accent); color: var(--dm-accent); } .dm-filter.is-active:hover { color: #fff; } }

.dm-grid-wrap { max-width: 1200px; margin: 0 auto; padding: 16px 12px 34px; }
.dm-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.dm-card { background: var(--dm-surface); border-radius: var(--dm-radius); overflow: hidden; box-shadow: 0 3px 14px rgba(0,0,0,.08); border: 1px solid rgba(128,128,128,.1); display: flex; flex-direction: column; transition: transform .18s, box-shadow .18s; }
.dm-card:active { transform: scale(.98); }
.dm-card-media { position: relative; aspect-ratio: 1/1; overflow: hidden; background: rgba(128,128,128,.08); }
.dm-card-media img { width: 100%; height: 100%; object-fit: cover; }
.dm-card-nutri { position: absolute; top: 8px; right: 8px; width: 32px; height: 32px; border: none; border-radius: 50%; background: rgba(255,255,255,.94); color: var(--dm-accent); cursor: pointer; font-size: 13px; box-shadow: 0 2px 8px rgba(0,0,0,.22); display: flex; align-items: center; justify-content: center; }
.dm-card-body { padding: 11px 12px 13px; display: flex; flex-direction: column; flex: 1; }
.dm-card-title { font-family: var(--dm-heading-font); font-size: 14.5px; font-weight: 700; margin: 0 0 3px; color: var(--dm-text); line-height: 1.22; }
.dm-card-weight { font-size: 11px; color: var(--dm-muted); margin-bottom: 5px; font-weight: 600; }
.dm-card-desc { font-size: 12px; color: var(--dm-muted); margin: 0 0 9px; line-height: 1.45; flex: 1; }
.dm-card-price { font-family: var(--dm-heading-font); font-size: 16.5px; font-weight: 800; color: var(--dm-price); margin-top: auto; }
.dm-grid-empty { text-align: center; padding: 46px 20px; color: var(--dm-muted); font-size: 15px; grid-column: 1/-1; }

@media (min-width: 560px) { .dm-grid { grid-template-columns: repeat(3, 1fr); gap: 14px; } }
@media (min-width: 768px) {
    .dm-hero { min-height: 300px; }
    .dm-hero-inner { padding: 52px 20px; }
    .dm-filters { gap: 8px; padding: 14px 16px; }
    .dm-filter { padding: 9px 18px; font-size: 13.5px; }
    .dm-grid-wrap { padding: 26px 16px 40px; }
    .dm-grid { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px; }
    .dm-card-media { aspect-ratio: 4/3; }
    .dm-card-title { font-size: 16.5px; } .dm-card-desc { font-size: 13px; } .dm-card-price { font-size: 19px; }
    .dm-card-media img { transition: transform .3s; }
    .dm-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.14); }
    .dm-card:hover .dm-card-media img { transform: scale(1.06); }
}

/* ═══════════ NEWSPAPER LAYOUT (mobile-first) ═══════════ */
.dm-paper { max-width: 940px; margin: 0 auto; padding: 24px 16px 40px; }
.dm-paper-rule { height: 3px; background: var(--dm-text); position: relative; margin-bottom: 6px; }
.dm-paper-rule::after { content: ''; position: absolute; left: 0; right: 0; bottom: -4px; height: 1px; background: var(--dm-text); }
.dm-paper-section { padding: 26px 0 24px; border-bottom: 1px solid rgba(0,0,0,.16); }
.dm-paper-section:last-child { border-bottom: none; }

/* poză reală custom → banner */
.dm-paper-cat-photo { width: 100%; max-width: 480px; margin: 0 auto 16px; aspect-ratio: 16/9; overflow: hidden; border: 1px solid var(--dm-text); border-radius: var(--dm-radius); }
.dm-paper-cat-photo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.95) contrast(1.02); }
/* pictogramă stock → icon mic centrat (NU întins) */
.dm-paper-cat-icon { width: 64px; height: 64px; margin: 0 auto 8px; display: flex; align-items: center; justify-content: center; }
.dm-paper-cat-icon img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.dm-paper-cat-emoji { text-align: center; font-size: 40px; line-height: 1; margin-bottom: 6px; }

.dm-paper-cat-head { text-align: center; margin-bottom: 18px; }
.dm-paper-cat-title { font-family: var(--dm-heading-font); font-size: clamp(24px, 7vw, 40px); font-weight: 800; letter-spacing: .5px; text-transform: uppercase; margin: 0; color: var(--dm-text); position: relative; display: inline-block; padding: 0 26px; }
.dm-paper-cat-title::before, .dm-paper-cat-title::after { content: '❧'; color: var(--dm-accent); font-size: 18px; position: absolute; top: 50%; transform: translateY(-50%); }
.dm-paper-cat-title::before { left: 0; } .dm-paper-cat-title::after { right: 0; transform: translateY(-50%) scaleX(-1); }
.dm-paper-cat-desc { font-style: italic; color: var(--dm-muted); font-size: 14px; margin-top: 5px; }

.dm-paper-items { column-count: 1; column-gap: 44px; }
.dm-paper-item { break-inside: avoid; padding: 9px 0; }
.dm-paper-item-line { display: flex; align-items: baseline; gap: 6px; }
.dm-paper-item-name { font-family: var(--dm-heading-font); font-weight: 600; font-size: 16px; color: var(--dm-text); }
.dm-paper-item-w { font-size: 11.5px; font-weight: 400; color: var(--dm-muted); font-family: var(--dm-body-font); }
.dm-paper-dots { flex: 1; border-bottom: 1.5px dotted rgba(0,0,0,.34); transform: translateY(-3px); min-width: 16px; }
.dm-paper-item-price { font-family: var(--dm-heading-font); font-weight: 700; font-size: 16px; color: var(--dm-price); white-space: nowrap; }
.dm-paper-item-desc { font-size: 13px; color: var(--dm-muted); margin-top: 2px; line-height: 1.4; font-style: italic; }

@media (min-width: 768px) {
    .dm-paper { padding: 40px 22px 50px; }
    .dm-paper-section { padding: 40px 0 34px; }
    .dm-paper-cat-photo { margin-bottom: 20px; }
    .dm-paper-cat-icon { width: 76px; height: 76px; }
    .dm-paper-cat-emoji { font-size: 46px; }
    .dm-paper-cat-head { margin-bottom: 26px; }
    .dm-paper-cat-title { padding: 0 30px; letter-spacing: 1px; }
    .dm-paper-cat-title::before, .dm-paper-cat-title::after { font-size: 20px; }
    .dm-paper-items { column-count: 2; }
    .dm-paper-item-name, .dm-paper-item-price { font-size: 17px; }
}

/* ═══════════ FOOTER ═══════════ */
.dm-footer { background: var(--dm-surface); border-top: 1px solid rgba(128,128,128,.16); margin-top: 16px; }
.dm-footer-inner { max-width: 700px; margin: 0 auto; padding: 32px 18px 30px; text-align: center; }
.dm-footer-brand { font-family: var(--dm-heading-font); font-size: 23px; font-weight: 800; color: var(--dm-text); margin-bottom: 7px; }
.dm-footer-desc { font-size: 13.5px; color: var(--dm-muted); max-width: 520px; margin: 0 auto 16px; line-height: 1.55; }
.dm-footer-social { display: flex; gap: 11px; justify-content: center; margin-bottom: 16px; }
.dm-footer-social a { width: 46px; height: 46px; border-radius: 50%; background: var(--dm-accent); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 18px; transition: transform .15s, filter .15s; }
.dm-footer-social a:active { transform: scale(.94); }
.dm-footer-powered { font-size: 12px; color: var(--dm-muted); }
.dm-footer-powered a { color: var(--dm-accent); font-weight: 700; }
@media (hover:hover) { .dm-footer-social a:hover { transform: translateY(-3px); filter: brightness(1.1); } }

/* ═══════════ DOAR POZELE CATEGORIILOR (MeniuDigital.CategoryPicsOnly) ═══════════ */
/* Temele cu grilă se împart în secțiuni pe categorii: poza e a CATEGORIEI, produsele n-au poză.
   Culorile și fonturile rămân ale temei alese — se schimbă doar cât de „încărcat" e meniul. */
.dm-catsec { margin-bottom: 26px; }
.dm-catsec:last-of-type { margin-bottom: 6px; }

/* poză reală a categoriei → banner cu titlul peste ea */
.dm-catsec-banner { position: relative; width: 100%; aspect-ratio: 16/7; overflow: hidden; border-radius: var(--dm-radius); margin-bottom: 14px; box-shadow: 0 4px 18px rgba(0,0,0,.14); }
.dm-catsec-banner img { width: 100%; height: 100%; object-fit: cover; }
.dm-catsec-banner::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05) 30%, rgba(0,0,0,.74)); }
.dm-catsec-banner-txt { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 14px 16px; }
.dm-catsec-banner-txt .dm-catsec-title { color: #fff; text-shadow: 0 2px 16px rgba(0,0,0,.55); }
.dm-catsec-banner-txt .dm-catsec-desc { color: rgba(255,255,255,.92); text-shadow: 0 1px 10px rgba(0,0,0,.5); }

/* fără poză → pictogramă stock / emoji + titlu, pe o linie fină */
.dm-catsec-plain { display: flex; align-items: center; gap: 11px; margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid rgba(128,128,128,.24); }
.dm-catsec-plain-txt { min-width: 0; }
.dm-catsec-ic { flex: none; width: 38px; height: 38px; object-fit: contain; }
.dm-catsec-emoji { flex: none; font-size: 30px; line-height: 1; }

.dm-catsec-title { font-family: var(--dm-heading-font); font-size: clamp(20px, 6vw, 30px); font-weight: 800; margin: 0; line-height: 1.15; color: var(--dm-text); }
.dm-catsec-desc { font-size: 12.5px; margin: 3px 0 0; color: var(--dm-muted); line-height: 1.4; }

/* cardul fără poză — mai compact, dar tot cardul temei */
.dm-card--nopic .dm-card-body { padding: 13px 14px 14px; }
.dm-card-nutri--inline { position: static; width: 30px; height: 30px; flex: none; margin-left: auto; background: rgba(128,128,128,.14); box-shadow: none; }

@media (min-width: 768px) {
    .dm-catsec { margin-bottom: 34px; }
    .dm-catsec-banner { aspect-ratio: 21/7; margin-bottom: 18px; }
    .dm-catsec-banner-txt { padding: 18px 22px; }
    .dm-catsec-ic { width: 46px; height: 46px; }
    .dm-catsec-emoji { font-size: 36px; }
}

/* ═══════════ MODAL NUTRIȚIE ═══════════ */
.dm-modal { position: fixed; inset: 0; z-index: 100; display: none; align-items: center; justify-content: center; background: rgba(0,0,0,.55); padding: 18px; backdrop-filter: blur(3px); }
.dm-modal.open { display: flex; }
.dm-modal-box { background: var(--dm-surface); color: var(--dm-text); border-radius: var(--dm-radius); max-width: 420px; width: 100%; padding: 22px 24px; position: relative; box-shadow: 0 30px 80px rgba(0,0,0,.4); }
.dm-modal-box h4 { font-family: var(--dm-heading-font); margin: 0 0 12px; font-size: 18px; }
.dm-modal-x { position: absolute; top: 10px; right: 14px; border: none; background: none; font-size: 28px; line-height: 1; cursor: pointer; color: var(--dm-muted); }
/* Corpul ferestrei de nutriție: textul clientului e lung — scroll în fereastră, font lizibil.
   `.is-plain` = text simplu (fără HTML) ⇒ rândurile noi se păstrează. */
.dm-modal-box { max-height: calc(100vh - 36px); display: flex; flex-direction: column; }
.dm-modal-box h4 { padding-right: 28px; flex: none; }
#dmNutriBody { max-height: 70vh; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
    font-size: 14px; line-height: 1.55; color: var(--dm-text); overflow-wrap: anywhere; min-height: 0; }
#dmNutriBody.is-plain { white-space: pre-line; }
@media (max-width: 480px) { .dm-modal { padding: 12px; } .dm-modal-box { padding: 18px 16px; max-height: calc(100vh - 24px); } }
@media (min-width: 768px) { .dm-modal-box { max-width: 520px; } }

/* ═══════════ LOGO ÎN HERO (MeniuDigital.ShowLogo) ═══════════
   Pastilă albă discretă — logo-ul rămâne lizibil peste orice copertă, pe orice temă. */
.dm-hero-logo { display: inline-flex; align-items: center; justify-content: center; margin: 0 auto 14px;
    padding: 8px 12px; border-radius: 18px; background: rgba(255,255,255,.95);
    box-shadow: 0 8px 26px rgba(0,0,0,.3); max-width: calc(100% - 8px); }
/* logo-ul vine DECUPAT de marginile goale (inc.digitalmenu-logo.php) ⇒ poate fi afișat mare */
.dm-theme .dm-hero-logo img { display: block; max-height: 110px; max-width: min(300px, 76vw); width: auto; height: auto; object-fit: contain; }
@media (min-width: 768px) { .dm-hero-logo { margin-bottom: 18px; padding: 10px 16px; } .dm-theme .dm-hero-logo img { max-height: 140px; max-width: 360px; } }
/* Comutatorul de limbă stă în colțul din dreapta-sus al copertei: conținutul coboară sub el,
   ca logo-ul / numele să nu se lipească de buton pe telefon. */
.dm-hero:has(.dm-lang) .dm-hero-inner { padding-top: 64px; }
@media (min-width: 768px) { .dm-hero:has(.dm-lang) .dm-hero-inner { padding-top: 76px; } }

/* ═══════════ DATELE FIRMEI ÎN SUBSOL (MeniuDigital.ShowCompanyData) ═══════════ */
.dm-footer-company { font-size: 11.5px; line-height: 1.55; color: var(--dm-muted); text-align: center; margin: 0 auto 14px; max-width: 520px; opacity: .9; }
.dm-footer-company-name { font-weight: 700; }

/* ═══════════ NUTRIȚIE LA STILUL ZIAR ═══════════ */
.dm-paper-nutri { flex: none; align-self: center; width: 30px; height: 30px; margin-left: 4px; padding: 0; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center; font-size: 12px;
    border: 1px solid color-mix(in srgb, var(--dm-accent) 35%, transparent); border-radius: 50%;
    background: color-mix(in srgb, var(--dm-accent) 10%, transparent); color: var(--dm-accent); transition: background .15s, transform .12s; }
.dm-paper-nutri:active { transform: scale(.9); }
@media (hover: hover) { .dm-paper-nutri:hover { background: color-mix(in srgb, var(--dm-accent) 20%, transparent); } }

/* ═══════════ „NOTA MEA" — COȘ PERSONAL (mobile-first, tematizat) ═══════════ */
/* Buton + pe card grid */
.dm-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; }
.dm-card-foot .dm-card-price { margin-top: 0; }
.dm-add { flex-shrink: 0; width: 34px; height: 34px; border: none; border-radius: 50%; background: var(--dm-accent); color: #fff; font-size: 22px; font-weight: 700; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 3px 10px rgba(0,0,0,.18); transition: transform .12s ease, filter .12s ease; }
.dm-add:hover { filter: brightness(1.08); }
.dm-add:active, .dm-add.added { transform: scale(.82); }
.dm-add.added { background: #16a34a; }
/* Buton + inline newspaper */
.dm-add-paper { width: 24px; height: 24px; font-size: 17px; margin-left: 8px; box-shadow: 0 2px 6px rgba(0,0,0,.16); align-self: center; }

/* FAB coș */
.dm-cart-fab { position: fixed; right: 16px; bottom: 16px; z-index: 60; display: flex; align-items: center; gap: 10px; padding: 11px 18px 11px 14px; border: none; border-radius: 999px; background: var(--dm-accent); color: #fff; cursor: pointer; box-shadow: 0 8px 26px rgba(0,0,0,.28); font-family: var(--dm-body-font); transition: transform .16s ease; }
.dm-cart-fab.bump { animation: dmCartBump .3s ease; }
@keyframes dmCartBump { 0%,100% { transform: scale(1); } 40% { transform: scale(1.08); } }
.dm-cart-fab-ic { font-size: 22px; line-height: 1; }
.dm-cart-fab-txt { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.1; }
.dm-cart-fab-label { font-size: 10px; font-weight: 600; opacity: .85; text-transform: uppercase; letter-spacing: .4px; }
.dm-cart-fab-total { font-size: 16px; font-weight: 800; font-family: var(--dm-heading-font); }
.dm-cart-count { position: absolute; top: -4px; right: -4px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: #fff; color: var(--dm-accent); font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 6px rgba(0,0,0,.25); }

/* Bottom sheet */
.dm-cart-overlay { position: fixed; inset: 0; z-index: 70; display: flex; align-items: flex-end; justify-content: center; background: rgba(0,0,0,.5); opacity: 0; pointer-events: none; transition: opacity .22s ease; backdrop-filter: blur(2px); }
.dm-cart-overlay.open { opacity: 1; pointer-events: auto; }
.dm-cart-sheet { width: 100%; max-width: 560px; max-height: 86vh; background: var(--dm-surface); color: var(--dm-text); border-radius: 22px 22px 0 0; padding: 8px 18px calc(16px + env(safe-area-inset-bottom)); display: flex; flex-direction: column; transform: translateY(100%); transition: transform .28s cubic-bezier(.22,1,.36,1); box-shadow: 0 -12px 40px rgba(0,0,0,.3); }
.dm-cart-overlay.open .dm-cart-sheet { transform: translateY(0); }
.dm-cart-grip { width: 40px; height: 4px; border-radius: 999px; background: rgba(128,128,128,.35); margin: 4px auto 8px; }
.dm-cart-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 8px; border-bottom: 1px solid rgba(128,128,128,.15); }
.dm-cart-head h3 { font-family: var(--dm-heading-font); font-size: 20px; font-weight: 800; margin: 0; color: var(--dm-text); }
.dm-cart-x { border: none; background: rgba(128,128,128,.12); width: 34px; height: 34px; border-radius: 50%; font-size: 24px; line-height: 1; color: var(--dm-text); cursor: pointer; }
.dm-cart-items { overflow-y: auto; flex: 1; padding: 6px 0; }
.dm-cart-item { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 10px; padding: 11px 0; border-bottom: 1px dashed rgba(128,128,128,.16); }
.dm-cart-item-info { min-width: 0; }
.dm-cart-item-name { display: block; font-weight: 700; font-size: 14.5px; color: var(--dm-text); }
.dm-cart-item-price { display: block; font-size: 12px; color: var(--dm-muted); margin-top: 1px; }
.dm-cart-qty { display: flex; align-items: center; gap: 8px; }
.dm-cart-q { width: 30px; height: 30px; border: 1.5px solid var(--dm-accent); background: transparent; color: var(--dm-accent); border-radius: 50%; font-size: 18px; font-weight: 800; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.dm-cart-q:active { transform: scale(.9); }
.dm-cart-qn { min-width: 20px; text-align: center; font-weight: 800; font-size: 15px; }
.dm-cart-item-sub { font-family: var(--dm-heading-font); font-weight: 800; font-size: 14.5px; color: var(--dm-price); white-space: nowrap; }
.dm-cart-empty { text-align: center; padding: 34px 20px; color: var(--dm-muted); font-size: 14px; line-height: 1.5; }
.dm-cart-foot { padding-top: 12px; border-top: 2px solid rgba(128,128,128,.16); }
.dm-cart-total-row { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 12px; }
.dm-cart-total-row span { font-size: 14px; font-weight: 600; color: var(--dm-muted); }
.dm-cart-total-row b { font-family: var(--dm-heading-font); font-size: 26px; font-weight: 800; color: var(--dm-price); }
.dm-cart-clear { width: 100%; border: 1.5px solid rgba(239,68,68,.3); background: rgba(239,68,68,.06); color: #dc2626; font-weight: 700; font-size: 13.5px; padding: 11px; border-radius: 12px; cursor: pointer; }
.dm-cart-note { font-size: 11.5px; color: var(--dm-muted); text-align: center; margin-top: 10px; line-height: 1.5; }
@media (min-width: 768px) { .dm-cart-fab { right: 24px; bottom: 24px; } }

/* ═══════════ SKIN adjustments — teme cu FUNDAL ÎNCHIS ═══════════ */
/* Listă centralizată: dark, elegant, steakhouse, ramen, cocktail, streetfood, bbq, speakeasy, rooftop, korean, chocolaterie */
[data-dm-theme="dark"] .dm-card, [data-dm-theme="elegant"] .dm-card, [data-dm-theme="steakhouse"] .dm-card,
[data-dm-theme="ramen"] .dm-card, [data-dm-theme="cocktail"] .dm-card, [data-dm-theme="streetfood"] .dm-card,
[data-dm-theme="bbq"] .dm-card, [data-dm-theme="speakeasy"] .dm-card, [data-dm-theme="rooftop"] .dm-card,
[data-dm-theme="korean"] .dm-card, [data-dm-theme="chocolaterie"] .dm-card { border-color: rgba(255,255,255,.09); box-shadow: 0 4px 20px rgba(0,0,0,.35); }
[data-dm-theme="dark"] .dm-card-nutri, [data-dm-theme="elegant"] .dm-card-nutri, [data-dm-theme="steakhouse"] .dm-card-nutri,
[data-dm-theme="ramen"] .dm-card-nutri, [data-dm-theme="cocktail"] .dm-card-nutri, [data-dm-theme="streetfood"] .dm-card-nutri,
[data-dm-theme="bbq"] .dm-card-nutri, [data-dm-theme="speakeasy"] .dm-card-nutri, [data-dm-theme="rooftop"] .dm-card-nutri,
[data-dm-theme="korean"] .dm-card-nutri, [data-dm-theme="chocolaterie"] .dm-card-nutri { background: var(--dm-surface); }
[data-dm-theme="dark"] .dm-card-price { text-shadow: 0 0 14px rgba(0,229,199,.5); }
[data-dm-theme="cocktail"] .dm-card-price, [data-dm-theme="cocktail"] .dm-brand { text-shadow: 0 0 12px rgba(212,175,55,.4); }
[data-dm-theme="dark"] .dm-filter.is-active { box-shadow: 0 0 16px rgba(0,229,199,.45); }
[data-dm-theme="elegant"] .dm-filter, [data-dm-theme="minimal"] .dm-filter, [data-dm-theme="cocktail"] .dm-filter { letter-spacing: .4px; text-transform: uppercase; font-size: 11.5px; }

/* Newspaper pe teme închise (steakhouse): pictograme/linii vizibile */
[data-dm-theme="elegant"] .dm-paper-cat-icon img, [data-dm-theme="dark"] .dm-paper-cat-icon img,
[data-dm-theme="steakhouse"] .dm-paper-cat-icon img { filter: brightness(0) invert(1) opacity(.85); }
[data-dm-theme="steakhouse"] .dm-paper-section { border-color: rgba(255,255,255,.12); }
[data-dm-theme="steakhouse"] .dm-paper-dots { border-bottom-color: rgba(255,255,255,.28); }

/* Căutarea preia stilul temei: pe teme închise, glow accent mai vizibil */
[data-dm-theme="dark"] .dm-search input:focus, [data-dm-theme="steakhouse"] .dm-search input:focus,
[data-dm-theme="ramen"] .dm-search input:focus, [data-dm-theme="cocktail"] .dm-search input:focus,
[data-dm-theme="streetfood"] .dm-search input:focus, [data-dm-theme="bbq"] .dm-search input:focus,
[data-dm-theme="elegant"] .dm-search input:focus { box-shadow: 0 0 0 4px color-mix(in srgb, var(--dm-accent) 26%, transparent); }
/* Search input rotunjire în ton cu tema (angular pe teme cu radius mic) */
[data-dm-theme="newspaper"] .dm-search input, [data-dm-theme="steakhouse"] .dm-search input,
[data-dm-theme="winebar"] .dm-search input, [data-dm-theme="bakery"] .dm-search input,
[data-dm-theme="teahouse"] .dm-search input, [data-dm-theme="elegant"] .dm-search input,
[data-dm-theme="cocktail"] .dm-search input { border-radius: 6px; }
/* Search icon + contor în accentul temei */
.dm-search-box:focus-within .dm-search-ic { color: var(--dm-accent); }
.dm-search-count { color: var(--dm-accent); }

/* ═══════════ VARIAȚII (produse variabile) — fiecare mărime cu PREȚUL EI ═══════════
   Meniul digital e static: nu alegi o variație, le vezi pe toate. Prețul din capul
   produsului devine „de la X", iar mărimile se listează dedesubt.
   Totul pe var(--dm-*) → se pliază pe fiecare temă. */
.dm-vars { display: flex; flex-direction: column; gap: 5px; margin-top: 9px; }
/* SQL 340 — modul de afisare al ATRIBUTULUI (card|list|select). Meniul digital e static:
   nu se alege o varianta, se vad toate. Deci „select" (pliat pana la atingere) n-are obiect
   aici si se comporta ca „list". „card" = pastile pe rand, asezate singure pe mai multe randuri. */
.dm-vars[data-display="card"] { flex-direction: row; flex-wrap: wrap; gap: 6px; }
.dm-vars[data-display="card"] .dm-var { flex: 0 1 auto; }
.dm-vars[data-display="card"] .dm-var-label { flex: 0 1 auto; }
.dm-var {
    display: flex; align-items: center; gap: 8px;
    padding: 7px 10px;
    border: 1px solid color-mix(in srgb, var(--dm-accent) 26%, transparent);
    border-radius: calc(var(--dm-radius) * .6);
    background: color-mix(in srgb, var(--dm-accent) 7%, transparent);
}
.dm-var-emoji { font-size: 15px; line-height: 1; flex-shrink: 0; }
.dm-var-pic { width: 26px; height: 26px; object-fit: cover; border-radius: 5px; flex-shrink: 0; }
.dm-var-label {
    font-family: var(--dm-body-font); font-size: 12.5px; font-weight: 700;
    color: var(--dm-text); flex: 1; min-width: 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dm-var-price {
    font-family: var(--dm-heading-font); font-size: 14px; font-weight: 800;
    color: var(--dm-price); white-space: nowrap;
}
.dm-var-add { flex-shrink: 0; }

/* Prețul „de la X" al produsului variabil — puțin mai discret decât un preț ferm */
.dm-card.has-vars .dm-card-price,
.dm-paper-item.has-vars .dm-paper-item-price { font-size: .82em; opacity: .85; font-weight: 700; }

@media (min-width: 768px) {
    .dm-vars { gap: 6px; margin-top: 11px; }
    .dm-var { padding: 8px 11px; }
    .dm-var-label { font-size: 13.5px; }
    .dm-var-price { font-size: 15.5px; }
    .dm-var-emoji { font-size: 17px; }
    .dm-var-pic { width: 30px; height: 30px; }
}
@media (hover: hover) {
    .dm-var { transition: border-color .15s, background .15s; }
    .dm-var:hover {
        border-color: var(--dm-accent);
        background: color-mix(in srgb, var(--dm-accent) 13%, transparent);
    }
}

/* ═══════════ Filtre de categorie — CENTRATE pe desktop ═══════════
   Pe mobil raman aliniate stanga + scroll orizontal (asa incap si se deruleaza natural).
   Pe ecran mare exista loc: se centreaza si se rup pe randuri (NU scroll — cu
   justify-content:center un container scrollabil ar taia inceputul listei). */
@media (min-width: 768px) {
    .dm-filters {
        justify-content: center;
        flex-wrap: wrap;
        overflow-x: visible;
        row-gap: 8px;
    }
}

/* ═══════════ FIX badge-uri hero (telefon + retele) ═══════════
   `.dm-theme a { color: inherit }` (specificitate 0,1,1) BATEA `.dm-chip { color:#fff }` (0,1,0),
   deci pastilele mosteneau --dm-text (inchis pe temele deschise) si erau ilizibile peste
   fotografia intunecata din hero. Ridicam specificitatea, nu punem !important. */
.dm-theme a.dm-chip { color: #fff; }
.dm-theme a.dm-chip i { color: #fff; }
.dm-chip {
    background: rgba(255,255,255,.22);
    border-color: rgba(255,255,255,.45);
    text-shadow: 0 1px 3px rgba(0,0,0,.45);
}
@media (hover: hover) {
    .dm-theme a.dm-chip:hover, .dm-theme a.dm-chip:hover i { color: #fff; }
}

/* ═══════════ Carduri cu variatii — aliniere consistenta ═══════════
   Fara asta, un produs FARA descriere isi lipea variatiile imediat sub titlu, iar unul CU
   descriere le impingea jos (`.dm-card-desc` are flex:1) → randul arata dezordonat.
   Acum blocul de variatii + pretul „de la X" stau JOS la toate cardurile, ca la produsele simple. */
.dm-card.has-vars .dm-card-desc { flex: none; }
.dm-card.has-vars .dm-vars { margin-top: auto; }
/* CRITIC: `.dm-card-foot` are si el `margin-top:auto`. Cu DOUA margini auto in aceeasi
   coloana flex, spatiul liber se IMPARTE intre ele — la un produs fara descriere
   variatiile urcau si ramanea un gol inainte de „de la X". Pe cardurile cu variatii
   impinge doar blocul de variatii; subsolul se lipeste de el. */
.dm-card.has-vars .dm-card-foot { margin-top: 0; }

/* ═══════════ COMUTATORUL DE LIMBĂ (meniu multilingv) ═══════════
   Un singur set de reguli pentru TOATE temele: pastila stă peste coperta din hero, deci
   se colorează pe alb/negru translucid (ca `.dm-chip`), nu pe variabilele temei — altfel
   pe temele deschise ar fi ilizibilă peste fotografia întunecată. Panoul care se deschide
   folosește însă suprafața temei, ca să arate ca restul meniului.
   Steagurile sunt SVG-uri locale: emoji-steag nu se randează pe Windows/Chrome. */
.dm-lang { position: absolute; top: 12px; right: 12px; z-index: 5; }
.dm-lang-btn {
    display: flex; align-items: center; gap: 7px; padding: 7px 11px; cursor: pointer;
    border-radius: 999px; border: 1px solid rgba(255,255,255,.45);
    background: rgba(0,0,0,.34); color: #fff; font: inherit; font-size: 13px; font-weight: 700;
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
    text-shadow: 0 1px 3px rgba(0,0,0,.45); transition: background .18s, transform .18s;
}
.dm-lang-btn:hover  { background: rgba(0,0,0,.5); }
.dm-lang-btn:active { transform: scale(.97); }
.dm-lang-flag  { display: block; border-radius: 3px; object-fit: cover; flex: none;
                 box-shadow: 0 0 0 1px rgba(0,0,0,.18); }
.dm-lang-code  { letter-spacing: .04em; }
.dm-lang-caret { width: 12px; height: 12px; opacity: .85; transition: transform .2s; }
.dm-lang.open .dm-lang-caret { transform: rotate(180deg); }

.dm-lang-menu {
    position: absolute; top: calc(100% + 8px); right: 0; min-width: 218px; padding: 6px;
    border-radius: 14px; border: 1px solid var(--dm-border, rgba(0,0,0,.12));
    background: var(--dm-surface, #fff); color: var(--dm-text, #111);
    box-shadow: 0 18px 44px rgba(0,0,0,.28);
    opacity: 0; visibility: hidden; transform: translateY(-6px);
    transition: opacity .18s, transform .18s, visibility .18s;
}
.dm-lang.open .dm-lang-menu { opacity: 1; visibility: visible; transform: none; }
.dm-lang-head {
    font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; font-weight: 800;
    opacity: .55; padding: 7px 10px 5px;
}
.dm-theme a.dm-lang-item {
    display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 9px;
    font-size: 14px; text-decoration: none; color: var(--dm-text, #111); transition: background .14s;
}
.dm-theme a.dm-lang-item:hover  { background: rgba(127,127,127,.14); }
.dm-theme a.dm-lang-item.is-on  { background: rgba(127,127,127,.1); font-weight: 700; }
.dm-lang-name  { flex: 1; min-width: 0; }
.dm-lang-check { color: var(--dm-accent, #ff6b35); font-weight: 800; }
.dm-lang-foot  { font-size: 10.5px; opacity: .5; padding: 7px 10px 5px; border-top: 1px solid rgba(127,127,127,.18); margin-top: 4px; }

@media (min-width: 768px) { .dm-lang { top: 18px; right: 22px; } }

/* ═══════════════════════════════════════════════════════════════════════════
   TEMELE 51–55 (2026-09-21) — skin-uri proprii, strict scopate pe tema lor
   ═══════════════════════════════════════════════════════════════════════════ */

/* ═══════════ SKIN — HAN ROMÂNESC ═══════════
   Pânză de in (textură fină de țesătură), chenar de ie cusut în roșu și negru (romburi din SVG
   inline, fără imagini externe), cusătură punctată între poză și text, cifre drepte la prețuri.
   Totul scopat pe [data-dm-theme="hanromanesc"]; nicio regulă nu atinge culoarea textului. */

/* 1. Textura pânzei de in — țesătură abia vizibilă (≈2.5%), pe fundal și pe benzile lipicioase */
[data-dm-theme="hanromanesc"].dm-theme,
[data-dm-theme="hanromanesc"] .dm-search,
[data-dm-theme="hanromanesc"] .dm-filters {
    background-color: var(--dm-bg);
    background-image:
        repeating-linear-gradient(0deg,  rgba(43,24,16,.025) 0 1px, transparent 1px 3px),
        repeating-linear-gradient(90deg, rgba(43,24,16,.02)  0 1px, transparent 1px 4px);
}

/* 2. Hero: umbră caldă (nuc), nu neagră; chenarul de ie cusut la baza copertei */
[data-dm-theme="hanromanesc"] .dm-hero-overlay { background: linear-gradient(180deg, rgba(43,20,12,.30), rgba(43,20,12,.70)); }
[data-dm-theme="hanromanesc"] .dm-brand { letter-spacing: .02em; }
[data-dm-theme="hanromanesc"] .dm-hero::after,
[data-dm-theme="hanromanesc"] .dm-footer::before {
    content: ''; display: block; height: 14px;
    background-color: #fffcf5;
    background-image:
        linear-gradient(#2b1810, #2b1810), linear-gradient(#2b1810, #2b1810),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='14' viewBox='0 0 24 14'%3E%3Cpath d='M6 2l5 5-5 5-5-5z' fill='%23a3161f'/%3E%3Cpath d='M6 5l2 2-2 2-2-2z' fill='%23fffcf5'/%3E%3Cpath d='M18 5l2 2-2 2-2-2z' fill='%232b1810'/%3E%3C/svg%3E");
    background-size: 100% 1px, 100% 1px, 24px 14px;
    background-position: top left, bottom left, center;
    background-repeat: no-repeat, no-repeat, repeat-x;
}
[data-dm-theme="hanromanesc"] .dm-hero::after { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; }

/* 3. Filtre și căutare: colțuri de tăbliță (nu pastilă rotundă), chenar în tonul textului */
[data-dm-theme="hanromanesc"] .dm-filter { border-radius: var(--dm-radius); border-color: color-mix(in srgb, var(--dm-text) 22%, transparent); font-weight: 700; }
[data-dm-theme="hanromanesc"] .dm-search input { border-radius: var(--dm-radius); border-color: color-mix(in srgb, var(--dm-text) 24%, transparent); }

/* 4. Carduri: chenar cald + cusătură punctată roșie între poză și text (la cardul fără poză = sus) */
[data-dm-theme="hanromanesc"] .dm-card { border-color: color-mix(in srgb, var(--dm-text) 13%, transparent); box-shadow: 0 3px 12px rgba(43,24,16,.08); }
[data-dm-theme="hanromanesc"] .dm-card-body { border-top: 2px dashed color-mix(in srgb, var(--dm-accent) 45%, transparent); }

/* 5. Prețuri: cifre drepte (Alegreya SC are implicit cifre „vechi", inegale pe înălțime) */
[data-dm-theme="hanromanesc"] .dm-card-price,
[data-dm-theme="hanromanesc"] .dm-var-price,
[data-dm-theme="hanromanesc"] .dm-cart-item-sub,
[data-dm-theme="hanromanesc"] .dm-cart-total-row b,
[data-dm-theme="hanromanesc"] .dm-cart-fab-total { font-variant-numeric: lining-nums tabular-nums; }

/* 6. „Doar pozele categoriilor": sub titlul fără poză, un rând mic de romburi în loc de linia gri */
[data-dm-theme="hanromanesc"] .dm-catsec-plain {
    border-bottom: none; padding-bottom: 16px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8' viewBox='0 0 16 8'%3E%3Cpath d='M4 1l3 3-3 3-3-3z' fill='%23a3161f'/%3E%3Cpath d='M12 3l1 1-1 1-1-1z' fill='%232b1810'/%3E%3C/svg%3E") left bottom / 16px 8px repeat-x;
}

/* ═══════════ SKIN — TAVERNĂ GREACĂ (taverna) ═══════════
   Cyclade: var alb, albastru de cupolă, meandru grecesc, arcadă albă peste poza produsului.
   Meandrul = SVG inline (data-URI, ~200 octeți), fără imagini externe. Culoarea lui e
   bătută în cod (#0b3d91 = --dm-accent al temei) — un data-URI nu poate citi var(). */

/* Titlurile: Forum are o singură greutate (400) — oprim bold-ul fals, lăsăm literele de inscripție să respire */
[data-dm-theme="taverna"] .dm-brand,
[data-dm-theme="taverna"] .dm-footer-brand { font-weight: 400; text-transform: uppercase; letter-spacing: .06em; }
[data-dm-theme="taverna"] .dm-tagline { font-style: normal; letter-spacing: .02em; }
[data-dm-theme="taverna"] .dm-card-title { font-weight: 400; font-size: 16px; letter-spacing: .01em; line-height: 1.18; }
[data-dm-theme="taverna"] .dm-catsec-title { font-weight: 400; text-transform: uppercase; letter-spacing: .05em; color: var(--dm-accent); }
[data-dm-theme="taverna"] .dm-catsec-banner-txt .dm-catsec-title { color: #fff; }
[data-dm-theme="taverna"] .dm-search-empty .t,
[data-dm-theme="taverna"] .dm-cart-head h3,
[data-dm-theme="taverna"] .dm-modal-box h4 { font-weight: 400; letter-spacing: .03em; }

/* Prețurile pe fontul de text (cifre pline), nu pe Forum (cifre subțiri de inscripție) */
[data-dm-theme="taverna"] .dm-card-price,
[data-dm-theme="taverna"] .dm-var-price,
[data-dm-theme="taverna"] .dm-cart-item-sub,
[data-dm-theme="taverna"] .dm-cart-total-row b,
[data-dm-theme="taverna"] .dm-cart-fab-total { font-family: var(--dm-body-font); font-weight: 700; }

/* Banda cu meandru la baza copertei — ca muchia de var a unei terase */
[data-dm-theme="taverna"] .dm-hero::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; height: 14px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Cpath d='M0 11H16M13 11V1H3V8H10V4H6' fill='none' stroke='%230b3d91' stroke-width='1.6'/%3E%3C/svg%3E") repeat-x left center / 16px 12px;
}

/* Filtrele: plăcuțe de faianță (colț mic), pastila activă în albastru de cupolă cu filet alb interior */
[data-dm-theme="taverna"] .dm-filter { border-radius: 8px; border-color: rgba(11,61,145,.2); }
[data-dm-theme="taverna"] .dm-filter.is-active { box-shadow: inset 0 0 0 2px rgba(255,255,255,.4), 0 4px 12px rgba(11,61,145,.26); }
[data-dm-theme="taverna"] .dm-search input { border-color: #e2d9c6; }

/* Cardul: alb var, chenar nisipiu; poza stă sub o ARCADĂ cicladică (colțurile de sus rotunjite ca o boltă) */
[data-dm-theme="taverna"] .dm-card { border-color: #ebe3d2; box-shadow: 0 2px 10px rgba(15,35,64,.06); }
[data-dm-theme="taverna"] .dm-card-media { margin: 7px 7px 0; border-radius: 50% 50% 4px 4px / 44px 44px 4px 4px; }
/* butonul de nutriție coboară jos-dreapta: în colțul de sus l-ar tăia bolta */
[data-dm-theme="taverna"] .dm-card-nutri { top: auto; bottom: 8px; color: var(--dm-accent2); }
[data-dm-theme="taverna"] .dm-card-nutri--inline { color: var(--dm-accent2); }
[data-dm-theme="taverna"] .dm-card-weight { color: var(--dm-accent2); text-transform: uppercase; letter-spacing: .06em; font-size: 10.5px; }
/* card fără poză: o linie albastră sus ține locul arcadei */
[data-dm-theme="taverna"] .dm-card--nopic { border-top: 3px solid var(--dm-accent); }

/* „Doar pozele categoriilor": bannerul sub boltă + dungă albastră; fără poză → medalion alb + meandru sub titlu */
[data-dm-theme="taverna"] .dm-catsec-banner { border-radius: 40% 40% 6px 6px / 30% 30% 6px 6px; border-bottom: 4px solid var(--dm-accent); }
[data-dm-theme="taverna"] .dm-catsec-plain {
    border-bottom: none; padding-bottom: 16px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Cpath d='M0 11H16M13 11V1H3V8H10V4H6' fill='none' stroke='%230b3d91' stroke-opacity='.45' stroke-width='1.6'/%3E%3C/svg%3E") repeat-x left bottom / 12px 9px;
}
[data-dm-theme="taverna"] .dm-catsec-ic { padding: 6px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 2px var(--dm-accent); }
[data-dm-theme="taverna"] .dm-catsec-emoji { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; font-size: 24px;
    border-radius: 50%; background: #fff; box-shadow: 0 0 0 2px var(--dm-accent); }

/* Subsolul: aceeași bandă cu meandru, deasupra */
[data-dm-theme="taverna"] .dm-footer { border-top: none; }
[data-dm-theme="taverna"] .dm-footer::before {
    content: ''; display: block; height: 14px; border-bottom: 1px solid #ebe3d2;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Cpath d='M0 11H16M13 11V1H3V8H10V4H6' fill='none' stroke='%230b3d91' stroke-width='1.6'/%3E%3C/svg%3E") repeat-x left center / 16px 12px;
}

@media (min-width: 768px) {
    [data-dm-theme="taverna"] .dm-card-title { font-size: 18.5px; }
    [data-dm-theme="taverna"] .dm-card-media { margin: 9px 9px 0; border-radius: 50% 50% 4px 4px / 60px 60px 4px 4px; }
    [data-dm-theme="taverna"] .dm-hero::after, [data-dm-theme="taverna"] .dm-footer::before { height: 16px; }
    [data-dm-theme="taverna"] .dm-catsec-emoji { width: 52px; height: 52px; font-size: 28px; }
}

/* ═══════════ SKIN „cabana" — Cabană Alpină (temă ÎNCHISĂ, verde de brad) ═══════════
   Doar gradienți CSS, zero imagini. Semnături: carouri de flanelă abia vizibile pe fundal,
   creastă de munte la baza copertei, cusătură punctată deasupra prețului, bandă țesută în subsol.
   Include și echivalentul regulilor pentru teme închise (card, nutriție, focus căutare). */

/* 1. Fundal: carouri de flanelă foarte discrete (roșu merișor + fir auriu), sub 5% opacitate */
body[data-dm-theme="cabana"] {
    --dm-border: rgba(243,234,217,.14);
    background-color: var(--dm-bg);
    background-image:
        repeating-linear-gradient(0deg,  rgba(200,69,58,.045) 0 14px, transparent 14px 56px),
        repeating-linear-gradient(90deg, rgba(200,69,58,.045) 0 14px, transparent 14px 56px),
        repeating-linear-gradient(0deg,  transparent 0 27px, rgba(217,164,65,.05) 27px 29px, transparent 29px 56px),
        repeating-linear-gradient(90deg, transparent 0 27px, rgba(217,164,65,.05) 27px 29px, transparent 29px 56px);
}

/* 2. Coperta: tentă de pădure în loc de negru + creastă de munte (două planuri) la bază */
[data-dm-theme="cabana"] .dm-hero-overlay { background: linear-gradient(180deg, rgba(17,26,22,.28), rgba(17,26,22,.84)); }
[data-dm-theme="cabana"] .dm-hero-inner { padding-bottom: 46px; }
[data-dm-theme="cabana"] .dm-hero::before,
[data-dm-theme="cabana"] .dm-hero::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; z-index: 1; pointer-events: none; }
[data-dm-theme="cabana"] .dm-hero::before { height: 30px; background: rgba(26,38,32,.85);
    clip-path: polygon(0 70%, 9% 35%, 17% 62%, 28% 10%, 38% 55%, 47% 30%, 58% 68%, 69% 18%, 80% 58%, 90% 32%, 100% 60%, 100% 100%, 0 100%); }
[data-dm-theme="cabana"] .dm-hero::after { height: 20px; background: var(--dm-bg);
    clip-path: polygon(0 55%, 12% 80%, 22% 30%, 33% 75%, 44% 45%, 55% 85%, 64% 38%, 76% 78%, 86% 42%, 100% 72%, 100% 100%, 0 100%); }
[data-dm-theme="cabana"] .dm-brand { letter-spacing: .3px; }

/* 3. Căutare: rotunjire ca a cardurilor + glow accent vizibil pe fundal închis */
[data-dm-theme="cabana"] .dm-search input { border-radius: 10px; border-color: rgba(243,234,217,.18); }
[data-dm-theme="cabana"] .dm-search input:focus { box-shadow: 0 0 0 4px color-mix(in srgb, var(--dm-accent) 28%, transparent); }
[data-dm-theme="cabana"] .dm-search-count { color: var(--dm-price); }   /* text mic → auriu (8:1), nu roșu (3.7:1) */

/* 4. Filtre: chenar crem discret; hover auriu (lizibil); pastila activă rămâne roșu merișor + text alb */
[data-dm-theme="cabana"] .dm-filter:not(.is-active) { border-color: rgba(243,234,217,.18); }
[data-dm-theme="cabana"] .dm-filter.is-active { box-shadow: 0 4px 16px rgba(200,69,58,.38); }
@media (hover:hover) { [data-dm-theme="cabana"] .dm-filter:not(.is-active):hover { border-color: var(--dm-price); color: var(--dm-price); } }

/* 5. Carduri (echivalent teme închise) + cusătură de pătură deasupra prețului */
[data-dm-theme="cabana"] .dm-card { border-color: rgba(243,234,217,.09); box-shadow: 0 4px 20px rgba(0,0,0,.35); }
[data-dm-theme="cabana"] .dm-card-nutri { background: var(--dm-surface); color: var(--dm-price); }
[data-dm-theme="cabana"] .dm-card-nutri--inline { background: rgba(243,234,217,.08); }
[data-dm-theme="cabana"] .dm-card-foot { border-top: 1.5px dashed rgba(243,234,217,.16); padding-top: 9px; }
[data-dm-theme="cabana"] .dm-card-price { text-shadow: 0 0 14px rgba(232,178,90,.28); }
@media (min-width: 768px) { [data-dm-theme="cabana"] .dm-card:hover { box-shadow: 0 14px 34px rgba(0,0,0,.5); } }

/* 6. „Doar pozele categoriilor": banner cu tentă de brad, titlu cu cusătură, pictograma pe disc crem
      (pictogramele stock pot fi închise — pe disc crem se văd pe fundalul de noapte) */
[data-dm-theme="cabana"] .dm-catsec-banner::after { background: linear-gradient(180deg, rgba(17,26,22,.05) 30%, rgba(17,26,22,.86)); }
[data-dm-theme="cabana"] .dm-catsec-plain { border-bottom: 1.5px dashed rgba(243,234,217,.2); }
[data-dm-theme="cabana"] .dm-catsec-ic { background: rgba(243,234,217,.92); border-radius: 50%; padding: 6px; }

/* 7. Subsol: bandă țesută (carou de flanelă) pe muchia de sus; link „powered" auriu */
[data-dm-theme="cabana"] .dm-footer { border-top: 0; }
[data-dm-theme="cabana"] .dm-footer::before { content: ''; display: block; height: 6px;
    background: repeating-linear-gradient(90deg, #c8453a 0 14px, #8e2c24 14px 18px, #d9a441 18px 20px, #8e2c24 20px 24px); }
[data-dm-theme="cabana"] .dm-footer-powered a { color: var(--dm-price); }

/* 8. Coș: butonul „Golește" lizibil pe suprafața închisă */
[data-dm-theme="cabana"] .dm-cart-clear { color: #f3a097; border-color: rgba(243,160,151,.35); background: rgba(243,160,151,.07); }

@media (min-width: 768px) {
    [data-dm-theme="cabana"] .dm-hero-inner { padding-bottom: 64px; }
    [data-dm-theme="cabana"] .dm-hero::before { height: 48px; }
    [data-dm-theme="cabana"] .dm-hero::after { height: 30px; }
}

/* ═══════════ SKIN „Dim Sum" (restaurant chinezesc) — temă ÎNCHISĂ: lac roșu, jad, aur ═══════════
   Totul scopat pe [data-dm-theme="dimsum"]. Fără imagini externe: motivele sunt SVG inline mici.
   Motive: (1) zăbrele de fereastră chinezească, foarte stinse, pe fundal;
           (2) bandă de meandru 回纹 (huiwen) aurie — sub copertă, sub filtre, la titlurile de categorie, în subsol;
           (3) chenar dublu fin auriu pe carduri (ca o cutie lăcuită).
   Butoanele (accent) sunt JAD cu text alb; textele-link în accent folosesc un jad DESCHIS (#7fd3a8),
   fiindcă jadul plin pe roșul închis are doar 3.35:1 — bun pentru suprafețe, nu pentru text mic. */

/* Motiv 1 — zăbrele de fereastră (28px), aur la 7% */
[data-dm-theme="dimsum"] {
    --ds-jade-lt: #7fd3a8;
    --ds-gold-line: rgba(217,164,65,.28);
    --ds-fret: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='10' viewBox='0 0 18 10'%3E%3Cpath d='M0 9.2H18M2 9.2V1H14V6.6H6V3.6H10' fill='none' stroke='%23d9a441' stroke-width='1.3' stroke-linecap='square'/%3E%3C/svg%3E");
    background-color: var(--dm-bg);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cg fill='none' stroke='%23d9a441' stroke-opacity='.07' stroke-width='1'%3E%3Cpath d='M0 14H28M14 0V28'/%3E%3Crect x='7.5' y='7.5' width='13' height='13'/%3E%3C/g%3E%3C/svg%3E");
}

/* ── COPERTĂ: voal de lac roșu (nu negru) + bandă de meandru jos + numele cu linie aurie ── */
[data-dm-theme="dimsum"] .dm-hero-overlay { background: linear-gradient(180deg, rgba(42,10,13,.30) 0%, rgba(42,10,13,.62) 55%, rgba(42,10,13,.90) 100%); }
[data-dm-theme="dimsum"] .dm-hero::after { content: ''; position: absolute; left: 0; right: 0; bottom: 6px; height: 10px; z-index: 3; background: var(--ds-fret) repeat-x center / 18px 10px; opacity: .85; pointer-events: none; }
[data-dm-theme="dimsum"] .dm-brand { font-weight: 900; letter-spacing: .02em; }
[data-dm-theme="dimsum"] .dm-brand::after { content: ''; display: block; width: 64px; height: 2px; margin: 12px auto 0; background: linear-gradient(90deg, transparent, #eab54e 20%, #eab54e 80%, transparent); }
[data-dm-theme="dimsum"] .dm-tagline { font-style: normal; letter-spacing: .06em; }

/* ── CĂUTARE + FILTRE: fundal translucid (zăbrelele trec prin el, fără cusături) ── */
[data-dm-theme="dimsum"] .dm-search,
[data-dm-theme="dimsum"] .dm-filters { background: color-mix(in srgb, var(--dm-bg) 90%, transparent); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border-bottom-color: var(--ds-gold-line); }
[data-dm-theme="dimsum"] .dm-search input { border-color: var(--ds-gold-line); border-radius: 8px; }
[data-dm-theme="dimsum"] .dm-search input:focus { border-color: var(--ds-jade-lt); box-shadow: 0 0 0 4px rgba(127,211,168,.22); }
[data-dm-theme="dimsum"] .dm-search-count,
[data-dm-theme="dimsum"] .dm-search-box:focus-within .dm-search-ic { color: var(--ds-jade-lt); }

/* Filtre = tăblițe lăcuite (colț de 6px, nu pastilă), fir auriu; activ = jad cu inel auriu */
[data-dm-theme="dimsum"] .dm-filter { border-radius: 6px; border-color: var(--ds-gold-line); }
[data-dm-theme="dimsum"] .dm-filter.is-active { box-shadow: inset 0 0 0 1px rgba(234,181,78,.55), 0 4px 14px rgba(0,0,0,.35); }
@media (hover:hover) {
    [data-dm-theme="dimsum"] .dm-filter:hover { border-color: var(--ds-jade-lt); color: var(--ds-jade-lt); }
    [data-dm-theme="dimsum"] .dm-filter.is-active:hover { color: #fff; }
}
/* Pictogramele stock pot fi negre/colorate: le punem pe un jeton de porțelan fildeș, nu le inversăm */
[data-dm-theme="dimsum"] .dm-filter-ic { width: 22px; height: 22px; padding: 2px; border-radius: 50%; background: #fbefdc; }
[data-dm-theme="dimsum"] .dm-filter.is-active .dm-filter-ic { filter: none; }

/* ── CARDURI: chenar dublu auriu fin (cutie lăcuită) + filet auriu sub poză ── */
[data-dm-theme="dimsum"] .dm-card { border-color: var(--ds-gold-line); box-shadow: inset 0 0 0 3px var(--dm-surface), inset 0 0 0 4px rgba(217,164,65,.12), 0 4px 20px rgba(0,0,0,.38); }
[data-dm-theme="dimsum"] .dm-card-media { background: rgba(255,255,255,.04); border-bottom: 2px solid rgba(217,164,65,.55); }
[data-dm-theme="dimsum"] .dm-card-nutri { background: var(--dm-surface); color: var(--ds-jade-lt); }
[data-dm-theme="dimsum"] .dm-card-nutri--inline { background: rgba(255,255,255,.08); }
[data-dm-theme="dimsum"] .dm-card-title { font-weight: 700; letter-spacing: .01em; }
[data-dm-theme="dimsum"] .dm-card-price { font-weight: 900; }
[data-dm-theme="dimsum"] .dm-add { box-shadow: 0 0 0 1.5px rgba(234,181,78,.6), 0 3px 10px rgba(0,0,0,.35); }
@media (min-width: 768px) {
    [data-dm-theme="dimsum"] .dm-card:hover { box-shadow: inset 0 0 0 3px var(--dm-surface), inset 0 0 0 4px rgba(217,164,65,.22), 0 14px 34px rgba(0,0,0,.5); }
}

/* Variații: pastilele pe jad sunt prea stinse pe roșu — le trecem pe fir auriu */
[data-dm-theme="dimsum"] .dm-var { border-color: rgba(217,164,65,.30); background: rgba(217,164,65,.07); }
@media (hover:hover) { [data-dm-theme="dimsum"] .dm-var:hover { border-color: rgba(234,181,78,.7); background: rgba(217,164,65,.13); } }

/* ── SECȚIUNI PE CATEGORII („Doar pozele categoriilor") ── */
[data-dm-theme="dimsum"] .dm-catsec-banner { box-shadow: 0 0 0 1px var(--ds-gold-line), 0 6px 22px rgba(0,0,0,.4); }
[data-dm-theme="dimsum"] .dm-catsec-banner::after { background: linear-gradient(180deg, rgba(42,10,13,.05) 25%, rgba(42,10,13,.88)); }
[data-dm-theme="dimsum"] .dm-catsec-plain { border-bottom: 0; padding-bottom: 16px; background: var(--ds-fret) repeat-x left bottom / 18px 10px; }
[data-dm-theme="dimsum"] .dm-catsec-ic { padding: 5px; border-radius: 8px; background: #fbefdc; }
[data-dm-theme="dimsum"] .dm-catsec-title { font-weight: 900; }

/* ── FEREASTRA DE NUTRIȚIE + COȘUL: filet auriu sus ── */
[data-dm-theme="dimsum"] .dm-modal-box { border-top: 3px solid #d9a441; }
[data-dm-theme="dimsum"] .dm-cart-sheet { border-top: 2px solid #d9a441; }
[data-dm-theme="dimsum"] .dm-cart-q { border-color: var(--ds-jade-lt); color: var(--ds-jade-lt); }
[data-dm-theme="dimsum"] .dm-cart-clear { color: #ffb4a8; border-color: rgba(255,180,168,.4); background: rgba(255,180,168,.08); }
[data-dm-theme="dimsum"] .dm-lang-check { color: var(--ds-jade-lt); }

/* ── SUBSOL: bandă de meandru sus, numele în aur ── */
[data-dm-theme="dimsum"] .dm-footer { position: relative; border-top: 0; }
[data-dm-theme="dimsum"] .dm-footer::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 10px; background: var(--ds-fret) repeat-x center / 18px 10px; opacity: .8; }
[data-dm-theme="dimsum"] .dm-footer-inner { padding-top: 40px; }
[data-dm-theme="dimsum"] .dm-footer-brand { color: #eab54e; font-weight: 900; }
[data-dm-theme="dimsum"] .dm-footer-powered a { color: var(--ds-jade-lt); }

/* ═══════════ SKIN — ROOM SERVICE (hotel 4-5 stele) ═══════════
   Ideea: papetăria unui hotel bun — crem, cerneală bleumarin, filet DUBLU de alamă.
   Temă DESCHISĂ ⇒ nu intră în lista temelor închise. Totul scopat pe data-dm-theme="roomservice".
   Culori suplimentare doar ca variabile locale (--rs-*), fără imagini externe. */
[data-dm-theme="roomservice"] {
    --rs-navy: #16243d;          /* banda de subsol + tenta copertei */
    --rs-brass: #9c7c44;         /* filete pe fundal deschis (≥3:1 pe bg și surface) */
    --rs-brass-lt: #c9a767;      /* alamă pe bleumarin (6.8:1) */
    --rs-cream: #efe6d2;         /* text pe bleumarin (12.5:1) */
    --rs-mist: #b9bfcb;          /* text secundar pe bleumarin (8.4:1) */
    --rs-line: rgba(22,36,61,.12);
}

/* ── Coperta: tentă bleumarin (nu negru) + ramă dublă de alamă, ca un card de hotel ── */
[data-dm-theme="roomservice"] .dm-hero-overlay { background: linear-gradient(180deg, rgba(22,36,61,.42), rgba(22,36,61,.84)); }
[data-dm-theme="roomservice"] .dm-hero::after {
    content: ''; position: absolute; inset: 10px; z-index: 1; pointer-events: none;
    border: 1px solid rgba(201,167,103,.6); outline: 1px solid rgba(201,167,103,.32); outline-offset: 3px;
}
[data-dm-theme="roomservice"] .dm-brand { font-weight: 400; letter-spacing: .02em; }
/* ornament sub nume: filet — romb — filet (doar CSS) */
[data-dm-theme="roomservice"] .dm-brand::after {
    content: '\25C6'; display: block; width: 136px; margin: 12px auto 0;
    font-size: 8px; line-height: 9px; text-align: center; color: var(--rs-brass-lt); text-shadow: none;
    background:
        linear-gradient(var(--rs-brass-lt), var(--rs-brass-lt)) left 50% / calc(50% - 10px) 1px no-repeat,
        linear-gradient(var(--rs-brass-lt), var(--rs-brass-lt)) right 50% / calc(50% - 10px) 1px no-repeat;
}
[data-dm-theme="roomservice"] .dm-tagline { font-family: var(--dm-heading-font); letter-spacing: .01em; }
[data-dm-theme="roomservice"] .dm-chip { border-color: rgba(201,167,103,.55); }

/* ── Căutare: câmp drept, liniștit ── */
[data-dm-theme="roomservice"] .dm-search { border-bottom-color: var(--rs-line); }
[data-dm-theme="roomservice"] .dm-search input { border-radius: 4px; border: 1px solid rgba(22,36,61,.2); }

/* ── Filtre: etichete de registru (majuscule rărite), active = bleumarin cu subliniere de alamă ── */
[data-dm-theme="roomservice"] .dm-filters { border-bottom-color: var(--rs-line); }
[data-dm-theme="roomservice"] .dm-filter {
    border-radius: 3px; border: 1px solid rgba(22,36,61,.18);
    text-transform: uppercase; letter-spacing: .09em; font-size: 11.5px; font-weight: 600;
}
[data-dm-theme="roomservice"] .dm-filter.is-active {
    color: #fff; border-color: var(--dm-accent);
    box-shadow: inset 0 -2px 0 var(--rs-brass-lt), 0 4px 12px rgba(22,36,61,.18);
}

/* ── Cardul: hârtie cu filet DUBLU de alamă sus (border-top double, deci poza nu-l acoperă) ── */
[data-dm-theme="roomservice"] .dm-card {
    border: 1px solid var(--rs-line); border-top: 3px double var(--rs-brass);
    box-shadow: 0 1px 2px rgba(22,36,61,.05), 0 8px 24px rgba(22,36,61,.06);
}
[data-dm-theme="roomservice"] .dm-card-title { font-weight: 400; letter-spacing: .005em; }
[data-dm-theme="roomservice"] .dm-card-weight { text-transform: uppercase; letter-spacing: .08em; font-size: 10.5px; }
[data-dm-theme="roomservice"] .dm-card-foot { border-top: 1px solid var(--rs-line); padding-top: 9px; }
[data-dm-theme="roomservice"] .dm-card-price { font-weight: 700; font-variant-numeric: lining-nums tabular-nums; }
[data-dm-theme="roomservice"] .dm-card-nutri { color: var(--dm-accent); }
[data-dm-theme="roomservice"] .dm-add { box-shadow: inset 0 0 0 1px rgba(201,167,103,.65), 0 3px 10px rgba(22,36,61,.2); font-weight: 400; }
[data-dm-theme="roomservice"] .dm-add.added { box-shadow: none; }
@media (hover: hover) and (min-width: 768px) {
    [data-dm-theme="roomservice"] .dm-card:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(22,36,61,.06), 0 14px 32px rgba(22,36,61,.1); }
    [data-dm-theme="roomservice"] .dm-card:hover .dm-card-media img { transform: scale(1.03); }
}

/* ── Variații: pastile drepte ── */
[data-dm-theme="roomservice"] .dm-var { border-radius: 3px; }
[data-dm-theme="roomservice"] .dm-var-price { font-weight: 700; }

/* ── „Doar pozele categoriilor": banner cu tentă bleumarin, antet cu filet dublu ── */
[data-dm-theme="roomservice"] .dm-catsec-banner::after { background: linear-gradient(180deg, rgba(22,36,61,.05) 30%, rgba(22,36,61,.8)); }
[data-dm-theme="roomservice"] .dm-catsec-banner { box-shadow: 0 6px 20px rgba(22,36,61,.14); }
[data-dm-theme="roomservice"] .dm-catsec-plain { border-bottom: 3px double var(--rs-brass); }
[data-dm-theme="roomservice"] .dm-catsec-title { font-weight: 400; letter-spacing: .01em; }

/* ── Subsol: bandă bleumarin, text crem, ornament de alamă ── */
[data-dm-theme="roomservice"] .dm-footer { background: var(--rs-navy); border-top: 3px double var(--rs-brass-lt); }
[data-dm-theme="roomservice"] .dm-footer-inner::before {
    content: '\25C6'; display: block; width: 136px; margin: 0 auto 14px;
    font-size: 8px; line-height: 9px; text-align: center; color: var(--rs-brass-lt);
    background:
        linear-gradient(var(--rs-brass-lt), var(--rs-brass-lt)) left 50% / calc(50% - 10px) 1px no-repeat,
        linear-gradient(var(--rs-brass-lt), var(--rs-brass-lt)) right 50% / calc(50% - 10px) 1px no-repeat;
}
[data-dm-theme="roomservice"] .dm-footer-brand { color: var(--rs-cream); font-weight: 400; letter-spacing: .02em; }
[data-dm-theme="roomservice"] .dm-footer-desc,
[data-dm-theme="roomservice"] .dm-footer-company,
[data-dm-theme="roomservice"] .dm-footer-powered { color: var(--rs-mist); }
[data-dm-theme="roomservice"] .dm-footer-powered a { color: var(--rs-brass-lt); }
[data-dm-theme="roomservice"] .dm-footer-social a { background: transparent; color: var(--rs-brass-lt); border: 1px solid rgba(201,167,103,.6); }
@media (hover: hover) { [data-dm-theme="roomservice"] .dm-footer-social a:hover { background: var(--rs-brass-lt); color: var(--rs-navy); filter: none; } }

/* ── „Nota mea" și fereastra de nutriție ── */
[data-dm-theme="roomservice"] .dm-cart-fab { box-shadow: inset 0 0 0 1px rgba(201,167,103,.6), 0 8px 26px rgba(22,36,61,.32); }
[data-dm-theme="roomservice"] .dm-cart-sheet { border-radius: 8px 8px 0 0; border-top: 3px double var(--rs-brass); }
[data-dm-theme="roomservice"] .dm-cart-head h3,
[data-dm-theme="roomservice"] .dm-modal-box h4 { font-weight: 400; }
[data-dm-theme="roomservice"] .dm-modal-box { border-top: 3px double var(--rs-brass); }
[data-dm-theme="roomservice"] .dm-cart-clear { border-radius: 4px; }
