  @import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Archivo:wght@400;500;600;700;800&display=swap');

  :root{
    --paper:#EDEDEA;
    --paper-2:#E1E0DB;
    --paper-3:#D3D1CA;
    --ink:#26221F;
    --ink-soft:#5E5750;
    --ink-faint:#8E8780;
    --accent:#D2601A;
    --accent-ink:#9A430F;
    --olive:#4F6B77;
    --gold:#B8862B;
    --line: rgba(38,34,31,0.14);
    --card: #F8F8F6;
    --shadow: 0 1px 2px rgba(38,34,31,0.06), 0 12px 28px -14px rgba(38,34,31,0.26);
    --shadow-lg: 0 24px 60px -20px rgba(38,34,31,0.34);
    --radius-s: 8px;
    --radius-m: 14px;
    --radius-l: 22px;
    --focus: 2px solid #9A430F;

    /* Footer e scheda menù: legno di noce, fisso in entrambi i temi */
    --footer-bg:#3B2E25;
    --footer-ink:#F1EEE9;
    --footer-ink-soft:#D6CCC2;
    --footer-ink-faint:#A69A8E;
    --footer-accent:#F0A15A;
    --footer-line: rgba(241,238,233,0.16);
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --paper:#1A2127;
      --paper-2:#212A31;
      --paper-3:#2A343C;
      --ink:#ECEEEF;
      --ink-soft:#B3BCC2;
      --ink-faint:#7F8A92;
      --accent:#F2873D;
      --accent-ink:#F8AE75;
      --olive:#9CC0CE;
      --gold:#E3B45A;
      --line: rgba(236,238,239,0.13);
      --card: #232C33;
      --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 12px 28px -14px rgba(0,0,0,0.55);
      --shadow-lg: 0 24px 60px -20px rgba(0,0,0,0.6);
      --focus: 2px solid #F2873D;
    }
  }
  :root[data-theme="dark"]{
    --paper:#1A2127;
    --paper-2:#212A31;
    --paper-3:#2A343C;
    --ink:#ECEEEF;
    --ink-soft:#B3BCC2;
    --ink-faint:#7F8A92;
    --accent:#F2873D;
    --accent-ink:#F8AE75;
    --olive:#9CC0CE;
    --gold:#E3B45A;
    --line: rgba(236,238,239,0.13);
    --card: #232C33;
    --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 12px 28px -14px rgba(0,0,0,0.55);
    --shadow-lg: 0 24px 60px -20px rgba(0,0,0,0.6);
    --focus: 2px solid #F2873D;
  }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; scroll-padding-top:5.5rem; }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
  }
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Archivo',ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; }
  h1,h2,h3{ font-family:'Instrument Serif', Georgia, 'Times New Roman', serif; font-weight:400; margin:0; text-wrap:balance; }
  p{ margin:0; }
  .container{ max-width:1180px; margin:0 auto; padding-left:clamp(1rem,5vw,3rem); padding-right:clamp(1rem,5vw,3rem); }

  .eyebrow{
    display:inline-flex; align-items:center; gap:.5em;
    font-size:.74rem; letter-spacing:.14em; text-transform:uppercase;
    font-weight:700; color:var(--accent-ink);
  }
  .eyebrow::before{
    content:""; width:1.4em; height:2px; background:var(--gold); display:inline-block; border-radius:2px;
  }

  /* ---------- Header ---------- */
  header.site{
    position:sticky; top:0; z-index:50;
    background:color-mix(in srgb, var(--paper) 88%, transparent);
    backdrop-filter:blur(10px) saturate(1.1);
    -webkit-backdrop-filter:blur(10px) saturate(1.1);
    border-bottom:1px solid var(--line);
  }
  .nav-row{
    display:flex; align-items:center; justify-content:space-between; gap:.8rem;
    padding-top:.85rem; padding-bottom:.85rem;
  }
  .brand{ display:flex; flex-direction:column; line-height:1; gap:.15rem; text-decoration:none; min-width:0; }
  .brand .word{ font-family:'Instrument Serif', serif; font-style:italic; font-size:1.7rem; color:var(--ink); }
  .brand .sub{ font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); font-weight:600; white-space:nowrap; }
  @media (max-width:440px){
    .phone-label{ display:none; }
    .btn-primary.btn-sm{ padding:.6rem .75rem; }
  }
  @media (max-width:330px){
    .brand .sub{ display:none; }
  }
  nav.links{ display:none; gap:1.8rem; align-items:center; }
  nav.links a{
    text-decoration:none; font-size:.92rem; font-weight:600; color:var(--ink-soft);
    position:relative; padding:.25rem 0;
  }
  nav.links a::after{
    content:""; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--accent);
    transition:right .25s ease;
  }
  nav.links a:hover::after, nav.links a:focus-visible::after{ right:0; }
  nav.links a:hover, nav.links a:focus-visible{ color:var(--ink); }

  .btn{
    display:inline-flex; align-items:center; gap:.55rem; justify-content:center;
    font-family:'Archivo',sans-serif; font-weight:700; font-size:.92rem;
    padding:.85rem 1.4rem; border-radius:999px; text-decoration:none; cursor:pointer;
    border:1px solid transparent; transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
    white-space:nowrap;
  }
  .btn:focus-visible{ outline:var(--focus); outline-offset:2px; }
  .btn-primary{ background:var(--accent); color:#FFF8F2; box-shadow:var(--shadow); }
  .btn-primary:hover{ transform:translateY(-2px); box-shadow:var(--shadow-lg); background:var(--accent-ink); }
  .btn-ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
  .btn-ghost:hover{ background:var(--paper-2); transform:translateY(-2px); }
  .btn-sm{ padding:.6rem 1.05rem; font-size:.82rem; }
  .btn svg{ width:1.05em; height:1.05em; flex:none; }

  .hamburger{ display:inline-flex; background:none; border:1px solid var(--line); border-radius:10px; padding:.5rem; cursor:pointer; color:var(--ink); }
  .hamburger svg{ width:1.3rem; height:1.3rem; }

  .mobile-menu{
    max-height:0; overflow:hidden; transition:max-height .3s ease;
    border-top:1px solid transparent;
  }
  .mobile-menu.open{ max-height:24rem; border-top-color:var(--line); }
  .mobile-menu .container{ display:flex; flex-direction:column; gap:.2rem; padding-top:.75rem; padding-bottom:1rem; }
  .mobile-menu a{ text-decoration:none; color:var(--ink-soft); font-weight:600; padding:.7rem 0; border-bottom:1px solid var(--line); }
  .mobile-menu a:last-child{ border-bottom:none; }

  @media (min-width:960px){
    nav.links{ display:flex; }
    .hamburger{ display:none; }
    .mobile-menu{ display:none; }
  }

  /* ---------- reveal ---------- */
  .reveal{ opacity:1; transform:none; }
  .js .reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
  .js .reveal.in{ opacity:1; transform:none; }

  /* ---------- Hero ---------- */
  .hero{ padding:clamp(2.2rem,6vw,5rem) 0 clamp(2.5rem,5vw,3.5rem); }
  .hero .grid{ display:grid; gap:2.5rem; align-items:center; }
  @media (min-width:960px){
    .hero .grid{ grid-template-columns:1.02fr 1fr; gap:3.5rem; }
  }
  .hero h1{ font-size:clamp(2.4rem,3.6vw + 1.2rem,4rem); line-height:1.04; letter-spacing:-.01em; }
  .hero h1 em{ font-style:italic; color:var(--accent); }
  .hero .lede{ margin-top:1.15rem; font-size:1.1rem; color:var(--ink-soft); max-width:38em; }
  .hero .ctas{ display:flex; flex-wrap:wrap; gap:.85rem; margin-top:1.9rem; }
  .hero .trust{
    display:inline-flex; flex-wrap:wrap; align-items:center; gap:.6rem; margin-top:1.6rem;
    font-size:.88rem; color:var(--ink-soft); font-weight:600;
  }
  .stars{ display:inline-flex; gap:.1rem; color:var(--gold); }
  .stars svg{ width:1rem; height:1rem; }

  .hero-media{ position:relative; }
  .hero-media .frame{
    border-radius:var(--radius-l); overflow:hidden; box-shadow:var(--shadow-lg);
    border:1px solid var(--line); aspect-ratio:4/3.4;
  }
  .hero-media .frame img{ width:100%; height:100%; object-fit:cover; object-position:50% 50%; transition:transform .6s ease; }
  .hero-media:hover .frame img{ transform:scale(1.035); }
  .hero-chip{
    position:absolute; left:-.6rem; bottom:-1.1rem; background:var(--card); border:1px solid var(--line);
    box-shadow:var(--shadow); border-radius:var(--radius-m); padding:.85rem 1.1rem;
    display:flex; align-items:center; gap:.7rem; max-width:15rem;
  }
  @media (max-width:520px){ .hero-chip{ left:.6rem; bottom:-.9rem; padding:.7rem .9rem; } }
  .hero-chip .num{ font-family:'Instrument Serif',serif; font-size:1.6rem; color:var(--accent); line-height:1; }
  .hero-chip .txt{ font-size:.72rem; color:var(--ink-soft); line-height:1.3; }

  /* ---------- Facts strip ---------- */
  .facts{ background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .facts .container{
    display:flex; flex-wrap:wrap; gap:1rem 2.2rem; padding-top:1.1rem; padding-bottom:1.1rem;
    justify-content:center;
  }
  .fact{ display:flex; align-items:center; gap:.55rem; font-size:.86rem; font-weight:600; color:var(--ink-soft); }
  .fact svg{ width:1.05rem; height:1.05rem; color:var(--accent); flex:none; }
  @media (max-width:600px){
    .facts .container{ justify-content:flex-start; flex-direction:column; gap:.7rem; }
  }

  /* ---------- Section shell ---------- */
  section{ padding:clamp(3.2rem,7vw,6rem) 0; }
  .section-head{ max-width:42rem; margin-bottom:2.5rem; }
  .section-head h2{ font-size:clamp(1.9rem,2.2vw + 1.2rem,2.65rem); margin-top:.6rem; letter-spacing:-.01em; }
  .section-head p{ margin-top:.85rem; color:var(--ink-soft); font-size:1.03rem; }
  .band-alt{ background:var(--paper-2); }
  .band-alt:not(#menu), .facts{
    background-image:repeating-linear-gradient(180deg, transparent 0 139px, var(--line) 139px 140px);
  }

  /* ---------- Intro ---------- */
  .intro .grid{ display:grid; gap:2.5rem; align-items:center; }
  @media (min-width:900px){ .intro .grid{ grid-template-columns:1fr 1fr; gap:3.5rem; } }
  .intro-copy p{ color:var(--ink-soft); font-size:1.04rem; }
  .intro-copy p + p{ margin-top:1rem; }
  .intro-copy .lead{ font-family:'Instrument Serif',serif; font-style:italic; font-size:1.5rem; color:var(--ink); line-height:1.35; }
  .intro-media{ border-radius:var(--radius-l); overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--line); aspect-ratio:1/1; }
  .intro-media img{ width:100%; height:100%; object-fit:cover; }

  .quote{
    margin:1.6rem 0 0; padding:1.1rem 1.3rem; border-left:3px solid var(--gold);
    background:var(--card); border-radius:0 var(--radius-m) var(--radius-m) 0; box-shadow:var(--shadow);
  }
  .quote p{ font-family:'Instrument Serif',serif; font-style:italic; font-size:1.3rem; color:var(--ink); line-height:1.35; }
  .quote cite{ display:block; margin-top:.4rem; font-style:normal; font-size:.78rem; color:var(--ink-faint); font-weight:600; letter-spacing:.04em; }

  .local-gallery{ margin-top:3.2rem; }
  .local-label{
    font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; font-weight:700;
    color:var(--ink-faint); margin-bottom:.9rem;
  }
  .local-wide{
    border-radius:var(--radius-m); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow);
    aspect-ratio:16/6; background:#3B2E25;
  }
  @media (max-width:600px){ .local-wide{ aspect-ratio:16/9; } }
  .local-wide img{ width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
  .local-pair{ display:grid; grid-template-columns:1fr 1fr; gap:.7rem; margin-top:1rem; }
  @media (min-width:480px){ .local-pair{ gap:1rem; } }
  .local-item{
    position:relative; border-radius:var(--radius-m); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow);
    aspect-ratio:4/3; transition:transform .25s ease, box-shadow .25s ease;
  }
  .local-item:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); }
  .local-item img{ width:100%; height:100%; object-fit:cover; }
  .ig-grid{ display:grid; grid-template-columns:1fr 1fr; gap:.7rem; margin-top:1rem; }
  @media (min-width:480px){ .ig-grid{ gap:1rem; } }
  @media (min-width:860px){ .ig-grid{ grid-template-columns:repeat(4,1fr); } }
  .ig-grid .local-item{ margin:0; aspect-ratio:1/1; }
  .ig-grid .local-item.tall{ grid-row:span 2; aspect-ratio:auto; }
  .local-item figcaption, .local-wide + .cap{
    position:absolute; left:.6rem; bottom:.6rem; font-size:.72rem; font-weight:700; color:#FFF8F2;
    background:rgba(38,34,31,.62); padding:.25rem .6rem; border-radius:999px; backdrop-filter:blur(4px);
  }
  .social-row{ display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.2rem; }

  /* ---------- Why cards ---------- */
  .why-grid{ display:grid; gap:1.1rem; grid-template-columns:1fr; }
  @media (min-width:720px){ .why-grid{ grid-template-columns:repeat(3,1fr); } }
  .why-card{
    background:var(--card); border:1px solid var(--line); border-radius:var(--radius-m);
    padding:1.7rem 1.5rem; box-shadow:var(--shadow); transition:transform .25s ease, box-shadow .25s ease;
  }
  .why-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-lg); }
  .why-icon{
    width:2.9rem; height:2.9rem; border-radius:50%; display:flex; align-items:center; justify-content:center;
    background:color-mix(in srgb, var(--accent) 12%, transparent); color:var(--accent-ink); margin-bottom:1.1rem;
  }
  .why-icon svg{ width:1.5rem; height:1.5rem; }
  .why-card h3{ font-size:1.18rem; font-weight:700; font-family:'Archivo',sans-serif; }
  .why-card p{ margin-top:.5rem; font-size:.92rem; color:var(--ink-soft); }

  /* ---------- Impasti ---------- */
  .dough-grid{ display:grid; gap:1.1rem; grid-template-columns:1fr; }
  @media (min-width:720px){ .dough-grid{ grid-template-columns:repeat(3,1fr); } }
  .dough{
    background:var(--card); border:1px solid var(--line); border-radius:var(--radius-m);
    padding:1.7rem 1.5rem 1.5rem; box-shadow:var(--shadow); display:flex; flex-direction:column;
  }
  .dough .kicker{ font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:var(--ink-faint); }
  .dough h3{ font-size:2rem; font-style:italic; margin-top:.2rem; color:var(--accent); }
  .dough p{ margin-top:.6rem; font-size:.94rem; color:var(--ink-soft); flex:1; }
  .dough .surcharge{ margin-top:1.1rem; align-self:flex-start; font-size:.8rem; font-weight:700; padding:.3rem .75rem; border-radius:999px;
    background:color-mix(in srgb, var(--gold) 18%, transparent); color:var(--ink); }
  .dough-extra{
    margin-top:1.1rem; display:grid; gap:.8rem; grid-template-columns:1fr;
  }
  @media (min-width:720px){ .dough-extra{ grid-template-columns:1fr 1fr; } }
  .dough-extra div{
    background:var(--paper-2); border:1px dashed var(--line); border-radius:var(--radius-m); padding:1rem 1.2rem;
    display:flex; justify-content:space-between; align-items:center; gap:1rem; font-size:.92rem; color:var(--ink-soft);
  }
  .band-alt .dough-extra div{ background:var(--paper); }
  .dough-extra strong{ color:var(--ink); }
  .dough-extra .p{ font-weight:700; color:var(--accent); white-space:nowrap; }

  /* ---------- Menu ---------- */
  .menu-shell{
    position:relative; border-radius:var(--radius-l); overflow:hidden; border:1px solid var(--line);
    box-shadow:var(--shadow-lg);
  }
  .menu-bg{
    position:absolute; inset:0; background-size:cover; background-position:50% 50%;
    filter:saturate(.9);
  }
  .menu-bg::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(59,46,37,.86), rgba(38,30,24,.94));
  }
  .menu-inner{ position:relative; padding:clamp(1.6rem,5vw,3.6rem); color:#F1EEE9; }
  .menu-top{ display:flex; flex-wrap:wrap; gap:1.5rem; justify-content:space-between; align-items:flex-end; }
  .menu-top .eyebrow{ color:#F0A15A; }
  .menu-top .eyebrow::before{ background:#F0A15A; }
  .menu-top h2{ color:#FFF8F2; margin-top:.5rem; font-size:clamp(1.9rem,2.2vw + 1.2rem,2.65rem); }
  .menu-top p{ color:#D6CCC2; margin-top:.6rem; max-width:34em; }
  .menu-pills{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:1.4rem; }
  .pill{
    font-size:.78rem; font-weight:700; padding:.4rem .85rem; border-radius:999px;
    border:1px solid rgba(241,238,233,.3); color:#F1EEE9;
  }
  .menu-legend{ margin-top:1.3rem; font-size:.85rem; color:#D6CCC2; }
  .menu-legend strong{ color:#F1EEE9; }

  .menu-tabs{
    position:sticky; top:var(--header-h, 4.1rem); z-index:40; margin-top:1.6rem;
    background:color-mix(in srgb, var(--paper-2) 92%, transparent);
    backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
    margin-left:calc(-1 * clamp(1rem,5vw,3rem)); margin-right:calc(-1 * clamp(1rem,5vw,3rem));
  }
  .menu-tabs .scroller{
    display:flex; gap:.5rem; overflow-x:auto; padding:.7rem clamp(1rem,5vw,3rem); scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .menu-tabs .scroller::-webkit-scrollbar{ display:none; }
  .menu-tabs a{
    flex:none; text-decoration:none; font-size:.82rem; font-weight:700; color:var(--ink-soft);
    padding:.45rem .9rem; border-radius:999px; border:1px solid var(--line); background:var(--card);
    transition:background .2s ease, color .2s ease, border-color .2s ease;
  }
  .menu-tabs a:hover{ color:var(--ink); border-color:var(--ink-faint); }
  .menu-tabs a.active{ background:var(--accent); border-color:var(--accent); color:#FFF8F2; }

  .menu-categories{ margin-top:2.2rem; display:flex; flex-direction:column; gap:2.8rem; }
  .menu-cat{ scroll-margin-top:calc(var(--header-h, 4.1rem) + 4rem); }
  .menu-cat-title{
    font-family:'Instrument Serif',serif; font-style:italic; font-size:1.65rem; color:var(--accent-ink);
    padding-bottom:.6rem; margin-bottom:.4rem; border-bottom:1px solid var(--line);
    display:flex; align-items:baseline; gap:.6rem;
  }
  .menu-cat-title .count{ font-family:'Archivo',sans-serif; font-style:normal; font-size:.72rem; font-weight:700; color:var(--ink-faint); letter-spacing:.06em; }
  .menu-cat-note{ font-size:.9rem; color:var(--ink-soft); font-style:italic; margin:.5rem 0 .6rem; }
  .menu-items{ display:grid; grid-template-columns:1fr; gap:0 2.2rem; }
  @media (min-width:760px){ .menu-items{ grid-template-columns:1fr 1fr; } }
  .menu-item{ padding:.75rem 0; border-bottom:1px dotted var(--line); }
  .weekly{
    background:var(--card); border:1px solid var(--line); border-top:4px solid var(--accent);
    border-radius:var(--radius-l); padding:clamp(1.2rem,4vw,2.2rem); box-shadow:var(--shadow);
  }
  .weekly-head{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.6rem 1rem;
    border-bottom:1px solid var(--line); margin-bottom:.4rem; }
  .weekly-head .menu-cat-title{ border-bottom:none; margin-bottom:0; }
  .weekly-badge{ font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:.35rem .8rem; border-radius:999px;
    background:color-mix(in srgb, var(--accent) 14%, transparent); color:var(--accent-ink); white-space:nowrap; }
  .pdf-frame{
    margin:1.2rem auto 0; max-width:640px; aspect-ratio:595/842; position:relative; overflow:hidden;
    border:1px solid var(--line); border-radius:var(--radius-m); background:var(--paper-3); box-shadow:var(--shadow);
  }
  .pdf-frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
  .pdf-actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:.7rem; margin-top:1.1rem; }
  .menu-subtitle{ margin:1.6rem 0 .1rem; font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; font-weight:800; color:var(--olive); }
  .weekly-extra{ margin-top:.9rem; font-size:.88rem; font-weight:600; color:var(--ink-soft); padding:.6rem .9rem;
    border:1px dashed var(--line); border-radius:var(--radius-s); display:inline-block; }
  .menu-item-row{ display:flex; justify-content:space-between; align-items:baseline; gap:.3rem 1rem; }
  .menu-item-name{ font-weight:700; font-size:1rem; }
  .menu-item-price{ font-weight:700; color:var(--accent); font-variant-numeric:tabular-nums; white-space:nowrap; }
  .menu-item-desc{ margin-top:.2rem; font-size:.86rem; color:var(--ink-soft); font-style:italic; }
  .tag{
    display:inline-block; vertical-align:2px; margin-left:.35rem; font-size:.62rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
    padding:.12rem .45rem; border-radius:999px; background:color-mix(in srgb, var(--olive) 18%, transparent); color:var(--olive);
  }
  .allerg{ font-style:normal; font-size:.7rem; font-weight:600; color:var(--ink-faint); white-space:nowrap; }

  .menu-surcharges{
    margin-top:2.8rem; background:var(--paper-2); border:1px dashed var(--line); border-radius:var(--radius-m);
    padding:1.3rem 1.4rem;
  }
  .menu-surcharges h4{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-ink); font-weight:700; margin:0 0 .8rem; }
  .menu-surcharges ul{ margin:0; padding:0; list-style:none; display:grid; gap:.45rem; font-size:.92rem; color:var(--ink-soft); }
  .menu-surcharges li strong{ color:var(--ink); font-variant-numeric:tabular-nums; }

  details.allergens{
    margin-top:1.2rem; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-m); box-shadow:var(--shadow);
  }
  details.allergens summary{
    cursor:pointer; list-style:none; padding:1.1rem 1.4rem; font-weight:700; display:flex; justify-content:space-between; align-items:center; gap:1rem;
  }
  details.allergens summary::-webkit-details-marker{ display:none; }
  details.allergens summary::after{ content:"+"; font-size:1.4rem; color:var(--accent); line-height:1; transition:transform .2s ease; }
  details.allergens[open] summary::after{ transform:rotate(45deg); }
  details.allergens .body{ padding:0 1.4rem 1.3rem; }
  details.allergens .body > p{ font-size:.9rem; color:var(--ink-soft); font-style:italic; margin-bottom:1rem; }
  details.allergens ol{ list-style:none; margin:0; padding:0; display:grid; gap:.55rem; grid-template-columns:1fr; }
  @media (min-width:760px){ details.allergens ol{ grid-template-columns:1fr 1fr; gap:.55rem 2rem; } }
  details.allergens li{ display:flex; gap:.7rem; font-size:.86rem; color:var(--ink-soft); align-items:flex-start; }
  details.allergens li strong{ color:var(--ink); }
  .al-num{ flex:none; width:1.7rem; height:1.7rem; border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-size:.72rem; font-weight:800; background:color-mix(in srgb, var(--accent) 14%, transparent); color:var(--accent-ink); }

  .menu-footer-cta{
    margin-top:2.4rem; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.2rem;
    padding-top:1.8rem; border-top:1px solid var(--line);
  }
  .menu-footer-cta p{ font-size:.9rem; color:var(--ink-soft); max-width:34em; }
  .menu-footer-cta p strong{ color:var(--ink); }

  /* ---------- Reviews ---------- */
  .rating-summary{
    display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.4rem; margin-bottom:2.4rem;
    background:var(--card); border:1px solid var(--line); border-radius:var(--radius-m); padding:1.5rem 1.7rem;
    box-shadow:var(--shadow);
  }
  .rating-big{ font-family:'Instrument Serif',serif; font-size:3rem; line-height:1; color:var(--accent); }
  .rating-meta{ display:flex; flex-direction:column; gap:.3rem; }
  .rating-meta .stars svg{ width:1.15rem; height:1.15rem; }
  .rating-meta .count{ font-size:.86rem; color:var(--ink-soft); font-weight:600; }
  .rating-src{ margin-left:auto; font-size:.78rem; color:var(--ink-faint); font-weight:600; letter-spacing:.04em; }
  @media (max-width:520px){ .rating-src{ margin-left:0; width:100%; } }

  .review-grid{ display:grid; gap:1.1rem; grid-template-columns:1fr; }
  @media (min-width:720px){ .review-grid{ grid-template-columns:1fr 1fr; } }
  @media (min-width:1080px){ .review-grid{ grid-template-columns:repeat(3,1fr); } }
  .review-card{
    background:var(--card); border:1px solid var(--line); border-radius:var(--radius-m);
    padding:1.6rem 1.6rem; box-shadow:var(--shadow); transition:transform .25s ease, box-shadow .25s ease;
  }
  .review-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); }
  .review-card .stars{ margin-bottom:.85rem; }
  .review-card .stars svg{ width:.95rem; height:.95rem; }
  .review-card blockquote{ margin:0; font-size:1.05rem; color:var(--ink); font-style:italic; font-family:'Instrument Serif',serif; line-height:1.5; }
  .review-card cite{ display:block; margin-top:1rem; font-style:normal; font-size:.78rem; color:var(--ink-faint); font-weight:600; letter-spacing:.03em; }

  /* ---------- Steps ---------- */
  .steps{
    display:grid; gap:2.4rem 1.5rem; grid-template-columns:1fr; position:relative;
    margin-bottom:2.6rem;
  }
  @media (min-width:760px){
    .steps{ grid-template-columns:repeat(3,1fr); }
    .steps::before{
      content:""; position:absolute; top:1.55rem; left:16.6%; right:16.6%; height:1px;
      background:var(--line);
    }
  }
  .step{ position:relative; text-align:left; }
  .step-num{
    width:3.1rem; height:3.1rem; border-radius:50%; background:var(--card); border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow); position:relative; z-index:1;
    font-family:'Instrument Serif',serif; font-size:1.4rem; color:var(--accent-ink); margin-bottom:1.1rem;
  }
  .step h3{ font-size:1.1rem; font-weight:700; font-family:'Archivo',sans-serif; }
  .step p{ margin-top:.4rem; font-size:.92rem; color:var(--ink-soft); max-width:22em; }
  .steps-cta{ text-align:center; }

  /* ---------- Location ---------- */
  .loc-grid{ display:grid; gap:2rem; align-items:stretch; }
  @media (min-width:900px){ .loc-grid{ grid-template-columns:1fr 1fr; gap:3rem; } }
  .loc-card{
    background:var(--card); border:1px solid var(--line); border-radius:var(--radius-l);
    padding:1.8rem 1.6rem; box-shadow:var(--shadow);
  }
  .loc-row{ display:flex; gap:.9rem; padding:.9rem 0; border-bottom:1px solid var(--line); }
  .loc-row:last-of-type{ border-bottom:none; }
  .loc-row svg{ width:1.25rem; height:1.25rem; color:var(--accent); flex:none; margin-top:.15rem; }
  .loc-row .lbl{ font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; margin-bottom:.2rem; }
  .loc-row .val{ font-size:1rem; font-weight:600; }
  .hours{ width:100%; border-collapse:collapse; font-size:.92rem; margin-top:.2rem; }
  .hours td{ padding:.18rem 0; }
  .hours td:last-child{ text-align:right; font-variant-numeric:tabular-nums; font-weight:600; }
  .hours tr.closed td:last-child{ color:var(--accent); }
  .hours tr.today td{ color:var(--ink); font-weight:800; }
  .loc-actions{ display:grid; gap:.7rem; margin-top:1.4rem; grid-template-columns:1fr; }
  @media (min-width:480px){ .loc-actions{ grid-template-columns:1fr 1fr; } }
  .loc-actions .btn{ width:100%; }

  .map-frame{
    border-radius:var(--radius-l); border:1px solid var(--line); background:var(--paper-3);
    min-height:340px; position:relative; overflow:hidden; box-shadow:var(--shadow);
  }
  .map-frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

  /* ---------- Social ---------- */
  .social-card{
    display:grid; gap:1.6rem; align-items:center; background:var(--card); border:1px solid var(--line);
    border-radius:var(--radius-l); padding:clamp(1.4rem,4vw,2.4rem); box-shadow:var(--shadow);
  }
  @media (min-width:860px){ .social-card{ grid-template-columns:auto 1fr auto; } }
  .social-card .logo{ width:120px; height:120px; border-radius:50%; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); }
  .social-card .logo img{ width:100%; height:100%; object-fit:cover; }
  .social-card h2{ font-size:clamp(1.6rem,1.6vw + 1.1rem,2.1rem); }
  .social-card p{ margin-top:.5rem; color:var(--ink-soft); max-width:36em; }
  .social-card .tags{ margin-top:.7rem; font-size:.8rem; color:var(--ink-faint); font-weight:600; }
  .social-btns{ display:flex; flex-wrap:wrap; gap:.7rem; }

  /* ---------- Footer ---------- */
  footer{ background:var(--footer-bg); color:var(--footer-ink); padding:3.5rem 0 6rem; }
  @media (min-width:760px){ footer{ padding-bottom:2.2rem; } }
  footer .top{ display:grid; gap:2.2rem; grid-template-columns:1fr; margin-bottom:2.2rem; }
  @media (min-width:760px){ footer .top{ grid-template-columns:1.3fr 1fr 1fr; } }
  footer .word{ font-family:'Instrument Serif',serif; font-style:italic; font-size:1.9rem; color:var(--footer-ink); }
  footer .legal-name{ font-size:.82rem; color:var(--footer-ink-faint); margin-top:.4rem; }
  footer .col h4{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--footer-accent); font-weight:700; margin:0 0 .9rem; }
  footer .col p, footer .col a{ font-size:.92rem; color:var(--footer-ink-soft); text-decoration:none; display:block; margin-bottom:.5rem; }
  footer .col a:hover{ color:var(--footer-ink); }
  footer .bottom{ border-top:1px solid var(--footer-line); padding-top:1.6rem; display:flex; flex-wrap:wrap; gap:.8rem 1.5rem; justify-content:space-between; }
  footer .bottom p{ font-size:.76rem; color:var(--footer-ink-faint); max-width:46em; }

  /* ---------- Barra azioni mobile ---------- */
  .mobile-bar{
    position:fixed; left:0; right:0; bottom:0; z-index:60; display:grid; grid-template-columns:1fr 1fr; gap:.6rem;
    padding:.65rem 1rem calc(.65rem + env(safe-area-inset-bottom));
    background:color-mix(in srgb, var(--paper) 92%, transparent); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    border-top:1px solid var(--line); transform:translateY(110%); transition:transform .3s ease;
  }
  .mobile-bar.show{ transform:none; }
  .mobile-bar .btn{ width:100%; padding:.75rem 1rem; }
  @media (min-width:760px){ .mobile-bar{ display:none; } }

  .skip-link{
    position:absolute; left:-999px; top:auto;
    background:var(--accent); color:#fff; padding:.7rem 1rem; border-radius:8px; z-index:100;
  }
  .skip-link:focus{ left:1rem; top:1rem; }

  /* ---------- Sfondo in rovere (unico per tema chiaro e scuro) ---------- */
  :root{ --wood:url('../img/wood-oak.webp'); color-scheme:dark; }
  body{ background-color:var(--paper); background-image:var(--wood); background-size:1400px auto; background-repeat:repeat; }
  .band-alt:not(#menu), .facts{ background-color:rgba(30,19,11,.28); background-image:none; }
  #menu.band-alt{ background-color:rgba(30,19,11,.55); }
  .dough-extra div, .band-alt .dough-extra div{ background:var(--card); }

  /* ---------- Il locale: carosello ---------- */
  .locale{ background:var(--footer-bg); color:var(--footer-ink); overflow:hidden; }
  .locale .section-head{ margin-bottom:1.8rem; }
  .locale .eyebrow{ color:var(--footer-accent); }
  .locale .eyebrow::before{ background:var(--footer-accent); }
  .locale .section-head h2{ color:var(--footer-ink); }
  .locale .section-head p{ color:var(--footer-ink-soft); }
  .carousel{ position:relative; }
  .car-track{
    display:flex; gap:clamp(.6rem,1.5vw,1rem); overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
    -webkit-overflow-scrolling:touch; scrollbar-width:none; padding:.2rem 0 .4rem; outline:none;
  }
  .car-track::-webkit-scrollbar{ display:none; }
  .car-track:focus-visible{ outline:2px solid var(--footer-accent); outline-offset:4px; border-radius:var(--radius-m); }
  .car-slide{
    position:relative; flex:none; margin:0; height:clamp(240px,42vw,460px); scroll-snap-align:start;
    border-radius:var(--radius-m); overflow:hidden; background:rgba(255,255,255,.06);
    box-shadow:0 18px 40px -22px rgba(0,0,0,.7);
  }
  .car-slide img{ height:100%; width:auto; max-width:86vw; object-fit:cover; display:block; }
  .car-slide figcaption{
    position:absolute; left:.7rem; bottom:.7rem; font-size:.74rem; font-weight:700; color:#FFF8F2;
    background:rgba(20,16,13,.6); padding:.3rem .7rem; border-radius:999px; backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
  }
  .car-bar{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1.1rem; }
  .car-count{ font-size:.82rem; font-weight:700; color:var(--footer-ink-soft); font-variant-numeric:tabular-nums; }
  .car-count strong{ color:var(--footer-ink); }
  .car-progress{ flex:1; height:3px; border-radius:3px; background:var(--footer-line); overflow:hidden; max-width:420px; }
  .car-progress span{ display:block; height:100%; width:8%; background:var(--footer-accent); border-radius:3px; transition:width .25s ease; }
  .car-btns{ display:flex; gap:.5rem; }
  .car-btn{
    width:2.75rem; height:2.75rem; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; cursor:pointer;
    background:transparent; color:var(--footer-ink); border:1px solid var(--footer-line); transition:background .2s ease, border-color .2s ease, opacity .2s ease;
  }
  .car-btn:hover{ background:rgba(255,255,255,.08); border-color:var(--footer-ink-faint); }
  .car-btn:focus-visible{ outline:2px solid var(--footer-accent); outline-offset:2px; }
  .car-btn[disabled]{ opacity:.35; cursor:default; }
  .car-btn svg{ width:1.2rem; height:1.2rem; }
  .car-hint{ font-size:.78rem; color:var(--footer-ink-faint); margin-top:.6rem; }
  @media (min-width:760px){ .car-hint{ display:none; } }

  /* ---------- Palette "rovere": la stessa in tema chiaro e scuro ---------- */
  :root{ --paper:#3E2A1A;
    --paper-2:#4A3320;
    --paper-3:#5A3F28;
    --ink:#F7ECDD;
    --ink-soft:#E6D3BC;
    --ink-faint:#BFA487;
    --accent:#E6943F;
    --accent-ink:#F5B877;
    --olive:#D9C28E;
    --gold:#EDBE64;
    --line: rgba(247,236,221,0.18);
    --card: rgba(38,24,14,0.86);
    --shadow: 0 1px 2px rgba(0,0,0,0.35), 0 14px 30px -14px rgba(0,0,0,0.6);
    --shadow-lg: 0 24px 60px -20px rgba(0,0,0,0.7);
    --focus: 2px solid #F5B877;
    --footer-bg:#22160C;
    --footer-ink:#F7ECDD;
    --footer-ink-soft:#E0CBB1;
    --footer-ink-faint:#B09678;
    --footer-accent:#EDBE64;
    --footer-line: rgba(247,236,221,0.16); }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --paper:#3E2A1A;
    --paper-2:#4A3320;
    --paper-3:#5A3F28;
    --ink:#F7ECDD;
    --ink-soft:#E6D3BC;
    --ink-faint:#BFA487;
    --accent:#E6943F;
    --accent-ink:#F5B877;
    --olive:#D9C28E;
    --gold:#EDBE64;
    --line: rgba(247,236,221,0.18);
    --card: rgba(38,24,14,0.86);
    --shadow: 0 1px 2px rgba(0,0,0,0.35), 0 14px 30px -14px rgba(0,0,0,0.6);
    --shadow-lg: 0 24px 60px -20px rgba(0,0,0,0.7);
    --focus: 2px solid #F5B877;
    --footer-bg:#22160C;
    --footer-ink:#F7ECDD;
    --footer-ink-soft:#E0CBB1;
    --footer-ink-faint:#B09678;
    --footer-accent:#EDBE64;
    --footer-line: rgba(247,236,221,0.16); } }
  :root[data-theme="dark"]{ --paper:#3E2A1A;
    --paper-2:#4A3320;
    --paper-3:#5A3F28;
    --ink:#F7ECDD;
    --ink-soft:#E6D3BC;
    --ink-faint:#BFA487;
    --accent:#E6943F;
    --accent-ink:#F5B877;
    --olive:#D9C28E;
    --gold:#EDBE64;
    --line: rgba(247,236,221,0.18);
    --card: rgba(38,24,14,0.86);
    --shadow: 0 1px 2px rgba(0,0,0,0.35), 0 14px 30px -14px rgba(0,0,0,0.6);
    --shadow-lg: 0 24px 60px -20px rgba(0,0,0,0.7);
    --focus: 2px solid #F5B877;
    --footer-bg:#22160C;
    --footer-ink:#F7ECDD;
    --footer-ink-soft:#E0CBB1;
    --footer-ink-faint:#B09678;
    --footer-accent:#EDBE64;
    --footer-line: rgba(247,236,221,0.16); }
  .btn-primary, .menu-tabs a.active, .skip-link{ color:#24160C; }
  .menu-bg::after{ background:linear-gradient(180deg, rgba(34,21,12,.84), rgba(26,16,9,.93)); }
  .locale{ background-color:rgba(24,15,8,.5); }
  footer{ background-color:var(--footer-bg); background-image:linear-gradient(rgba(26,16,9,.9), rgba(26,16,9,.9)), var(--wood); background-size:auto, 1400px auto; }
