/* PROMPT #071 — global public template tokens + skins */
.public-themed .public-card-shell,
.public-themed .card-hero,
.public-themed .info-card {
  --local-primary: var(--pub-primary, var(--primary));
  --local-accent: var(--pub-accent, var(--accent));
}

body.public-body.tpl-classic,
body.public-body.tpl-modern,
body.public-body.tpl-minimal,
body.public-body.tpl-dark,
body.public-body.tpl-elegant,
body.public-body.tpl-bistro,
body.public-body.tpl-luxury,
body.public-body.tpl-fresh,
body.public-body.tpl-urban,
body.public-body.tpl-warm {
  background: var(--pub-bg, var(--bg));
  color: var(--pub-text, var(--text));
}

.public-themed .public-card-shell {
  max-width: 40rem;
  margin: 0 auto;
}

.public-themed .card-hero,
.public-themed .info-card,
.menu-public .card-hero,
.menu-public .info-card,
.menu-public .menu-product-card {
  background: var(--pub-surface, var(--surface));
  border: 1px solid var(--pub-border, var(--border));
  border-radius: var(--pub-radius, 0.75rem);
  color: var(--pub-text, var(--text));
}

.public-themed .btn-primary,
.public-themed .btn-call,
.menu-public .btn-primary {
  background: var(--pub-primary, var(--primary));
  color: var(--pub-on-primary, #fff);
  border-radius: var(--pub-radius, 0.75rem);
}

.public-themed .btn-call-emergency {
  background: var(--pub-accent, var(--danger));
  color: #fff;
  border-radius: var(--pub-radius, 0.75rem);
}

.public-themed .muted,
.menu-public .muted {
  color: var(--pub-muted, var(--muted));
}

/* Preset personality (#071 + #075 QR Menu) */
body.tpl-classic .card-hero h1 { font-family: Georgia, "Times New Roman", serif; letter-spacing: 0.02em; }
body.tpl-modern .card-hero { box-shadow: 0 10px 30px rgba(28, 35, 64, 0.08); }
body.tpl-minimal .info-card { box-shadow: none; border-width: 1px; }
body.tpl-minimal .card-hero { border: none; background: transparent; padding-left: 0; padding-right: 0; }
body.tpl-dark .topbar-public { background: #0b0e14; border-bottom-color: var(--pub-border); }
body.tpl-elegant .card-hero h1 { font-family: "Palatino Linotype", Palatino, Georgia, serif; font-weight: 600; }
body.tpl-elegant .info-card { border-color: #e4d5c3; }

/* QR Menu structural skins live in menu-public.css (#078). Keep only shared hero personality here. */
body.tpl-bistro .card-hero h1 { font-family: Georgia, "Times New Roman", serif; font-size: 1.55rem; letter-spacing: 0.01em; }
body.tpl-luxury .card-hero { border: 1px solid color-mix(in srgb, var(--pub-accent) 55%, var(--pub-border)); box-shadow: 0 12px 40px rgba(0,0,0,0.35); }
body.tpl-luxury .card-hero h1 { font-family: "Palatino Linotype", Palatino, Georgia, serif; letter-spacing: 0.08em; text-transform: uppercase; font-size: 1.15rem; }
body.tpl-fresh .card-hero { background: linear-gradient(180deg, color-mix(in srgb, var(--pub-primary) 12%, var(--pub-surface)), var(--pub-surface)); }
body.tpl-urban .card-hero h1 { font-weight: 800; letter-spacing: -0.02em; text-transform: uppercase; }
body.tpl-urban .btn-primary { font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; }
body.tpl-warm .card-hero,
body.tpl-warm .info-card { border-radius: 1.15rem; box-shadow: 0 6px 18px rgba(139, 69, 19, 0.08); }

/* Footer */
.public-footer {
  margin-top: 2.5rem;
  padding: 1.5rem 1rem 2rem;
  border-top: 1px solid var(--pub-border, var(--border));
  background: color-mix(in srgb, var(--pub-surface, #fff) 92%, var(--pub-bg, #f3f5fb));
  color: var(--pub-muted, var(--muted));
  font-size: 0.85rem;
}
.public-footer-links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  justify-content: center;
}
.public-footer-links a {
  color: var(--pub-text, var(--text));
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.public-footer-links a:hover { border-bottom-color: var(--pub-primary, var(--primary)); }
.public-footer-meta {
  text-align: center;
  margin: 1rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: center;
}

/* Owner template picker */
.template-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
  gap: 0.75rem;
}
.template-card {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  border: 2px solid var(--border);
  border-radius: 0.75rem;
  padding: 0.5rem;
  cursor: pointer;
  background: var(--surface);
}
.template-card input { position: absolute; opacity: 0; pointer-events: none; }
.template-card.is-selected,
.template-card:has(input:checked) {
  border-color: var(--primary);
  box-shadow: 0 0 0 2px var(--primary-soft);
}
.template-card-preview {
  display: block;
  height: 4.5rem;
  border-radius: 0.5rem;
  background: linear-gradient(135deg, #ddd, #fff);
}
.tpl-thumb-classic .template-card-preview { background: linear-gradient(135deg, #3d5a80, #f7f3ec); }
.tpl-thumb-modern .template-card-preview { background: linear-gradient(135deg, #4a58d6, #0f9d8f); }
.tpl-thumb-minimal .template-card-preview { background: linear-gradient(135deg, #222, #fafafa); }
.tpl-thumb-dark .template-card-preview { background: linear-gradient(135deg, #7c9cff, #0f1219); }
.tpl-thumb-elegant .template-card-preview { background: linear-gradient(135deg, #5c4b3a, #c4a35a); }
.tpl-thumb-bistro .template-card-preview { background: linear-gradient(135deg, #1f3a2e, #f3eee4); }
.tpl-thumb-luxury .template-card-preview { background: linear-gradient(135deg, #d4af37, #0e0b12); }
.tpl-thumb-fresh .template-card-preview { background: linear-gradient(135deg, #2f6f4e, #f4fbf6); }
.tpl-thumb-urban .template-card-preview { background: linear-gradient(135deg, #111827, #f59e0b); }
.tpl-thumb-warm .template-card-preview { background: linear-gradient(135deg, #8b4513, #fbf3ea); }
.template-card-name { font-size: 0.85rem; font-weight: 600; text-align: center; }
.template-card-desc { font-size: 0.72rem; line-height: 1.3; text-align: center; display: block; }

/* #075 QR Menu mini preview + denser grid */
.template-grid-menu {
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: 0.85rem;
}
.template-card-menu { min-height: 10.5rem; }
.template-mini {
  display: grid !important;
  grid-template-rows: 1.1rem auto 1fr 1fr auto;
  gap: 0.2rem;
  padding: 0.35rem;
  height: 5.6rem !important;
  background: var(--pub-bg, #f3f5fb);
}
.template-mini .tm-hero { display: block; height: 1.1rem; border-radius: 0.25rem; background: var(--thumb-hero, #4a58d6); opacity: 0.9; }
.template-mini .tm-chips { display: flex; gap: 0.15rem; }
.template-mini .tm-chips i { display: block; width: 1.1rem; height: 0.35rem; border-radius: 999px; background: rgba(0,0,0,0.12); }
.template-mini .tm-row { display: grid; grid-template-columns: 0.7rem 1fr 0.55rem; gap: 0.2rem; align-items: center; }
.template-mini .tm-row i { width: 0.7rem; height: 0.7rem; border-radius: 0.15rem; background: rgba(0,0,0,0.1); }
.template-mini .tm-row b { height: 0.28rem; border-radius: 0.1rem; background: rgba(0,0,0,0.18); }
.template-mini .tm-row em { height: 0.28rem; border-radius: 0.1rem; background: rgba(0,0,0,0.28); }
.template-mini .tm-cta { height: 0.45rem; width: 40%; justify-self: end; border-radius: 0.2rem; background: var(--thumb-hero, #4a58d6); }
.tpl-thumb-classic { --thumb-hero: #3d5a80; }
.tpl-thumb-modern { --thumb-hero: #4a58d6; }
.tpl-thumb-minimal { --thumb-hero: #222; }
.tpl-thumb-dark { --thumb-hero: #7c9cff; }
.tpl-thumb-elegant { --thumb-hero: #c4a35a; }
.tpl-thumb-bistro { --thumb-hero: #c45c26; }
.tpl-thumb-luxury { --thumb-hero: #d4af37; }
.tpl-thumb-fresh { --thumb-hero: #2f6f4e; }
.tpl-thumb-urban { --thumb-hero: #f59e0b; }
.tpl-thumb-warm { --thumb-hero: #e8a87c; }
.template-test-row { align-items: center; gap: 0.75rem; flex-wrap: wrap; margin-top: 0.75rem; }
@media (min-width: 768px) {
  .template-grid-menu { grid-template-columns: repeat(5, 1fr); }
}
@media (max-width: 420px) {
  .template-grid-menu { grid-template-columns: repeat(2, 1fr); }
}

/* PROMPT #076 — QR Menu template combo + description panel */
.menu-template-ux {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 1.25rem;
  align-items: start;
  margin-top: 0.5rem;
}
.menu-template-ux-controls {
  display: grid;
  gap: 0.55rem;
}
.menu-template-select {
  width: 100%;
  min-height: 2.75rem;
  font-size: 1rem;
}
.menu-template-ux-panel {
  border: 1px solid var(--border, #ddd);
  border-radius: 0.85rem;
  padding: 1rem;
  background: color-mix(in srgb, var(--surface, #fff) 96%, #eef2ff);
}
.menu-template-mini {
  display: grid;
  grid-template-rows: 1.2rem auto 1fr 1fr auto;
  gap: 0.25rem;
  padding: 0.45rem;
  height: 6.2rem;
  border-radius: 0.55rem;
  margin-bottom: 0.75rem;
  background: var(--pub-bg, #f3f5fb);
}
.menu-template-mini .tm-hero { display: block; height: 1.2rem; border-radius: 0.25rem; background: var(--thumb-hero, #4a58d6); }
.menu-template-mini .tm-chips { display: flex; gap: 0.15rem; }
.menu-template-mini .tm-chips i { display: block; width: 1.2rem; height: 0.35rem; border-radius: 999px; background: rgba(0,0,0,0.12); }
.menu-template-mini .tm-row { display: grid; grid-template-columns: 0.75rem 1fr 0.55rem; gap: 0.2rem; align-items: center; }
.menu-template-mini .tm-row i { width: 0.75rem; height: 0.75rem; border-radius: 0.15rem; background: rgba(0,0,0,0.1); }
.menu-template-mini .tm-row b { height: 0.28rem; border-radius: 0.1rem; background: rgba(0,0,0,0.18); }
.menu-template-mini .tm-row em { height: 0.28rem; border-radius: 0.1rem; background: rgba(0,0,0,0.28); }
.menu-template-mini .tm-cta { height: 0.5rem; width: 42%; justify-self: end; border-radius: 0.2rem; background: var(--thumb-hero, #4a58d6); }
.menu-template-panel-name { margin: 0 0 0.35rem; font-size: 1.1rem; }
.menu-template-panel-desc { margin: 0 0 0.75rem; }
.menu-template-meta { margin: 0; display: grid; gap: 0.25rem 0.75rem; grid-template-columns: auto 1fr; font-size: 0.85rem; }
.menu-template-meta dt { font-weight: 600; color: var(--muted, #667); }
.menu-template-meta dd { margin: 0; }
.menu-image-rec-panel {
  border: 1px dashed var(--border, #ccc);
  border-radius: 0.65rem;
  padding: 0.75rem 0.85rem;
  margin: 0.5rem 0 0.75rem;
  background: #fafbfc;
  font-size: 0.88rem;
}
@media (max-width: 820px) {
  .menu-template-ux { grid-template-columns: 1fr; }
}

/* Legal article */
.legal-page {
  max-width: 46rem;
  margin: 1.5rem auto 3rem;
  padding: 0 1rem;
}
.legal-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 1rem;
  padding: 1.5rem 1.25rem 2rem;
  box-shadow: 0 8px 28px rgba(28, 35, 64, 0.06);
}
.legal-card h1 { margin: 0 0 0.35rem; font-size: 1.55rem; }
.legal-updated { color: var(--muted); font-size: 0.85rem; margin-bottom: 1.25rem; }
.legal-card h2 { font-size: 1.1rem; margin: 1.4rem 0 0.5rem; }
.legal-card p, .legal-card li { line-height: 1.65; color: #2a3148; }
.legal-brand {
  text-align: center;
  margin-bottom: 1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
@media (min-width: 768px) {
  .legal-card { padding: 2rem 2.25rem 2.5rem; }
  .template-grid { grid-template-columns: repeat(5, 1fr); }
}
