/* public/css/menu.css — layout pubblici dei menù */
* { box-sizing: border-box; }
body { margin: 0; --accent: #b5462f; }
.m-wrap { max-width: 760px; margin: 0 auto; padding: clamp(2rem, 6vw, 4rem) clamp(1.1rem, 5vw, 2rem) 4rem; }
.m-logo { width: 88px; height: 88px; object-fit: cover; border-radius: 50%; margin: 0 auto 1rem; display: block; }
.m-price { white-space: nowrap; }
.m-tags { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .4rem; }
.m-tags span { font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; padding: .12rem .5rem; border-radius: 999px; }
.m-item-desc { margin: .25rem 0 0; }
.m-foot { margin-top: 3rem; text-align: center; opacity: .8; font-size: .9rem; line-height: 1.7; }

/* =================== CLASSIC =================== */
.layout-classic {
  background: #fbf7ee; color: #2b2620;
  font-family: 'EB Garamond', Georgia, serif; font-size: 1.08rem;
}
.layout-classic .m-head { text-align: center; margin-bottom: 2.5rem; }
.layout-classic h1 { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: clamp(2.4rem, 8vw, 3.4rem); margin: 0; color: var(--accent); letter-spacing: .01em; }
.layout-classic .m-desc { font-style: italic; color: #6b5f4f; margin: .4rem 0 0; }
.layout-classic .m-rule { color: var(--accent); font-size: 1.4rem; margin-top: 1rem; }
.layout-classic .m-cat { margin-bottom: 2.4rem; }
.layout-classic .m-cat h2 { font-family: 'Cormorant Garamond', serif; font-size: 1.7rem; text-align: center; text-transform: uppercase; letter-spacing: .14em; font-weight: 600; margin: 0 0 1.2rem; padding-bottom: .4rem; border-bottom: 1px solid #ddceb5; }
.layout-classic .m-item { margin-bottom: 1.1rem; }
.layout-classic .m-item-line { display: flex; align-items: baseline; gap: .5rem; }
.layout-classic .m-name { font-weight: 500; }
.layout-classic .m-dots { flex: 1; border-bottom: 2px dotted #c9b89a; transform: translateY(-4px); }
.layout-classic .m-price { font-weight: 600; color: var(--accent); }
.layout-classic .m-item-desc { color: #7a6e5c; font-style: italic; font-size: .95rem; }
.layout-classic .m-tags span { background: #efe5d0; color: #6b5f4f; }
.layout-classic a { color: var(--accent); }

/* =================== GRID =================== */
.layout-grid {
  background: #fafafa; color: #1b1b1b;
  font-family: 'Albert Sans', system-ui, sans-serif;
}
.layout-grid .m-wrap { max-width: 1040px; }
.layout-grid .m-head { text-align: center; margin-bottom: 2.5rem; }
.layout-grid h1 { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: clamp(2.2rem, 7vw, 3.6rem); margin: 0; letter-spacing: -.02em; }
.layout-grid .m-desc { color: #6a6a6a; margin: .4rem 0 0; }
.layout-grid .m-cat { margin-bottom: 2.8rem; }
.layout-grid .m-cat h2 { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 1.5rem; margin: 0 0 1.1rem; display: flex; align-items: center; gap: .7rem; }
.layout-grid .m-cat h2::after { content: ""; flex: 1; height: 3px; background: var(--accent); border-radius: 2px; }
.layout-grid .m-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; }
.layout-grid .m-card { background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 1px 2px rgba(0,0,0,.05), 0 14px 28px -20px rgba(0,0,0,.4); display: flex; flex-direction: column; }
.layout-grid .m-card-img { height: 150px; background-size: cover; background-position: center; }
.layout-grid .m-card-body { padding: 1rem 1.1rem 1.2rem; }
.layout-grid .m-card-top { display: flex; justify-content: space-between; gap: .6rem; align-items: baseline; }
.layout-grid .m-card h3 { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; margin: 0; font-size: 1.12rem; }
.layout-grid .m-price { font-weight: 700; color: var(--accent); }
.layout-grid .m-item-desc { color: #6a6a6a; font-size: .9rem; }
.layout-grid .m-tags span { background: color-mix(in srgb, var(--accent) 14%, #fff); color: var(--accent); }
.layout-grid a { color: var(--accent); }

/* =================== ELEGANT =================== */
.layout-elegant {
  background: #14110e; color: #ece4d6;
  font-family: 'Jost', sans-serif; font-weight: 300;
  background-image: radial-gradient(900px 500px at 50% -10%, rgba(255,255,255,.05), transparent 70%);
}
.layout-elegant .m-head { text-align: center; margin-bottom: 3.5rem; }
.layout-elegant .m-logo { filter: drop-shadow(0 6px 14px rgba(0,0,0,.5)); }
.layout-elegant .m-kicker { text-transform: uppercase; letter-spacing: .5em; font-size: .72rem; color: var(--accent); margin: 0 0 .8rem; padding-left: .5em; }
.layout-elegant h1 { font-family: 'Fraunces', serif; font-weight: 400; font-size: clamp(2.4rem, 8vw, 3.8rem); margin: 0; letter-spacing: .02em; }
.layout-elegant .m-desc { color: #a99f8e; font-style: italic; font-family: 'Fraunces', serif; margin: .6rem 0 0; }
.layout-elegant .m-cat { margin-bottom: 3rem; }
.layout-elegant .m-cat h2 { text-align: center; margin: 0 0 1.6rem; }
.layout-elegant .m-cat h2 span { font-family: 'Fraunces', serif; font-weight: 400; font-size: 1.4rem; text-transform: uppercase; letter-spacing: .22em; position: relative; padding: 0 1.2rem; }
.layout-elegant .m-cat h2 span::before, .layout-elegant .m-cat h2 span::after { content: ""; position: absolute; top: 50%; width: 32px; height: 1px; background: var(--accent); }
.layout-elegant .m-cat h2 span::before { right: 100%; }
.layout-elegant .m-cat h2 span::after { left: 100%; }
.layout-elegant .m-item { margin-bottom: 1.7rem; text-align: center; }
.layout-elegant .m-item-line { display: flex; justify-content: center; align-items: baseline; gap: .8rem; }
.layout-elegant .m-name { font-size: 1.25rem; letter-spacing: .02em; }
.layout-elegant .m-price { color: var(--accent); font-weight: 400; }
.layout-elegant .m-item-desc { color: #9c9282; max-width: 46ch; margin: .35rem auto 0; font-size: .95rem; }
.layout-elegant .m-tags { justify-content: center; }
.layout-elegant .m-tags span { border: 1px solid rgba(236,228,214,.25); color: #c9bfae; }
.layout-elegant a { color: var(--accent); }

/* =================== COMPACT =================== */
.layout-compact {
  background: #fff; color: #1c1c1c;
  font-family: 'Albert Sans', system-ui, sans-serif; font-size: .98rem;
}
.layout-compact .m-wrap { max-width: 620px; padding-top: 2rem; }
.layout-compact .m-head { text-align: center; margin-bottom: 1rem; }
.layout-compact .m-logo { width: 60px; height: 60px; }
.layout-compact h1 { font-size: 1.7rem; margin: 0; font-weight: 700; }
.layout-compact .m-desc { color: #666; font-size: .9rem; margin: .2rem 0 0; }
.layout-compact .m-jump { position: sticky; top: 0; background: #fff; display: flex; gap: .4rem; overflow-x: auto; padding: .7rem 0; border-bottom: 1px solid #eee; margin-bottom: 1rem; -webkit-overflow-scrolling: touch; z-index: 5; }
.layout-compact .m-jump a { flex: 0 0 auto; font-size: .8rem; font-weight: 600; text-decoration: none; color: var(--accent); border: 1px solid color-mix(in srgb, var(--accent) 35%, #fff); padding: .25rem .7rem; border-radius: 999px; }
.layout-compact .m-cat { scroll-margin-top: 56px; margin-bottom: 1.6rem; }
.layout-compact .m-cat h2 { font-size: 1.05rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--accent); margin: 0 0 .5rem; }
.layout-compact .m-item { padding: .55rem 0; border-bottom: 1px solid #f0f0f0; }
.layout-compact .m-item-line { display: flex; justify-content: space-between; gap: .6rem; }
.layout-compact .m-name { font-weight: 600; }
.layout-compact .m-price { font-weight: 700; }
.layout-compact .m-item-desc { color: #777; font-size: .85rem; }
.layout-compact .m-tags span { background: #f1f1f1; color: #555; }
.layout-compact a { color: var(--accent); }

/* ===== Talloncino "Powered by" ===== */
.m-powered{
  margin-top:2.2rem;
  padding-top:1rem;
  text-align:center;
  font-size:.72rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  opacity:.55;
}
.m-powered strong{ font-weight:600; }
.m-powered a{ color:inherit; text-decoration:none; }
.m-powered a:hover{ text-decoration:underline; }

/* =================== BISTRO =================== */
.layout-bistro{ background:#f7f1e5; color:#2c241a; font-family:'Lora',Georgia,serif; }
.layout-bistro .m-head{ text-align:center; margin-bottom:2.2rem; }
.layout-bistro h1{ font-family:'Playfair Display',serif; font-weight:700; font-size:clamp(2.3rem,7vw,3.2rem); margin:0; color:var(--accent); }
.layout-bistro .m-desc{ font-style:italic; color:#6e5f49; margin:.4rem 0 0; }
.layout-bistro .m-rule{ color:var(--accent); letter-spacing:.4em; margin-top:.8rem; font-size:.8rem; }
.layout-bistro .m-cols{ column-gap:2.6rem; }
@media(min-width:760px){ .layout-bistro .m-cols{ column-count:2; } }
.layout-bistro .m-cat{ break-inside:avoid; margin-bottom:2rem; }
.layout-bistro .m-cat h2{ text-align:center; margin:0 0 1.1rem; }
.layout-bistro .m-cat h2 span{ font-family:'Playfair Display',serif; font-weight:600; font-size:1.35rem; text-transform:uppercase; letter-spacing:.1em; }
.layout-bistro .m-cat h2 span::before{ content:"— "; color:var(--accent); }
.layout-bistro .m-cat h2 span::after{ content:" —"; color:var(--accent); }
.layout-bistro .m-item{ margin-bottom:.9rem; }
.layout-bistro .m-item-line{ display:flex; align-items:baseline; gap:.4rem; }
.layout-bistro .m-name{ font-weight:500; }
.layout-bistro .m-dots{ flex:1; border-bottom:1px dotted #b9a888; transform:translateY(-3px); }
.layout-bistro .m-price{ font-weight:600; color:var(--accent); }
.layout-bistro .m-item-desc{ color:#7c6d55; font-size:.92rem; }
.layout-bistro .m-tags span{ background:#ece0c8; color:#6e5f49; }
.layout-bistro a{ color:var(--accent); }

/* =================== NOIR =================== */
.layout-noir{ background:#0e0e10; color:#e9e7e2; font-family:'Manrope',system-ui,sans-serif;
  background-image:radial-gradient(800px 400px at 100% -10%, color-mix(in srgb,var(--accent) 18%, transparent), transparent 70%); }
.layout-noir .m-head{ text-align:center; margin-bottom:2.6rem; }
.layout-noir h1{ font-weight:800; font-size:clamp(2.2rem,7vw,3.4rem); margin:0; letter-spacing:-.02em; }
.layout-noir .m-desc{ color:#9b988f; margin:.5rem 0 0; }
.layout-noir .m-cat{ margin-bottom:2.4rem; }
.layout-noir .m-cat h2{ font-weight:700; font-size:.95rem; text-transform:uppercase; letter-spacing:.2em; color:var(--accent); margin:0 0 1rem; padding-bottom:.5rem; border-bottom:1px solid #26262a; }
.layout-noir .m-item{ padding:.7rem 0 .7rem .9rem; border-left:2px solid #26262a; margin-bottom:.4rem; transition:border-color .2s; }
.layout-noir .m-item:hover{ border-left-color:var(--accent); }
.layout-noir .m-item-line{ display:flex; align-items:baseline; gap:.5rem; }
.layout-noir .m-name{ font-weight:600; }
.layout-noir .m-dots{ flex:1; border-bottom:1px dotted #38383d; transform:translateY(-3px); }
.layout-noir .m-price{ font-weight:700; color:var(--accent); }
.layout-noir .m-item-desc{ color:#9b988f; font-size:.9rem; }
.layout-noir .m-tags span{ border:1px solid #34343a; color:#b6b3ab; }
.layout-noir a{ color:var(--accent); }

/* =================== MODERN =================== */
.layout-modern{ background:#fff; color:#111; font-family:'Inter',system-ui,sans-serif; }
.layout-modern .m-head{ text-align:left; margin-bottom:3rem; padding-bottom:1.4rem; border-bottom:1px solid #ececec; }
.layout-modern .m-logo{ margin:0 0 1rem; }
.layout-modern h1{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(2.2rem,7vw,3.2rem); margin:0; letter-spacing:-.03em; }
.layout-modern .m-desc{ color:#888; margin:.5rem 0 0; }
.layout-modern .m-cat{ margin-bottom:2.8rem; }
.layout-modern .m-cat h2{ font-family:'Space Grotesk',sans-serif; font-size:.8rem; font-weight:500; text-transform:uppercase; letter-spacing:.18em; color:#999; margin:0 0 1.1rem; }
.layout-modern .m-list{ display:grid; gap:0; }
@media(min-width:720px){ .layout-modern .m-list{ grid-template-columns:1fr 1fr; column-gap:2.6rem; } }
.layout-modern .m-item{ padding:.85rem 0; border-top:1px solid #f0f0f0; }
.layout-modern .m-item-line{ display:flex; justify-content:space-between; gap:.8rem; align-items:baseline; }
.layout-modern .m-name{ font-weight:600; }
.layout-modern .m-price{ font-weight:600; color:var(--accent); }
.layout-modern .m-item-desc{ color:#888; font-size:.9rem; }
.layout-modern .m-tags span{ background:#f4f4f4; color:#666; }
.layout-modern a{ color:var(--accent); }

/* =================== MAGAZINE =================== */
.layout-magazine{ background:#fbfaf8; color:#1a1a1a; font-family:'Source Sans 3',system-ui,sans-serif; }
.layout-magazine .m-wrap{ max-width:900px; counter-reset:magcat; }
.layout-magazine .m-head{ text-align:center; margin-bottom:3rem; border-bottom:3px solid #1a1a1a; padding-bottom:1.4rem; }
.layout-magazine h1{ font-family:'Playfair Display',serif; font-weight:900; font-size:clamp(2.8rem,10vw,5rem); line-height:1; margin:0; }
.layout-magazine .m-desc{ color:#777; font-style:italic; margin:.6rem 0 0; }
.layout-magazine .m-cat{ margin-bottom:2.6rem; counter-increment:magcat; }
.layout-magazine .m-cat h2{ font-family:'Playfair Display',serif; font-weight:700; font-size:1.8rem; margin:0 0 1.2rem; padding-bottom:.3rem; border-bottom:1px solid #ddd; }
.layout-magazine .m-cat h2::before{ content:counter(magcat,decimal-leading-zero) "  "; color:var(--accent); font-size:1rem; vertical-align:.35em; }
.layout-magazine .m-cols{ column-gap:2.6rem; }
@media(min-width:720px){ .layout-magazine .m-cols{ column-count:2; } }
.layout-magazine .m-item{ break-inside:avoid; margin-bottom:1rem; }
.layout-magazine .m-item-line{ display:flex; align-items:baseline; gap:.4rem; }
.layout-magazine .m-name{ font-weight:600; }
.layout-magazine .m-dots{ flex:1; border-bottom:1px dotted #ccc; transform:translateY(-3px); }
.layout-magazine .m-price{ font-weight:700; color:var(--accent); }
.layout-magazine .m-item-desc{ color:#777; font-size:.92rem; }
.layout-magazine .m-tags span{ background:#efe9df; color:#6a6256; }
.layout-magazine a{ color:var(--accent); }

/* =================== LAVAGNA (board) =================== */
.layout-board{ background:#20302b; color:#f3f0e7; font-family:'Kalam',cursive;
  background-image:radial-gradient(1200px 600px at 50% 0,rgba(255,255,255,.06),transparent 70%); }
.layout-board .m-head{ text-align:center; margin-bottom:2.4rem; }
.layout-board .m-logo{ filter:drop-shadow(0 4px 10px rgba(0,0,0,.4)); }
.layout-board h1{ font-family:'Caveat',cursive; font-weight:700; font-size:clamp(3rem,10vw,4.6rem); margin:0; color:#fff; line-height:1; }
.layout-board .m-desc{ color:#cfd6c9; margin:.3rem 0 0; }
.layout-board .m-cat{ margin-bottom:2rem; }
.layout-board .m-cat h2{ font-family:'Caveat',cursive; font-weight:700; font-size:2rem; color:var(--accent); margin:0 0 .6rem; border-bottom:2px dashed rgba(243,240,231,.35); padding-bottom:.2rem; }
.layout-board .m-item{ margin-bottom:.7rem; }
.layout-board .m-item-line{ display:flex; align-items:baseline; gap:.5rem; }
.layout-board .m-name{ font-weight:700; }
.layout-board .m-dots{ flex:1; border-bottom:2px dotted rgba(243,240,231,.4); transform:translateY(-4px); }
.layout-board .m-price{ font-weight:700; color:var(--accent); }
.layout-board .m-item-desc{ color:#c4cabd; }
.layout-board .m-tags span{ border:1px solid rgba(243,240,231,.3); color:#dfe3d6; }
.layout-board a{ color:var(--accent); }

/* =================== FOTO (photo) =================== */
.layout-photo{ background:#f6f6f7; color:#16181c; font-family:'Inter',system-ui,sans-serif; }
.layout-photo .m-wrap{ max-width:680px; }
.layout-photo .m-head{ text-align:center; margin-bottom:1.8rem; }
.layout-photo h1{ font-weight:700; font-size:clamp(1.9rem,6vw,2.6rem); margin:0; letter-spacing:-.02em; }
.layout-photo .m-desc{ color:#787c84; margin:.3rem 0 0; }
.layout-photo .m-cat{ margin-bottom:1.8rem; }
.layout-photo .m-cat h2{ font-weight:700; font-size:1.25rem; margin:0 0 .8rem; }
.layout-photo .m-row{ display:flex; gap:1rem; align-items:flex-start; background:#fff; border-radius:14px; padding:.85rem; margin-bottom:.7rem; box-shadow:0 1px 2px rgba(0,0,0,.04),0 12px 24px -20px rgba(0,0,0,.4); }
.layout-photo .m-row-body{ flex:1; min-width:0; }
.layout-photo .m-item-line{ display:flex; justify-content:space-between; gap:.6rem; align-items:baseline; }
.layout-photo .m-name{ font-weight:600; }
.layout-photo .m-price{ font-weight:700; color:var(--accent); white-space:nowrap; }
.layout-photo .m-item-desc{ color:#787c84; font-size:.9rem; }
.layout-photo .m-thumb{ flex:0 0 auto; width:84px; height:84px; border-radius:10px; background-size:cover; background-position:center; }
.layout-photo .m-tags span{ background:#eef0f2; color:#5b6068; }
.layout-photo a{ color:var(--accent); }

/* =================== KRAFT (rustico) =================== */
.layout-kraft{ background:#d8c5a0; color:#3a2f22; font-family:'Bitter',Georgia,serif;
  background-image:radial-gradient(1100px 500px at 50% -10%, rgba(0,0,0,.04), transparent 70%); }
.layout-kraft .m-head{ text-align:center; margin-bottom:2.2rem; }
.layout-kraft h1{ font-weight:700; font-size:clamp(2.2rem,7vw,3.2rem); margin:0; }
.layout-kraft .m-desc{ font-style:italic; color:#6b5b44; margin:.4rem 0 0; }
.layout-kraft .m-rule{ color:var(--accent); letter-spacing:.4em; margin-top:.7rem; }
.layout-kraft .m-cat{ margin-bottom:2rem; }
.layout-kraft .m-cat h2{ font-weight:700; font-size:1.4rem; text-transform:uppercase; letter-spacing:.08em; text-align:center; margin:0 0 1rem; border-bottom:2px solid #b7a079; padding-bottom:.3rem; }
.layout-kraft .m-item{ margin-bottom:.9rem; }
.layout-kraft .m-item-line{ display:flex; align-items:baseline; gap:.4rem; }
.layout-kraft .m-name{ font-weight:600; }
.layout-kraft .m-dots{ flex:1; border-bottom:2px dotted #a8916b; transform:translateY(-4px); }
.layout-kraft .m-price{ font-weight:700; color:var(--accent); }
.layout-kraft .m-item-desc{ color:#6b5b44; font-size:.92rem; }
.layout-kraft .m-tags span{ background:#c8b48d; color:#4a3c28; }
.layout-kraft a{ color:var(--accent); }

/* =================== LUXE (oro su nero) =================== */
.layout-luxe{ background:#0c0b0a; color:#e9e1cf; font-family:'EB Garamond',Georgia,serif;
  background-image:radial-gradient(700px 400px at 50% -10%, rgba(212,175,55,.08), transparent 70%); }
.layout-luxe .m-head{ text-align:center; margin-bottom:3rem; }
.layout-luxe h1{ font-family:'Cormorant Garamond',serif; font-weight:600; font-size:clamp(2.6rem,8vw,4rem); margin:0; letter-spacing:.04em; }
.layout-luxe .m-desc{ font-style:italic; color:#b3a988; margin:.5rem 0 0; }
.layout-luxe .m-rule{ color:var(--accent); margin-top:.8rem; letter-spacing:.5em; }
.layout-luxe .m-cat{ margin-bottom:2.6rem; }
.layout-luxe .m-cat h2{ font-family:'Cormorant Garamond',serif; text-align:center; font-weight:600; font-size:1.5rem; text-transform:uppercase; letter-spacing:.22em; margin:0 0 1.2rem; padding-bottom:.4rem; border-bottom:1px solid rgba(212,175,55,.35); color:var(--accent); }
.layout-luxe .m-item{ margin-bottom:1.1rem; }
.layout-luxe .m-item-line{ display:flex; align-items:baseline; gap:.5rem; }
.layout-luxe .m-name{ font-size:1.12rem; }
.layout-luxe .m-dots{ flex:1; border-bottom:1px dotted rgba(212,175,55,.45); transform:translateY(-4px); }
.layout-luxe .m-price{ color:var(--accent); }
.layout-luxe .m-item-desc{ color:#9c9275; font-style:italic; font-size:.95rem; }
.layout-luxe .m-tags span{ border:1px solid rgba(212,175,55,.4); color:#cbbf9a; }
.layout-luxe a{ color:var(--accent); }

/* =================== NEWSPAPER (editoriale) =================== */
.layout-newspaper{ background:#f5f2e9; color:#1c1a17; font-family:'PT Serif',Georgia,serif; }
.layout-newspaper .m-wrap{ max-width:900px; }
.layout-newspaper .m-head{ text-align:center; margin-bottom:2rem; border-top:3px double #1c1a17; border-bottom:3px double #1c1a17; padding:1rem 0; }
.layout-newspaper h1{ font-family:'Playfair Display',serif; font-weight:900; font-size:clamp(2.6rem,9vw,4.4rem); margin:0; line-height:1; }
.layout-newspaper .m-desc{ font-style:italic; color:#6a6258; margin:.5rem 0 0; }
.layout-newspaper .m-cols{ column-gap:2.4rem; }
@media(min-width:760px){ .layout-newspaper .m-cols{ column-count:2; } }
.layout-newspaper .m-cat{ break-inside:avoid; margin-bottom:1.8rem; }
.layout-newspaper .m-cat h2{ font-family:'Playfair Display',serif; font-weight:700; font-size:1.4rem; text-align:center; text-transform:uppercase; letter-spacing:.08em; margin:0 0 .9rem; border-bottom:1px solid #c9c1b1; padding-bottom:.3rem; }
.layout-newspaper .m-item{ margin-bottom:.8rem; }
.layout-newspaper .m-item-line{ display:flex; align-items:baseline; gap:.4rem; }
.layout-newspaper .m-name{ font-weight:700; }
.layout-newspaper .m-dots{ flex:1; border-bottom:1px dotted #b3aa98; transform:translateY(-3px); }
.layout-newspaper .m-price{ font-weight:700; color:var(--accent); }
.layout-newspaper .m-item-desc{ color:#6a6258; font-size:.9rem; }
.layout-newspaper .m-tags span{ background:#e4ddcc; color:#5e5648; }
.layout-newspaper a{ color:var(--accent); }

/* =================== ZEN (minimal) =================== */
.layout-zen{ background:#f4f3ee; color:#2b2a26; font-family:'Shippori Mincho',Georgia,serif; }
.layout-zen .m-wrap{ max-width:680px; }
.layout-zen .m-head{ text-align:center; margin-bottom:3.5rem; }
.layout-zen h1{ font-weight:600; font-size:clamp(2rem,6vw,2.8rem); margin:0; letter-spacing:.1em; }
.layout-zen .m-desc{ color:#8a8577; margin:.6rem 0 0; }
.layout-zen .m-cat{ margin-bottom:3rem; }
.layout-zen .m-cat h2{ text-align:center; font-weight:600; font-size:1.05rem; letter-spacing:.3em; text-transform:uppercase; color:var(--accent); margin:0 0 1.6rem; }
.layout-zen .m-item{ text-align:center; margin-bottom:1.6rem; }
.layout-zen .m-item-line{ display:flex; justify-content:center; align-items:baseline; gap:.7rem; }
.layout-zen .m-dots{ display:none; }
.layout-zen .m-name{ font-size:1.1rem; letter-spacing:.05em; }
.layout-zen .m-price{ color:var(--accent); }
.layout-zen .m-item-desc{ color:#8a8577; max-width:42ch; margin:.35rem auto 0; font-size:.92rem; }
.layout-zen .m-tags{ justify-content:center; }
.layout-zen .m-tags span{ border:1px solid #d8d4c7; color:#7a7567; }
.layout-zen a{ color:var(--accent); }

/* =================== RETRO (diner) =================== */
.layout-retro{ background:#f6ead2; color:#3b2a1e; font-family:'Work Sans',system-ui,sans-serif; }
.layout-retro .m-head{ text-align:center; margin-bottom:2.2rem; }
.layout-retro h1{ font-family:'Lobster',cursive; font-weight:400; font-size:clamp(2.6rem,9vw,4rem); margin:0; color:var(--accent); }
.layout-retro .m-desc{ color:#7a6450; margin:.3rem 0 0; }
.layout-retro .m-rule{ color:var(--accent); letter-spacing:.4em; margin-top:.6rem; }
.layout-retro .m-cat{ margin-bottom:2rem; }
.layout-retro .m-cat h2{ font-family:'Lobster',cursive; font-weight:400; font-size:2rem; color:#3b2a1e; margin:0 0 .8rem; text-align:center; }
.layout-retro .m-item{ margin-bottom:.8rem; }
.layout-retro .m-item-line{ display:flex; align-items:baseline; gap:.4rem; }
.layout-retro .m-name{ font-weight:600; }
.layout-retro .m-dots{ flex:1; border-bottom:2px dotted #c7a87f; transform:translateY(-4px); }
.layout-retro .m-price{ font-weight:700; color:var(--accent); }
.layout-retro .m-item-desc{ color:#7a6450; font-size:.9rem; }
.layout-retro .m-tags span{ background:#ecd9b6; color:#6a553f; }
.layout-retro a{ color:var(--accent); }

/* =================== PLAYFUL (colorato) =================== */
.layout-playful{ background:#fbf4fb; color:#2a2540; font-family:'Poppins',system-ui,sans-serif; }
.layout-playful .m-head{ text-align:center; margin-bottom:2rem; }
.layout-playful h1{ font-weight:700; font-size:clamp(2.1rem,7vw,3.2rem); margin:0; color:var(--accent); letter-spacing:-.02em; }
.layout-playful .m-desc{ color:#7b7596; margin:.3rem 0 0; }
.layout-playful .m-cat{ margin-bottom:2rem; }
.layout-playful .m-cat h2{ font-weight:700; font-size:1.15rem; margin:0 0 1rem; display:inline-block; background:var(--accent); color:#fff; padding:.25rem .9rem; border-radius:999px; }
.layout-playful .m-item{ background:#fff; border-radius:16px; padding:.85rem 1rem; margin-bottom:.7rem; box-shadow:0 10px 22px -16px rgba(80,40,120,.5); }
.layout-playful .m-item-line{ display:flex; justify-content:space-between; gap:.6rem; align-items:baseline; }
.layout-playful .m-name{ font-weight:600; }
.layout-playful .m-price{ font-weight:700; color:var(--accent); white-space:nowrap; }
.layout-playful .m-item-desc{ color:#7b7596; font-size:.9rem; }
.layout-playful .m-tags span{ background:color-mix(in srgb,var(--accent) 15%,#fff); color:var(--accent); }
.layout-playful a{ color:var(--accent); }

/* =================== STREET (street food) =================== */
.layout-street{ background:#f6f3ec; color:#16140f; font-family:'Inter',system-ui,sans-serif; }
.layout-street .m-head{ text-align:center; margin-bottom:2rem; }
.layout-street h1{ font-family:'Anton',sans-serif; font-weight:400; text-transform:uppercase; font-size:clamp(2.8rem,11vw,5rem); line-height:.95; margin:0; }
.layout-street .m-desc{ color:#6f695c; margin:.4rem 0 0; font-weight:600; }
.layout-street .m-cat{ margin-bottom:2rem; }
.layout-street .m-cat h2{ font-family:'Anton',sans-serif; font-weight:400; text-transform:uppercase; font-size:1.7rem; margin:0 0 .9rem; color:#fff; background:var(--accent); display:inline-block; padding:.1rem .7rem; transform:rotate(-1deg); }
.layout-street .m-item{ margin-bottom:.8rem; }
.layout-street .m-item-line{ display:flex; align-items:baseline; gap:.4rem; }
.layout-street .m-name{ font-weight:700; text-transform:uppercase; }
.layout-street .m-dots{ flex:1; border-bottom:3px dotted #cbb9a0; transform:translateY(-4px); }
.layout-street .m-price{ font-weight:800; color:var(--accent); }
.layout-street .m-item-desc{ color:#6f695c; font-size:.9rem; }
.layout-street .m-tags span{ background:var(--accent); color:#fff; }
.layout-street a{ color:var(--accent); }

/* =================== CAFE (coffee shop) =================== */
.layout-cafe{ background:#f3e9db; color:#43352a; font-family:'Quicksand',system-ui,sans-serif; }
.layout-cafe .m-head{ text-align:center; margin-bottom:2rem; }
.layout-cafe h1{ font-weight:700; font-size:clamp(2.1rem,7vw,3.1rem); margin:0; }
.layout-cafe .m-desc{ color:#7c6a58; margin:.3rem 0 0; }
.layout-cafe .m-rule{ color:var(--accent); margin-top:.5rem; font-size:1.2rem; }
.layout-cafe .m-cat{ margin-bottom:1.8rem; }
.layout-cafe .m-cat h2{ font-family:'Caveat',cursive; font-weight:700; font-size:2.1rem; color:var(--accent); margin:0 0 .5rem; }
.layout-cafe .m-item{ margin-bottom:.75rem; }
.layout-cafe .m-item-line{ display:flex; align-items:baseline; gap:.4rem; }
.layout-cafe .m-name{ font-weight:600; }
.layout-cafe .m-dots{ flex:1; border-bottom:2px dotted #c3ab8f; transform:translateY(-4px); }
.layout-cafe .m-price{ font-weight:700; color:var(--accent); }
.layout-cafe .m-item-desc{ color:#7c6a58; font-size:.9rem; }
.layout-cafe .m-tags span{ background:#e3d2bb; color:#5e4d3c; }
.layout-cafe a{ color:var(--accent); }

/* =================== DECO (art déco) =================== */
.layout-deco{ background:#11201f; color:#ece7da; font-family:'Jost',system-ui,sans-serif; }
.layout-deco .m-head{ text-align:center; margin-bottom:3rem; }
.layout-deco h1{ font-family:'Cinzel',serif; font-weight:600; font-size:clamp(2.2rem,7vw,3.4rem); margin:0; letter-spacing:.12em; text-transform:uppercase; }
.layout-deco .m-desc{ color:#a9a48f; letter-spacing:.1em; margin:.6rem 0 0; }
.layout-deco .m-rule{ color:var(--accent); margin-top:.8rem; letter-spacing:.4em; }
.layout-deco .m-cat{ margin-bottom:2.6rem; }
.layout-deco .m-cat h2{ font-family:'Cinzel',serif; text-align:center; font-weight:600; font-size:1.3rem; letter-spacing:.25em; text-transform:uppercase; margin:0 0 1.2rem; color:var(--accent); }
.layout-deco .m-cat h2::after{ content:""; display:block; width:60px; height:1px; background:var(--accent); margin:.5rem auto 0; }
.layout-deco .m-item{ margin-bottom:1rem; }
.layout-deco .m-item-line{ display:flex; align-items:baseline; gap:.5rem; }
.layout-deco .m-name{ letter-spacing:.05em; }
.layout-deco .m-dots{ flex:1; border-bottom:1px solid rgba(236,231,218,.2); transform:translateY(-4px); }
.layout-deco .m-price{ color:var(--accent); }
.layout-deco .m-item-desc{ color:#9b967f; font-size:.92rem; }
.layout-deco .m-tags span{ border:1px solid rgba(236,231,218,.25); color:#c7c2ad; }
.layout-deco a{ color:var(--accent); }

/* =================== FRESH (healthy/vegan) =================== */
.layout-fresh{ background:#f1f7ee; color:#23332a; font-family:'Nunito',system-ui,sans-serif; }
.layout-fresh .m-head{ text-align:center; margin-bottom:2rem; }
.layout-fresh h1{ font-weight:800; font-size:clamp(2.1rem,7vw,3.1rem); margin:0; }
.layout-fresh .m-desc{ color:#5f7064; margin:.3rem 0 0; }
.layout-fresh .m-cat{ margin-bottom:1.8rem; }
.layout-fresh .m-cat h2{ font-weight:800; font-size:1.3rem; margin:0 0 .9rem; color:var(--accent); }
.layout-fresh .m-cat h2::before{ content:"— "; color:var(--accent); }
.layout-fresh .m-item{ background:#fff; border:1px solid #e2ece0; border-radius:14px; padding:.75rem 1rem; margin-bottom:.6rem; }
.layout-fresh .m-item-line{ display:flex; justify-content:space-between; gap:.6rem; align-items:baseline; }
.layout-fresh .m-dots{ display:none; }
.layout-fresh .m-name{ font-weight:700; }
.layout-fresh .m-price{ font-weight:800; color:var(--accent); white-space:nowrap; }
.layout-fresh .m-item-desc{ color:#5f7064; font-size:.9rem; }
.layout-fresh .m-tags span{ background:#e2efe0; color:#3f5a48; }
.layout-fresh a{ color:var(--accent); }

/* =================== TASTING (degustazione) =================== */
.layout-tasting{ background:#fbfaf7; color:#26231d; font-family:'Jost',system-ui,sans-serif; font-weight:300; }
.layout-tasting .m-wrap{ max-width:640px; counter-reset:course; }
.layout-tasting .m-head{ text-align:center; margin-bottom:3.5rem; }
.layout-tasting h1{ font-family:'Cormorant Garamond',serif; font-weight:600; font-size:clamp(2.4rem,8vw,3.6rem); margin:0; }
.layout-tasting .m-desc{ font-style:italic; color:#8a8474; margin:.5rem 0 0; }
.layout-tasting .m-cat{ margin-bottom:3rem; counter-increment:course; text-align:center; }
.layout-tasting .m-cat h2{ font-family:'Cormorant Garamond',serif; font-weight:600; font-size:1.3rem; text-transform:uppercase; letter-spacing:.2em; margin:0 0 1.4rem; }
.layout-tasting .m-cat h2::before{ content:"— " counter(course,upper-roman) " —"; display:block; color:var(--accent); font-family:'Jost',sans-serif; font-size:.8rem; letter-spacing:.3em; margin-bottom:.5rem; }
.layout-tasting .m-item{ margin-bottom:1.5rem; }
.layout-tasting .m-item-line{ display:flex; justify-content:center; align-items:baseline; gap:.6rem; }
.layout-tasting .m-dots{ display:none; }
.layout-tasting .m-name{ font-size:1.15rem; letter-spacing:.03em; }
.layout-tasting .m-price{ color:var(--accent); }
.layout-tasting .m-item-desc{ color:#8a8474; max-width:44ch; margin:.4rem auto 0; font-size:.95rem; font-style:italic; }
.layout-tasting .m-tags{ justify-content:center; }
.layout-tasting .m-tags span{ border:1px solid #ddd8cb; color:#7c7665; }
.layout-tasting a{ color:var(--accent); }

/* =================== VINTAGE (macchina da scrivere) =================== */
.layout-vintage{ background:#efe7d2; color:#3a3326; font-family:'Courier Prime',monospace;
  background-image:radial-gradient(1000px 500px at 50% -10%, rgba(0,0,0,.05), transparent 70%); }
.layout-vintage .m-head{ text-align:center; margin-bottom:2rem; }
.layout-vintage h1{ font-family:'Special Elite',cursive; font-weight:400; font-size:clamp(2.2rem,7vw,3.2rem); margin:0; }
.layout-vintage .m-desc{ color:#6e6450; margin:.3rem 0 0; }
.layout-vintage .m-rule{ color:var(--accent); margin-top:.6rem; letter-spacing:.2em; }
.layout-vintage .m-cat{ margin-bottom:1.8rem; }
.layout-vintage .m-cat h2{ font-family:'Special Elite',cursive; font-weight:400; font-size:1.3rem; text-transform:uppercase; letter-spacing:.1em; margin:0 0 .8rem; border-bottom:1px dashed #b3a88c; padding-bottom:.3rem; }
.layout-vintage .m-item{ margin-bottom:.8rem; }
.layout-vintage .m-item-line{ display:flex; align-items:baseline; gap:.4rem; }
.layout-vintage .m-name{ font-weight:700; }
.layout-vintage .m-dots{ flex:1; border-bottom:1px dotted #a89c7e; transform:translateY(-3px); }
.layout-vintage .m-price{ font-weight:700; color:var(--accent); }
.layout-vintage .m-item-desc{ color:#6e6450; font-size:.88rem; }
.layout-vintage .m-tags span{ border:1px solid #b3a88c; color:#5e5440; }
.layout-vintage a{ color:var(--accent); }
