/* ============================================================
   MenuQR — Shared Design System
   Preserves the original single-file prototype's visual identity.
   Do not change tokens below without checking every page.
   ============================================================ */

  :root{
    --ink:#17181A;
    --ink-soft:#2A2C2E;
    --teal:#0E5C52;
    --teal-deep:#0A423B;
    --mango:#FF7A29;
    --mango-deep:#E0621A;
    --pink:#E23E82;
    --paper:#FBF6E8;
    --paper-dim:#F1E9D3;
    --line: rgba(251,246,232,0.16);
    --maxw: 1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--ink);
    color:var(--paper);
    font-family:'Inter',sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  ::selection{ background:var(--mango); color:var(--ink); }
  img{max-width:100%;display:block;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
  h1,h2,h3{ margin:0; }
  .display{
    font-family:'Bebas Neue', sans-serif;
    letter-spacing:0.5px;
    line-height:0.95;
    text-transform:uppercase;
  }
  .mono{ font-family:'Space Mono', monospace; }
  a{color:inherit;}
  button{font-family:inherit; cursor:pointer;}

  /* ---------- NAV ---------- */
  header.nav{
    position:sticky; top:0; z-index:50;
    background:rgba(23,24,26,0.86);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{
    max-width:var(--maxw); margin:0 auto; padding:16px 28px;
    display:flex; align-items:center; justify-content:space-between;
  }
  .logo{
    display:flex; align-items:baseline; gap:6px;
    font-family:'Bebas Neue',sans-serif; font-size:26px; letter-spacing:0.5px;
  }
  .logo .dot{ color:var(--mango); font-family:'Space Mono',monospace; font-size:14px; }
  .nav-links{ display:flex; gap:32px; font-size:14px; font-weight:500; }
  .nav-links a{ opacity:0.75; text-decoration:none; transition:opacity .15s; }
  .nav-links a:hover{ opacity:1; }
  .nav-cta{
    background:var(--mango); color:var(--ink); border:none; border-radius:100px;
    padding:10px 20px; font-weight:700; font-size:14px;
  }
  .nav-right{ display:flex; align-items:center; gap:10px; position:relative; }
  .user-btn{
    width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    background:transparent; border:1px solid var(--line); color:var(--paper);
    transition:background .15s, border-color .15s;
  }
  .user-btn:hover{ border-color:rgba(251,246,232,0.4); }
  .user-btn.open{ background:var(--paper); border-color:var(--paper); color:var(--ink); }
  .user-menu{
    position:absolute; top:calc(100% + 12px); right:0; width:200px;
    background:var(--paper); color:var(--ink); border-radius:10px;
    box-shadow:0 20px 50px rgba(0,0,0,0.4); padding:8px;
    display:none; flex-direction:column; gap:2px; z-index:60;
  }
  .user-menu.open{ display:flex; }
  .user-menu button{
    background:none; border:none; text-align:left; padding:11px 12px; border-radius:7px;
    font-size:13.5px; font-weight:600; color:var(--ink);
  }
  .user-menu button:hover{ background:rgba(23,24,26,0.06); }
  .user-menu button.primary{ color:var(--mango-deep); }
  .user-menu .divider{ height:1px; background:rgba(23,24,26,0.1); margin:6px 4px; }
  @media (max-width:760px){ .nav-links{display:none;} }

  /* ---------- HERO ---------- */
  .hero{
    padding:88px 0 70px;
    background:
      radial-gradient(ellipse at 15% 0%, rgba(255,122,41,0.16), transparent 55%),
      radial-gradient(ellipse at 90% 10%, rgba(226,62,130,0.13), transparent 50%),
      var(--ink);
    border-bottom:1px solid var(--line);
    position:relative; overflow:hidden;
  }
  .hero-grid{
    display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:center;
  }
  @media (max-width:900px){ .hero-grid{grid-template-columns:1fr;} }
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-family:'Space Mono',monospace; font-size:12px; letter-spacing:0.08em;
    color:var(--mango); border:1px solid rgba(255,122,41,0.4); border-radius:100px;
    padding:6px 14px; margin-bottom:22px; text-transform:uppercase;
  }
  .eyebrow::before{ content:"●"; font-size:8px; color:var(--pink); }
  .hero h1{ font-size:clamp(42px,6vw,74px); }
  .hero h1 span{ color:var(--mango); }
  .hero p.sub{
    font-size:18px; line-height:1.6; color:rgba(251,246,232,0.72);
    max-width:480px; margin:22px 0 32px;
  }
  .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; }
  .btn-primary{
    background:var(--mango); color:var(--ink); border:none; border-radius:100px;
    padding:15px 28px; font-weight:800; font-size:15px;
    box-shadow:0 8px 24px rgba(255,122,41,0.28);
    transition:transform .15s ease;
  }
  .btn-primary:hover{ transform:translateY(-2px); }
  .btn-ghost{
    background:transparent; color:var(--paper); border:1px solid var(--line);
    border-radius:100px; padding:15px 26px; font-weight:600; font-size:15px;
  }
  .hero-stats{ display:flex; gap:34px; margin-top:44px; }
  .hero-stats div b{ display:block; font-family:'Bebas Neue',sans-serif; font-size:30px; color:var(--paper);}
  .hero-stats div span{ font-size:12px; color:rgba(251,246,232,0.55); }

  /* ticket visual in hero */
  .ticket-hero{
    background:var(--paper); color:var(--ink); border-radius:6px;
    padding:26px 24px 30px; max-width:340px; margin-left:auto;
    box-shadow:0 30px 60px rgba(0,0,0,0.45);
    position:relative; transform:rotate(2.2deg);
  }
  .ticket-hero::before, .ticket-hero::after{
    content:""; position:absolute; left:0; right:0; height:14px;
    background:
      radial-gradient(circle at 8px 7px, var(--ink) 7px, transparent 7.5px) repeat-x;
    background-size:16px 14px;
  }
  .ticket-hero::before{ top:-7px; }
  .ticket-hero::after{ bottom:-7px; transform:rotate(180deg); }
  .ticket-hero .t-head{ text-align:center; margin-bottom:10px; }
  .ticket-hero .t-head b{ font-family:'Bebas Neue',sans-serif; font-size:22px; display:block; }
  .ticket-hero .t-head span{ font-family:'Space Mono',monospace; font-size:10px; letter-spacing:0.1em; opacity:0.6; }
  .t-dash{ border-top:1.5px dashed rgba(23,24,26,0.35); margin:14px 0; }
  .ticket-hero .t-row{ display:flex; justify-content:space-between; font-family:'Space Mono',monospace; font-size:12px; padding:4px 0; }
  .qr-fake{
    width:150px; height:150px; margin:16px auto 8px;
    background:
      repeating-linear-gradient(90deg, var(--ink) 0 8px, transparent 8px 16px),
      repeating-linear-gradient(0deg, var(--ink) 0 8px, transparent 8px 16px);
    background-blend-mode:multiply; opacity:0.9;
    -webkit-mask: radial-gradient(circle, black 60%, black 60%);
  }
  .ticket-hero .t-foot{ text-align:center; font-family:'Space Mono',monospace; font-size:10px; opacity:0.6; letter-spacing:0.08em; }

  /* ---------- SECTION generic ---------- */
  section{ padding:96px 0; }
  .section-head{ max-width:640px; margin-bottom:56px; }
  .section-head .eyebrow{ margin-bottom:16px; }
  .section-head h2{ font-size:clamp(32px,4.4vw,48px); }
  .section-head p{ margin-top:14px; font-size:16px; line-height:1.65; color:rgba(251,246,232,0.65); }

  /* ---------- HOW IT WORKS (order tickets) ---------- */
  .how{ background:var(--teal-deep); border-bottom:1px solid var(--line); }
  .how .section-head h2{ color:var(--paper); }
  .order-rail{
    display:grid; grid-template-columns:repeat(5,1fr); gap:16px;
  }
  @media (max-width:980px){ .order-rail{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .order-rail{grid-template-columns:1fr;} }
  .order-card{
    background:rgba(251,246,232,0.05); border:1px solid rgba(251,246,232,0.14);
    border-radius:10px; padding:22px 18px; position:relative;
  }
  .order-card .num{
    font-family:'Space Mono',monospace; font-size:12px; color:var(--mango);
    letter-spacing:0.08em; margin-bottom:14px; display:block;
  }
  .order-card h3{ font-family:'Bebas Neue',sans-serif; font-size:22px; letter-spacing:0.3px; margin-bottom:8px; }
  .order-card p{ font-size:13.5px; line-height:1.55; color:rgba(251,246,232,0.68); margin:0; }

  /* ---------- DEMO (the actual prototype flow) ---------- */
  .demo{ background:var(--ink); }
  .step-label{
    font-family:'Space Mono',monospace; font-size:12px; color:var(--mango);
    letter-spacing:0.1em; text-transform:uppercase; margin-bottom:10px;
  }
  .step-title{ font-family:'Bebas Neue',sans-serif; font-size:34px; margin-bottom:6px; }
  .step-desc{ color:rgba(251,246,232,0.6); font-size:15px; margin-bottom:32px; max-width:560px; }

  /* tabs */
  .tabs{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:28px; }
  .tab-btn{
    background:transparent; border:1px solid var(--line); color:var(--paper);
    padding:9px 18px; border-radius:100px; font-size:13.5px; font-weight:600;
    opacity:0.6; transition:all .15s;
  }
  .tab-btn.active{ background:var(--paper); color:var(--ink); opacity:1; border-color:var(--paper); }

  .tpl-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  @media (max-width:900px){ .tpl-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:600px){ .tpl-grid{grid-template-columns:1fr;} }
  .tpl-card{
    border-radius:14px; overflow:hidden; border:2px solid transparent;
    background:var(--ink-soft); cursor:pointer; transition:transform .18s, border-color .18s;
  }
  .tpl-card:hover{ transform:translateY(-4px); }
  .tpl-card.selected{ border-color:var(--mango); }
  .tpl-preview{ height:150px; display:flex; align-items:center; justify-content:center; position:relative; }
  .tpl-preview .mini-title{ font-family:'Bebas Neue',sans-serif; font-size:20px; text-align:center; padding:0 14px; }
  .tpl-meta{ padding:14px 16px 18px; }
  .tpl-meta b{ display:block; font-size:15px; margin-bottom:3px; }
  .tpl-meta span{ font-size:12.5px; color:rgba(251,246,232,0.55); }
  .tpl-pick{
    margin-top:12px; width:100%; padding:9px; border-radius:8px; border:1px solid var(--line);
    background:transparent; color:var(--paper); font-size:12.5px; font-weight:700;
    letter-spacing:0.03em; text-transform:uppercase;
  }
  .tpl-card.selected .tpl-pick{ background:var(--mango); color:var(--ink); border-color:var(--mango); }

  .tpl-tier{
    position:absolute; top:10px; left:10px; z-index:3;
    font-family:'Space Mono',monospace; font-size:9.5px; letter-spacing:0.1em; font-weight:700;
    padding:4px 9px; border-radius:100px; text-transform:uppercase;
  }
  .tier-free{ background:rgba(255,255,255,0.85); color:var(--teal-deep); }
  .tier-pro{ background:var(--ink); color:var(--mango); border:1px solid rgba(255,122,41,0.5); }
  .tpl-lock{
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    background:rgba(23,24,26,0.42); font-size:22px; z-index:2;
  }
  .tpl-price{ display:block; margin-top:8px; font-family:'Space Mono',monospace; font-size:13px; color:var(--mango); font-weight:700; }
  .tpl-price span{ color:rgba(251,246,232,0.5); font-weight:400; }
  .tpl-card.paid .tpl-pick{ border-color:rgba(255,122,41,0.5); color:var(--mango); }
  .tpl-card.paid.selected .pick-paid{ background:var(--mango); color:var(--ink); border-color:var(--mango); }

  /* retro-diner mini preview (template picker card) */
  .retro-mini{ display:flex; flex-direction:column; align-items:center; justify-content:center; width:100%; }
  .retro-mini-menu{ font-family:'Bebas Neue',sans-serif; font-size:30px; line-height:0.8; letter-spacing:1px; }
  .retro-mini-script{ font-size:14px; margin-top:-6px; transform:rotate(-6deg); }
  .retro-mini-rule{ width:46%; height:3px; margin-top:9px; border-radius:2px; }

  /* upload */
  .upload-zone{
    border:2px dashed var(--line); border-radius:16px; padding:50px 24px;
    text-align:center; background:rgba(251,246,232,0.03); position:relative; overflow:hidden;
  }
  .upload-zone.dragging{ border-color:var(--mango); background:rgba(255,122,41,0.06); }
  .upload-zone svg{ margin-bottom:14px; }
  .upload-zone h4{ font-family:'Bebas Neue',sans-serif; font-size:22px; margin-bottom:6px; }
  .upload-zone p{ font-size:13.5px; color:rgba(251,246,232,0.55); margin-bottom:20px; }
  .upload-btns{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
  #fileInput{ display:none; }

  .scan-box{ position:relative; border-radius:12px; overflow:hidden; margin-top:26px; display:none; }
  .scan-box img{ width:100%; display:block; filter:saturate(0.9); }
  .scan-line{
    position:absolute; left:0; right:0; height:3px; top:0;
    background:linear-gradient(90deg, transparent, var(--mango), transparent);
    box-shadow:0 0 18px 4px rgba(255,122,41,0.6);
    animation:scan 1.6s linear infinite;
  }
  @keyframes scan{ 0%{top:0;} 100%{top:100%;} }
  .scan-caption{
    position:absolute; bottom:0; left:0; right:0; padding:12px 16px;
    background:linear-gradient(0deg, rgba(0,0,0,0.75), transparent);
    font-family:'Space Mono',monospace; font-size:12px; letter-spacing:0.05em;
  }

  /* generated menu */
  .menu-stage{ display:none; }
  .menu-card{
    border-radius:16px; padding:38px 34px; max-width:560px; margin:0 auto;
    box-shadow:0 30px 70px rgba(0,0,0,0.4);
  }
  .menu-card .m-head{ text-align:center; margin-bottom:22px; }
  .menu-card .m-head b{ font-size:30px; display:block; }
  .menu-card .m-head span{ font-size:12.5px; letter-spacing:0.1em; opacity:0.65; }
  .m-section-title{
    font-family:'Space Mono',monospace; font-size:12px; letter-spacing:0.12em;
    text-transform:uppercase; opacity:0.6; margin:22px 0 10px;
  }
  .m-item{ display:flex; justify-content:space-between; gap:14px; padding:9px 0; border-bottom:1px dashed rgba(0,0,0,0.12); align-items:baseline; }
  .m-item .m-name{ font-weight:600; font-size:15px; outline:none; }
  .m-item .m-price{ font-family:'Space Mono',monospace; font-size:14px; outline:none; white-space:nowrap; }
  .m-item .m-del{ opacity:0.3; border:none; background:none; font-size:14px; margin-left:8px; }
  .m-item .m-del:hover{ opacity:1; }
  .m-add{
    margin-top:14px; width:100%; padding:10px; border-radius:8px; border:1px dashed currentColor;
    background:none; font-size:13px; font-weight:600; opacity:0.7;
  }
  .edit-hint{ text-align:center; font-size:12.5px; color:rgba(251,246,232,0.45); margin-top:16px; }
  .generate-row{ text-align:center; margin-top:30px; }

  /* retro-diner generated menu layout */
  .menu-card.layout-retro-diner{ padding:38px 32px 32px; text-align:center; }
  .retro-head{ margin-bottom:2px; }
  .retro-menu-word{
    font-family:'Bebas Neue',sans-serif; font-size:66px; line-height:0.82; letter-spacing:2px;
    text-transform:uppercase;
  }
  .retro-script{
    display:inline-block; font-size:27px; font-weight:400; margin-top:-20px;
    transform:rotate(-5deg); outline:none;
  }
  .retro-rule{ height:4px; width:64%; margin:16px auto 22px; border-radius:2px; }
  .retro-body{ column-count:2; column-gap:26px; text-align:left; }
  .retro-section{ break-inside:avoid; margin-bottom:20px; }
  .retro-section-title{
    font-family:'Bebas Neue',sans-serif; font-size:17px; letter-spacing:0.4px;
    text-transform:uppercase; border-bottom:2.5px solid; padding-bottom:5px; margin-bottom:11px;
  }
  .retro-item{ display:flex; align-items:baseline; gap:6px; margin-bottom:9px; flex-wrap:wrap; }
  .retro-name{ font-weight:800; font-size:11.5px; text-transform:uppercase; outline:none; white-space:nowrap; min-width:0; flex-shrink:1; }
  .retro-desc{ white-space:normal !important; }
  .retro-leader{ flex:1; border-bottom:2px dotted rgba(35,31,32,0.35); min-width:8px; margin-bottom:3px; }
  .retro-price{ font-weight:800; font-size:12.5px; outline:none; white-space:nowrap; }
  .retro-del{ opacity:0.25; border:none; background:none; font-size:12px; }
  .retro-del:hover{ opacity:1; }
  .retro-foot{ text-align:center; margin-top:14px; font-size:11px; opacity:0.55; }
  .retro-add{ break-inside:avoid; border-color:currentColor; }

  /* floral-wedding generated menu layout */
  .menu-card.layout-floral-wedding{
    position:relative; padding:0; max-width:420px; aspect-ratio:768/1024;
    overflow:hidden; border-radius:6px;
  }
  .floral-frame{ position:absolute; inset:7% 6.5% 9%; border:2px solid; pointer-events:none; z-index:1; opacity:0.62; }
  .floral-botanical{ position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }
  /* Colors are set as direct attributes on each SVG path/circle in
     main.js now, not via these classes — <use>-cloned content doesn't
     always pick up class-based CSS reliably across browsers. */
  .floral-inner{
    position:absolute; inset:15% 11% 9%; z-index:2;
    display:flex; flex-direction:column; align-items:center; text-align:center;
    overflow-y:auto;
  }
  .floral-title{ font-size:clamp(36px,7vw,54px); line-height:1; margin:2px 0 22px; font-weight:400; outline:none; flex-shrink:0; }
  .floral-section{ margin:0 0 20px; width:100%; }
  .floral-section-title{
    margin:0 0 9px; font-size:clamp(13px,2vw,17px); font-weight:500;
    letter-spacing:.09em; text-transform:uppercase; outline:none;
  }
  .floral-item{ margin-bottom:11px; position:relative; }
  .floral-name{ font-style:italic; font-size:13.5px; outline:none; }
  .floral-price{ font-style:italic; font-size:12.5px; opacity:0.85; margin-left:5px; outline:none; white-space:nowrap; }
  .floral-desc{
    display:block; white-space:normal; font-family:Arial, Helvetica, sans-serif;
    font-size:11px; opacity:0.75; font-style:italic; letter-spacing:.02em;
    margin-top:3px; line-height:1.4;
  }
  .floral-del{
    opacity:0.25; border:none; background:none; font-size:11px;
    margin-left:6px; vertical-align:middle;
  }
  .floral-del:hover{ opacity:1; }
  .floral-foot{ margin-top:auto; padding-top:10px; flex-shrink:0; }
  .floral-names{ font-size:clamp(22px,4vw,32px); outline:none; }
  .floral-sub{ display:block; font-size:12px; letter-spacing:.14em; margin-top:8px; opacity:0.85; outline:none; }
  .floral-add{
    margin-top:6px; width:100%; padding:8px; border-radius:6px; border:1px dashed currentColor;
    background:none; font-size:12px; font-weight:600; opacity:0.7;
  }

  /* ticket printer output */
  .printer-stage{ display:none; text-align:center; margin-top:50px; }
  .printer-slot{
    width:220px; height:16px; background:var(--ink-soft); margin:0 auto;
    border-radius:3px; box-shadow:0 6px 0 rgba(0,0,0,0.3) inset;
  }
  .ticket-out{
    background:var(--paper); color:var(--ink); width:260px; margin:0 auto;
    padding:22px 20px 26px; border-radius:0 0 6px 6px;
    transform:translateY(-100%); opacity:0;
    box-shadow:0 20px 50px rgba(0,0,0,0.4);
  }
  .ticket-out.dropped{ animation:drop .9s cubic-bezier(.2,.9,.3,1) forwards; }
  @keyframes drop{ 0%{transform:translateY(-100%); opacity:0;} 60%{opacity:1;} 100%{transform:translateY(0); opacity:1;} }
  .ticket-out .t-head b{ font-family:'Bebas Neue',sans-serif; font-size:20px; }
  .ticket-out .t-head span{ font-family:'Space Mono',monospace; font-size:10px; opacity:0.6; }
  #qrcode{ display:flex; justify-content:center; margin:16px 0 10px; }
  #qrcode img, #qrcode canvas{ border-radius:4px; }
  .ticket-out .t-url{ font-family:'Space Mono',monospace; font-size:10.5px; opacity:0.6; word-break:break-all; }
  .dl-row{ margin-top:22px; display:flex; gap:10px; justify-content:center; }
  .dl-btn{
    background:var(--paper); color:var(--ink); border:1px solid var(--line);
    padding:10px 18px; border-radius:100px; font-size:13px; font-weight:700;
  }
  .dl-btn.primary{ background:var(--mango); color:var(--ink); border-color:var(--mango); }

  /* ---------------- REFERRAL ---------------- */
  .referral{
    background:var(--teal-deep); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  }
  .ref-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:start; }
  @media (max-width:900px){ .ref-grid{grid-template-columns:1fr;} }
  .ref-sub{ font-size:16px; line-height:1.65; color:rgba(251,246,232,0.68); max-width:480px; margin:16px 0 34px; }
  .ref-steps{ display:flex; flex-direction:column; gap:20px; }
  .ref-step{ display:flex; gap:16px; align-items:flex-start; }
  .ref-step .num{ font-size:13px; color:var(--mango); padding-top:2px; }
  .ref-step b{ display:block; font-size:16px; margin-bottom:3px; }
  .ref-step p{ margin:0; font-size:13.5px; color:rgba(251,246,232,0.6); line-height:1.5; }

  .ref-card{
    background:var(--paper); color:var(--ink); border-radius:16px; padding:32px 28px;
    box-shadow:0 30px 70px rgba(0,0,0,0.35); display:flex; flex-direction:column;
  }
  .ref-badge{
    font-size:11px; letter-spacing:0.12em; color:var(--pink); margin-bottom:10px; display:block;
  }
  .ref-amount{ font-family:'Bebas Neue',sans-serif; font-size:44px; line-height:1; }
  .ref-amount .tbd-x{ color:var(--mango); }
  .ref-amount-unit{ font-size:16px; }
  .ref-note{ font-size:12.5px; color:rgba(23,24,26,0.55); margin-top:6px; display:block; }
  .ref-card .t-dash{ border-top:1.5px dashed rgba(23,24,26,0.2); margin:22px 0 18px; }
  .ref-label{ font-size:11px; letter-spacing:0.1em; opacity:0.55; margin-bottom:8px; display:block; }
  .ref-link-row{ display:flex; gap:8px; }
  .ref-link-input{
    flex:1; border:1px solid rgba(23,24,26,0.18); background:rgba(23,24,26,0.03);
    border-radius:8px; padding:11px 12px; font-size:12.5px; color:var(--ink);
  }
  .ref-copy{
    background:var(--ink); color:var(--paper); border:none; border-radius:8px;
    padding:0 16px; font-size:12.5px; font-weight:700;
  }

  /* ---------------- AUTH MODAL ---------------- */
  .auth-overlay{
    position:fixed; inset:0; background:rgba(10,11,12,0.72); backdrop-filter:blur(3px);
    display:none; align-items:center; justify-content:center; z-index:100; padding:20px;
  }
  .auth-overlay.open{ display:flex; }
  .auth-modal{
    background:var(--paper); color:var(--ink); width:100%; max-width:400px;
    border-radius:10px; padding:30px 28px 28px; position:relative;
    box-shadow:0 40px 90px rgba(0,0,0,0.5);
  }
  .auth-modal::before, .auth-modal::after{
    content:""; position:absolute; left:0; right:0; height:14px;
    background:radial-gradient(circle at 8px 7px, var(--ink) 7px, transparent 7.5px) repeat-x;
    background-size:16px 14px;
  }
  .auth-modal::before{ top:-7px; }
  .auth-modal::after{ bottom:-7px; transform:rotate(180deg); }
  .auth-close{
    position:absolute; top:14px; right:16px; background:none; border:none;
    font-size:18px; color:rgba(23,24,26,0.45); line-height:1;
  }
  .auth-close:hover{ color:var(--ink); }
  .auth-head{ text-align:center; margin-bottom:22px; }
  .auth-head b{ font-family:'Bebas Neue',sans-serif; font-size:26px; display:block; }
  .auth-head span{ font-family:'Space Mono',monospace; font-size:11px; opacity:0.55; letter-spacing:0.08em; }
  .auth-view{ display:none; }
  .auth-view.active{ display:block; }
  .auth-field{ margin-bottom:14px; }
  .auth-field label{ display:block; font-size:12px; font-weight:600; margin-bottom:6px; opacity:0.75; }
  .auth-field input{
    width:100%; border:1px solid rgba(23,24,26,0.18); background:rgba(23,24,26,0.03);
    border-radius:8px; padding:11px 12px; font-size:14px; color:var(--ink); font-family:'Inter',sans-serif;
  }
  .auth-field input:focus{ outline:none; border-color:var(--mango); }
  .auth-submit{
    width:100%; background:var(--mango); color:var(--ink); border:none; border-radius:8px;
    padding:13px; font-weight:800; font-size:14.5px; margin-top:6px;
  }
  .auth-forgot{ text-align:right; margin:-6px 0 16px; }
  .auth-forgot a, .auth-switch a{ font-size:12.5px; color:var(--teal-deep); font-weight:600; text-decoration:none; }
  .auth-forgot a:hover, .auth-switch a:hover{ text-decoration:underline; }
  .auth-switch{ text-align:center; margin-top:20px; font-size:13px; opacity:0.75; }
  .auth-back{ font-size:12.5px; color:var(--teal-deep); font-weight:600; display:inline-block; margin-bottom:16px; text-decoration:none; }
  .auth-note{ font-size:12px; opacity:0.55; text-align:center; margin-top:14px; line-height:1.5; }

  /* ---------- FOOTER ---------- */
  footer{ background:var(--teal-deep); padding:60px 0 34px; border-top:1px solid var(--line); }
  .foot-grid{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:30px; margin-bottom:40px; }
  .foot-cta h3{ font-family:'Bebas Neue',sans-serif; font-size:30px; max-width:380px; }
  .foot-note{ font-size:12.5px; color:rgba(251,246,232,0.5); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; border-top:1px solid var(--line); padding-top:22px; }

  @media (prefers-reduced-motion: reduce){
    .scan-line, .ticket-out.dropped{ animation:none !important; }
  }

/* ============================================================
   EXTENDED DESIGN SYSTEM — added for the multi-page app
   Same tokens, same ticket/paper language, new components.
   ============================================================ */

/* ---------- generic layout helpers ---------- */
main{ display:block; }
.page-hero{
  padding:64px 0 48px;
  background:
    radial-gradient(ellipse at 15% 0%, rgba(255,122,41,0.14), transparent 55%),
    radial-gradient(ellipse at 90% 10%, rgba(226,62,130,0.10), transparent 50%),
    var(--ink);
  border-bottom:1px solid var(--line);
}
.page-hero h1{ font-size:clamp(34px,5vw,54px); }
.page-hero p.sub{ font-size:16px; line-height:1.6; color:rgba(251,246,232,0.68); max-width:560px; margin-top:14px; }
.section-tight{ padding:64px 0; }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:900px){ .grid-2,.grid-3{ grid-template-columns:1fr; } }

/* ---------- authenticated nav variant ---------- */
.nav-links.app-links a.active{ opacity:1; color:var(--mango); }
.nav-links.app-links{ gap:26px; }

/* ---------- breadcrumbs / back link ---------- */
.back-link{
  display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600;
  color:rgba(251,246,232,0.65); text-decoration:none; margin-bottom:18px;
}
.back-link:hover{ color:var(--paper); }

/* ---------- buttons: extra variants ---------- */
.btn-sm{ padding:9px 16px; font-size:13px; border-radius:100px; font-weight:700; }
.btn-outline{
  background:transparent; color:var(--mango); border:1px solid rgba(255,122,41,0.5);
  border-radius:100px; padding:12px 22px; font-weight:700; font-size:14px;
}
.btn-danger{
  background:transparent; color:#FF6B6B; border:1px solid rgba(255,107,107,0.4);
  border-radius:100px; padding:12px 22px; font-weight:700; font-size:14px;
}
.btn-block{ width:100%; }
.btn-icon{
  width:38px; height:38px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  background:transparent; border:1px solid var(--line); color:var(--paper);
}
.btn-icon:hover{ border-color:rgba(251,246,232,0.4); }

/* ---------- status badges ---------- */
.badge{
  display:inline-flex; align-items:center; gap:5px; font-family:'Space Mono',monospace;
  font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; font-weight:700;
  padding:4px 10px; border-radius:100px;
}
.badge::before{ content:"●"; font-size:7px; }
.badge-draft{ background:rgba(251,246,232,0.1); color:rgba(251,246,232,0.7); }
.badge-published{ background:rgba(14,92,82,0.35); color:#5FD8C4; border:1px solid rgba(95,216,196,0.3); }
.badge-paused{ background:rgba(226,62,130,0.15); color:var(--pink); }

/* ---------- progress stepper (create-menu wizard) ---------- */
.stepper{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:44px; }
.step-pill{
  display:flex; align-items:center; gap:8px; padding:9px 16px 9px 9px; border-radius:100px;
  border:1px solid var(--line); font-size:13px; font-weight:600; color:rgba(251,246,232,0.5);
}
.step-pill .n{
  width:22px; height:22px; border-radius:50%; background:rgba(251,246,232,0.08);
  display:flex; align-items:center; justify-content:center; font-family:'Space Mono',monospace; font-size:11px;
}
.step-pill.done{ color:var(--paper); border-color:rgba(255,122,41,0.35); }
.step-pill.done .n{ background:var(--mango); color:var(--ink); }
.step-pill.current{ color:var(--paper); border-color:var(--mango); background:rgba(255,122,41,0.08); }
.step-pill.current .n{ background:var(--mango); color:var(--ink); }

/* ---------- generic form fields ---------- */
.field{ margin-bottom:16px; }
.field label{ display:block; font-size:12.5px; font-weight:600; margin-bottom:7px; opacity:0.8; }
.field input, .field select, .field textarea{
  width:100%; border:1px solid var(--line); background:rgba(251,246,232,0.04);
  border-radius:8px; padding:11px 13px; font-size:14px; color:var(--paper); font-family:'Inter',sans-serif;
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--mango); }
.field .hint{ font-size:11.5px; color:rgba(251,246,232,0.45); margin-top:6px; }
.field-row{ display:flex; gap:14px; }
.field-row .field{ flex:1; }
.switch-row{ display:flex; align-items:center; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--line); }
.switch-row b{ font-size:14px; font-weight:600; display:block; }
.switch-row span{ font-size:12.5px; color:rgba(251,246,232,0.5); }
.switch{ position:relative; width:42px; height:24px; border-radius:100px; background:rgba(251,246,232,0.15); border:none; flex-shrink:0; }
.switch::after{ content:""; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:var(--paper); transition:transform .15s; }
.switch.on{ background:var(--mango); }
.switch.on::after{ transform:translateX(18px); }

/* Light-on-dark paper panel (used inside dark sections for forms) */
.panel{
  background:var(--ink-soft); border:1px solid var(--line); border-radius:16px; padding:28px;
}
.panel-paper{
  background:var(--paper); color:var(--ink); border-radius:16px; padding:28px;
  box-shadow:0 20px 50px rgba(0,0,0,0.3);
}
.panel-paper .field label{ color:rgba(23,24,26,0.7); }
.panel-paper .field input, .panel-paper .field select, .panel-paper .field textarea{
  border-color:rgba(23,24,26,0.16); background:rgba(23,24,26,0.03); color:var(--ink);
}

/* ---------- generic modal (reused for previews, confirmations) ---------- */
.modal-overlay{
  position:fixed; inset:0; background:rgba(10,11,12,0.72); backdrop-filter:blur(3px);
  display:none; align-items:center; justify-content:center; z-index:200; padding:20px;
}
.modal-overlay.open{ display:flex; }
.modal-box{
  background:var(--paper); color:var(--ink); width:100%; max-width:460px;
  border-radius:14px; padding:28px; position:relative; box-shadow:0 40px 90px rgba(0,0,0,0.5);
}
.modal-box.modal-wide{ max-width:720px; }
.modal-box .modal-close{
  position:absolute; top:14px; right:16px; background:none; border:none;
  font-size:18px; color:rgba(23,24,26,0.45);
}
.modal-box h3{ font-family:'Bebas Neue',sans-serif; font-size:24px; margin-bottom:14px; }
.modal-actions{ display:flex; gap:10px; justify-content:flex-end; margin-top:22px; }
.modal-box.on-dark{ background:var(--ink-soft); color:var(--paper); }
.modal-box.on-dark h3{ color:var(--paper); }

/* ---------- toast notifications ---------- */
.toast-stack{
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:300;
  display:flex; flex-direction:column; gap:10px; align-items:center;
}
.toast{
  background:var(--paper); color:var(--ink); padding:12px 20px; border-radius:100px;
  font-size:13.5px; font-weight:600; box-shadow:0 16px 40px rgba(0,0,0,0.35);
  display:flex; align-items:center; gap:8px; opacity:0; transform:translateY(10px);
  animation:toastIn .25s ease forwards;
}
.toast.success::before{ content:"✓"; color:#0E5C52; font-weight:800; }
.toast.error::before{ content:"✕"; color:#E23E82; font-weight:800; }
.toast.info::before{ content:"●"; color:var(--mango); font-size:9px; }
@keyframes toastIn{ to{ opacity:1; transform:translateY(0); } }

/* ---------- empty states ---------- */
.empty-state{
  text-align:center; padding:70px 24px; border:1.5px dashed var(--line); border-radius:16px;
}
.empty-state .icon{ font-size:34px; margin-bottom:14px; }
.empty-state h3{ font-family:'Bebas Neue',sans-serif; font-size:26px; margin-bottom:8px; }
.empty-state p{ color:rgba(251,246,232,0.6); font-size:14.5px; max-width:380px; margin:0 auto 22px; }

/* ---------- template preview modal grid usage ---------- */
.tpl-preview-large{ height:280px; border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; }

/* ============================================================
   TEMPLATES PAGE
   ============================================================ */
.tpl-desc{ font-size:12.5px; color:rgba(251,246,232,0.55); margin-top:4px; line-height:1.4; }
.tpl-actions-row{ display:flex; gap:8px; margin-top:12px; }
.tpl-actions-row .tpl-pick{ margin-top:0; flex:1; }
.tpl-preview-btn{
  flex:1; padding:9px; border-radius:8px; border:1px solid var(--line); background:transparent;
  color:var(--paper); font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.03em;
}

/* ============================================================
   CREATE-MENU WIZARD
   ============================================================ */
.wizard-panel{ max-width:640px; }
.upload-state{ display:none; }
.upload-state.active{ display:block; }
.retry-box{ text-align:center; padding:30px; }
.retry-box .icon{ font-size:30px; margin-bottom:10px; }

/* ============================================================
   EDITOR (editor.html)
   ============================================================ */
.editor-topbar{
  position:sticky; top:65px; z-index:40; background:rgba(23,24,26,0.92); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line); padding:14px 0;
}
.editor-topbar .wrap{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.editor-topbar-left{ display:flex; align-items:center; gap:12px; }
.editor-topbar-left b{ font-family:'Bebas Neue',sans-serif; font-size:20px; }
.editor-topbar-right{ display:flex; align-items:center; gap:10px; }
.save-status{ font-size:12px; color:rgba(251,246,232,0.5); font-family:'Space Mono',monospace; display:flex; align-items:center; gap:6px; }
.save-status .dot-saved{ color:#5FD8C4; }
.save-status .dot-unsaved{ color:var(--mango); }

.editor-layout{ display:grid; grid-template-columns:400px 1fr; gap:36px; padding:40px 0 90px; align-items:start; }
@media (max-width:980px){ .editor-layout{ grid-template-columns:1fr; } }

.editor-sidebar{ position:sticky; top:150px; }
@media (max-width:980px){ .editor-sidebar{ position:static; } }
.editor-tabs{ display:flex; gap:6px; background:var(--ink-soft); border:1px solid var(--line); border-radius:100px; padding:4px; margin-bottom:22px; }
.editor-tab{
  flex:1; text-align:center; padding:9px; border-radius:100px; font-size:12.5px; font-weight:700;
  background:transparent; border:none; color:rgba(251,246,232,0.55); letter-spacing:0.02em;
}
.editor-tab.active{ background:var(--mango); color:var(--ink); }
.editor-pane{ display:none; }
.editor-pane.active{ display:block; }

.editor-cat{ border:1px solid var(--line); border-radius:12px; margin-bottom:14px; overflow:hidden; }
.editor-cat-head{ display:flex; align-items:center; gap:8px; padding:12px 14px; background:rgba(251,246,232,0.03); }
.editor-cat-head .drag{ opacity:0.35; cursor:grab; font-size:14px; }
.editor-cat-head input{
  flex:1; background:none; border:none; font-family:'Bebas Neue',sans-serif; font-size:16px; color:var(--paper);
  letter-spacing:0.3px; text-transform:uppercase;
}
.editor-cat-head input:focus{ outline:none; }
.editor-cat-head button{ background:none; border:none; color:rgba(251,246,232,0.35); font-size:13px; }
.editor-cat-head button:hover{ color:#FF6B6B; }
.editor-cat-body{ padding:10px 14px 14px; }
.editor-item-row{ display:flex; align-items:flex-start; gap:8px; padding:9px 0; border-bottom:1px dashed var(--line); }
.editor-item-row:last-of-type{ border-bottom:none; }
.editor-item-row .drag{ opacity:0.3; font-size:13px; padding-top:9px; cursor:grab; }
.editor-item-fields{ flex:1; display:flex; flex-direction:column; gap:6px; }
.editor-item-fields .top-row{ display:flex; gap:6px; }
.editor-item-fields input[type="text"]{
  background:rgba(251,246,232,0.04); border:1px solid var(--line); border-radius:6px;
  padding:8px 9px; font-size:13px; color:var(--paper);
}
.editor-item-fields .item-name-input{ flex:1; font-weight:600; }
.editor-item-fields .item-price-input{ width:76px; font-family:'Space Mono',monospace; }
.editor-item-fields .item-desc-input{ font-size:12px; opacity:0.8; }
.editor-item-row .item-actions{ display:flex; flex-direction:column; gap:6px; align-items:center; padding-top:6px; }
.editor-item-row .toggle-mini{ width:30px; height:18px; border-radius:100px; background:rgba(251,246,232,0.15); border:none; position:relative; }
.editor-item-row .toggle-mini.on{ background:var(--mango); }
.editor-item-row .toggle-mini::after{ content:""; position:absolute; top:2px; left:2px; width:14px; height:14px; border-radius:50%; background:var(--paper); transition:transform .15s; }
.editor-item-row .toggle-mini.on::after{ transform:translateX(12px); }
.editor-item-row .del-mini{ background:none; border:none; color:rgba(251,246,232,0.3); font-size:12px; }
.editor-item-row .del-mini:hover{ color:#FF6B6B; }
.add-item-btn{
  width:100%; margin-top:8px; padding:9px; border-radius:8px; border:1px dashed var(--line);
  background:none; color:rgba(251,246,232,0.6); font-size:12.5px; font-weight:600;
}
.add-cat-btn{
  width:100%; padding:12px; border-radius:12px; border:1.5px dashed rgba(255,122,41,0.4);
  background:none; color:var(--mango); font-size:13px; font-weight:700;
}
.editor-preview-frame{
  background:var(--ink-soft); border:1px solid var(--line); border-radius:20px; padding:40px 20px;
  display:flex; justify-content:center;
}
.editor-preview-frame .menu-card{ width:100%; }

.template-switch-row{ display:flex; align-items:center; gap:14px; padding:14px; border:1px solid var(--line); border-radius:12px; margin-bottom:18px; }
.template-switch-row .swatch{ width:52px; height:52px; border-radius:8px; flex-shrink:0; }
.template-switch-row .info{ flex:1; }
.template-switch-row .info b{ display:block; font-size:14px; }
.template-switch-row .info span{ font-size:12px; color:rgba(251,246,232,0.5); }

/* ============================================================
   PUBLISH.HTML — three-option comparison
   ============================================================ */
.publish-options{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:start; }
@media (max-width:980px){ .publish-options{ grid-template-columns:1fr; } }
.publish-card{
  background:var(--ink-soft); border:1px solid var(--line); border-radius:16px; padding:26px 24px;
  display:flex; flex-direction:column; height:100%;
}
.publish-card.featured{ border-color:var(--mango); box-shadow:0 20px 50px rgba(255,122,41,0.12); }
.publish-card .kicker{ font-family:'Space Mono',monospace; font-size:11px; letter-spacing:0.1em; color:var(--mango); margin-bottom:10px; }
.publish-card h3{ font-family:'Bebas Neue',sans-serif; font-size:26px; margin-bottom:6px; }
.publish-card .price{ font-family:'Bebas Neue',sans-serif; font-size:34px; margin:6px 0 4px; }
.publish-card .price span{ font-family:'Inter',sans-serif; font-size:13px; font-weight:600; color:rgba(251,246,232,0.5); }
.publish-card p.desc{ font-size:13px; color:rgba(251,246,232,0.62); line-height:1.55; margin-bottom:16px; }
.publish-card ul{ list-style:none; padding:0; margin:0 0 20px; display:flex; flex-direction:column; gap:9px; flex:1; }
.publish-card li{ font-size:13px; display:flex; gap:8px; align-items:flex-start; color:rgba(251,246,232,0.8); }
.publish-card li::before{ content:"✓"; color:var(--mango); font-weight:800; flex-shrink:0; }
.publish-card li.no::before{ content:"—"; color:rgba(251,246,232,0.3); }
.publish-card li.no{ color:rgba(251,246,232,0.35); }

/* ============================================================
   PRICING.HTML
   ============================================================ */
.pricing-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:980px){ .pricing-grid{ grid-template-columns:1fr; } }
.price-card{
  background:var(--ink-soft); border:1px solid var(--line); border-radius:18px; padding:30px 26px;
  display:flex; flex-direction:column;
}
.price-card.highlight{ border:2px solid var(--mango); position:relative; }
.price-card.highlight .ribbon{
  position:absolute; top:-13px; left:50%; transform:translateX(-50%);
  background:var(--mango); color:var(--ink); font-family:'Space Mono',monospace; font-size:10.5px;
  font-weight:700; letter-spacing:0.08em; padding:5px 14px; border-radius:100px; text-transform:uppercase;
}
.price-card h3{ font-family:'Bebas Neue',sans-serif; font-size:24px; }
.price-card .amount{ font-family:'Bebas Neue',sans-serif; font-size:46px; margin:14px 0 2px; }
.price-card .amount span{ font-family:'Inter',sans-serif; font-size:14px; font-weight:600; color:rgba(251,246,232,0.5); }
.price-card p.desc{ font-size:13px; color:rgba(251,246,232,0.6); margin-bottom:20px; line-height:1.5; }
.price-card ul{ list-style:none; padding:0; margin:0 0 24px; flex:1; display:flex; flex-direction:column; gap:10px; }
.price-card li{ font-size:13px; display:flex; gap:8px; color:rgba(251,246,232,0.8); }
.price-card li::before{ content:"✓"; color:var(--mango); font-weight:800; }

.compare-table{ width:100%; border-collapse:collapse; margin-top:20px; font-size:13.5px; }
.compare-table th, .compare-table td{ padding:13px 14px; text-align:center; border-bottom:1px solid var(--line); }
.compare-table td:first-child, .compare-table th:first-child{ text-align:left; color:rgba(251,246,232,0.8); }
.compare-table th{ font-family:'Space Mono',monospace; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:rgba(251,246,232,0.55); }
.compare-table td.yes{ color:#5FD8C4; font-weight:700; }
.compare-table td.no{ color:rgba(251,246,232,0.25); }
.compare-table td.tbd{ color:var(--mango); font-family:'Space Mono',monospace; font-size:11.5px; }
.compare-scroll{ overflow-x:auto; }

.faq-item{ border-bottom:1px solid var(--line); padding:18px 0; }
.faq-q{ display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-weight:700; font-size:15px; }
.faq-q .plus{ font-size:18px; color:var(--mango); transition:transform .2s; }
.faq-item.open .faq-q .plus{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .25s ease; }
.faq-item.open .faq-a{ max-height:200px; }
.faq-a p{ font-size:13.5px; color:rgba(251,246,232,0.62); padding-top:12px; line-height:1.6; }

/* ============================================================
   CHECKOUT.HTML
   ============================================================ */
.checkout-layout{ display:grid; grid-template-columns:1fr 380px; gap:40px; align-items:start; }
@media (max-width:900px){ .checkout-layout{ grid-template-columns:1fr; } }
.checkout-summary{
  background:var(--paper); color:var(--ink); border-radius:12px; padding:26px 24px; position:relative;
}
.checkout-summary::before, .checkout-summary::after{
  content:""; position:absolute; left:0; right:0; height:14px;
  background:radial-gradient(circle at 8px 7px, var(--ink) 7px, transparent 7.5px) repeat-x;
  background-size:16px 14px;
}
.checkout-summary::before{ top:-7px; }
.checkout-summary::after{ bottom:-7px; transform:rotate(180deg); }
.checkout-row{ display:flex; justify-content:space-between; font-family:'Space Mono',monospace; font-size:13px; padding:6px 0; }
.checkout-row.total{ font-size:17px; font-weight:800; border-top:1.5px dashed rgba(23,24,26,0.3); margin-top:10px; padding-top:14px; }
.checkout-row.discount{ color:#0E5C52; }
.checkout-state{ display:none; text-align:center; padding:40px 20px; }
.checkout-state.active{ display:block; }
.checkout-state .icon{ font-size:44px; margin-bottom:14px; }
.spinner{
  width:36px; height:36px; border-radius:50%; border:3px solid rgba(255,122,41,0.25);
  border-top-color:var(--mango); margin:0 auto 16px; animation:spin .8s linear infinite;
}
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ============================================================
   DASHBOARD.HTML
   ============================================================ */
.dash-summary{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:40px; }
@media (max-width:700px){ .dash-summary{ grid-template-columns:1fr; } }
.summary-card{ background:var(--ink-soft); border:1px solid var(--line); border-radius:14px; padding:20px 22px; }
.summary-card b{ font-family:'Bebas Neue',sans-serif; font-size:34px; display:block; }
.summary-card span{ font-size:12.5px; color:rgba(251,246,232,0.55); }

.menu-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:980px){ .menu-cards{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .menu-cards{ grid-template-columns:1fr; } }
.mcard{ background:var(--ink-soft); border:1px solid var(--line); border-radius:16px; overflow:hidden; }
.mcard-preview{ height:120px; display:flex; align-items:center; justify-content:center; position:relative; }
.mcard-preview .mini-title{ font-family:'Bebas Neue',sans-serif; font-size:18px; }
.mcard-body{ padding:16px 18px 18px; position:relative; }
.mcard-body b.name{ display:block; font-size:15.5px; margin-bottom:4px; }
.mcard-body .tpl-name{ font-size:12px; color:rgba(251,246,232,0.5); margin-bottom:10px; display:block; }
.mcard-url{ font-family:'Space Mono',monospace; font-size:11px; color:rgba(251,246,232,0.45); margin-bottom:6px; display:block; word-break:break-all; }
.mcard-edited{ font-size:11px; color:rgba(251,246,232,0.4); margin-bottom:14px; display:block; }
.mcard-actions{ display:flex; gap:8px; }
.mcard-actions .btn-sm{ flex:1; text-align:center; background:transparent; border:1px solid var(--line); color:var(--paper); }
.mcard-more{ position:absolute; top:16px; right:16px; }
.mcard-more-btn{ background:none; border:none; color:rgba(251,246,232,0.5); font-size:16px; padding:4px 8px; }
.mcard-more-menu{
  position:absolute; top:26px; right:0; background:var(--paper); color:var(--ink); border-radius:10px;
  box-shadow:0 20px 50px rgba(0,0,0,0.4); padding:6px; width:170px; display:none; flex-direction:column; z-index:20;
}
.mcard-more-menu.open{ display:flex; }
.mcard-more-menu button{ background:none; border:none; text-align:left; padding:9px 10px; border-radius:6px; font-size:12.5px; font-weight:600; }
.mcard-more-menu button:hover{ background:rgba(23,24,26,0.06); }
.mcard-more-menu button.danger{ color:#C6392E; }
.qr-mini{ width:56px; height:56px; background:#fff; border-radius:6px; padding:4px; }

/* ============================================================
   MENU-DETAIL.HTML
   ============================================================ */
.detail-layout{ display:grid; grid-template-columns:1fr 340px; gap:40px; align-items:start; }
@media (max-width:900px){ .detail-layout{ grid-template-columns:1fr; } }
.action-list{ display:flex; flex-direction:column; gap:8px; }
.action-list button, .action-list a{
  display:flex; align-items:center; justify-content:space-between; padding:12px 14px; border-radius:10px;
  border:1px solid var(--line); background:rgba(251,246,232,0.02); color:var(--paper); font-size:13.5px; font-weight:600;
  text-decoration:none;
}
.action-list button:hover, .action-list a:hover{ border-color:rgba(251,246,232,0.35); }
.action-list button.danger{ color:#FF6B6B; border-color:rgba(255,107,107,0.3); }
.stat-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:22px 0; }
.stat-box{ background:rgba(251,246,232,0.03); border:1px solid var(--line); border-radius:12px; padding:16px; text-align:center; }
.stat-box b{ font-family:'Bebas Neue',sans-serif; font-size:26px; display:block; }
.stat-box span{ font-size:11px; color:rgba(251,246,232,0.5); }
.activity-row{ display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); font-size:13.5px; }
.activity-row .dot{ width:8px; height:8px; border-radius:50%; background:var(--mango); margin-top:5px; flex-shrink:0; }
.activity-row .t{ color:rgba(251,246,232,0.45); font-size:11.5px; }

/* ============================================================
   PUBLIC-MENU.HTML — mobile-first, no app chrome
   ============================================================ */
.public-shell{ min-height:100vh; background:var(--ink); }
.public-brand-footer{
  text-align:center; padding:34px 20px 24px; font-family:'Space Mono',monospace; font-size:11px;
  color:rgba(251,246,232,0.4); letter-spacing:0.05em;
}
.public-brand-footer a{ color:var(--mango); text-decoration:none; font-weight:700; }

/* ---------------- pm-* : the real public menu page (tabs + scroll) ---------------- */
/* A template only sets colors/fonts here — this structure itself is
   shared by every template, not redrawn per design. */
.pm-root{ min-height:100vh; max-width:640px; margin:0 auto; }

/* On wide screens, a narrow column floating in a sea of black looks
   unfinished — give it a deliberate "phone preview" frame instead:
   rounded corners, shadow, breathing room. The page still scrolls
   normally (no internal scroll box) — same behavior as mobile, just
   framed. Mobile itself stays edge-to-edge, untouched. */
@media (min-width: 680px){
  .public-shell{ padding:40px 20px; }
  .pm-root{ min-height:auto; border-radius:18px; box-shadow:0 30px 80px rgba(0,0,0,0.5); }
  .pm-tabs{ border-radius:18px 18px 0 0; }
}
.pm-header{ padding:28px 20px 18px; text-align:center; }
.pm-restname{ font-size:clamp(24px,5vw,34px); font-weight:800; margin:0; line-height:1.15; }
.pm-restsub{ font-size:13px; opacity:0.65; margin:6px 0 0; letter-spacing:0.03em; }

.pm-tabs{
  position:sticky; top:0; z-index:20; display:flex; gap:8px; overflow-x:auto;
  padding:12px 16px; background:inherit; border-bottom:1px solid rgba(127,127,127,0.18);
  scrollbar-width:none;
}
.pm-tabs::-webkit-scrollbar{ display:none; }
.pm-tab{
  flex-shrink:0; padding:8px 16px; border-radius:100px; border:1.5px solid rgba(127,127,127,0.3);
  background:none; font-size:13px; font-weight:700; font-family:inherit; color:inherit;
  opacity:0.6; cursor:pointer; transition:opacity .15s;
}
.pm-tab.active{ opacity:1; }

.pm-sections{ padding:8px 20px 80px; }
.pm-section{ padding-top:22px; scroll-margin-top:64px; }
.pm-section-title{
  font-size:clamp(17px,2.6vw,21px); font-weight:800; text-transform:uppercase;
  letter-spacing:0.04em; margin:0 0 12px;
}
.pm-item{
  display:flex; justify-content:space-between; align-items:flex-start; gap:16px;
  padding:14px 0; border-bottom:1px dashed rgba(127,127,127,0.22);
}
.pm-item-main{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.pm-item-name{ font-size:15.5px; font-weight:700; }
.pm-item-desc{ font-size:12.5px; opacity:0.65; line-height:1.4; }
.pm-item-chips{ margin-top:2px; }
.pm-item-price{ font-family:'Space Mono',monospace; font-size:14px; font-weight:700; white-space:nowrap; flex-shrink:0; }
.pm-soldout{
  display:inline-block; font-size:9.5px; font-weight:700; padding:2px 7px; border-radius:100px;
  border:1px solid #FF6B6B; color:#FF6B6B; margin-left:6px; text-decoration:none; vertical-align:middle;
}
.item-badge-popular{
  display:inline-block; font-size:9.5px; font-weight:800; letter-spacing:0.05em; text-transform:uppercase;
  padding:2px 7px; border-radius:100px; margin-left:6px; vertical-align:middle;
}

/* ============================================================
   REFERRALS.HTML — full dashboard
   ============================================================ */
.ref-summary{ display:grid; grid-template-columns:repeat(5,1fr); gap:16px; margin:36px 0; }
@media (max-width:980px){ .ref-summary{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .ref-summary{ grid-template-columns:1fr; } }
.ref-stat{ background:var(--ink-soft); border:1px solid var(--line); border-radius:14px; padding:18px; }
.ref-stat b{ font-family:'Bebas Neue',sans-serif; font-size:28px; display:block; }
.ref-stat span{ font-size:11.5px; color:rgba(251,246,232,0.5); }
.ref-table{ width:100%; border-collapse:collapse; font-size:13.5px; }
.ref-table th, .ref-table td{ padding:13px 12px; text-align:left; border-bottom:1px solid var(--line); }
.ref-table th{ font-family:'Space Mono',monospace; font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase; color:rgba(251,246,232,0.5); }
.status-chip{ font-size:10.5px; font-weight:700; padding:3px 9px; border-radius:100px; text-transform:uppercase; letter-spacing:0.04em; }
.status-registrado{ background:rgba(251,246,232,0.1); color:rgba(251,246,232,0.7); }
.status-pendiente{ background:rgba(255,122,41,0.15); color:var(--mango); }
.status-pagado{ background:rgba(14,92,82,0.35); color:#5FD8C4; }
.table-scroll{ overflow-x:auto; }

/* ============================================================
   ACCOUNT.HTML
   ============================================================ */
.account-nav{ display:flex; flex-direction:column; gap:4px; position:sticky; top:150px; }
.account-nav a{
  padding:11px 14px; border-radius:8px; font-size:13.5px; font-weight:600; text-decoration:none;
  color:rgba(251,246,232,0.6);
}
.account-nav a.active, .account-nav a:hover{ background:rgba(251,246,232,0.06); color:var(--paper); }
.account-layout{ display:grid; grid-template-columns:200px 1fr; gap:36px; align-items:start; }
@media (max-width:820px){ .account-layout{ grid-template-columns:1fr; } .account-nav{ position:static; flex-direction:row; flex-wrap:wrap; } }
.account-section{ margin-bottom:52px; }
.account-section h2{ font-family:'Bebas Neue',sans-serif; font-size:26px; margin-bottom:4px; }
.account-section .desc{ font-size:13px; color:rgba(251,246,232,0.55); margin-bottom:20px; }
.invoice-row{ display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--line); font-size:13.5px; }
.invoice-row span.date{ color:rgba(251,246,232,0.5); }
.card-mock{ display:flex; align-items:center; gap:12px; padding:14px; border:1px solid var(--line); border-radius:12px; }
.card-mock .card-icon{ width:40px; height:28px; border-radius:4px; background:linear-gradient(135deg,var(--mango),var(--pink)); }
.danger-box{ border:1px solid rgba(255,107,107,0.3); border-radius:12px; padding:20px; }
.danger-box p{ font-size:13px; color:rgba(251,246,232,0.6); margin-bottom:14px; }

@media (prefers-reduced-motion: reduce){
  .spinner{ animation:none !important; }
}

/* ---------------- availability schedules ---------------- */
/* The [hidden] attribute LOSES to the display:flex/block these
   elements already have, so it has to be forced. */
.pm-section[hidden], .pm-item[hidden], .pm-tab[hidden], .pm-empty[hidden]{ display:none !important; }
.pm-empty{ text-align:center; padding:48px 0; opacity:.6; font-size:14px; }

/* editor: the little clock buttons on sections and dishes */
.sched-btn{
  display:inline-flex; align-items:center; gap:5px; background:none;
  border:1px solid rgba(251,246,232,0.18); color:rgba(251,246,232,0.55);
  font-size:11px; font-weight:600; padding:4px 10px; border-radius:100px;
  cursor:pointer; font-family:inherit; white-space:nowrap;
}
.sched-btn:hover{ color:var(--paper); border-color:rgba(251,246,232,0.4); }
.sched-btn.on{ color:var(--mango); border-color:var(--mango); background:rgba(240,130,60,0.08); }
/* The section header already styles EVERY button inside it (no border,
   dim text, red on hover — that's the trash can's look) with higher
   specificity than .sched-btn, so the clock has to be restated here. */
.editor-cat-head .sched-btn{
  border:1px solid rgba(251,246,232,0.18); color:rgba(251,246,232,0.55); font-size:11px;
}
.editor-cat-head .sched-btn:hover{ color:var(--paper); border-color:rgba(251,246,232,0.4); }
.editor-cat-head .sched-btn.on{ color:var(--mango); border-color:var(--mango); }
.editor-cat-head .sched-btn.on:hover{ color:var(--mango); }

/* the schedule dialog (sits on the light .modal-box) */
.sched-modal .sched-mode{ display:flex; flex-direction:column; gap:8px; margin:6px 0 14px; }
.sched-modal .sched-mode label{ display:flex; align-items:center; gap:8px; font-size:14px; font-weight:600; cursor:pointer; }
.sched-presets{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.sched-preset{
  border:1px solid rgba(23,24,26,0.2); background:#fff; color:var(--ink); border-radius:100px;
  padding:5px 12px; font-size:12px; font-weight:600; cursor:pointer; font-family:inherit;
}
.sched-preset:hover{ border-color:var(--ink); }
.sched-window{ border:1px solid rgba(23,24,26,0.12); border-radius:10px; padding:12px; margin-bottom:10px; background:rgba(23,24,26,0.03); }
.sched-days{ display:flex; gap:5px; margin-bottom:10px; }
.sched-day{
  flex:1; border:1px solid rgba(23,24,26,0.2); background:#fff; color:var(--ink); border-radius:8px;
  padding:7px 0; font-size:12px; font-weight:700; cursor:pointer; font-family:inherit;
}
.sched-day.on{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.sched-times{ display:flex; align-items:center; gap:8px; }
.sched-times input[type=time]{
  flex:1; border:1px solid rgba(23,24,26,0.2); background:#fff; color:var(--ink); border-radius:8px;
  padding:8px 10px; font-family:'Inter',sans-serif; font-size:14px;
}
.sched-times .sched-remove{ background:none; border:none; color:rgba(23,24,26,0.4); font-size:15px; cursor:pointer; }
.sched-times .sched-remove:hover{ color:#d33; }
.sched-add{
  background:none; border:1px dashed rgba(23,24,26,0.3); color:var(--ink); border-radius:8px;
  width:100%; padding:9px; font-size:13px; font-weight:600; cursor:pointer; font-family:inherit;
}
.sched-note{ font-size:12px; color:rgba(23,24,26,0.55); margin-top:10px; line-height:1.4; }
.sched-error{ color:#d33; font-size:12.5px; margin-top:8px; }

/* ---------------- WhatsApp: contact button + ordering (public menu) ---------------- */
.pm-wa-btn{
  display:inline-flex; align-items:center; gap:6px; margin-top:14px; padding:9px 16px;
  border:1.5px solid currentColor; border-radius:100px; font-size:13px; font-weight:700;
  text-decoration:none;
}
.pm-wa-btn:hover{ opacity:.8; }

/* + button / quantity stepper next to each dish's price */
.pm-item-side{ display:flex; flex-direction:column; align-items:flex-end; gap:8px; flex-shrink:0; }
.pm-order:empty{ display:none; }
.pm-add{
  width:32px; height:32px; border-radius:50%; border:1.5px solid currentColor; background:none;
  font-size:19px; line-height:1; font-weight:700; cursor:pointer; font-family:inherit; padding:0;
}
.pm-stepper{
  display:inline-flex; align-items:center; gap:2px; border:1.5px solid currentColor;
  border-radius:100px; padding:2px;
}
.pm-stepper button{
  width:28px; height:28px; border:none; background:none; border-radius:50%; font-size:17px;
  font-weight:700; line-height:1; cursor:pointer; color:inherit; font-family:inherit; padding:0;
}
.pm-stepper span{ min-width:22px; text-align:center; font-size:14px; font-weight:800; }

/* floating "Ver pedido" bar — sticks to the bottom of the viewport while the menu is on screen */
.pm-cartbar{
  position:sticky; bottom:14px; z-index:30; display:flex; align-items:center; gap:12px;
  width:calc(100% - 32px); margin:0 16px 14px; padding:14px 16px; border:none; border-radius:14px;
  font-family:inherit; font-size:15px; font-weight:800; cursor:pointer;
  box-shadow:0 10px 30px rgba(0,0,0,0.35);
}
.pm-cartbar[hidden]{ display:none; }
.pm-cartbar-count{
  min-width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,0.28);
  display:inline-flex; align-items:center; justify-content:center; font-size:13px;
}
.pm-cartbar-label{ flex:1; text-align:left; }
.pm-cartbar-total{ font-family:'Space Mono',monospace; }

/* the order sheet (bottom sheet on phones, centered card on desktop) */
.pm-sheet-overlay{
  position:fixed; inset:0; z-index:100; background:rgba(0,0,0,0.55);
  display:flex; align-items:flex-end; justify-content:center;
}
.pm-sheet-overlay[hidden]{ display:none; }
.pm-sheet{
  width:100%; max-width:640px; max-height:88vh; overflow-y:auto;
  border-radius:18px 18px 0 0; padding:20px 20px 24px;
}
@media (min-width: 680px){
  .pm-sheet-overlay{ align-items:center; padding:20px; }
  .pm-sheet{ border-radius:18px; max-height:80vh; }
}
.pm-sheet-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.pm-sheet-title{ font-size:20px; font-weight:800; }
.pm-sheet-close{ background:none; border:none; font-size:20px; color:inherit; opacity:.6; cursor:pointer; padding:4px 8px; }
.pm-line{
  display:grid; grid-template-columns:1fr auto auto; gap:12px; align-items:center;
  padding:11px 0; border-bottom:1px dashed rgba(127,127,127,0.28);
}
.pm-line-name{ font-weight:700; font-size:14.5px; min-width:0; overflow-wrap:anywhere; }
.pm-line-total{ font-family:'Space Mono',monospace; font-size:13px; font-weight:700; min-width:68px; text-align:right; }
.pm-sheet-notice{ font-size:12.5px; opacity:.8; margin:12px 0 0; line-height:1.4; }
.pm-sheet-note{
  width:100%; margin-top:14px; border:1px solid rgba(127,127,127,0.4); border-radius:10px;
  padding:10px 12px; background:transparent; color:inherit; font-family:inherit; font-size:14px;
  resize:vertical; min-height:62px; box-sizing:border-box;
}
.pm-sheet-total{ display:flex; justify-content:space-between; align-items:center; font-size:17px; font-weight:800; margin:16px 0 12px; }
.pm-send{
  display:block; text-align:center; text-decoration:none; padding:14px; border-radius:12px;
  font-weight:800; font-size:15px; background:#25D366; color:#073b1b; cursor:pointer;
}
.pm-send:not([href]){ opacity:.4; pointer-events:none; }
.pm-clear{
  display:block; margin:14px auto 0; background:none; border:none; color:inherit; opacity:.55;
  font-size:13px; text-decoration:underline; cursor:pointer; font-family:inherit;
}
.pm-sheet-fine{ font-size:12px; opacity:.6; text-align:center; margin:12px 0 0; line-height:1.4; }

/* ---------------- QR by table / zone ---------------- */
/* public page: "you are at Terraza · Mesa 5" */
.pm-table-badge{
  display:inline-block; margin:12px 6px 0; padding:5px 14px; border:1.5px solid currentColor;
  border-radius:100px; font-size:13px; font-weight:700;
}

/* menu-detail: the zone manager */
.qrz-form{ display:flex; gap:12px; flex-wrap:wrap; align-items:flex-end; margin-bottom:16px; }
.qrz-form label{ display:block; font-size:11.5px; color:rgba(251,246,232,0.55); margin-bottom:4px; }
.qrz-input{
  background:rgba(251,246,232,0.05); border:1px solid var(--line); color:var(--paper);
  border-radius:8px; padding:10px 12px; font-family:'Inter',sans-serif; font-size:14px;
}
.qrz-input:focus{ outline:none; border-color:var(--mango); }
.qrz-input.name{ width:210px; max-width:100%; }
.qrz-input.num{ width:84px; }
.qrz-zone{ border:1px solid var(--line); border-radius:12px; padding:14px; margin-top:12px; }
.qrz-zone-head{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.qrz-zone-head b{ font-size:15px; flex:1; min-width:120px; overflow-wrap:anywhere; }
.qrz-count{ font-size:12px; color:rgba(251,246,232,0.5); }
.qrz-chips{ display:flex; flex-wrap:wrap; gap:6px; margin:12px 0; }
.qrz-chip{
  display:inline-flex; align-items:center; gap:4px; padding:5px 6px 5px 11px;
  border:1px solid var(--line); border-radius:100px; font-size:12.5px;
}
.qrz-chip button{ background:none; border:none; color:rgba(251,246,232,0.4); cursor:pointer; font-size:12px; padding:0 4px; }
.qrz-chip button:hover{ color:#FF6B6B; }
.qrz-add{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.qrz-upsell{
  border:1px dashed var(--mango); border-radius:10px; padding:12px 14px;
  font-size:13.5px; margin-bottom:12px;
}
.qrz-upsell a{ color:var(--mango); font-weight:700; }

/* editor › Configuración › Pedidos por WhatsApp */
.orders-help{ font-size:12.5px; line-height:1.5; color:rgba(251,246,232,0.5); margin:10px 0 0; }
.orders-help:empty{ display:none; }
.orders-help a{ color:var(--mango); font-weight:700; }
.switch:disabled{ cursor:not-allowed; }

.orders-number{ margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
.orders-number[hidden]{ display:none; }
.orders-number label{ display:block; font-size:13px; font-weight:600; margin-bottom:8px; }
.orders-number-row{ display:flex; gap:8px; }
.orders-number-row input{
  flex:1; min-width:0; background:rgba(251,246,232,0.05); border:1px solid var(--line);
  color:var(--paper); border-radius:8px; padding:10px 12px; font-family:'Inter',sans-serif; font-size:14px;
}
.orders-number-row input:focus{ outline:none; border-color:var(--mango); }
.orders-number-hint{ font-size:12px; color:rgba(251,246,232,0.5); margin:8px 0 0; line-height:1.5; }
.orders-number-error{ font-size:12.5px; color:#FF8A8A; margin:8px 0 0; line-height:1.5; }
.orders-number-error[hidden]{ display:none; }

/* ---------------- language switcher on the public menu ---------------- */
.pm-langs{ display:flex; justify-content:center; gap:6px; margin-top:12px; flex-wrap:wrap; }
.pm-lang{
  min-width:38px; padding:5px 10px; border-radius:100px; border:1.5px solid rgba(127,127,127,0.35);
  background:none; color:inherit; font:700 12px/1 inherit; font-family:inherit; letter-spacing:.04em;
  cursor:pointer; opacity:.65;
}
.pm-lang.active{ opacity:1; }
.pm-lang:hover{ opacity:1; }

/* editor › Configuración › Idiomas */
.lang-settings{ margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
.lang-settings[hidden]{ display:none; }
.lang-settings > b{ display:block; font-size:14px; margin-bottom:10px; }
.lang-settings label{ display:block; font-size:13px; font-weight:600; margin:10px 0 6px; }
.lang-settings select{
  width:100%; background:rgba(251,246,232,0.05); border:1px solid var(--line); color:var(--paper);
  border-radius:8px; padding:10px 12px; font-family:'Inter',sans-serif; font-size:14px;
}
.lang-checks{ display:flex; flex-wrap:wrap; gap:8px; }
.lang-settings .lang-check{
  display:inline-flex; align-items:center; gap:6px; margin:0; padding:7px 12px; font-weight:500;
  border:1px solid var(--line); border-radius:100px; cursor:pointer;
}
.lang-check.locked{ opacity:.45; cursor:not-allowed; }

/* >>> menuqr: dialogs-tabs-descriptions (do not edit this block by hand; re-run fix_styles.py to refresh) >>> */

/* Editor tab bar: five tabs fit the 400px sidebar on a desktop; on a narrower screen the row scrolls
   sideways instead of pushing the last tab outside its rounded container. */
.editor-tabs{
  gap:4px; overflow-x:auto; overflow-y:hidden; max-width:100%; box-sizing:border-box;
  scrollbar-width:none; -ms-overflow-style:none; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch;
}
.editor-tabs::-webkit-scrollbar{ display:none; }
.editor-tab{
  flex:1 0 auto; padding:9px 10px; font-size:12px; white-space:nowrap; scroll-snap-align:center;
  font-family:inherit; cursor:pointer;
}
@media (max-width:980px){
  .editor-tab{ padding:11px 14px; font-size:13px; min-height:40px; }
}

/* A dish's description wraps instead of pushing the price off the screen. */
.pm-item-desc, .m-desc, .retro-desc, .floral-desc{ overflow-wrap:anywhere; word-break:break-word; }
.pm-item-desc{ display:block; }

/* In-page dialogs (MenuQR.dialog): they replace the browser's own prompt() / confirm() boxes. */
html.mq-dialog-open body{ overflow:hidden; }
.mq-dialog-overlay{ z-index:400; overflow-y:auto; -webkit-overflow-scrolling:touch; }
.mq-dialog{
  max-width:420px; max-height:calc(100vh - 40px); max-height:calc(100dvh - 40px); overflow-y:auto;
  padding:26px 24px 22px; text-align:left;
}
.mq-dialog .mq-dialog-title{ font-family:'Bebas Neue',sans-serif; font-size:26px; line-height:1.1; margin:0 0 10px; padding-right:8px; }
.mq-dialog .mq-dialog-message{ font-size:14.5px; line-height:1.5; margin:0 0 6px; color:rgba(23,24,26,0.78); overflow-wrap:anywhere; }
.mq-dialog .mq-dialog-form{ margin:0; }
.mq-dialog .mq-field{ display:block; margin:12px 0 0; }
.mq-dialog .mq-field-label{ display:block; font-size:12.5px; font-weight:700; margin-bottom:6px; color:rgba(23,24,26,0.72); }
.mq-dialog .mq-input{
  display:block; width:100%; box-sizing:border-box; min-height:46px; padding:11px 13px; font-size:16px; /* 16px: iOS doesn't zoom in */
  font-family:'Inter',sans-serif; color:var(--ink); background:#fff;
  border:1.5px solid rgba(23,24,26,0.22); border-radius:10px; outline:none;
}
.mq-dialog .mq-input:focus{ border-color:var(--ink); box-shadow:0 0 0 3px rgba(226,62,130,0.22); }
.mq-dialog .mq-input.mq-invalid{ border-color:#d33; }
.mq-dialog .mq-dialog-error{ margin:10px 0 0; font-size:13px; font-weight:600; color:#c0392b; }
.mq-dialog .mq-dialog-error[hidden]{ display:none; }
.mq-dialog .mq-dialog-actions{ display:flex; gap:10px; justify-content:flex-end; margin-top:20px; }
.mq-dialog .mq-btn{
  min-height:46px; padding:0 20px; border-radius:100px; font-family:inherit; font-size:15px; font-weight:700;
  cursor:pointer; border:1.5px solid transparent; line-height:1; white-space:nowrap;
}
.mq-dialog .mq-btn-ok{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.mq-dialog .mq-btn-ok.btn-danger{ background:#d33; border-color:#d33; color:#fff; }
.mq-dialog .mq-btn:not(.mq-btn-ok){ background:transparent; color:var(--ink); border-color:rgba(23,24,26,0.28); }
.mq-dialog .mq-btn:focus-visible{ outline:3px solid rgba(226,62,130,0.5); outline-offset:2px; }
@media (max-width:560px){
  /* Phone: the box sits near the TOP of the screen (the on-screen keyboard rises from the bottom and would
     cover a box placed in the middle), buttons are full width and easy to hit, "confirm" comes first. */
  .mq-dialog-overlay.modal-overlay{ align-items:flex-start; padding:max(14px, env(safe-area-inset-top)) 14px 14px; }
  .mq-dialog{ margin-top:6vh; max-width:none; padding:22px 18px 18px; }
  .mq-dialog .mq-dialog-actions{ flex-direction:column-reverse; gap:8px; }
  .mq-dialog .mq-btn{ width:100%; min-height:50px; }
}

/* <<< menuqr: dialogs-tabs-descriptions <<< */

/* >>> menuqr: qr-style >>> */
/* "Personalizar mi QR" panel (menu detail). */
#qrStylePanel .qs-row{ display:flex; gap:12px; margin-bottom:12px; }
#qrStylePanel .qs-color{ flex:1; display:flex; flex-direction:column; gap:6px; font-size:12.5px; font-weight:700; color:rgba(23,24,26,0.72); }
#qrStylePanel .qs-color input[type=color]{
  width:100%; height:46px; padding:3px; border:1.5px solid rgba(23,24,26,0.22); border-radius:10px; background:#fff; cursor:pointer;
}
#qrStylePanel .qs-check{ display:flex; align-items:center; gap:10px; font-size:14px; font-weight:600; margin:4px 0 10px; min-height:44px; cursor:pointer; }
#qrStylePanel .qs-check input{ width:20px; height:20px; accent-color:var(--ink); }
#qrStylePanel .qs-text{ display:block; font-size:12.5px; font-weight:700; color:rgba(23,24,26,0.72); }
#qrStylePanel .qs-text input{
  display:block; width:100%; box-sizing:border-box; margin-top:6px; min-height:46px; padding:11px 13px; font-size:16px;
  font-family:'Inter',sans-serif; color:var(--ink); background:#fff; border:1.5px solid rgba(23,24,26,0.22); border-radius:10px;
}
#qrStylePanel .qs-problem{ margin:10px 0 0; font-size:13px; font-weight:600; color:#c0392b; }
#qrStylePanel .qs-problem[hidden], #qrStylePanel .qs-locked[hidden]{ display:none; }
#qrStylePanel .qs-locked{ margin:0 0 12px; padding:10px 12px; border-radius:10px; background:rgba(226,62,130,0.1); font-size:13px; font-weight:600; }
#qrStylePanel .qs-locked a{ color:var(--ink); }
#qrStylePanel .qs-actions{ display:flex; gap:10px; margin-top:16px; }
#qrStylePanel .qs-actions .dl-btn{ flex:1; min-height:46px; margin:0; }
#qrStylePanel .qs-actions .dl-btn:disabled, #qrStylePanel input:disabled{ opacity:0.45; cursor:not-allowed; }
@media (max-width:420px){
  #qrStylePanel .qs-row{ flex-direction:column; }
  #qrStylePanel .qs-actions{ flex-direction:column; }
}
/* <<< menuqr: qr-style <<< */

/* >>> menuqr: editor-tour >>> */
/* The editor's top bar wraps instead of pushing "Publicar" off a narrow screen. */
.editor-topbar-right{ flex-wrap:wrap; row-gap:8px; }
@media (max-width:560px){
  .editor-topbar-right{ width:100%; }
  .editor-topbar-right .save-status{ flex-basis:100%; }
}

/* First-visit guide (static/js/editor-tour.js). */
html.tour-open body{ overflow-x:hidden; }
.tour-shade{ position:fixed; inset:0; z-index:450; background:transparent; }
.tour-ring{
  position:fixed; z-index:451; pointer-events:none; border-radius:14px; border:2px solid var(--mango);
  box-shadow:0 0 0 9999px rgba(10,11,12,0.62); transition:top .2s ease, left .2s ease, width .2s ease, height .2s ease;
}
.tour-card{
  position:fixed; z-index:452; width:330px; max-width:calc(100vw - 24px); box-sizing:border-box;
  background:var(--paper); color:var(--ink); border-radius:16px; padding:18px 18px 14px; box-shadow:0 30px 70px rgba(0,0,0,0.5);
}
.tour-card.tour-floating{ top:50%; left:50%; transform:translate(-50%,-50%); }
.tour-count{ font-size:11.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:rgba(23,24,26,0.5); }
.tour-title{ font-family:'Bebas Neue',sans-serif; font-size:26px; line-height:1.1; margin:4px 0 6px; }
.tour-text{ font-size:14.5px; line-height:1.5; margin:0 0 14px; color:rgba(23,24,26,0.8); }
.tour-actions{ display:flex; align-items:center; gap:8px; }
.tour-skip{ margin-right:auto; background:none; border:none; padding:10px 4px; font-family:inherit; font-size:13px; font-weight:600; color:rgba(23,24,26,0.55); cursor:pointer; text-decoration:underline; }
.tour-btn{
  min-height:42px; padding:0 18px; border-radius:100px; font-family:inherit; font-size:14px; font-weight:700; cursor:pointer;
  border:1.5px solid rgba(23,24,26,0.28); background:transparent; color:var(--ink);
}
.tour-btn[hidden]{ display:none; }
.tour-next{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.tour-btn:focus-visible, .tour-skip:focus-visible{ outline:3px solid rgba(226,62,130,0.5); outline-offset:2px; }
@media (max-width:560px){
  /* Phone: the card is a sheet at the bottom with big buttons; the highlighted tab sits in the upper part of the screen. */
  .tour-card{ left:12px; right:12px; bottom:max(12px, env(safe-area-inset-bottom)); top:auto !important; width:auto; max-width:none; transform:none; }
  .tour-card.tour-floating{ top:auto; left:12px; transform:none; }
  .tour-btn{ min-height:48px; padding:0 22px; }
  .tour-skip{ min-height:44px; }
}
@media (prefers-reduced-motion: reduce){ .tour-ring{ transition:none; } }
/* <<< menuqr: editor-tour <<< */

/* >>> menuqr: editor-mobile >>> */
/* On a phone the editor's single column used to be as wide as its widest content (the tab row), so the whole
   page was wider than the screen and everything was cut off on the right. minmax(0,1fr) lets it shrink. */
@media (max-width:980px){
  /* .editor-layout also had padding:40px 0 90px, which wiped out the page's side margin: give it back. */
  .editor-layout{ grid-template-columns:minmax(0,1fr); gap:24px; padding:24px 16px 90px; }
  .account-layout{ grid-template-columns:minmax(0,1fr); }
}
.account-layout > *{ min-width:0; }
.editor-layout > *{ min-width:0; }
.editor-sidebar, .editor-pane, .editor-pane .panel{ max-width:100%; box-sizing:border-box; }
/* <<< menuqr: editor-mobile <<< */

/* >>> menuqr: editor-collapse >>> */
/* Minimise a dish (one line: name, price) or a whole category, so a menu with 30 dishes stays manageable. */
.editor-collapse-all{ display:flex; gap:8px; justify-content:flex-end; margin:0 0 12px; flex-wrap:wrap; }
.editor-collapse-all button{
  font:inherit; font-size:12.5px; font-weight:700; padding:8px 14px; min-height:36px; border-radius:100px; cursor:pointer;
  background:transparent; color:rgba(251,246,232,0.7); border:1px solid var(--line);
}
.editor-collapse-all button:hover{ color:var(--paper); border-color:rgba(251,246,232,0.35); }

.collapse-btn{
  background:none; border:none; color:rgba(251,246,232,0.55); cursor:pointer; font-size:15px; line-height:1;
  width:32px; height:32px; border-radius:8px; display:inline-flex; align-items:center; justify-content:center; flex:none;
}
.collapse-btn:hover{ color:var(--paper); background:rgba(251,246,232,0.08); }
.editor-cat-head .collapse-btn{ margin-right:-2px; }
.editor-cat-head .cat-count{ display:none; font-family:'Space Mono',monospace; font-size:11.5px; color:rgba(251,246,232,0.5); }
.editor-cat.is-collapsed .cat-count{ display:inline; }
.editor-cat.is-collapsed .editor-cat-body{ display:none; }
.editor-cat.is-collapsed .collapse-btn{ transform:rotate(-90deg); }

/* The one-line version of a dish: hidden while it is open, the only thing shown while it is minimised. */
.editor-item-row .item-summary{
  display:none; align-items:center; gap:10px; width:100%; box-sizing:border-box; min-height:44px; padding:8px 10px; text-align:left;
  font:inherit; color:var(--paper); background:rgba(251,246,232,0.04); border:1px solid var(--line); border-radius:10px; cursor:pointer;
}
.editor-item-row .item-summary:hover{ background:rgba(251,246,232,0.08); }
.editor-item-row.is-collapsed .item-summary{ display:flex; }
/* !important: the dish's inner blocks carry an inline display:flex that would otherwise win */
.editor-item-row.is-collapsed > :not(.item-summary){ display:none !important; }
.item-summary .chev{ color:rgba(251,246,232,0.55); flex:none; }
.item-summary .sum-name{ flex:1; min-width:0; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.item-summary .sum-price{ font-family:'Space Mono',monospace; font-size:13px; color:rgba(251,246,232,0.75); flex:none; }
.item-summary .sum-flag{ font-size:11px; font-weight:700; padding:2px 8px; border-radius:100px; background:rgba(226,62,130,0.25); color:var(--mango); flex:none; }
/* On a phone the category's header (arrow, handle, name, Horario, count, bin) must shrink instead of clipping. */
.editor-cat-head{ min-width:0; }
.editor-cat-head input{ min-width:0; }
.editor-cat-head .sched-btn{ flex:none; }
@media (max-width:560px){
  .editor-cat-head{ gap:4px; padding:10px 8px; }
  .editor-cat-head .sched-btn{ padding-left:8px; padding-right:8px; }
}
/* <<< menuqr: editor-collapse <<< */

/* >>> menuqr: floral-public >>> */
/* The Floral template on the public page: garlands top and bottom, a vine down each side, a fine frame. */
.pm-floral{ position:relative; font-family:'Cormorant Garamond', Georgia, serif; }
.pm-floral > header, .pm-floral > main, .pm-floral > .pm-promos{ position:relative; z-index:1; }
.pm-floral-decor{ position:absolute; z-index:0; pointer-events:none; }
.pm-floral .pmf-top{ top:0; left:0; width:100%; height:auto; aspect-ratio:768/200; }
.pm-floral .pmf-bottom{ bottom:0; left:0; width:100%; height:auto; aspect-ratio:768/184; }
.pm-floral .pmf-frame{ inset:10px 8px; border:1.5px solid; opacity:.5; }
.pm-floral::before, .pm-floral::after{
  content:""; position:absolute; z-index:0; pointer-events:none; top:150px; bottom:150px; width:34px;
  background:var(--pmf-vine, none) repeat-y 0 0 / 34px 300px; opacity:.9;
}
.pm-floral::before{ left:6px; }
.pm-floral::after{ right:6px; transform:scaleX(-1); }

.pm-floral .pm-header{ padding-top:calc(min(100vw, 640px) * .27); }
.pm-floral .pm-restname{ font-weight:400; font-size:clamp(44px, 11vw, 64px); line-height:1.05; }
.pm-floral .pm-restsub{ font-size:15px; letter-spacing:.14em; opacity:.8; }
.pm-floral .pm-sections{ padding:8px 44px calc(min(100vw, 640px) * .27 + 36px); }
.pm-floral .pm-section-title{ text-align:center; font-weight:500; letter-spacing:.14em; font-size:clamp(19px, 3.4vw, 24px); }
.pm-floral .pm-section-title::after{ content:""; display:block; width:48px; height:1px; margin:10px auto 0; background:currentColor; opacity:.4; }
.pm-floral .pm-item{ border-bottom:1px dotted rgba(127,127,127,.4); }
.pm-floral .pm-item-name{ font-style:italic; font-weight:500; font-size:19px; }
.pm-floral .pm-item-desc{ font-family:Arial, Helvetica, sans-serif; font-style:italic; font-size:12.5px; opacity:.75; }
.pm-floral .pm-item-price{ font-family:inherit; font-style:italic; font-weight:600; font-size:18px; }
.pm-floral .pm-tab{ font-family:inherit; font-size:15px; }
@media (max-width:420px){
  .pm-floral .pm-sections{ padding-left:40px; padding-right:40px; }
}
/* <<< menuqr: floral-public <<< */

/* >>> menuqr: legal >>> */
/* Terms and Privacy pages, and the Terms · Privacy links in every footer. */
.legal{ max-width:760px; padding-top:28px; padding-bottom:40px; }
.legal h1{ margin:6px 0 4px; }
.legal-updated{ font-size:13px; opacity:.6; margin:0 0 26px; }
.legal h2{ font-family:'Inter',sans-serif; font-size:18px; font-weight:700; margin:30px 0 8px; }
.legal p, .legal li{ font-size:15.5px; line-height:1.7; }
.legal p{ margin:0 0 12px; }
.legal ul{ margin:0 0 12px; padding-left:22px; }
.legal li{ margin-bottom:6px; }
.legal a{ color:inherit; text-decoration:underline; text-underline-offset:3px; }
.foot-legal{ display:inline-flex; gap:16px; flex-wrap:wrap; }
.foot-legal a{ color:inherit; opacity:.7; text-decoration:none; }
.foot-legal a:hover{ opacity:1; text-decoration:underline; }
.auth-note a{ color:inherit; text-decoration:underline; }
@media (max-width:600px){
  .legal{ padding-top:16px; }
  .legal p, .legal li{ font-size:15px; }
  .legal h2{ font-size:17px; margin-top:24px; }
}
/* <<< menuqr: legal <<< */

/* >>> menuqr: swatch-ring >>> */
/* Colour circles: a light ring + a dark hairline, so a swatch is visible on any background (even one the same colour). */
.theme-swatch{ -webkit-appearance:none; appearance:none; width:34px; height:34px; padding:0; border:0; border-radius:50%; background:none; cursor:pointer; box-shadow:0 0 0 2px #FBF6E8, 0 0 0 3px rgba(23,24,26,0.55); }
.theme-swatch:disabled{ opacity:.5; cursor:not-allowed; }
.theme-swatch::-webkit-color-swatch-wrapper{ padding:0; }
.theme-swatch::-webkit-color-swatch{ border:0; border-radius:50%; }
.theme-swatch::-moz-color-swatch{ border:0; border-radius:50%; }
.template-switch-row .swatch{ box-shadow:0 0 0 2px #FBF6E8, 0 0 0 3px rgba(23,24,26,0.55); }
#publishNeeds{ display:flex; flex-wrap:wrap; gap:6px 14px; align-items:center; justify-content:center; padding:10px 16px; background:#EF8240; color:#17181A; font-size:13.5px; font-weight:600; line-height:1.4; }
#publishNeeds[hidden]{ display:none; }
#publishNeeds a{ color:#17181A; font-weight:800; text-decoration:underline; white-space:nowrap; }
/* <<< menuqr: swatch-ring <<< */

/* language links in the footer of the public pages */
.foot-lang{ display:inline-flex; gap:14px; flex-wrap:wrap; }
.foot-lang a{ color:inherit; opacity:.7; text-decoration:none; }
.foot-lang a:hover{ opacity:1; text-decoration:underline; }
.foot-lang a[aria-current]{ opacity:1; font-weight:600; }

/* >>> menuqr: retro-playful >>> */
/* "Retro Playful" (premium): a poster-style page. Every rule is scoped to this layout. */
.pm-retropl{
  --rp-stroke:3px; --rp-gutter:clamp(18px, 5vw, 56px);
  --rp-soft:color-mix(in srgb, var(--rp-ink) 78%, var(--rp-bg));
  --rp-line:color-mix(in srgb, var(--rp-ink) 22%, transparent);
  --rp-display:'Bricolage Grotesque','Arial Narrow',sans-serif; --rp-script:'Instrument Serif',Georgia,serif;
  max-width:1080px; overflow-x:clip; font-size:16px; line-height:1.45; -webkit-font-smoothing:antialiased;
}
.pm-retropl svg{ display:block; }
.pm-retropl .rp-header{ padding:0 var(--rp-gutter); text-align:left; }

/* brand bar */
.pm-retropl .rp-brandbar{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; padding:22px 0 16px; border-bottom:var(--rp-stroke) solid var(--rp-ink); }
.pm-retropl .rp-brand{ display:flex; align-items:center; gap:12px; min-width:0; }
.pm-retropl .rp-brand__mark{ width:44px; height:44px; flex:none; }
.pm-retropl .rp-brand__logo{ height:48px; max-width:140px; object-fit:contain; flex:none; }
.pm-retropl .rp-brand__text{ display:flex; flex-direction:column; min-width:0; }
.pm-retropl .rp-brand__name{ font-family:var(--rp-display); font-weight:800; font-stretch:75%; font-size:28px; line-height:.9; letter-spacing:-.01em; text-transform:uppercase; overflow-wrap:anywhere; }
.pm-retropl .rp-brand__sub{ font-family:var(--rp-script); font-style:italic; font-size:17px; line-height:1.1; color:var(--rp-accent); }
.pm-retropl .rp-brandbar__side{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pm-retropl .rp-pill, .pm-retropl .pm-lang{
  display:inline-flex; align-items:center; height:34px; padding:0 14px; border:2px solid var(--rp-ink); border-radius:999px;
  font:inherit; font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--rp-ink); background:none; text-decoration:none; cursor:pointer;
}
.pm-retropl .pm-langs{ display:flex; gap:6px; margin:0; }
.pm-retropl .pm-lang.active{ background:var(--rp-ink); color:var(--rp-bg) !important; border-color:var(--rp-ink) !important; }

/* hero */
.pm-retropl .rp-hero{ position:relative; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); align-items:center; gap:20px; padding:clamp(28px, 6vw, 64px) 0 clamp(34px, 6vw, 70px); }
.pm-retropl .rp-kicker{ display:flex; align-items:center; gap:10px; margin:0; color:var(--rp-accent); font-weight:600; font-size:12px; letter-spacing:.16em; text-transform:uppercase; }
.pm-retropl .rp-kicker::before{ content:""; width:34px; height:var(--rp-stroke); background:currentColor; flex:none; }
.pm-retropl .rp-headline{
  margin:16px 0 0; font-family:var(--rp-display); font-weight:800; font-stretch:75%; text-transform:uppercase;
  font-size:calc(clamp(52px, 14vw, 124px) * var(--rp-scale, 1)); line-height:.82; letter-spacing:-.02em;
  text-shadow:.035em .035em 0 var(--rp-powder); overflow-wrap:anywhere;
}
.pm-retropl .rp-headline > span{ display:block; }
.pm-retropl .rp-outline{ color:transparent; -webkit-text-stroke:clamp(2px, .45vw, 4px) var(--rp-ink); text-shadow:none; padding-left:.55em; }
.pm-retropl .rp-tilt{ display:inline-block; transform:rotate(-4deg); transform-origin:left bottom; }
.pm-retropl .rp-hero__art{ position:relative; justify-self:center; width:min(100%, 400px); aspect-ratio:1/1.08; }
.pm-retropl .rp-hero__blob{ position:absolute; inset:6% 2% 4% 6%; background:var(--rp-powder); border-radius:58% 42% 55% 45% / 48% 56% 44% 52%; }
.pm-retropl .rp-hero__cup{ position:absolute; inset:0; width:100%; height:100%; }
.pm-retropl .rp-wiggle{ transform-origin:50% 85%; animation:rpWiggle 2.4s ease-in-out infinite; }
.pm-retropl .rp-sticker{ position:absolute; right:-2%; top:-4%; width:clamp(92px, 24vw, 128px); aspect-ratio:1; border-radius:50%; background:var(--rp-ink); color:var(--rp-bg); display:grid; place-items:center; }
.pm-retropl .rp-ring{ position:absolute; inset:5%; width:90%; height:90%; animation:rpSpin 18s linear infinite; }
.pm-retropl .rp-ring text{ font-family:'Rubik',sans-serif; font-weight:600; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; fill:currentColor; }
.pm-retropl .rp-sticker__star{ width:34%; height:34%; color:var(--rp-powder); }
@keyframes rpWiggle{ 0%,100%{ transform:rotate(-3deg); } 50%{ transform:rotate(3deg); } }
@keyframes rpSpin{ to{ transform:rotate(360deg); } }
@keyframes rpTick{ to{ transform:translateX(-50%); } }

/* scrolling band */
.pm-retropl .rp-band-wrap{ overflow:hidden; padding:14px 0; }
.pm-retropl .rp-band{ background:var(--rp-ink); color:var(--rp-bg); transform:rotate(-1.6deg); margin:0 -20px; overflow:hidden; white-space:nowrap; }
.pm-retropl .rp-band__track{ display:inline-flex; padding:12px 0; animation:rpTick 30s linear infinite; }
.pm-retropl .rp-band__item{ display:inline-flex; align-items:center; gap:20px; padding-right:20px; font-family:var(--rp-display); font-weight:800; font-stretch:75%; font-size:24px; text-transform:uppercase; }
.pm-retropl .rp-band__item svg{ width:18px; height:18px; color:var(--rp-powder); }
.pm-retropl .rp-promos{ padding:14px var(--rp-gutter) 0; }

/* sticky controls */
.pm-retropl .rp-controls{ position:sticky; top:0; z-index:30; margin-top:28px; background:var(--rp-bg); border-top:var(--rp-stroke) solid var(--rp-ink); border-bottom:var(--rp-stroke) solid var(--rp-ink); }
.pm-retropl .rp-controls__inner{ display:flex; flex-direction:column; gap:10px; padding:12px var(--rp-gutter) 10px; }
.pm-retropl .rp-tools{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-width:0; }
.pm-retropl .rp-tools[hidden]{ display:none; }
.pm-retropl .rp-search{ flex:1 1 200px; min-width:0; display:flex; align-items:center; gap:8px; height:40px; padding:0 14px; border:2px solid var(--rp-ink); border-radius:999px; }
.pm-retropl .rp-search svg{ flex:none; width:17px; height:17px; }
.pm-retropl .rp-search input{ flex:1; min-width:0; width:auto; height:auto; padding:0; border:0; border-radius:0; background:none; outline:0; font:inherit; font-size:16px; color:var(--rp-ink); }
.pm-retropl .rp-search input::placeholder{ color:var(--rp-soft); font-family:var(--rp-script); font-style:italic; font-size:18px; }
.pm-retropl .rp-search input::-webkit-search-cancel-button{ display:none; }
.pm-retropl .rp-search:focus-within{ box-shadow:3px 3px 0 var(--rp-powder); }
.pm-retropl .rp-filter-toggle, .pm-retropl .pm-chip{
  flex:none; height:40px; padding:0 14px; border:2px solid var(--rp-ink); border-radius:999px; background:none; color:var(--rp-ink);
  font:inherit; font-weight:600; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; cursor:pointer;
}
.pm-retropl .rp-filter-toggle[hidden]{ display:none; }
.pm-retropl .rp-filter-toggle.has-active{ background:var(--rp-powder); }
.pm-retropl .pm-chip[aria-pressed="true"]{ background:var(--rp-powder); box-shadow:3px 3px 0 var(--rp-ink); border-color:var(--rp-ink); }
.pm-retropl .rp-diet{ display:none; flex-basis:100%; gap:8px; overflow-x:auto; padding:2px 4px 4px 2px; }
.pm-retropl .rp-diet.open{ display:flex; }
.pm-retropl .rp-jump{ border-radius:0; position:static; display:flex; gap:22px; overflow-x:auto; scrollbar-width:none; padding:10px 0 0; border:0; border-top:1.5px solid var(--rp-line); background:none; }
.pm-retropl .rp-jump::-webkit-scrollbar{ display:none; }
.pm-retropl .rp-jump__btn{
  flex:none; padding:0 0 3px; border:0; border-bottom:3px solid transparent; border-radius:0; background:none; opacity:1; cursor:pointer;
  color:var(--rp-soft); font-family:var(--rp-display); font-weight:800; font-stretch:75%; font-size:18px; text-transform:uppercase; transition:color .2s, border-color .2s;
}
.pm-retropl .rp-jump__btn.active{ color:var(--rp-ink); border-bottom-color:var(--rp-accent); }

/* menu head + grid */
.pm-retropl .rp-menuhead{ padding:clamp(36px, 6vw, 72px) var(--rp-gutter) 0; }
.pm-retropl .rp-menutitle{ margin:0; padding-bottom:16px; border-bottom:var(--rp-stroke) solid var(--rp-ink); font-family:var(--rp-display); font-weight:800; font-stretch:75%; font-size:clamp(40px, 9vw, 68px); line-height:.9; text-transform:uppercase; }
.pm-retropl .rp-menutitle em{ margin-left:.2em; font-family:var(--rp-script); font-weight:400; font-style:italic; text-transform:none; color:var(--rp-accent); font-size:.62em; }
.pm-retropl .rp-hint{ margin:8px 0 0; font-family:var(--rp-script); font-style:italic; font-size:19px; color:var(--rp-accent); }
.pm-retropl .rp-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:56px; padding:40px var(--rp-gutter) 24px; counter-reset:rpcat; }
.pm-retropl .rp-grid .pm-noresults, .pm-retropl .rp-grid .pm-empty{ grid-column:1 / -1; }
.pm-retropl .pm-noresults b{ font-family:var(--rp-display); font-weight:800; font-stretch:75%; text-transform:uppercase; font-size:clamp(48px, 12vw, 96px); line-height:.85; color:transparent; -webkit-text-stroke:3px var(--rp-ink); }
.pm-retropl .rp-cat{ padding-top:0; scroll-margin-top:200px; counter-increment:rpcat; }
.pm-retropl .rp-cat__head{ display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:14px; }
.pm-retropl .rp-cat__num{ width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:var(--rp-accent); color:var(--rp-bg); font-weight:600; font-size:14px; }
.pm-retropl .rp-cat__num::before{ content:counter(rpcat, decimal-leading-zero); }
.pm-retropl .rp-cat__title{ margin:0; font-family:var(--rp-display); font-weight:800; font-stretch:75%; font-size:clamp(32px, 7.5vw, 54px); line-height:.85; text-transform:uppercase; letter-spacing:-.005em; color:var(--rp-ink); overflow-wrap:anywhere; }
.pm-retropl .rp-cat__icon{ width:54px; height:54px; color:var(--rp-ink); }
.pm-retropl .rp-rows{ margin-top:14px; }

/* rows */
.pm-retropl .rp-row{ display:flex; align-items:flex-start; gap:10px; padding:13px 0; border-bottom:1.5px solid var(--rp-line); }
.pm-retropl .rp-row:last-child{ border-bottom:0; }
.pm-retropl .rp-row .pm-item-main{ flex:0 1 auto; max-width:72%; gap:2px; }
.pm-retropl .rp-row .pm-item-name{ font-size:clamp(16px, 4.4vw, 18px); font-weight:500; }
.pm-retropl .rp-row .pm-item-desc{ font-size:13.5px; color:var(--rp-soft); opacity:1; line-height:1.4; }
.pm-retropl .rp-leader{ flex:1; min-width:14px; height:1.3em; border-bottom:2px dotted var(--rp-powder); transform:translateY(-3px); }
.pm-retropl .rp-row .pm-item-price{ font-family:var(--rp-display); font-weight:800; font-stretch:75%; font-size:21px; line-height:1.2; font-variant-numeric:tabular-nums; }
.pm-retropl .rp-row .pm-item-side{ flex-direction:row; align-items:center; gap:10px; }
.pm-retropl .rp-row.is-out .pm-item-name, .pm-retropl .rp-row.is-out .pm-item-price{ text-decoration:line-through; opacity:.55; }
.pm-retropl .pm-item-chips{ display:flex; flex-wrap:wrap; gap:4px; margin-top:6px; }
.pm-retropl .rp-tag{ display:inline-flex; align-items:center; height:20px; padding:0 8px; border-radius:999px; background:var(--rp-powder); color:var(--rp-ink); font-size:9.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
.pm-retropl .rp-tag--new{ background:var(--rp-accent); color:var(--rp-bg); }
.pm-retropl .rp-tag--out{ background:none; border:1.5px solid var(--rp-ink); }
.pm-retropl .rp-tag--warn{ background:none; border:1.5px dashed var(--rp-ink); }
.pm-retropl .pm-promo-chip{ margin:0 !important; }

/* cart (shared behaviour, this layout's look) */
.pm-retropl .pm-cartbar{ border-radius:999px; font-family:var(--rp-display); font-weight:800; font-stretch:75%; text-transform:uppercase; box-shadow:4px 4px 0 var(--rp-powder); }
.pm-retropl .pm-add, .pm-retropl .pm-stepper{ border-width:2px; }

/* footer */
.pm-retropl .rp-foot{ background:none; border-top:0; padding:clamp(48px, 9vw, 100px) var(--rp-gutter) 28px; text-align:center; }
.pm-retropl .rp-foot__big{ margin:0; font-family:var(--rp-display); font-weight:800; font-stretch:75%; text-transform:uppercase; font-size:clamp(48px, 13vw, 140px); line-height:.82; letter-spacing:-.02em; color:transparent; -webkit-text-stroke:clamp(2px, .4vw, 4px) var(--rp-ink); overflow-wrap:anywhere; }
.pm-retropl .rp-foot__big span{ display:block; color:var(--rp-ink); -webkit-text-stroke:0; text-shadow:.035em .035em 0 var(--rp-powder); }
.pm-retropl .rp-foot__meta{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 24px; margin-top:36px; padding-top:16px; border-top:var(--rp-stroke) solid var(--rp-ink); font-size:13px; }

@media (min-width:760px){
  .pm-retropl .rp-grid{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:clamp(40px, 7vw, 100px); row-gap:64px; }
  .pm-retropl .rp-grid > .rp-cat:nth-child(even){ margin-top:80px; }
  .pm-retropl .rp-controls__inner{ flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:space-between; }
  .pm-retropl .rp-tools{ flex:1 1 360px; justify-content:flex-end; }
  .pm-retropl .rp-search{ max-width:300px; }
  .pm-retropl .rp-jump{ flex:1 1 100%; }
}
@media (max-width:759px){
  .pm-retropl .rp-hero{ grid-template-columns:minmax(0,1fr); }
  .pm-retropl .rp-hero__art{ width:min(78%, 340px); }
  .pm-retropl .rp-brand__name{ font-size:24px; }
}
.pm-retropl.pm-embedded{ min-height:0; max-width:none; border-radius:0; box-shadow:none; margin:0; }
.pm-retropl.pm-embedded .rp-controls{ position:static; }
@media (prefers-reduced-motion: reduce){ .pm-retropl .rp-wiggle, .pm-retropl .rp-ring, .pm-retropl .rp-band__track{ animation:none !important; } }

/* the simple card (create-menu review, where text is edited in place) and the template tile */
.menu-card.layout-retro-playful{ font-family:'Rubik', system-ui, sans-serif; border:3px solid currentColor; }
.layout-retro-playful .m-head b{ font-family:'Bricolage Grotesque','Arial Narrow',sans-serif; font-weight:800; font-stretch:75%; text-transform:uppercase; font-size:34px; line-height:.9; }
.layout-retro-playful .m-section-title{ font-family:'Bricolage Grotesque','Arial Narrow',sans-serif; font-weight:800; font-stretch:75%; text-transform:uppercase; font-size:26px; }
.rp-mini{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; width:100%; }
.rp-mini-name{ font-family:'Bricolage Grotesque','Arial Narrow',sans-serif; font-weight:800; font-stretch:75%; text-transform:uppercase; font-size:24px; line-height:.9; text-align:center; }
.rp-mini-dots{ display:flex; gap:6px; }
.rp-mini-dots i{ display:block; width:12px; height:12px; border-radius:50%; }
/* <<< menuqr: retro-playful <<< */

/* >>> menuqr: preview-live >>> */
/* the live preview: the real menu page inside a scrolling frame */
.tpl-preview-large.tpl-live{ display:block; height:min(62vh, 520px); overflow-y:auto; overflow-x:hidden; -webkit-overflow-scrolling:touch; border:1px solid rgba(23,24,26,0.12); }
.tpl-live .pm-root{ min-height:0; max-width:none; border-radius:0; box-shadow:none; margin:0; }
.tpl-live .pm-tabs{ border-radius:0; }
.modal-box.modal-wide{ max-height:94vh; overflow-y:auto; }
/* on a phone the preview takes the whole screen: the menu big, the buttons always in reach */
@media (max-width:680px){
  #previewOverlay{ padding:0; }
  #previewOverlay .modal-box{ height:100vh; height:100dvh; max-height:none; border-radius:0; padding:56px 14px 14px; display:flex; flex-direction:column; overflow:hidden; }
  #previewOverlay .modal-close{ top:14px; right:16px; font-size:22px; }
  #previewOverlay .tpl-preview-large.tpl-live{ flex:1; height:auto; min-height:0; margin-bottom:12px; }
  #previewOverlay h3{ margin-bottom:2px; font-size:20px; }
  #previewOverlay #previewTag{ margin-bottom:10px !important; }
  #previewOverlay .modal-actions{ margin-top:0; }
}
/* <<< menuqr: preview-live <<< */

/* >>> menuqr: public-controls >>> */
/* Search box + diet/allergen chips: every template gets them (a layout can restyle them). */
.pm-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.pm-item[data-filtered], .pm-section[data-filtered]{ display:none !important; }
.pm-controls{ display:flex; flex-direction:column; gap:8px; padding:4px 16px 10px; }
.pm-controls[hidden], .pm-filters[hidden], .pm-noresults[hidden]{ display:none !important; }
.pm-search{ display:block; }
.pm-search input{
  width:100%; height:42px; padding:0 16px; border-radius:100px; border:1.5px solid rgba(127,127,127,.35);
  background:rgba(127,127,127,.08); color:inherit; font:inherit; font-size:14px; outline:0;
}
.pm-search input:focus{ border-color:currentColor; }
.pm-filters{ display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; padding-bottom:2px; }
.pm-filters::-webkit-scrollbar{ display:none; }
.pm-chip{
  flex:none; padding:6px 12px; border-radius:100px; border:1.5px solid rgba(127,127,127,.35);
  background:none; color:inherit; font:inherit; font-size:12px; font-weight:700; cursor:pointer;
}
.pm-chip[aria-pressed="true"]{ background:rgba(127,127,127,.22); border-color:currentColor; }
.pm-noresults{ text-align:center; padding:40px 0; opacity:.75; }
.pm-noresults b{ display:block; font-size:18px; margin-bottom:4px; }
.pm-floral > .pm-controls{ position:relative; z-index:1; }
/* <<< menuqr: public-controls <<< */

/* >>> menuqr: ink-ivory >>> */
/* "Ink & Ivory" (premium): a printed card on linen, ink drawings in the margins. Every rule is scoped to this layout. */
.pm-inkivory{
  --ii-display:'Bodoni Moda','Didot','Bodoni 72',Georgia,serif; --ii-swash:'Monsieur La Doulaise','Snell Roundhand','Apple Chancery',cursive;
  --ii-sign:'Mrs Saint Delafield','Snell Roundhand','Brush Script MT',cursive; --ii-body:'Jost','Futura','Century Gothic','Helvetica Neue',Arial,sans-serif;
  --ii-line:color-mix(in srgb, var(--ii-ink) 22%, transparent);
  max-width:none; margin:0; border-radius:0; box-shadow:none; font-weight:300; -webkit-font-smoothing:antialiased;
  padding:clamp(16px, 5vw, 56px) max(16px, env(safe-area-inset-right, 0px)) clamp(16px, 5vw, 56px) max(16px, env(safe-area-inset-left, 0px));
}
.pm-inkivory svg{ display:block; }
.pm-inkivory .ii-card{
  container-type:inline-size; container-name:menu; width:100%; max-width:794px; margin-inline:auto; background:var(--ii-paper); color:var(--ii-ink);
  box-shadow:0 1px 2px rgba(34,33,31,.14), 0 18px 40px -18px rgba(34,33,31,.28);
}
.pm-inkivory .ii-sheet{
  --u:calc(100cqw / 794); position:relative; overflow:hidden; overflow:clip; min-height:calc(var(--u) * 1123);
  display:flex; flex-direction:column; align-items:center; text-align:center; background:var(--ii-paper); color:var(--ii-ink);
}
.pm-inkivory .ii-grain{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:.07; mix-blend-mode:multiply; }
.pm-inkivory .ii-grain rect{ fill:var(--ii-ink); }

/* ink drawings */
.pm-inkivory .ii-ink{ position:absolute; overflow:visible; color:var(--ii-ink); filter:url(#iiWobble); pointer-events:none; }
.pm-inkivory .ii-ink path, .pm-inkivory .ii-ink circle{ fill:none; stroke:currentColor; stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round; vector-effect:none; }
.pm-inkivory .ii-ink .ii-fine{ stroke-width:.8; }
.pm-inkivory .ii-ink .ii-bold{ stroke-width:1.7; }
.pm-inkivory .ii-candle{ left:calc(var(--u) * 40);  top:calc(var(--u) * 34);  width:calc(var(--u) * 104); height:calc(var(--u) * 278); }
.pm-inkivory .ii-vase{ left:calc(var(--u) * 590); top:calc(var(--u) * -14); width:calc(var(--u) * 236); height:calc(var(--u) * 322); }
.pm-inkivory .ii-cake{ left:calc(var(--u) * -82); top:calc(var(--u) * 418); width:calc(var(--u) * 236); height:calc(var(--u) * 314); }
.pm-inkivory .ii-flute{ left:calc(var(--u) * 648); top:calc(var(--u) * 392); width:calc(var(--u) * 92); height:calc(var(--u) * 312); }
.pm-inkivory .ii-slice{ left:calc(var(--u) * 52); bottom:calc(var(--u) * 168); width:calc(var(--u) * 166); height:calc(var(--u) * 129); }
.pm-inkivory .ii-plate{ left:calc(var(--u) * 580); bottom:calc(var(--u) * 55); width:calc(var(--u) * 252); height:calc(var(--u) * 210); }
.pm-inkivory .ii-pear{ left:calc(var(--u) * 150); bottom:calc(var(--u) * -35); width:calc(var(--u) * 96); height:calc(var(--u) * 128); transform:rotate(-14deg); }
.pm-inkivory .ii-flame{ transform-origin:60px 49px; animation:iiFlicker 3.2s ease-in-out infinite; }
@keyframes iiFlicker{
  0%, 100%{ transform:rotate(0deg) scaleY(1); }
  30%{ transform:rotate(-2.5deg) scaleY(1.04); }
  55%{ transform:rotate(1.5deg) scaleY(.97); }
  80%{ transform:rotate(-1deg) scaleY(1.02); }
}

/* masthead */
.pm-inkivory .ii-masthead{ position:relative; width:100%; padding:calc(var(--u) * 30) 0 0; display:flex; flex-direction:column; align-items:center; }
.pm-inkivory .ii-topbar{ position:relative; margin-top:calc(var(--u) * 22); display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 8px; width:min(calc(var(--u) * 420), 76%); }
.pm-inkivory .ii-topbar:empty{ display:none; }
.pm-inkivory .ii-pill, .pm-inkivory .pm-lang{
  display:inline-flex; align-items:center; margin:0; padding:5px 11px; border:1px solid var(--ii-ink); border-radius:0; background:none; color:var(--ii-ink);
  font:400 10px/1 var(--ii-body); letter-spacing:.24em; text-transform:uppercase; text-decoration:none; opacity:1; cursor:pointer; min-width:0;
}
.pm-inkivory .pm-langs{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin:0; }
.pm-inkivory .pm-lang{ opacity:.6; border-color:var(--ii-line); }
.pm-inkivory .pm-lang.active{ opacity:1; background:var(--ii-ink); color:var(--ii-paper) !important; border-color:var(--ii-ink) !important; }
.pm-inkivory .ii-swash{ left:calc(var(--u) * 98); top:calc(var(--u) * 52); width:calc(var(--u) * 600); height:calc(var(--u) * 220); }
.pm-inkivory .ii-logo{ position:relative; display:block; max-height:calc(var(--u) * 70); max-width:40%; margin:calc(var(--u) * 14) auto 0; object-fit:contain; }
.pm-inkivory .ii-title{ position:relative; display:flex; align-items:baseline; margin:calc(var(--u) * 18) 0 0; font-weight:400; font-size:inherit; line-height:1; color:var(--ii-ink); }
.pm-inkivory .ii-m{ position:relative; top:calc(var(--u) * 18); margin-right:calc(var(--u) * -26); font-family:var(--ii-swash); font-size:calc(var(--u) * 236); line-height:1; }
.pm-inkivory .ii-enu{ font-family:var(--ii-display); font-optical-sizing:auto; font-size:calc(var(--u) * 128); letter-spacing:calc(var(--u) * 6); }
.pm-inkivory .ii-house{
  position:relative; margin:calc(var(--u) * 6) 0 0; padding:0 8% 0 calc(8% + .5em); max-width:100%; font-size:max(calc(var(--u) * 12), 9px); font-weight:400;
  letter-spacing:.5em; text-transform:uppercase; line-height:1.7; text-wrap:balance; overflow-wrap:anywhere;
}
.pm-inkivory .ii-promos{ position:relative; width:min(calc(var(--u) * 420), 76%); margin-top:calc(var(--u) * 24); }
.pm-inkivory .ii-promos .pm-promo{ border-radius:0 !important; border-color:var(--ii-ink) !important; justify-content:center; text-align:center; font-size:13px; letter-spacing:.04em; }
.pm-inkivory .ii-promos .pm-promo b{ color:var(--ii-ink) !important; font-family:var(--ii-display); font-weight:500; }

/* search, filters and tabs: a sticky printed index (every template shares the behaviour) */
.pm-inkivory .ii-controls{
  position:sticky; top:0; z-index:30; width:calc(var(--u) * 500); margin-top:calc(var(--u) * 34); background:color-mix(in srgb, var(--ii-paper) 95%, transparent);
  -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); border-top:1px solid var(--ii-line); border-bottom:1px solid var(--ii-line);
}
.pm-inkivory .ii-tools{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 12px; padding:10px 16px 2px; }
.pm-inkivory .ii-tools[hidden]{ display:none; }
.pm-inkivory .ii-search{ flex:1 1 180px; max-width:280px; display:block; }
.pm-inkivory .ii-search input{
  width:100%; height:34px; padding:0 2px; border:0; border-bottom:1px solid var(--ii-ink); border-radius:0; background:none; outline:0; color:var(--ii-ink);
  font:300 16px/1 var(--ii-body); letter-spacing:.06em; text-align:center;
}
.pm-inkivory .ii-search input::placeholder{ color:var(--ii-ink); opacity:.55; letter-spacing:.06em; }
.pm-inkivory .ii-search input::-webkit-search-cancel-button{ display:none; }
.pm-inkivory .ii-search input:focus{ border-bottom-width:2px; }
.pm-inkivory .ii-filter-toggle, .pm-inkivory .pm-chip{
  flex:none; padding:7px 12px; border:1px solid var(--ii-ink); border-radius:0; background:none; color:var(--ii-ink);
  font:400 10px/1 var(--ii-body); letter-spacing:.24em; text-transform:uppercase; white-space:nowrap; cursor:pointer;
}
.pm-inkivory .ii-filter-toggle[hidden]{ display:none; }
.pm-inkivory .ii-filter-toggle.has-active, .pm-inkivory .pm-chip[aria-pressed="true"]{ background:var(--ii-ink); color:var(--ii-paper); border-color:var(--ii-ink); }
.pm-inkivory .ii-diet{ display:none; flex-basis:100%; flex-wrap:wrap; justify-content:center; gap:6px; overflow:visible; padding:2px 0 4px; }
.pm-inkivory .ii-diet.open{ display:flex; }
.pm-inkivory .ii-tabs{ position:static; display:flex; justify-content:flex-start; gap:0; overflow-x:auto; max-width:100%; padding:6px 8px 8px; border:0; border-radius:0; background:none; scrollbar-width:none; }
.pm-inkivory .ii-tabs::-webkit-scrollbar{ display:none; }
.pm-inkivory .ii-tab{
  position:relative; flex:none; padding:8px 14px 8px calc(14px + .3em); border:0; border-radius:0; background:none; color:var(--ii-ink); opacity:.5; cursor:pointer;
  font:400 11px/1 var(--ii-body); letter-spacing:.3em; text-transform:uppercase; transition:opacity .2s;
}
.pm-inkivory .ii-tab:first-child{ margin-left:auto; }
.pm-inkivory .ii-tab:last-child{ margin-right:auto; }
.pm-inkivory .ii-tab + .ii-tab::before{ content:"·"; position:absolute; left:-.2em; top:50%; transform:translateY(-52%); }
.pm-inkivory .ii-tab.active{ opacity:1; box-shadow:inset 0 -1px 0 var(--ii-accent); }

/* courses */
.pm-inkivory .ii-courses{ position:relative; width:calc(var(--u) * 420); margin:calc(var(--u) * 44) 0 0; padding:0; display:flex; flex-direction:column; align-items:center; gap:max(calc(var(--u) * 70), 30px); }
.pm-inkivory .ii-course{ width:100%; padding:0; display:flex; flex-direction:column; align-items:center; gap:max(calc(var(--u) * 18), 10px); scroll-margin-top:170px; }
.pm-inkivory .ii-course__title{ margin:0; padding-left:.42em; font:400 max(calc(var(--u) * 16), 12px)/1.4 var(--ii-body); letter-spacing:.42em; text-transform:uppercase; color:var(--ii-ink); overflow-wrap:anywhere; }
.pm-inkivory .ii-dishes{ width:100%; display:flex; flex-direction:column; align-items:center; gap:max(calc(var(--u) * 22), 14px); }
.pm-inkivory .ii-dish{ width:100%; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:2px; padding:0; border:0; text-align:center; }
.pm-inkivory .ii-dish .pm-item-main{ align-items:center; gap:2px; max-width:100%; }
.pm-inkivory .ii-dish .pm-item-name{ font-size:max(calc(var(--u) * 17), 14px); font-weight:400; letter-spacing:.08em; line-height:1.6; overflow-wrap:anywhere; text-wrap:balance; }
.pm-inkivory .ii-dish .pm-item-desc{ font-size:max(calc(var(--u) * 15), 13px); font-weight:300; line-height:1.7; letter-spacing:.05em; opacity:.8; text-wrap:balance; }
.pm-inkivory .ii-dish .pm-item-price{ font-family:var(--ii-display); font-size:max(calc(var(--u) * 15), 13px); font-weight:400; letter-spacing:.12em; font-variant-numeric:lining-nums; margin-top:2px; }
.pm-inkivory .ii-dish .pm-item-price::before, .pm-inkivory .ii-dish .pm-item-price::after{ content:"—"; margin:0 .6em; opacity:.45; font-family:var(--ii-body); }
.pm-inkivory .ii-dish .pm-item-side{ flex-direction:row; align-items:center; justify-content:center; gap:12px; }
.pm-inkivory .ii-dish.is-out .pm-item-name, .pm-inkivory .ii-dish.is-out .pm-item-price{ text-decoration:line-through; opacity:.5; }
.pm-inkivory .pm-item-chips{ display:flex; flex-wrap:wrap; justify-content:center; gap:2px 0; margin-top:3px; }
.pm-inkivory .ii-tag{ font-size:9.5px; font-weight:400; letter-spacing:.22em; text-transform:uppercase; opacity:.75; white-space:nowrap; }
.pm-inkivory .ii-tag + .ii-tag::before{ content:"·"; margin:0 .7em; opacity:.6; }
.pm-inkivory .ii-tag--star{ font-family:var(--ii-display); font-style:italic; text-transform:none; letter-spacing:.06em; font-size:12px; opacity:1; color:var(--ii-accent); }
.pm-inkivory .ii-tag--warn::after{ content:"*"; margin-left:.15em; }
.pm-inkivory .pm-promo-chip{ margin:0 !important; border-radius:0 !important; }
.pm-inkivory .pm-noresults{ padding:20px 0; }
.pm-inkivory .pm-noresults b{ font-family:var(--ii-display); font-weight:400; font-size:24px; letter-spacing:.06em; }
.pm-inkivory .pm-empty{ padding:24px 0; }
.pm-inkivory .pm-add, .pm-inkivory .pm-stepper{ border-width:1px; }
.pm-inkivory .pm-cartbar{ border-radius:0; font-family:var(--ii-body); font-weight:400; letter-spacing:.14em; text-transform:uppercase; box-shadow:0 10px 24px -12px rgba(34,33,31,.5); }

/* sign-off */
.pm-inkivory .ii-signoff{ background:none; border-top:0; position:relative; margin-top:auto; padding:calc(var(--u) * 60) 8% calc(var(--u) * 44); display:flex; flex-direction:column; align-items:center; }
.pm-inkivory .ii-love{ margin:0; font-size:max(calc(var(--u) * 13), 11px); letter-spacing:.18em; }
.pm-inkivory .ii-sig{ margin:calc(var(--u) * 4) 0 0; font-family:var(--ii-sign); font-size:calc(max(calc(var(--u) * 58), 40px) * var(--ii-sig-scale, 1)); line-height:1.1; font-weight:400; overflow-wrap:anywhere; text-wrap:balance; }
.pm-inkivory .ii-underline{ position:relative; width:max(calc(var(--u) * 190), 130px); height:calc(var(--u) * 16); margin-top:calc(var(--u) * -6); overflow:visible; filter:url(#iiWobble); color:var(--ii-ink); }
.pm-inkivory .ii-underline path{ fill:none; stroke:currentColor; stroke-width:.8; stroke-linecap:round; }

/* narrow screens: keep the card, give the words room */
@container menu (max-width: 560px){
  .pm-inkivory .ii-courses, .pm-inkivory .ii-topbar, .pm-inkivory .ii-promos{ width:76%; }
  .pm-inkivory .ii-controls{ width:92%; }
  .pm-inkivory .ii-dish .pm-item-desc{ letter-spacing:.03em; line-height:1.65; }
  .pm-inkivory .ii-cake{ left:calc(var(--u) * -150); }
  .pm-inkivory .ii-flute{ left:calc(100% - var(--u) * 66); }
  .pm-inkivory .ii-signoff{ padding-top:36px; padding-bottom:calc(var(--u) * 44 + 24px); }
  .pm-inkivory .ii-slice{ bottom:calc(var(--u) * 210); }
  .pm-inkivory .ii-tab{ letter-spacing:.22em; }
}
.pm-inkivory.pm-embedded{ min-height:0; padding:12px max(12px, env(safe-area-inset-left, 0px)); }
.pm-inkivory.pm-embedded .ii-controls{ position:static; }
@media (prefers-reduced-motion: reduce){ .pm-inkivory .ii-flame{ animation:none !important; } }
@media print{
  .pm-inkivory{ padding:0; background:var(--ii-paper) !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .pm-inkivory .ii-card{ max-width:none; box-shadow:none; }
  .pm-inkivory .ii-controls, .pm-inkivory .pm-cartbar{ display:none !important; }
  .pm-inkivory .ii-flame{ animation:none; }
}

/* the simple card (create-menu review, where text is edited in place) and the template tile */
.menu-card.layout-ink-ivory{ font-family:'Jost', system-ui, sans-serif; font-weight:300; border:1px solid currentColor; }
.layout-ink-ivory .m-head b{ font-family:'Bodoni Moda', Georgia, serif; font-weight:400; font-size:30px; letter-spacing:.06em; text-transform:uppercase; }
.layout-ink-ivory .m-section-title{ font-family:'Jost', system-ui, sans-serif; font-weight:400; font-size:13px; letter-spacing:.36em; text-transform:uppercase; }
.ii-mini{ display:flex; align-items:baseline; justify-content:center; width:100%; line-height:1; }
.ii-mini__m{ font-family:'Monsieur La Doulaise', 'Snell Roundhand', cursive; font-size:64px; margin-right:-8px; position:relative; top:6px; }
.ii-mini__enu{ font-family:'Bodoni Moda', Georgia, serif; font-size:34px; letter-spacing:2px; }
/* <<< menuqr: ink-ivory <<< */

/* >>> menuqr: sunny-side >>> */
/* "Sunny Side" (premium, Food Truck): a screen-printed festival poster. Every rule is scoped to this layout. */
.pm-sunny{
  --ss-sage:#87A184; --ss-mustard:#E7B85F; --ss-toast:#D99A62; --ss-espresso:#806A58;
  --p-co:var(--ss-coral); --p-sa:var(--ss-sage); --p-mu:var(--ss-mustard); --p-to:var(--ss-toast); --p-es:var(--ss-espresso); --p-iv:var(--ss-paper); --p-hi:#FBF7EE;
  --ss-display:'Barlow Condensed','Arial Narrow','Roboto Condensed',Impact,sans-serif; --ss-label:'DM Mono','IBM Plex Mono',ui-monospace,Menlo,monospace;
  --ss-body:'DM Sans','Nunito Sans','Helvetica Neue',Arial,sans-serif;
  max-width:none; margin:0; border-radius:0; box-shadow:none; font-size:16px; line-height:1.4; -webkit-font-smoothing:antialiased;
  padding:clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-right, 0px)) clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-left, 0px));
}
.pm-sunny .ss-poster{
  container:poster / inline-size; position:relative; max-width:920px; margin-inline:auto; background:var(--ss-paper); color:var(--ss-ink);
  overflow:hidden; overflow:clip; isolation:isolate;
}
.pm-sunny .ss-poster::after{
  content:""; position:absolute; inset:clamp(8px, 1.6cqw, 16px); border:1.5px solid var(--ss-espresso); outline:1px solid var(--ss-espresso); outline-offset:-6px; pointer-events:none; z-index:0;
}
.pm-sunny .ss-grain{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:.09; mix-blend-mode:multiply; z-index:5; }
.pm-sunny .ss-grain rect{ fill:var(--ss-ink); }
.pm-sunny .ss-inner{ position:relative; z-index:1; padding:0 clamp(22px, 6cqw, 64px) clamp(30px, 6cqw, 60px); }

/* awning */
.pm-sunny .ss-awning{
  position:relative; z-index:2; height:58px; background:repeating-linear-gradient(90deg, var(--ss-coral) 0 40px, var(--ss-paper) 40px 80px);
  -webkit-mask:linear-gradient(#000 0 0) top / 100% calc(100% - 20px) no-repeat, radial-gradient(circle 20px at 20px 0, #000 19.5px, transparent 20.5px) bottom / 40px 20px repeat-x;
          mask:linear-gradient(#000 0 0) top / 100% calc(100% - 20px) no-repeat, radial-gradient(circle 20px at 20px 0, #000 19.5px, transparent 20.5px) bottom / 40px 20px repeat-x;
}
.pm-sunny .ss-rail{ height:6px; background:var(--ss-ink); position:relative; z-index:2; }

/* masthead */
.pm-sunny .ss-masthead{ position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; padding:clamp(18px, 4cqw, 36px) 0 0; }
.pm-sunny .ss-topbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 8px; margin-bottom:clamp(8px, 2cqw, 16px); }
.pm-sunny .ss-topbar:empty{ display:none; }
.pm-sunny .ss-pill, .pm-sunny .pm-lang{
  display:inline-flex; align-items:center; margin:0; padding:6px 11px; border:2px solid var(--ss-ink); border-radius:0; background:var(--ss-paper); color:var(--ss-ink);
  font:500 11px/1 var(--ss-label); letter-spacing:.14em; text-transform:uppercase; text-decoration:none; opacity:1; cursor:pointer; min-width:0;
}
.pm-sunny .pm-langs{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin:0; }
.pm-sunny .pm-lang.active{ background:var(--ss-ink); color:var(--ss-paper) !important; border-color:var(--ss-ink) !important; box-shadow:3px 3px 0 var(--ss-coral); }
.pm-sunny .ss-logo{ display:block; max-height:64px; max-width:40%; margin:0 auto 10px; object-fit:contain; }
.pm-sunny .ss-wordmark{ margin:0; display:flex; flex-direction:column; align-items:center; font-size:inherit; font-weight:400; line-height:1; color:var(--ss-ink); }
.pm-sunny .ss-sunrise{ width:min(100%, 600px); height:auto; display:block; overflow:visible; }
.pm-sunny .ss-arch-text{ font-family:var(--ss-display); font-weight:900; font-size:74px; letter-spacing:7px; fill:var(--ss-ink); stroke:var(--ss-paper); stroke-width:10px; stroke-linejoin:round; paint-order:stroke fill; }
.pm-sunny .ss-social{
  display:block; margin-top:clamp(-6px, -1cqw, -2px); font-family:var(--ss-display); font-weight:900; font-size:calc(clamp(74px, 22cqw, 188px) * var(--ss-scale, 1));
  line-height:.82; letter-spacing:.03em; padding-left:.03em; color:var(--ss-ink); text-shadow:.045em .045em 0 var(--ss-coral); max-width:100%; overflow-wrap:anywhere;
}
.pm-sunny .ss-horizon{ width:min(100%, 600px); display:flex; align-items:center; gap:14px; margin-top:clamp(14px, 2.6cqw, 22px); }
.pm-sunny .ss-horizon::before, .pm-sunny .ss-horizon::after{ content:""; flex:1; height:0; border-top:2px dashed var(--ss-espresso); }
.pm-sunny .ss-tagline{ margin:0; max-width:80%; text-align:center; font-family:var(--ss-label); font-weight:500; font-size:clamp(12px, 1.9cqw, 15px); letter-spacing:.32em; padding-left:.32em; line-height:1.5; text-wrap:balance; overflow-wrap:anywhere; }
.pm-sunny .ss-emblem{ position:absolute; width:clamp(92px, 16cqw, 132px); height:auto; right:clamp(4px, 2cqw, 20px); top:clamp(14px, 3cqw, 30px); transform:rotate(9deg); }
.pm-sunny .ss-emblem text{ font-family:var(--ss-label); font-weight:500; font-size:10.4px; letter-spacing:0; fill:var(--ss-ink); }
.pm-sunny .ss-promos{ margin-top:clamp(18px, 3cqw, 28px); }
.pm-sunny .ss-promos .pm-promo{ border-radius:0 !important; border:2px dashed var(--ss-ink) !important; background:var(--ss-paper); }
.pm-sunny .ss-promos .pm-promo b{ color:var(--ss-ink) !important; font-family:var(--ss-display); font-size:20px; font-weight:800; text-transform:uppercase; }

/* search, filters and tabs: a sticky strip (every template shares the behaviour) */
.pm-sunny .ss-controls{ position:sticky; top:0; z-index:30; margin-top:clamp(24px, 4cqw, 40px); background:var(--ss-paper); border:2px solid var(--ss-ink); box-shadow:4px 4px 0 var(--ss-coral); }
.pm-sunny .ss-tools{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:10px 12px 0; }
.pm-sunny .ss-tools[hidden]{ display:none; }
.pm-sunny .ss-search{ flex:1 1 180px; min-width:0; display:block; }
.pm-sunny .ss-search input{
  width:100%; height:38px; padding:0 12px; border:2px solid var(--ss-ink); border-radius:0; background:var(--ss-paper); outline:0; color:var(--ss-ink);
  font:500 16px/1 var(--ss-label); letter-spacing:.04em; text-overflow:ellipsis;
}
.pm-sunny .ss-search input::placeholder{ color:var(--ss-ink); opacity:.5; }
.pm-sunny .ss-search input::-webkit-search-cancel-button{ display:none; }
.pm-sunny .ss-search input:focus{ box-shadow:3px 3px 0 var(--ss-mustard); }
.pm-sunny .ss-filter-toggle, .pm-sunny .pm-chip{
  flex:none; height:38px; padding:0 12px; border:2px solid var(--ss-ink); border-radius:0; background:var(--ss-paper); color:var(--ss-ink);
  font:500 11px/1 var(--ss-label); letter-spacing:.14em; text-transform:uppercase; white-space:nowrap; cursor:pointer;
}
.pm-sunny .pm-chip{ height:32px; }
.pm-sunny .ss-filter-toggle[hidden]{ display:none; }
.pm-sunny .ss-filter-toggle.has-active, .pm-sunny .pm-chip[aria-pressed="true"]{ background:var(--ss-mustard); box-shadow:3px 3px 0 var(--ss-ink); }
.pm-sunny .ss-diet{ display:none; flex-basis:100%; flex-wrap:wrap; gap:6px 8px; overflow:visible; padding:0 0 4px; }
.pm-sunny .ss-diet.open{ display:flex; }
.pm-sunny .ss-tabs{ position:static; display:flex; gap:4px 18px; overflow-x:auto; padding:8px 12px 6px; border:0; border-radius:0; background:none; scrollbar-width:none; }
.pm-sunny .ss-tabs::-webkit-scrollbar{ display:none; }
.pm-sunny .ss-tab{
  flex:none; padding:2px 0 3px; border:0; border-bottom:4px solid transparent; border-radius:0; background:none; color:var(--ss-ink); opacity:.5; cursor:pointer;
  font:900 22px/1 var(--ss-display); letter-spacing:.03em; text-transform:uppercase; transition:opacity .2s, border-color .2s;
}
.pm-sunny .ss-tab.active{ opacity:1; border-bottom-color:var(--ss-coral); }

/* body grid */
.pm-sunny .ss-board{
  display:grid; grid-template-columns:minmax(0, 1.04fr) minmax(0, 1fr); grid-template-areas:"menu hero" "menu special" "menu signoff"; grid-template-rows:auto auto 1fr;
  column-gap:clamp(28px, 5cqw, 56px); margin-top:clamp(30px, 5cqw, 48px);
}
.pm-sunny .ss-menu{ grid-area:menu; display:flex; flex-direction:column; gap:34px; min-width:0; padding:0; }
.pm-sunny .ss-section{ display:flex; flex-direction:column; gap:12px; padding:0; scroll-margin-top:190px; }
.pm-sunny .ss-section__title{ margin:0; display:flex; align-items:center; gap:12px; font:900 clamp(42px, 6.4cqw, 56px)/.9 var(--ss-display); letter-spacing:.02em; text-transform:uppercase; color:var(--ss-ink); }
.pm-sunny .ss-section__title svg{ width:.62em; height:.62em; flex:none; overflow:visible; }
.pm-sunny .ss-section__title span{ min-width:0; overflow-wrap:anywhere; }
.pm-sunny .ss-rule{ height:8px; background:radial-gradient(circle at 4px 4px, var(--ss-sage) 2.2px, transparent 2.6px) 0 0 / 14px 8px repeat-x; }
.pm-sunny .ss-items{ display:flex; flex-direction:column; gap:12px; }
.pm-sunny .ss-item{ display:flex; align-items:baseline; justify-content:flex-start; gap:10px; padding:0; border:0; font-size:clamp(16px, 2.3cqw, 18px); font-weight:500; line-height:1.35; }
.pm-sunny .ss-item .pm-item-main{ flex:0 1 auto; max-width:76%; min-width:0; gap:2px; }
.pm-sunny .ss-item .pm-item-name{ font-size:1em; font-weight:500; overflow-wrap:anywhere; }
.pm-sunny .ss-veg{ display:inline-grid; place-items:center; width:1.25em; height:1.25em; margin-left:6px; border:1.5px solid var(--ss-ink); border-radius:50%; font:500 11px/1 var(--ss-label); vertical-align:2px; background:var(--ss-sage); text-decoration:none; cursor:help; }
.pm-sunny .ss-item .pm-item-desc{ font-size:13.5px; font-weight:400; line-height:1.4; opacity:.75; }
.pm-sunny .ss-leader{ flex:1 1 24px; min-width:24px; border-bottom:2px dotted var(--ss-espresso); transform:translateY(-4px); }
.pm-sunny .ss-item .pm-item-price{ font-family:var(--ss-display); font-weight:800; font-size:1.32em; letter-spacing:.01em; font-variant-numeric:tabular-nums; min-width:2.2em; text-align:right; }
.pm-sunny .ss-item .pm-item-side{ flex-direction:row; align-items:center; gap:10px; }
.pm-sunny .ss-item.is-out .pm-item-name, .pm-sunny .ss-item.is-out .pm-item-price{ text-decoration:line-through; opacity:.5; }
.pm-sunny .pm-item-chips{ display:flex; flex-wrap:wrap; align-items:center; gap:3px 0; margin-top:3px; }
.pm-sunny .ss-tag{ font:500 10.5px/1.6 var(--ss-label); letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; }
.pm-sunny .ss-tag + .ss-tag::before{ content:"✶"; color:var(--ss-coral); margin:0 .6em; }
.pm-sunny .ss-tag--star{ padding:0 6px; border:1.5px solid var(--ss-ink); background:var(--ss-mustard); }
.pm-sunny .ss-tag--warn::after{ content:"*"; margin-left:.1em; }
.pm-sunny .pm-promo-chip{ margin:0 0 0 6px !important; border-radius:0 !important; }
.pm-sunny .pm-noresults{ padding:20px 0; }
.pm-sunny .pm-noresults b{ font:900 34px/1 var(--ss-display); text-transform:uppercase; }
.pm-sunny .pm-empty{ padding:20px 0; }
.pm-sunny .pm-add, .pm-sunny .pm-stepper{ border-width:2px; }
.pm-sunny .pm-cartbar{ border-radius:0; border:2px solid var(--ss-ink); font-family:var(--ss-display); font-weight:800; font-size:18px; letter-spacing:.06em; text-transform:uppercase; box-shadow:4px 4px 0 var(--ss-coral); }

/* illustrations (two-pass screen print: a colour pass and an ink pass) */
.pm-sunny .ss-illo{ display:block; overflow:visible; }
.pm-sunny .ss-illo .ss-fl{ stroke:none; }
.pm-sunny .ss-illo .ss-ol{
  --p-co:none; --p-sa:none; --p-mu:none; --p-to:none; --p-es:none; --p-iv:none; --p-hi:none;
  fill:none; stroke:var(--ss-ink); stroke-width:3; stroke-linecap:round; stroke-linejoin:round; filter:url(#ssWobble);
}
.pm-sunny .ss-illo.ss-small .ss-ol{ stroke-width:2.4; }
.pm-sunny .ss-fry-under{ --p-mu:var(--ss-ink); --fw:14; }
.pm-sunny .ss-hero{ grid-area:hero; position:relative; aspect-ratio:1 / 1.02; max-width:100%; margin:-8px 0 0; }
.pm-sunny .ss-hero > *{ position:absolute; }
.pm-sunny .ss-hero .ss-burger{ left:6%; top:20%; width:88%; }
.pm-sunny .ss-hero .ss-lemonade{ left:0; top:0; width:21%; transform:rotate(-7deg); }
.pm-sunny .ss-hero .ss-softserve{ right:3%; top:-1%; width:19%; transform:rotate(8deg); }
.pm-sunny .ss-hero .ss-taco{ left:-2%; bottom:1%; width:34%; transform:rotate(-9deg); }
.pm-sunny .ss-hero .ss-fries{ right:0; bottom:0; width:25%; transform:rotate(6deg); }
.pm-sunny .ss-spark{ width:6%; color:var(--ss-mustard); }
.pm-sunny .ss-spark use{ fill:currentColor; stroke:var(--ss-ink); stroke-width:1.6; stroke-linejoin:round; }
.pm-sunny .ss-spark.ss-s1{ left:32%; top:6%; }
.pm-sunny .ss-spark.ss-s2{ right:26%; top:13%; width:4.4%; color:var(--ss-coral); }
.pm-sunny .ss-spark.ss-s3{ left:3%; top:44%; width:4.8%; color:var(--ss-sage); }
.pm-sunny .ss-spark.ss-s4{ right:4%; top:40%; width:5.4%; }

/* today's special: the dish marked as best seller (or new) */
.pm-sunny .ss-special{ grid-area:special; justify-self:center; position:relative; width:min(290px, 100%); aspect-ratio:1; margin-top:10px; display:grid; place-items:center; transform:rotate(-6deg); }
.pm-sunny .ss-seal{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.pm-sunny .ss-special__copy{ position:relative; width:58%; display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; }
.pm-sunny .ss-special__eyebrow{ margin:0; font:500 11px/1.3 var(--ss-label); letter-spacing:.26em; padding-left:.26em; text-transform:uppercase; }
.pm-sunny .ss-special h3{ margin:0; font:800 italic clamp(21px, 3.1cqw, 27px)/.95 var(--ss-display); overflow-wrap:anywhere; text-transform:uppercase; text-wrap:balance; }
.pm-sunny .ss-special__price{ margin:2px 0 0; font:900 40px/1 var(--ss-display); font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }

/* sign-off */
.pm-sunny .ss-signoff{ grid-area:signoff; align-self:end; margin-top:26px; display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; background:none; border-top:0; padding:0; }
.pm-sunny .ss-find{ margin:0; font:800 24px/1.1 var(--ss-display); letter-spacing:.06em; text-transform:uppercase; }
.pm-sunny .ss-links{ margin:0; display:flex; flex-wrap:wrap; justify-content:center; gap:6px 14px; font:400 13px/1.4 var(--ss-label); letter-spacing:.08em; }
.pm-sunny .ss-links span + span::before{ content:"✶"; color:var(--ss-coral); margin-right:14px; }

/* one column */
@container poster (max-width: 700px){
  .pm-sunny .ss-board{ grid-template-columns:minmax(0, 1fr); grid-template-areas:"hero" "menu" "special" "signoff"; grid-template-rows:auto; }
  .pm-sunny .ss-hero{ width:min(100%, 440px); justify-self:center; margin:0 0 28px; }
  .pm-sunny .ss-special{ margin-top:40px; }
  .pm-sunny .ss-signoff{ margin-top:30px; }
  .pm-sunny .ss-emblem{ position:relative; right:auto; top:auto; order:9; margin-top:18px; transform:rotate(-6deg); }
}
@container poster (min-width: 701px){
  .pm-sunny .ss-topbar{ max-width:calc(100% - clamp(104px, 18cqw, 150px) * 2); }
}
@container poster (max-width: 420px){
  .pm-sunny .ss-tagline{ letter-spacing:.2em; padding-left:.2em; }
  .pm-sunny .ss-search{ flex-basis:100%; }
  .pm-sunny .ss-horizon{ gap:8px; }
  .pm-sunny .ss-item{ gap:7px; }
  .pm-sunny .ss-links{ flex-direction:column; align-items:center; }
  .pm-sunny .ss-links span + span::before{ content:none; }
}
.pm-sunny.pm-embedded{ min-height:0; padding:10px max(10px, env(safe-area-inset-left, 0px)); }
.pm-sunny.pm-embedded .ss-controls{ position:static; }
@media print{
  .pm-sunny{ padding:0; background:var(--ss-paper) !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .pm-sunny .ss-poster{ max-width:none; }
  .pm-sunny .ss-controls, .pm-sunny .pm-cartbar{ display:none !important; }
}

/* the simple card (create-menu review, where text is edited in place) and the template tile */
.menu-card.layout-sunny-side{ font-family:'DM Sans', system-ui, sans-serif; border:3px solid currentColor; }
.layout-sunny-side .m-head b{ font-family:'Barlow Condensed','Arial Narrow',sans-serif; font-weight:900; font-size:38px; line-height:.9; text-transform:uppercase; }
.layout-sunny-side .m-section-title{ font-family:'Barlow Condensed','Arial Narrow',sans-serif; font-weight:900; font-size:26px; text-transform:uppercase; }
.ss-mini{ display:flex; flex-direction:column; align-items:center; gap:8px; width:100%; }
.ss-mini-name{ font-family:'Barlow Condensed','Arial Narrow',Impact,sans-serif; font-weight:900; font-size:34px; line-height:.9; letter-spacing:.03em; text-transform:uppercase; text-align:center; text-shadow:2px 2px 0 var(--ss-mini-accent, #D06D53); }
.ss-mini-dots{ display:flex; gap:6px; }
.ss-mini-dots i{ display:block; width:12px; height:12px; border-radius:50%; border:2px solid currentColor; }
/* <<< menuqr: sunny-side <<< */

/* >>> menuqr: little-sunday >>> */
.pm-lsun{ max-width:none; margin:0; border-radius:0; box-shadow:none; min-height:0; font-size:16px; line-height:1.4; -webkit-font-smoothing:antialiased;
  padding:clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-right, 0px)) clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-left, 0px)); }
.pm-lsun.pm-embedded{ min-height:0; padding:10px max(10px, env(safe-area-inset-left, 0px)); }
.pm-lsun section{ padding:0; }
.pm-lsun footer{ background:none; border-top:0; padding:0; }
.pm-lsun .pm-section{ scroll-margin-top:150px; }
.pm-lsun .pm-item[hidden], .pm-lsun .pm-section[hidden]{ display:none !important; }
.pm-lsun .pm-sections{ padding:0; }
.pm-lsun .pm-header{ padding:0; }
.pm-lsun .pm-tabs{ position:static; background:none; border:0; border-radius:0; padding:0; }
.pm-lsun .ls-topbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 8px; margin:0 0 12px; position:relative; z-index:3; }
.pm-lsun .ls-topbar:empty{ display:none; }
.pm-lsun .ls-pill, .pm-lsun .pm-lang{ display:inline-flex; align-items:center; margin:0; min-width:0; text-decoration:none; cursor:pointer; opacity:1; }
.pm-lsun .pm-langs{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin:0; }
.pm-lsun .ls-logo{ display:block; max-height:64px; max-width:40%; margin:0 auto 10px; object-fit:contain; }
.pm-lsun .ls-tools{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.pm-lsun .ls-tools[hidden]{ display:none; }
.pm-lsun .ls-search{ flex:1 1 170px; min-width:0; display:block; }
.pm-lsun .ls-search input{ width:100%; height:40px; padding:0 14px; box-sizing:border-box; background:transparent; color:inherit; font:inherit; font-size:16px; outline:0; text-overflow:ellipsis; }
.pm-lsun .ls-search input::placeholder{ color:inherit; opacity:.5; }
.pm-lsun .ls-search input::-webkit-search-cancel-button{ display:none; }
.pm-lsun .ls-filter-toggle, .pm-lsun .pm-chip{ flex:none; cursor:pointer; white-space:nowrap; font:inherit; color:inherit; }
.pm-lsun .ls-filter-toggle[hidden]{ display:none; }
.pm-lsun .ls-diet{ display:none; flex-basis:100%; flex-wrap:wrap; gap:6px 8px; overflow:visible; padding:0 0 4px; }
.pm-lsun .ls-diet.open{ display:flex; }
.pm-lsun .ls-tabs{ display:flex; overflow-x:auto; scrollbar-width:none; }
.pm-lsun .ls-tabs::-webkit-scrollbar{ display:none; }
.pm-lsun .ls-tab{ flex:none; cursor:pointer; font:inherit; color:inherit; }
.pm-lsun .ls-tab{ border-radius:0; }
.pm-lsun .ls-item{ border:0; padding:0; margin:0; }
.pm-lsun .pm-item-chips{ display:flex; flex-wrap:wrap; align-items:center; gap:3px 0; margin-top:3px; }
.pm-lsun .ls-tag{ font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; line-height:1.6; font-style:normal; }
.pm-lsun .ls-tag + .ls-tag::before{ content:"·"; margin:0 .55em; opacity:.6; }
.pm-lsun .ls-tag--warn::after{ content:"*"; margin-left:.1em; }
.pm-lsun .ls-veg{ display:inline-grid; place-items:center; width:1.3em; height:1.3em; margin-left:.55em; border:1.5px solid currentColor; border-radius:50%; font:700 .6em/1 sans-serif; letter-spacing:0; vertical-align:.1em; text-decoration:none; font-style:normal; }
.pm-lsun .ls-item.is-out .pm-item-name, .pm-lsun .ls-item.is-out .pm-item-price{ text-decoration:line-through; opacity:.5; }
.pm-lsun .ls-item .pm-item-side{ flex-direction:row; align-items:center; gap:10px; }
.pm-lsun .ls-item .pm-item-desc{ overflow-wrap:anywhere; }
.pm-lsun .pm-promo-chip{ margin:0 0 0 6px !important; }
.pm-lsun .pm-noresults{ padding:24px 0; text-align:center; }
.pm-lsun .pm-empty{ padding:20px 0; }
/* "Little Sunday" (premium, Cafeterías & Bares): una hoja de papel crema con marco, bucles y arcos dibujados a mano, tinta azul. */
.pm-lsun{ container:lsun / inline-size; --ls-ink:#194E91; --ls-paper:#F0EFE9; --ls-accent:#194E91; --ls-deep:color-mix(in srgb, var(--ls-ink) 78%, #000);
  --ls-hand:'Patrick Hand','Kalam','Segoe Print','Bradley Hand',cursive; --ls-brush:'Caveat Brush','Caveat','Segoe Print','Bradley Hand',cursive; }
.pm-lsun .ls-sheet{
  --ls-inset:44px; --ls-clear:92px; position:relative; max-width:700px; margin-inline:auto; min-height:min(980px, 142vw); background:var(--ls-paper); color:var(--ls-ink);
  box-shadow:0 1px 2px rgba(20,40,70,.06), 0 20px 44px -30px rgba(20,40,70,.28); display:flex; flex-direction:column; align-items:center;
  padding:calc(var(--ls-clear) * .95) var(--ls-clear) calc(var(--ls-clear) * .85); box-sizing:border-box; isolation:isolate;
}
@container lsun (max-width:560px){ .pm-lsun .ls-sheet{ --ls-inset:26px; --ls-clear:52px; } }
.pm-lsun .ls-grain, .pm-lsun .ls-frame{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.pm-lsun .ls-grain{ opacity:.035; mix-blend-mode:multiply; z-index:0; }
.pm-lsun .ls-grain rect{ fill:var(--ls-deep); }
.pm-lsun .ls-frame{ z-index:1; overflow:visible; }
.pm-lsun .ls-frame path, .pm-lsun .ls-sketch path, .pm-lsun .ls-swash path{ fill:none; stroke:var(--ls-ink); stroke-width:2.6px; stroke-linecap:round; stroke-linejoin:round; }
.pm-lsun .ls-frame .ls-dots circle{ fill:var(--ls-ink); stroke:none; }
.pm-lsun .ls-frame g, .pm-lsun .ls-sketch g{ filter:url(#lsMarker); }
.pm-lsun .ls-sketch path{ stroke-width:2.2px; }
.pm-lsun .ls-content{ position:relative; z-index:2; width:100%; flex:1; display:flex; flex-direction:column; align-items:center; }
.pm-lsun .ls-head{ width:100%; display:flex; flex-direction:column; align-items:center; text-align:center; }
.pm-lsun .ls-pill, .pm-lsun .pm-lang{ padding:5px 12px; border:2px solid var(--ls-ink); border-radius:255px 15px 225px 15px / 15px 225px 15px 255px; background:var(--ls-paper); color:var(--ls-ink); font:inherit; font-size:15px; letter-spacing:.08em; text-transform:uppercase; }
.pm-lsun .pm-lang.active{ background:var(--ls-ink); color:var(--ls-paper) !important; border-color:var(--ls-ink) !important; }
.pm-lsun .ls-brand{ margin:0; font-size:clamp(14px, 2.8cqw, 18px); letter-spacing:.22em; padding-left:.22em; text-transform:uppercase; text-align:center; }
.pm-lsun .ls-title{ margin:clamp(10px, 2.4cqw, 20px) 0 0; font-family:var(--ls-brush); font-weight:400; line-height:.86; display:flex; flex-direction:column; transform:rotate(-4deg); transform-origin:50% 60%; max-width:100%; }
.pm-lsun .ls-lead{ align-self:flex-start; font-size:calc(clamp(38px, 9.4cqw, 72px) * var(--ls-lead, 1)); margin-left:-.2em; }
.pm-lsun .ls-big{ align-self:flex-end; font-size:calc(clamp(76px, 21cqw, 164px) * var(--ls-big, 1)); margin-right:-.12em; margin-top:-.06em; }
.pm-lsun .ls-big.ls-alone{ align-self:center; margin:0; }
.pm-lsun .ls-ch{ display:inline-block; }
.pm-lsun .ls-sp{ display:inline-block; width:.26em; }
.pm-lsun .ls-swash{ width:clamp(150px, 34cqw, 250px); height:auto; margin:2px 0 0 18%; overflow:visible; }
.pm-lsun .ls-promos{ width:100%; margin-top:clamp(20px, 4cqw, 30px); }
.pm-lsun .ls-promos .pm-promo{ border:2px dashed var(--ls-ink) !important; border-radius:14px !important; background:transparent; }
.pm-lsun .ls-controls{ position:sticky; top:0; z-index:30; width:100%; margin-top:clamp(26px, 5cqw, 40px); padding:8px 0 4px; background:var(--ls-paper); }
.pm-lsun .ls-search input{ border:2px solid var(--ls-ink); border-radius:255px 15px 225px 15px / 15px 225px 15px 255px; }
.pm-lsun .ls-search input:focus{ box-shadow:0 0 0 3px color-mix(in srgb, var(--ls-ink) 22%, transparent); }
.pm-lsun .ls-filter-toggle, .pm-lsun .pm-chip{ height:40px; padding:0 14px; border:2px solid var(--ls-ink); border-radius:255px 15px 225px 15px / 15px 225px 15px 255px; background:transparent; font-size:15px; letter-spacing:.06em; text-transform:uppercase; }
.pm-lsun .pm-chip{ height:34px; }
.pm-lsun .ls-filter-toggle.has-active, .pm-lsun .pm-chip[aria-pressed="true"]{ background:var(--ls-ink); color:var(--ls-paper); }
.pm-lsun .ls-tabs{ gap:8px; padding:10px 2px 6px; }
.pm-lsun .ls-tab{ padding:3px 12px 4px; border:2px solid var(--ls-ink); border-radius:255px 15px 225px 15px / 15px 225px 15px 255px; background:none; font-size:17px; letter-spacing:.07em; text-transform:uppercase; opacity:.55; transition:opacity .15s; }
.pm-lsun .ls-tab.active{ opacity:1; background:var(--ls-ink); color:var(--ls-paper); }
.pm-lsun .ls-list{ width:min(100%, 420px); margin-top:clamp(18px, 4cqw, 30px); }
.pm-lsun .ls-section{ margin-top:clamp(30px, 6cqw, 46px); }
.pm-lsun .ls-section:first-child{ margin-top:0; }
.pm-lsun .ls-section__title{ margin:0 0 clamp(14px, 3cqw, 20px); text-align:center; font-family:var(--ls-brush); font-weight:400; font-size:clamp(26px, 5.4cqw, 36px); line-height:1; transform:rotate(-2deg); text-transform:none; letter-spacing:.01em; }
.pm-lsun .ls-section__title::after{ content:""; display:block; width:88px; height:8px; margin:6px auto 0; background:var(--ls-ink);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 88 8'%3E%3Cpath d='M2 5 C14 0 24 9 36 4 S58 0 68 5 S80 7 86 3' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 88 8'%3E%3Cpath d='M2 5 C14 0 24 9 36 4 S58 0 68 5 S80 7 86 3' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat; }
.pm-lsun .ls-items{ display:grid; grid-template-columns:minmax(0, 1fr) auto; column-gap:clamp(16px, 5cqw, 36px); row-gap:clamp(12px, 2.4cqw, 18px); }
.pm-lsun .ls-item{ display:contents; }
.pm-lsun .ls-item .pm-item-main{ min-width:0; gap:2px; }
.pm-lsun .ls-item .pm-item-name{ font-size:clamp(17px, 3.4cqw, 22px); font-weight:400; line-height:1.2; letter-spacing:.07em; text-transform:uppercase; overflow-wrap:anywhere; }
.pm-lsun .ls-item .pm-item-desc{ font-size:15px; line-height:1.3; opacity:.8; letter-spacing:.01em; }
.pm-lsun .ls-item .pm-item-price{ font-family:var(--ls-hand); font-size:clamp(17px, 3.4cqw, 22px); font-weight:400; line-height:1.2; letter-spacing:.04em; text-align:right; align-self:start; font-variant-numeric:tabular-nums; }
.pm-lsun .ls-item .pm-item-side{ align-self:start; justify-content:flex-end; }
.pm-lsun .ls-tag--star{ padding:0 6px; border:1.5px solid var(--ls-ink); border-radius:255px 15px 225px 15px / 15px 225px 15px 255px; }
.pm-lsun .ls-sketch{ width:clamp(150px, 30cqw, 210px); height:auto; margin-top:auto; padding-top:clamp(40px, 7cqw, 64px); overflow:visible; }
.pm-lsun .ls-foot{ margin-top:clamp(20px, 4cqw, 30px); text-align:center; }
.pm-lsun .ls-foot p{ margin:0; font-size:15px; letter-spacing:.22em; padding-left:.22em; text-transform:uppercase; }
.pm-lsun .pm-cartbar{ font-family:var(--ls-hand); font-size:18px; }
.pm-lsun.pm-embedded .ls-controls{ position:static; }
/* <<< menuqr: little-sunday <<< */

/* >>> menuqr: cherry-hour >>> */
.pm-cherry{ max-width:none; margin:0; border-radius:0; box-shadow:none; min-height:0; font-size:16px; line-height:1.4; -webkit-font-smoothing:antialiased;
  padding:clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-right, 0px)) clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-left, 0px)); }
.pm-cherry.pm-embedded{ min-height:0; padding:10px max(10px, env(safe-area-inset-left, 0px)); }
.pm-cherry section{ padding:0; }
.pm-cherry footer{ background:none; border-top:0; padding:0; }
.pm-cherry .pm-section{ scroll-margin-top:150px; }
.pm-cherry .pm-item[hidden], .pm-cherry .pm-section[hidden]{ display:none !important; }
.pm-cherry .pm-sections{ padding:0; }
.pm-cherry .pm-header{ padding:0; }
.pm-cherry .pm-tabs{ position:static; background:none; border:0; border-radius:0; padding:0; }
.pm-cherry .ch-topbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 8px; margin:0 0 12px; position:relative; z-index:3; }
.pm-cherry .ch-topbar:empty{ display:none; }
.pm-cherry .ch-pill, .pm-cherry .pm-lang{ display:inline-flex; align-items:center; margin:0; min-width:0; text-decoration:none; cursor:pointer; opacity:1; }
.pm-cherry .pm-langs{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin:0; }
.pm-cherry .ch-logo{ display:block; max-height:64px; max-width:40%; margin:0 auto 10px; object-fit:contain; }
.pm-cherry .ch-tools{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.pm-cherry .ch-tools[hidden]{ display:none; }
.pm-cherry .ch-search{ flex:1 1 170px; min-width:0; display:block; }
.pm-cherry .ch-search input{ width:100%; height:40px; padding:0 14px; box-sizing:border-box; background:transparent; color:inherit; font:inherit; font-size:16px; outline:0; text-overflow:ellipsis; }
.pm-cherry .ch-search input::placeholder{ color:inherit; opacity:.5; }
.pm-cherry .ch-search input::-webkit-search-cancel-button{ display:none; }
.pm-cherry .ch-filter-toggle, .pm-cherry .pm-chip{ flex:none; cursor:pointer; white-space:nowrap; font:inherit; color:inherit; }
.pm-cherry .ch-filter-toggle[hidden]{ display:none; }
.pm-cherry .ch-diet{ display:none; flex-basis:100%; flex-wrap:wrap; gap:6px 8px; overflow:visible; padding:0 0 4px; }
.pm-cherry .ch-diet.open{ display:flex; }
.pm-cherry .ch-tabs{ display:flex; overflow-x:auto; scrollbar-width:none; }
.pm-cherry .ch-tabs::-webkit-scrollbar{ display:none; }
.pm-cherry .ch-tab{ flex:none; cursor:pointer; font:inherit; color:inherit; }
.pm-cherry .ch-tab{ border-radius:0; }
.pm-cherry .ch-item{ border:0; padding:0; margin:0; }
.pm-cherry .pm-item-chips{ display:flex; flex-wrap:wrap; align-items:center; gap:3px 0; margin-top:3px; }
.pm-cherry .ch-tag{ font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; line-height:1.6; font-style:normal; }
.pm-cherry .ch-tag + .ch-tag::before{ content:"·"; margin:0 .55em; opacity:.6; }
.pm-cherry .ch-tag--warn::after{ content:"*"; margin-left:.1em; }
.pm-cherry .ch-veg{ display:inline-grid; place-items:center; width:1.3em; height:1.3em; margin-left:.55em; border:1.5px solid currentColor; border-radius:50%; font:700 .6em/1 sans-serif; letter-spacing:0; vertical-align:.1em; text-decoration:none; font-style:normal; }
.pm-cherry .ch-item.is-out .pm-item-name, .pm-cherry .ch-item.is-out .pm-item-price{ text-decoration:line-through; opacity:.5; }
.pm-cherry .ch-item .pm-item-side{ flex-direction:row; align-items:center; gap:10px; }
.pm-cherry .ch-item .pm-item-desc{ overflow-wrap:anywhere; }
.pm-cherry .pm-promo-chip{ margin:0 0 0 6px !important; }
.pm-cherry .pm-noresults{ padding:24px 0; text-align:center; }
.pm-cherry .pm-empty{ padding:20px 0; }
/* "Cherry Hour" (premium, Cafeterías & Bares): tinta roja sobre papel rosa; marco de cintas y dibujos solo en las columnas laterales. */
.pm-cherry{ container:cherry / inline-size; --ch-pink:#F5D8D5; --ch-red:#C92E2B; --ch-cherry:#AC2525;
  --ch-hand:'Pacifico','Brush Script MT','Snell Roundhand',cursive; --ch-serif:'Lora','Iowan Old Style',Georgia,serif; }
.pm-cherry .ch-card{ --ch-inset:34px; --ch-clear:74px; position:relative; max-width:860px; margin-inline:auto; background:var(--ch-pink); color:var(--ch-red);
  box-shadow:0 1px 2px rgba(120,30,30,.06), 0 22px 44px -32px rgba(120,30,30,.35); isolation:isolate; }
@container cherry (max-width:600px){ .pm-cherry .ch-card{ --ch-inset:20px; --ch-clear:46px; } }
.pm-cherry .ch-grain, .pm-cherry .ch-frame{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.pm-cherry .ch-grain{ opacity:.04; mix-blend-mode:multiply; z-index:0; }
.pm-cherry .ch-grain rect{ fill:var(--ch-cherry); }
.pm-cherry .ch-frame{ z-index:1; overflow:visible; }
.pm-cherry .ch-frame path{ fill:none; stroke:var(--ch-red); stroke-linecap:round; stroke-linejoin:round; }
.pm-cherry .ch-frame .ch-main{ stroke-width:2.6; }
.pm-cherry .ch-frame .ch-echo{ stroke-width:1.5; opacity:.9; }
.pm-cherry .ch-frame .ch-thin{ stroke-width:1.1; }
.pm-cherry .ch-frame circle{ fill:var(--ch-red); }
.pm-cherry .ch-frame g{ filter:url(#chFelt); }
.pm-cherry .ch-layout{ position:relative; z-index:2; display:grid; grid-template-columns:minmax(70px, 1fr) minmax(0, 470px) minmax(70px, 1fr);
  grid-template-areas:"tl head tr" "ls menu rs" "bl foot br"; column-gap:clamp(12px, 2.4cqw, 24px); padding:calc(var(--ch-clear) + 6px) var(--ch-clear) calc(var(--ch-clear) + 4px); }
.pm-cherry .ch-ink{ display:block; overflow:visible; height:auto; }
.pm-cherry .ch-ink path, .pm-cherry .ch-ink circle, .pm-cherry .ch-ink ellipse{ fill:none; stroke:var(--ch-red); stroke-width:2.3; stroke-linecap:round; stroke-linejoin:round; }
.pm-cherry .ch-ink .ch-fine{ stroke-width:1.6; }
.pm-cherry .ch-ink .ch-dot{ fill:var(--ch-red); stroke:none; }
.pm-cherry .ch-ink g{ filter:url(#chFelt); }
.pm-cherry .ch-slot-tl{ grid-area:tl; width:min(100%, 120px); justify-self:start; align-self:start; transform:rotate(-10deg); margin-top:8px; }
.pm-cherry .ch-slot-tr{ grid-area:tr; width:min(100%, 140px); justify-self:end; align-self:start; transform:rotate(8deg); margin-top:28px; }
.pm-cherry .ch-side{ display:flex; flex-direction:column; justify-content:space-around; gap:40px; }
.pm-cherry .ch-side-l{ grid-area:ls; align-items:flex-start; }
.pm-cherry .ch-side-r{ grid-area:rs; align-items:flex-end; }
.pm-cherry .ch-d-shaker{ width:min(100%, 112px); transform:rotate(-14deg); }
.pm-cherry .ch-d-cherries{ width:min(100%, 92px); transform:rotate(10deg); }
.pm-cherry .ch-d-spark{ width:min(100%, 70px); }
.pm-cherry .ch-d-spark.ch-flip{ transform:rotate(24deg) scale(.8); }
.pm-cherry .ch-side-r .ch-d-spark{ transform:rotate(24deg) scale(.8); }
.pm-cherry .ch-head{ grid-area:head; display:flex; flex-direction:column; align-items:center; text-align:center; padding-top:6px; }
.pm-cherry .ch-pill, .pm-cherry .pm-lang{ padding:5px 12px; border:1.8px solid var(--ch-red); border-radius:999px; background:transparent; color:var(--ch-red); font:600 12px/1 var(--ch-serif); letter-spacing:.16em; text-transform:uppercase; }
.pm-cherry .pm-lang.active{ background:var(--ch-red); color:var(--ch-pink) !important; border-color:var(--ch-red) !important; }
.pm-cherry .ch-brand{ margin:0; font-family:var(--ch-serif); font-weight:600; font-size:clamp(13px, 1.8cqw, 15px); letter-spacing:.36em; padding-left:.36em; text-transform:uppercase; }
.pm-cherry .ch-headline{ margin:clamp(14px, 2.6cqw, 22px) 0 0; font-family:var(--ch-hand); font-weight:400; font-size:clamp(40px, 9.4cqw, 84px); line-height:1.02; transform:rotate(-3deg); text-wrap:balance; }
.pm-cherry .ch-w{ display:inline-block; }
.pm-cherry .ch-subtitle{ margin:clamp(16px, 3cqw, 24px) 0 0; display:flex; align-items:center; gap:12px; font-family:var(--ch-serif); font-style:italic; font-size:clamp(14px, 2cqw, 17px); letter-spacing:.08em; }
.pm-cherry .ch-subtitle svg{ width:26px; height:12px; flex:none; overflow:visible; }
.pm-cherry .ch-subtitle svg:last-child{ transform:scaleX(-1); }
.pm-cherry .ch-subtitle path{ fill:none; stroke:var(--ch-red); stroke-width:1.4; stroke-linecap:round; }
.pm-cherry .ch-menu{ grid-area:menu; min-width:0; display:flex; flex-direction:column; margin-top:clamp(30px, 5cqw, 44px); }
.pm-cherry .ch-promos .pm-promo{ border:1.8px dashed var(--ch-red) !important; border-radius:18px !important; background:transparent; margin-bottom:18px; }
.pm-cherry .ch-controls{ position:sticky; top:0; z-index:30; background:var(--ch-pink); padding:8px 0 6px; border-bottom:1.5px dotted var(--ch-red); }
.pm-cherry .ch-search input{ border:1.8px solid var(--ch-red); border-radius:999px; padding:0 18px; font-family:var(--ch-serif); }
.pm-cherry .ch-filter-toggle, .pm-cherry .pm-chip{ height:40px; padding:0 16px; border:1.8px solid var(--ch-red); border-radius:999px; background:transparent; font:600 12px/1 var(--ch-serif); letter-spacing:.16em; text-transform:uppercase; }
.pm-cherry .pm-chip{ height:34px; }
.pm-cherry .ch-filter-toggle.has-active, .pm-cherry .pm-chip[aria-pressed="true"]{ background:var(--ch-red); color:var(--ch-pink); }
.pm-cherry .ch-tabs{ gap:6px 16px; padding:10px 2px 4px; }
.pm-cherry .ch-tab{ padding:2px 0 3px; border:0; border-bottom:2px solid transparent; background:none; font:400 21px/1.2 var(--ch-hand); opacity:.55; transition:opacity .15s, border-color .15s; }
.pm-cherry .ch-tab.active{ opacity:1; border-bottom-color:var(--ch-red); }
.pm-cherry .ch-sections{ display:flex; flex-direction:column; gap:clamp(48px, 7cqw, 64px); margin-top:clamp(36px, 6cqw, 52px); }
.pm-cherry .ch-section{ display:flex; flex-direction:column; align-items:center; gap:clamp(30px, 5cqw, 44px); }
.pm-cherry .ch-cat-title{ margin:0; font-family:var(--ch-serif); font-weight:600; font-size:12.5px; letter-spacing:.34em; padding-left:.34em; text-transform:uppercase; text-align:center; }
.pm-cherry .ch-items{ display:flex; flex-direction:column; gap:clamp(30px, 5cqw, 44px); width:100%; }
.pm-cherry .ch-item{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px; }
.pm-cherry .ch-item .pm-item-main{ align-items:center; gap:6px; }
.pm-cherry .ch-item .pm-item-name{ font-family:var(--ch-hand); font-weight:400; font-size:clamp(26px, 4.6cqw, 36px); line-height:1.2; max-width:16ch; text-wrap:balance; overflow-wrap:anywhere; }
.pm-cherry .ch-item .pm-item-desc{ max-width:34ch; font-size:clamp(15px, 2cqw, 16.5px); line-height:1.55; opacity:1; }
.pm-cherry .ch-item .pm-item-chips{ justify-content:center; }
.pm-cherry .ch-item .pm-item-price{ display:inline-flex; align-items:center; gap:10px; font-family:var(--ch-serif); font-weight:600; font-size:16px; letter-spacing:.1em; font-variant-numeric:lining-nums; }
.pm-cherry .ch-item .pm-item-price::before, .pm-cherry .ch-item .pm-item-price::after{ content:""; width:4px; height:4px; border-radius:50%; background:var(--ch-red); }
.pm-cherry .ch-item .pm-item-side{ flex-direction:column; align-items:center; gap:10px; }
.pm-cherry .ch-tag--star{ padding:0 8px; border:1.5px solid var(--ch-red); border-radius:999px; }
.pm-cherry .ch-interlude{ display:none; justify-content:center; align-items:flex-end; gap:28px; }
.pm-cherry .ch-interlude .ch-d-shaker{ width:76px; transform:none; }
.pm-cherry .ch-interlude .ch-d-cherries{ width:64px; transform:none; }
.pm-cherry .ch-interlude .ch-d-spark{ width:44px; transform:none; }
.pm-cherry .ch-foot{ grid-area:foot; display:flex; flex-direction:column; align-items:center; gap:14px; margin-top:clamp(46px, 7cqw, 62px); text-align:center; }
.pm-cherry .ch-slot-b{ width:min(40%, 104px); transform:rotate(6deg); }
.pm-cherry .ch-sig{ margin:0; font-family:var(--ch-hand); font-size:26px; line-height:1.2; }
@container cherry (max-width:600px){
  .pm-cherry .ch-layout{ grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); grid-template-areas:"tl tr" "head head" "menu menu" "foot foot"; row-gap:6px; }
  .pm-cherry .ch-slot-tl{ width:78px; margin-top:0; }
  .pm-cherry .ch-slot-tr{ width:88px; margin-top:6px; }
  .pm-cherry .ch-side{ display:none; }
  .pm-cherry .ch-interlude{ display:flex; }
  .pm-cherry .ch-menu{ margin-top:34px; }
}
.pm-cherry.pm-embedded .ch-controls{ position:static; }
/* <<< menuqr: cherry-hour <<< */

/* >>> menuqr: velvet-room >>> */
.pm-velvet{ max-width:none; margin:0; border-radius:0; box-shadow:none; min-height:0; font-size:16px; line-height:1.4; -webkit-font-smoothing:antialiased;
  padding:clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-right, 0px)) clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-left, 0px)); }
.pm-velvet.pm-embedded{ min-height:0; padding:10px max(10px, env(safe-area-inset-left, 0px)); }
.pm-velvet section{ padding:0; }
.pm-velvet footer{ background:none; border-top:0; padding:0; }
.pm-velvet .pm-section{ scroll-margin-top:150px; }
.pm-velvet .pm-item[hidden], .pm-velvet .pm-section[hidden]{ display:none !important; }
.pm-velvet .pm-sections{ padding:0; }
.pm-velvet .pm-header{ padding:0; }
.pm-velvet .pm-tabs{ position:static; background:none; border:0; border-radius:0; padding:0; }
.pm-velvet .vr-topbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 8px; margin:0 0 12px; position:relative; z-index:3; }
.pm-velvet .vr-topbar:empty{ display:none; }
.pm-velvet .vr-pill, .pm-velvet .pm-lang{ display:inline-flex; align-items:center; margin:0; min-width:0; text-decoration:none; cursor:pointer; opacity:1; }
.pm-velvet .pm-langs{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin:0; }
.pm-velvet .vr-logo{ display:block; max-height:64px; max-width:40%; margin:0 auto 10px; object-fit:contain; }
.pm-velvet .vr-tools{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.pm-velvet .vr-tools[hidden]{ display:none; }
.pm-velvet .vr-search{ flex:1 1 170px; min-width:0; display:block; }
.pm-velvet .vr-search input{ width:100%; height:40px; padding:0 14px; box-sizing:border-box; background:transparent; color:inherit; font:inherit; font-size:16px; outline:0; text-overflow:ellipsis; }
.pm-velvet .vr-search input::placeholder{ color:inherit; opacity:.5; }
.pm-velvet .vr-search input::-webkit-search-cancel-button{ display:none; }
.pm-velvet .vr-filter-toggle, .pm-velvet .pm-chip{ flex:none; cursor:pointer; white-space:nowrap; font:inherit; color:inherit; }
.pm-velvet .vr-filter-toggle[hidden]{ display:none; }
.pm-velvet .vr-diet{ display:none; flex-basis:100%; flex-wrap:wrap; gap:6px 8px; overflow:visible; padding:0 0 4px; }
.pm-velvet .vr-diet.open{ display:flex; }
.pm-velvet .vr-tabs{ display:flex; overflow-x:auto; scrollbar-width:none; }
.pm-velvet .vr-tabs::-webkit-scrollbar{ display:none; }
.pm-velvet .vr-tab{ flex:none; cursor:pointer; font:inherit; color:inherit; }
.pm-velvet .vr-tab{ border-radius:0; }
.pm-velvet .vr-item{ border:0; padding:0; margin:0; }
.pm-velvet .pm-item-chips{ display:flex; flex-wrap:wrap; align-items:center; gap:3px 0; margin-top:3px; }
.pm-velvet .vr-tag{ font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; line-height:1.6; font-style:normal; }
.pm-velvet .vr-tag + .vr-tag::before{ content:"·"; margin:0 .55em; opacity:.6; }
.pm-velvet .vr-tag--warn::after{ content:"*"; margin-left:.1em; }
.pm-velvet .vr-veg{ display:inline-grid; place-items:center; width:1.3em; height:1.3em; margin-left:.55em; border:1.5px solid currentColor; border-radius:50%; font:700 .6em/1 sans-serif; letter-spacing:0; vertical-align:.1em; text-decoration:none; font-style:normal; }
.pm-velvet .vr-item.is-out .pm-item-name, .pm-velvet .vr-item.is-out .pm-item-price{ text-decoration:line-through; opacity:.5; }
.pm-velvet .vr-item .pm-item-side{ flex-direction:row; align-items:center; gap:10px; }
.pm-velvet .vr-item .pm-item-desc{ overflow-wrap:anywhere; }
.pm-velvet .pm-promo-chip{ margin:0 0 0 6px !important; }
.pm-velvet .pm-noresults{ padding:24px 0; text-align:center; }
.pm-velvet .pm-empty{ padding:20px 0; }
/* "Velvet Room" (premium, Cafeterías & Bares): oro antiguo sobre negro; marco de metal con esquinas escalonadas y categorías en dos columnas. */
.pm-velvet{ container:velvet / inline-size; --vr-black:#141414; --vr-ivory:#E8DED0; --vr-gold:#C9A15D;
  --vr-champagne:color-mix(in srgb, var(--vr-gold) 70%, #fff); --vr-bronze:color-mix(in srgb, var(--vr-gold) 72%, #000); --vr-charcoal:color-mix(in srgb, var(--vr-black) 90%, #fff);
  --vr-display:'Cinzel','Trajan Pro','Times New Roman',serif; --vr-serif:'Cormorant Garamond','Garamond',Georgia,serif; --vr-m:26px; --vr-g:7px; --vr-corner:112px; }
@container velvet (max-width:560px){ .pm-velvet{ --vr-m:12px; --vr-g:5px; --vr-corner:70px; } }
.pm-velvet .vr-card{ position:relative; max-width:900px; margin-inline:auto; background:var(--vr-black); color:var(--vr-ivory); box-shadow:0 1px 2px rgba(0,0,0,.3), 0 26px 52px -30px rgba(0,0,0,.7); isolation:isolate; }
.pm-velvet .vr-grain{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:.06; mix-blend-mode:screen; z-index:0; }
.pm-velvet .vr-grain rect{ fill:var(--vr-charcoal); }
.pm-velvet .vr-frame{ position:absolute; inset:var(--vr-m); pointer-events:none; z-index:1; color:var(--vr-gold); }
.pm-velvet .vr-rule{ position:absolute; background:currentColor; }
.pm-velvet .vr-t1{ top:0; left:var(--vr-corner); right:var(--vr-corner); height:1.2px; } .pm-velvet .vr-t2{ top:var(--vr-g); left:var(--vr-corner); right:var(--vr-corner); height:.7px; opacity:.8; }
.pm-velvet .vr-b1{ bottom:0; left:var(--vr-corner); right:var(--vr-corner); height:1.2px; } .pm-velvet .vr-b2{ bottom:var(--vr-g); left:var(--vr-corner); right:var(--vr-corner); height:.7px; opacity:.8; }
.pm-velvet .vr-l1{ left:0; top:var(--vr-corner); bottom:var(--vr-corner); width:1.2px; } .pm-velvet .vr-l2{ left:var(--vr-g); top:var(--vr-corner); bottom:var(--vr-corner); width:.7px; opacity:.8; }
.pm-velvet .vr-r1{ right:0; top:var(--vr-corner); bottom:var(--vr-corner); width:1.2px; } .pm-velvet .vr-r2{ right:var(--vr-g); top:var(--vr-corner); bottom:var(--vr-corner); width:.7px; opacity:.8; }
.pm-velvet .vr-frame svg{ position:absolute; overflow:visible; }
.pm-velvet .vr-corner{ width:var(--vr-corner); height:var(--vr-corner); }
.pm-velvet .vr-tl{ top:0; left:0; } .pm-velvet .vr-tr{ top:0; right:0; transform:scaleX(-1); } .pm-velvet .vr-br{ bottom:0; right:0; transform:scale(-1,-1); } .pm-velvet .vr-bl{ bottom:0; left:0; transform:scaleY(-1); }
.pm-velvet .vr-mid{ left:50%; width:88px; height:24px; margin-left:-44px; }
.pm-velvet .vr-mid.vr-top{ top:calc(var(--vr-g) / 2 - 12px); } .pm-velvet .vr-mid.vr-bottom{ bottom:calc(var(--vr-g) / 2 - 12px); }
.pm-velvet .vr-frame .vr-side{ top:50%; width:22px; height:22px; margin-top:-11px; }
.pm-velvet .vr-side.vr-left{ left:calc(var(--vr-g) / 2 - 11px); } .pm-velvet .vr-side.vr-right{ right:calc(var(--vr-g) / 2 - 11px); }
@container velvet (max-width:560px){ .pm-velvet .vr-frame .vr-side{ display:none; } .pm-velvet .vr-mid{ width:64px; margin-left:-32px; } }
.pm-velvet .vr-content{ position:relative; z-index:2; padding:calc(var(--vr-m) + 64px) calc(var(--vr-m) + var(--vr-g) + 54px) calc(var(--vr-m) + 52px); }
@container velvet (max-width:560px){ .pm-velvet .vr-content{ padding:calc(var(--vr-m) + 58px) calc(var(--vr-m) + var(--vr-g) + 20px) calc(var(--vr-m) + 46px); } }
.pm-velvet .vr-masthead{ display:flex; flex-direction:column; align-items:center; text-align:center; }
.pm-velvet .vr-pill, .pm-velvet .pm-lang{ padding:6px 12px; border:1px solid var(--vr-gold); border-radius:0; background:transparent; color:var(--vr-gold); font:600 10.5px/1 var(--vr-display); letter-spacing:.24em; text-transform:uppercase; }
.pm-velvet .pm-lang.active{ background:var(--vr-gold); color:var(--vr-black) !important; border-color:var(--vr-gold) !important; }
.pm-velvet .vr-fan{ width:92px; height:auto; color:var(--vr-gold); }
.pm-velvet .vr-brand{ margin:14px 0 0; font-family:var(--vr-display); font-weight:600; font-size:clamp(18px, 3.2cqw, 28px); letter-spacing:.28em; padding-left:.28em; color:var(--vr-champagne); text-transform:uppercase; overflow-wrap:anywhere; }
.pm-velvet .vr-subtitle{ margin:10px 0 0; font-family:var(--vr-display); font-size:clamp(10px, 1.4cqw, 12px); letter-spacing:.42em; padding-left:.42em; color:var(--vr-bronze); text-transform:uppercase; }
.pm-velvet .vr-headline{ margin:clamp(30px, 5cqw, 44px) 0 0; display:flex; flex-direction:column; align-items:center; gap:10px; font-family:var(--vr-display); color:var(--vr-gold); text-transform:uppercase; line-height:1; }
.pm-velvet .vr-lead{ font-size:clamp(12px, 1.8cqw, 16px); letter-spacing:.6em; padding-left:.6em; color:var(--vr-champagne); }
.pm-velvet .vr-main{ font-size:clamp(28px, 7.4cqw, 66px); letter-spacing:.1em; padding-left:.1em; text-wrap:balance; overflow-wrap:anywhere; }
.pm-velvet .vr-divider{ width:min(100%, 360px); height:auto; margin-top:clamp(22px, 4cqw, 32px); color:var(--vr-gold); }
.pm-velvet .vr-promos{ margin-top:clamp(24px, 4cqw, 34px); }
.pm-velvet .vr-promos .pm-promo{ border:1px solid var(--vr-gold) !important; border-radius:0 !important; background:transparent; }
.pm-velvet .vr-controls{ position:sticky; top:0; z-index:30; margin-top:clamp(30px, 5cqw, 44px); background:var(--vr-black); border-top:1px solid var(--vr-bronze); border-bottom:1px solid var(--vr-bronze); padding:12px 0 8px; }
.pm-velvet .vr-search input{ border:1px solid var(--vr-gold); border-radius:0; padding:0 14px; font-family:var(--vr-serif); letter-spacing:.04em; }
.pm-velvet .vr-search input:focus{ border-color:var(--vr-champagne); box-shadow:0 0 0 1px var(--vr-champagne); }
.pm-velvet .vr-filter-toggle, .pm-velvet .pm-chip{ height:40px; padding:0 14px; border:1px solid var(--vr-gold); border-radius:0; background:transparent; color:var(--vr-gold); font:600 10.5px/1 var(--vr-display); letter-spacing:.22em; text-transform:uppercase; }
.pm-velvet .pm-chip{ height:32px; }
.pm-velvet .vr-filter-toggle.has-active, .pm-velvet .pm-chip[aria-pressed="true"]{ background:var(--vr-gold); color:var(--vr-black); }
.pm-velvet .vr-tabs{ gap:4px 22px; padding:12px 2px 2px; justify-content:flex-start; }
.pm-velvet .vr-tab{ padding:4px 0; border:0; border-bottom:1px solid transparent; background:none; color:var(--vr-gold); font:600 12px/1.2 var(--vr-display); letter-spacing:.24em; text-transform:uppercase; opacity:.55; transition:opacity .2s, border-color .2s; }
.pm-velvet .vr-tab.active{ opacity:1; border-bottom-color:var(--vr-gold); color:var(--vr-champagne); }
.pm-velvet .vr-menu{ position:relative; display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); column-gap:clamp(36px, 8cqw, 84px); row-gap:clamp(48px, 8cqw, 72px); margin-top:clamp(40px, 7cqw, 60px); }
.pm-velvet .vr-menu::before{ content:""; position:absolute; left:50%; top:4px; bottom:4px; border-left:1px solid var(--vr-bronze); opacity:.6; }
.pm-velvet .vr-menu.vr-single{ grid-template-columns:minmax(0, 1fr); } .pm-velvet .vr-menu.vr-single::before{ content:none; }
.pm-velvet .vr-section{ min-width:0; display:flex; flex-direction:column; gap:24px; }
.pm-velvet .vr-cat-head{ display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; }
.pm-velvet .vr-cat-title{ margin:0; font-family:var(--vr-display); font-weight:700; font-size:clamp(15px, 2.4cqw, 21px); letter-spacing:.2em; padding-left:.2em; text-transform:uppercase; color:var(--vr-gold); text-wrap:balance; overflow-wrap:anywhere; }
.pm-velvet .vr-cat-head svg{ width:120px; height:10px; color:var(--vr-gold); }
.pm-velvet .vr-items{ display:flex; flex-direction:column; gap:22px; }
.pm-velvet .vr-item{ display:flex; align-items:baseline; justify-content:space-between; gap:18px; }
.pm-velvet .vr-item .pm-item-main{ flex:1 1 auto; min-width:0; gap:3px; }
.pm-velvet .vr-item .pm-item-name{ font-family:var(--vr-serif); font-weight:600; font-size:clamp(18px, 2.6cqw, 22px); line-height:1.2; letter-spacing:.03em; color:var(--vr-champagne); overflow-wrap:anywhere; }
.pm-velvet .vr-item .pm-item-desc{ font-size:clamp(15px, 2cqw, 17px); line-height:1.45; font-style:italic; color:var(--vr-ivory); opacity:.86; }
.pm-velvet .vr-item .pm-item-price{ font-family:var(--vr-serif); font-weight:700; font-size:clamp(18px, 2.6cqw, 22px); color:var(--vr-gold); font-variant-numeric:lining-nums tabular-nums; text-align:right; }
.pm-velvet .vr-tag{ color:var(--vr-bronze); font-family:var(--vr-display); font-size:9.5px; letter-spacing:.2em; }
.pm-velvet .vr-tag--star{ color:var(--vr-gold); padding:0 6px; border:1px solid var(--vr-gold); }
.pm-velvet .vr-foot{ margin-top:54px; display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; }
.pm-velvet .vr-foot p{ margin:0; font-family:var(--vr-display); font-size:11px; letter-spacing:.38em; padding-left:.38em; text-transform:uppercase; color:var(--vr-bronze); }
.pm-velvet .vr-foot svg{ width:22px; height:22px; color:var(--vr-gold); }
@container velvet (max-width:620px){
  .pm-velvet .vr-menu{ grid-template-columns:minmax(0, 1fr); row-gap:52px; } .pm-velvet .vr-menu::before{ content:none; }
  .pm-velvet .vr-tabs{ gap:4px 16px; }
}
.pm-velvet.pm-embedded .vr-controls{ position:static; }
/* <<< menuqr: velvet-room <<< */

/* >>> menuqr: maison-floret >>> */
.pm-floret{ max-width:none; margin:0; border-radius:0; box-shadow:none; min-height:0; font-size:16px; line-height:1.4; -webkit-font-smoothing:antialiased;
  padding:clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-right, 0px)) clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-left, 0px)); }
.pm-floret.pm-embedded{ min-height:0; padding:10px max(10px, env(safe-area-inset-left, 0px)); }
.pm-floret section{ padding:0; }
.pm-floret footer{ background:none; border-top:0; padding:0; }
.pm-floret .pm-section{ scroll-margin-top:150px; }
.pm-floret .pm-item[hidden], .pm-floret .pm-section[hidden]{ display:none !important; }
.pm-floret .pm-sections{ padding:0; }
.pm-floret .pm-header{ padding:0; }
.pm-floret .pm-tabs{ position:static; background:none; border:0; border-radius:0; padding:0; }
.pm-floret .mf-topbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 8px; margin:0 0 12px; position:relative; z-index:3; }
.pm-floret .mf-topbar:empty{ display:none; }
.pm-floret .mf-pill, .pm-floret .pm-lang{ display:inline-flex; align-items:center; margin:0; min-width:0; text-decoration:none; cursor:pointer; opacity:1; }
.pm-floret .pm-langs{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin:0; }
.pm-floret .mf-logo{ display:block; max-height:64px; max-width:40%; margin:0 auto 10px; object-fit:contain; }
.pm-floret .mf-tools{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.pm-floret .mf-tools[hidden]{ display:none; }
.pm-floret .mf-search{ flex:1 1 170px; min-width:0; display:block; }
.pm-floret .mf-search input{ width:100%; height:40px; padding:0 14px; box-sizing:border-box; background:transparent; color:inherit; font:inherit; font-size:16px; outline:0; text-overflow:ellipsis; }
.pm-floret .mf-search input::placeholder{ color:inherit; opacity:.5; }
.pm-floret .mf-search input::-webkit-search-cancel-button{ display:none; }
.pm-floret .mf-filter-toggle, .pm-floret .pm-chip{ flex:none; cursor:pointer; white-space:nowrap; font:inherit; color:inherit; }
.pm-floret .mf-filter-toggle[hidden]{ display:none; }
.pm-floret .mf-diet{ display:none; flex-basis:100%; flex-wrap:wrap; gap:6px 8px; overflow:visible; padding:0 0 4px; }
.pm-floret .mf-diet.open{ display:flex; }
.pm-floret .mf-tabs{ display:flex; overflow-x:auto; scrollbar-width:none; }
.pm-floret .mf-tabs::-webkit-scrollbar{ display:none; }
.pm-floret .mf-tab{ flex:none; cursor:pointer; font:inherit; color:inherit; }
.pm-floret .mf-tab{ border-radius:0; }
.pm-floret .mf-item{ border:0; padding:0; margin:0; }
.pm-floret .pm-item-chips{ display:flex; flex-wrap:wrap; align-items:center; gap:3px 0; margin-top:3px; }
.pm-floret .mf-tag{ font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; line-height:1.6; font-style:normal; }
.pm-floret .mf-tag + .mf-tag::before{ content:"·"; margin:0 .55em; opacity:.6; }
.pm-floret .mf-tag--warn::after{ content:"*"; margin-left:.1em; }
.pm-floret .mf-veg{ display:inline-grid; place-items:center; width:1.3em; height:1.3em; margin-left:.55em; border:1.5px solid currentColor; border-radius:50%; font:700 .6em/1 sans-serif; letter-spacing:0; vertical-align:.1em; text-decoration:none; font-style:normal; }
.pm-floret .mf-item.is-out .pm-item-name, .pm-floret .mf-item.is-out .pm-item-price{ text-decoration:line-through; opacity:.5; }
.pm-floret .mf-item .pm-item-side{ flex-direction:row; align-items:center; gap:10px; }
.pm-floret .mf-item .pm-item-desc{ overflow-wrap:anywhere; }
.pm-floret .pm-promo-chip{ margin:0 0 0 6px !important; }
.pm-floret .pm-noresults{ padding:24px 0; text-align:center; }
.pm-floret .pm-empty{ padding:20px 0; }
/* "Maison Floret" (premium, Cafeterías & Bares): una tarjeta tipográfica con marco de ex libris, titular apilado y panes dibujados. */
.pm-floret{ container:floret / inline-size; --mf-cream:#F3F0E6; --mf-ink:#383735; --mf-espresso:#48413B; --mf-stone:color-mix(in srgb, var(--mf-ink) 18%, var(--mf-cream));
  --mf-serif:'Fraunces','Iowan Old Style','Palatino Linotype',Georgia,serif; --mf-sans:'Manrope','Helvetica Neue',Arial,sans-serif;
  --mf-m:30px; --mf-gx:8px; --mf-gy:6px; --mf-corner:124px; }
@container floret (max-width:560px){ .pm-floret{ --mf-m:14px; --mf-gx:6px; --mf-gy:4.5px; --mf-corner:78px; } }
.pm-floret .mf-card{ position:relative; max-width:760px; margin-inline:auto; background:var(--mf-cream); color:var(--mf-ink); box-shadow:0 1px 2px rgba(56,55,53,.06), 0 22px 46px -30px rgba(56,55,53,.3); isolation:isolate; }
.pm-floret .mf-grain{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:.045; mix-blend-mode:multiply; z-index:0; }
.pm-floret .mf-grain rect{ fill:var(--mf-ink); }
.pm-floret .mf-frame{ position:absolute; inset:var(--mf-m); pointer-events:none; z-index:1; color:var(--mf-ink); }
.pm-floret .mf-rule{ position:absolute; background:currentColor; }
.pm-floret .mf-t.mf-o{ top:0; left:var(--mf-corner); right:var(--mf-corner); height:1.5px; } .pm-floret .mf-t.mf-i{ top:var(--mf-gx); left:var(--mf-corner); right:var(--mf-corner); height:.8px; }
.pm-floret .mf-b.mf-o{ bottom:0; left:var(--mf-corner); right:var(--mf-corner); height:1.5px; } .pm-floret .mf-b.mf-i{ bottom:var(--mf-gx); left:var(--mf-corner); right:var(--mf-corner); height:.8px; }
.pm-floret .mf-l.mf-o{ left:0; top:var(--mf-corner); bottom:var(--mf-corner); width:1.5px; } .pm-floret .mf-l.mf-i{ left:var(--mf-gy); top:var(--mf-corner); bottom:var(--mf-corner); width:.8px; }
.pm-floret .mf-r.mf-o{ right:0; top:var(--mf-corner); bottom:var(--mf-corner); width:1.5px; } .pm-floret .mf-r.mf-i{ right:var(--mf-gy); top:var(--mf-corner); bottom:var(--mf-corner); width:.8px; }
.pm-floret .mf-frame svg{ position:absolute; overflow:visible; }
.pm-floret .mf-corner{ width:var(--mf-corner); height:var(--mf-corner); }
.pm-floret .mf-tl{ top:0; left:0; } .pm-floret .mf-tr{ top:0; right:0; transform:scaleX(-1); } .pm-floret .mf-br{ bottom:0; right:0; transform:scale(-1,-1); } .pm-floret .mf-bl{ bottom:0; left:0; transform:scaleY(-1); }
.pm-floret .mf-mid{ left:50%; width:96px; height:26px; margin-left:-48px; }
.pm-floret .mf-mid.mf-top{ top:calc(var(--mf-gx) / 2 - 13px); } .pm-floret .mf-mid.mf-bottom{ bottom:calc(var(--mf-gx) / 2 - 13px); transform:scaleY(-1); }
@container floret (max-width:560px){ .pm-floret .mf-mid{ width:72px; margin-left:-36px; height:20px; } .pm-floret .mf-mid.mf-top{ top:calc(var(--mf-gx) / 2 - 10px); } .pm-floret .mf-mid.mf-bottom{ bottom:calc(var(--mf-gx) / 2 - 10px); } }
.pm-floret .mf-content{ position:relative; z-index:2; padding:calc(var(--mf-m) + 66px) calc(var(--mf-m) + var(--mf-gy) + 52px) calc(var(--mf-m) + 60px); display:flex; flex-direction:column; align-items:center; text-align:center; }
@container floret (max-width:560px){ .pm-floret .mf-content{ padding:calc(var(--mf-m) + 60px) calc(var(--mf-m) + var(--mf-gy) + 22px) calc(var(--mf-m) + 66px); } }
.pm-floret .mf-signature{ display:flex; flex-direction:column; align-items:center; gap:8px; }
.pm-floret .mf-pill, .pm-floret .pm-lang{ padding:6px 12px; border:1px solid var(--mf-ink); border-radius:999px; background:transparent; color:var(--mf-ink); font:600 10.5px/1 var(--mf-sans); letter-spacing:.2em; text-transform:uppercase; }
.pm-floret .pm-lang.active{ background:var(--mf-ink); color:var(--mf-cream) !important; border-color:var(--mf-ink) !important; }
.pm-floret .mf-monogram{ width:46px; height:46px; }
.pm-floret .mf-monogram ellipse, .pm-floret .mf-monogram path{ fill:none; stroke:var(--mf-ink); stroke-width:1; }
.pm-floret .mf-monogram text{ font-family:var(--mf-serif); font-style:italic; font-size:19px; fill:var(--mf-ink); font-variation-settings:"opsz" 24, "SOFT" 100, "WONK" 1; }
.pm-floret .mf-brand{ margin:0; font-family:var(--mf-serif); font-weight:500; font-size:clamp(15px, 2.8cqw, 22px); letter-spacing:.3em; padding-left:.3em; text-transform:uppercase; font-variation-settings:"opsz" 36, "SOFT" 30; overflow-wrap:anywhere; }
.pm-floret .mf-subtitle{ margin:0; font-family:var(--mf-serif); font-style:italic; font-weight:400; font-size:clamp(13px, 2cqw, 15px); letter-spacing:.14em; color:var(--mf-espresso); font-variation-settings:"opsz" 14; }
.pm-floret .mf-headline{ margin:clamp(30px, 6cqw, 52px) 0 0; display:flex; flex-direction:column; align-items:center; font-family:var(--mf-serif); font-weight:800; line-height:.84; letter-spacing:-.02em; color:var(--mf-ink); max-width:100%; }
.pm-floret .mf-big{ font-size:clamp(46px, 15.5cqw, 120px); text-transform:uppercase; font-variation-settings:"opsz" 144, "SOFT" 0, "WONK" 1; max-width:100%; overflow-wrap:anywhere; }
.pm-floret .mf-join{ display:flex; align-items:center; gap:.5em; margin:.1em 0 .06em; font-size:clamp(24px, 6.6cqw, 52px); font-style:italic; font-weight:400; letter-spacing:0; line-height:1; text-transform:lowercase; color:var(--mf-espresso); font-variation-settings:"opsz" 72, "SOFT" 100, "WONK" 1; }
.pm-floret .mf-join::before, .pm-floret .mf-join::after{ content:""; width:clamp(24px, 7cqw, 60px); border-top:1px solid var(--mf-ink); }
.pm-floret .mf-tagline{ margin:clamp(20px, 3.4cqw, 28px) 0 0; font-family:var(--mf-serif); font-style:italic; font-weight:400; font-size:clamp(15px, 2.6cqw, 19px); color:var(--mf-espresso); font-variation-settings:"opsz" 18; }
.pm-floret .mf-divider{ width:132px; height:18px; margin:clamp(30px, 6cqw, 44px) 0 0; overflow:visible; }
.pm-floret .mf-divider path, .pm-floret .mf-divider circle{ fill:none; stroke:var(--mf-ink); stroke-width:1; stroke-linecap:round; }
.pm-floret .mf-divider .mf-fill{ fill:var(--mf-ink); stroke:none; }
.pm-floret .mf-promos{ width:min(100%, 480px); margin-top:26px; }
.pm-floret .mf-promos .pm-promo{ border:1px solid var(--mf-ink) !important; border-radius:999px !important; background:transparent; }
.pm-floret .mf-controls{ position:sticky; top:0; z-index:30; width:min(100%, 480px); margin-top:clamp(26px, 5cqw, 38px); background:var(--mf-cream); padding:8px 0 6px; border-bottom:1px solid var(--mf-ink); text-align:left; }
.pm-floret .mf-search input{ border:1px solid var(--mf-ink); border-radius:999px; padding:0 18px; font-family:var(--mf-sans); }
.pm-floret .mf-filter-toggle, .pm-floret .pm-chip{ height:40px; padding:0 16px; border:1px solid var(--mf-ink); border-radius:999px; background:transparent; font:600 10.5px/1 var(--mf-sans); letter-spacing:.2em; text-transform:uppercase; }
.pm-floret .pm-chip{ height:32px; }
.pm-floret .mf-filter-toggle.has-active, .pm-floret .pm-chip[aria-pressed="true"]{ background:var(--mf-ink); color:var(--mf-cream); }
.pm-floret .mf-tabs{ gap:4px 18px; padding:10px 2px 2px; }
.pm-floret .mf-tab{ padding:3px 0; border:0; border-bottom:1.5px solid transparent; background:none; font:italic 400 16px/1.2 var(--mf-serif); letter-spacing:.04em; opacity:.55; transition:opacity .2s, border-color .2s; }
.pm-floret .mf-tab.active{ opacity:1; border-bottom-color:var(--mf-ink); }
.pm-floret .mf-items{ width:min(100%, 480px); margin-top:clamp(28px, 5cqw, 40px); display:flex; flex-direction:column; gap:clamp(34px, 6cqw, 46px); text-align:left; }
.pm-floret .mf-section{ display:flex; flex-direction:column; gap:20px; }
.pm-floret .mf-section__title{ margin:0; display:flex; align-items:center; gap:14px; font-family:var(--mf-serif); font-style:italic; font-weight:400; font-size:clamp(20px, 3.4cqw, 26px); text-transform:none; letter-spacing:.02em; color:var(--mf-espresso); font-variation-settings:"opsz" 36, "SOFT" 100, "WONK" 1; }
.pm-floret .mf-section__title::after{ content:""; flex:1; border-top:1px solid var(--mf-ink); opacity:.5; }
.pm-floret .mf-list{ display:flex; flex-direction:column; gap:clamp(22px, 4cqw, 30px); }
.pm-floret .mf-item{ display:flex; align-items:baseline; justify-content:space-between; gap:20px; }
.pm-floret .mf-item .pm-item-main{ flex:1 1 auto; min-width:0; gap:6px; }
.pm-floret .mf-item .pm-item-name{ font-family:var(--mf-serif); font-weight:700; font-size:clamp(15px, 2.6cqw, 19px); line-height:1.2; letter-spacing:.09em; text-transform:uppercase; font-variation-settings:"opsz" 20, "SOFT" 20; overflow-wrap:anywhere; }
.pm-floret .mf-item .pm-item-desc{ max-width:44ch; font-size:clamp(13.5px, 2cqw, 14.5px); line-height:1.55; color:var(--mf-espresso); opacity:1; }
.pm-floret .mf-item .pm-item-price{ font-family:var(--mf-serif); font-weight:700; font-size:clamp(16px, 2.8cqw, 20px); font-variant-numeric:lining-nums tabular-nums; font-variation-settings:"opsz" 20; }
.pm-floret .mf-tag{ color:var(--mf-espresso); font-family:var(--mf-sans); }
.pm-floret .mf-tag--star{ padding:0 7px; border:1px solid var(--mf-ink); border-radius:999px; }
.pm-floret .mf-pastries{ width:min(100%, 540px); margin-top:clamp(46px, 8cqw, 70px); display:grid; grid-template-columns:1fr 1.25fr .85fr; align-items:end; gap:0 4px; }
.pm-floret .mf-pastries svg{ width:100%; height:auto; overflow:visible; }
.pm-floret .mf-pastries path, .pm-floret .mf-pastries ellipse, .pm-floret .mf-pastries circle{ fill:none; stroke:var(--mf-ink); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.pm-floret .mf-pastries .mf-dust{ fill:var(--mf-ink); stroke:none; }
.pm-floret .mf-pastries g{ filter:url(#mfHand); }
.pm-floret .mf-croissant{ transform:rotate(-5deg) translate(8%, -4%); } .pm-floret .mf-bun{ transform:rotate(7deg) translate(-6%, -4%); }
.pm-floret .mf-ground{ grid-column:1 / -1; height:10px; margin-top:2px; }
.pm-floret .mf-foot{ margin-top:clamp(30px, 5cqw, 42px); display:flex; flex-direction:column; align-items:center; }
.pm-floret .mf-oval{ margin:0; display:inline-flex; flex-direction:column; align-items:center; gap:3px; padding:14px 34px 15px; border:1px solid var(--mf-ink); border-radius:50%; outline:.6px solid var(--mf-ink); outline-offset:3px; }
.pm-floret .mf-cta{ font-family:var(--mf-serif); font-weight:600; font-size:13px; letter-spacing:.28em; padding-left:.28em; text-transform:uppercase; }
.pm-floret .mf-handle{ font-family:var(--mf-serif); font-style:italic; font-size:16px; color:var(--mf-espresso); font-variation-settings:"opsz" 16; }
.pm-floret.pm-embedded .mf-controls{ position:static; }
/* <<< menuqr: maison-floret <<< */

/* >>> menuqr: atelier-table >>> */
.pm-atelier{ max-width:none; margin:0; border-radius:0; box-shadow:none; min-height:0; font-size:16px; line-height:1.4; -webkit-font-smoothing:antialiased;
  padding:clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-right, 0px)) clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-left, 0px)); }
.pm-atelier.pm-embedded{ min-height:0; padding:10px max(10px, env(safe-area-inset-left, 0px)); }
.pm-atelier section{ padding:0; }
.pm-atelier footer{ background:none; border-top:0; padding:0; }
.pm-atelier .pm-section{ scroll-margin-top:150px; }
.pm-atelier .pm-item[hidden], .pm-atelier .pm-section[hidden]{ display:none !important; }
.pm-atelier .pm-sections{ padding:0; }
.pm-atelier .pm-header{ padding:0; }
.pm-atelier .pm-tabs{ position:static; background:none; border:0; border-radius:0; padding:0; }
.pm-atelier .at-topbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 8px; margin:0 0 12px; position:relative; z-index:3; }
.pm-atelier .at-topbar:empty{ display:none; }
.pm-atelier .at-pill, .pm-atelier .pm-lang{ display:inline-flex; align-items:center; margin:0; min-width:0; text-decoration:none; cursor:pointer; opacity:1; }
.pm-atelier .pm-langs{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin:0; }
.pm-atelier .at-logo{ display:block; max-height:64px; max-width:40%; margin:0 auto 10px; object-fit:contain; }
.pm-atelier .at-tools{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.pm-atelier .at-tools[hidden]{ display:none; }
.pm-atelier .at-search{ flex:1 1 170px; min-width:0; display:block; }
.pm-atelier .at-search input{ width:100%; height:40px; padding:0 14px; box-sizing:border-box; background:transparent; color:inherit; font:inherit; font-size:16px; outline:0; text-overflow:ellipsis; }
.pm-atelier .at-search input::placeholder{ color:inherit; opacity:.5; }
.pm-atelier .at-search input::-webkit-search-cancel-button{ display:none; }
.pm-atelier .at-filter-toggle, .pm-atelier .pm-chip{ flex:none; cursor:pointer; white-space:nowrap; font:inherit; color:inherit; }
.pm-atelier .at-filter-toggle[hidden]{ display:none; }
.pm-atelier .at-diet{ display:none; flex-basis:100%; flex-wrap:wrap; gap:6px 8px; overflow:visible; padding:0 0 4px; }
.pm-atelier .at-diet.open{ display:flex; }
.pm-atelier .at-tabs{ display:flex; overflow-x:auto; scrollbar-width:none; }
.pm-atelier .at-tabs::-webkit-scrollbar{ display:none; }
.pm-atelier .at-tab{ flex:none; cursor:pointer; font:inherit; color:inherit; }
.pm-atelier .at-tab{ border-radius:0; }
.pm-atelier .at-item{ border:0; padding:0; margin:0; }
.pm-atelier .pm-item-chips{ display:flex; flex-wrap:wrap; align-items:center; gap:3px 0; margin-top:3px; }
.pm-atelier .at-tag{ font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; line-height:1.6; font-style:normal; }
.pm-atelier .at-tag + .at-tag::before{ content:"·"; margin:0 .55em; opacity:.6; }
.pm-atelier .at-tag--warn::after{ content:"*"; margin-left:.1em; }
.pm-atelier .at-veg{ display:inline-grid; place-items:center; width:1.3em; height:1.3em; margin-left:.55em; border:1.5px solid currentColor; border-radius:50%; font:700 .6em/1 sans-serif; letter-spacing:0; vertical-align:.1em; text-decoration:none; font-style:normal; }
.pm-atelier .at-item.is-out .pm-item-name, .pm-atelier .at-item.is-out .pm-item-price{ text-decoration:line-through; opacity:.5; }
.pm-atelier .at-item .pm-item-side{ flex-direction:row; align-items:center; gap:10px; }
.pm-atelier .at-item .pm-item-desc{ overflow-wrap:anywhere; }
.pm-atelier .pm-promo-chip{ margin:0 0 0 6px !important; }
.pm-atelier .pm-noresults{ padding:24px 0; text-align:center; }
.pm-atelier .pm-empty{ padding:20px 0; }
/* "Atelier Table" (premium, Restaurantes): una hoja de bistró impresa en rejilla; franjas con filetes, dos categorías por franja y listas compactas. */
.pm-atelier{ container:atelier / inline-size; --at-paper:#F6F4F0; --at-ink:#171717; --at-olive:#777B63; --at-charcoal:color-mix(in srgb, var(--at-ink) 85%, var(--at-paper));
  --at-gray:color-mix(in srgb, var(--at-ink) 28%, var(--at-paper)); --at-stone:color-mix(in srgb, var(--at-ink) 9%, var(--at-paper));
  --at-display:'Archivo','Helvetica Neue',Arial,sans-serif; --at-sans:'Inter','Helvetica Neue',Arial,sans-serif; --at-gutter:clamp(22px, 4.6cqw, 48px); }
.pm-atelier .at-sheet{ max-width:1040px; margin-inline:auto; background:var(--at-paper); color:var(--at-ink); box-shadow:0 1px 2px rgba(23,23,23,.05), 0 18px 40px -30px rgba(23,23,23,.3); }
.pm-atelier .at-inner{ padding:clamp(20px, 6cqw, 64px) clamp(18px, 6cqw, 64px) clamp(20px, 4.4cqw, 44px); }
.pm-atelier .at-rule-heavy{ border:0; border-top:3px solid var(--at-ink); margin:0; }
.pm-atelier .at-rule-hair{ border:0; border-top:1px solid var(--at-charcoal); margin:0; }
.pm-atelier .at-rule-double{ border:0; height:4px; border-top:1px solid var(--at-charcoal); border-bottom:1px solid var(--at-charcoal); margin:0; }
.pm-atelier .at-masthead{ display:grid; grid-template-columns:minmax(0, 3fr) minmax(0, 6fr) minmax(0, 3fr); column-gap:var(--at-gutter); align-items:end; padding:18px 0 22px; }
.pm-atelier .at-identity{ display:flex; flex-direction:column; gap:8px; align-self:stretch; justify-content:space-between; }
.pm-atelier .at-logo{ display:block; max-height:48px; max-width:100%; margin:0 0 8px; object-fit:contain; align-self:flex-start; }
.pm-atelier .at-name{ margin:0; font-family:var(--at-display); font-weight:800; font-stretch:112%; font-size:clamp(15px, 2.1cqw, 21px); line-height:1.05; letter-spacing:.04em; text-transform:uppercase; overflow-wrap:anywhere; }
.pm-atelier .at-subtitle{ margin:0; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--at-charcoal); opacity:1; }
.pm-atelier .at-headline{ margin:0; font-family:var(--at-display); font-weight:900; font-stretch:88%; font-size:clamp(44px, 7.4cqw, 104px); line-height:.84; letter-spacing:-.025em; text-transform:uppercase; color:var(--at-ink); min-width:0; overflow-wrap:normal; }
.pm-atelier .at-headline > span{ display:block; }
.pm-atelier .at-amp{ font-weight:400; color:var(--at-olive); }
.pm-atelier .at-info{ align-self:stretch; display:flex; flex-direction:column; align-items:flex-end; justify-content:flex-end; }
.pm-atelier .at-info .at-topbar{ flex-direction:column; align-items:flex-end; justify-content:flex-end; margin:0; gap:8px; }
.pm-atelier .at-info .pm-langs{ justify-content:flex-end; }
.pm-atelier .at-pill, .pm-atelier .pm-lang{ padding:6px 12px; border:1px solid var(--at-ink); border-radius:999px; background:transparent; color:var(--at-ink); font:600 11px/1 var(--at-sans); letter-spacing:.14em; text-transform:uppercase; }
.pm-atelier .pm-lang.active{ background:var(--at-ink); color:var(--at-paper) !important; border-color:var(--at-ink) !important; }
.pm-atelier .at-promos{ margin-top:22px; }
.pm-atelier .at-promos .pm-promo{ border:1px solid var(--at-ink) !important; border-radius:0 !important; background:transparent; }
.pm-atelier .at-controls{ position:sticky; top:0; z-index:30; background:var(--at-paper); padding:12px 0 8px; border-bottom:1px solid var(--at-ink); }
.pm-atelier .at-search input{ border:1px solid var(--at-ink); border-radius:0; padding:0 14px; font-family:var(--at-sans); }
.pm-atelier .at-filter-toggle, .pm-atelier .pm-chip{ height:40px; padding:0 14px; border:1px solid var(--at-ink); border-radius:999px; background:transparent; font:600 11px/1 var(--at-sans); letter-spacing:.14em; text-transform:uppercase; }
.pm-atelier .pm-chip{ height:32px; border-color:var(--at-olive); color:#5E624C; }
.pm-atelier .at-filter-toggle.has-active, .pm-atelier .pm-chip[aria-pressed="true"]{ background:var(--at-ink); border-color:var(--at-ink); color:var(--at-paper); }
.pm-atelier .at-tabs{ gap:4px 20px; padding:12px 0 2px; }
.pm-atelier .at-tab{ padding:3px 0; border:0; border-bottom:2px solid transparent; background:none; font:800 14px/1.2 var(--at-display); letter-spacing:.04em; text-transform:uppercase; opacity:.5; transition:opacity .2s, border-color .2s; }
.pm-atelier .at-tab.active{ opacity:1; border-bottom-color:var(--at-ink); }
.pm-atelier .at-bands{ display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); align-items:stretch; }
.pm-atelier .at-section{ min-width:0; display:flex; flex-direction:column; gap:22px; padding:clamp(26px, 4.4cqw, 42px) 0 clamp(28px, 4.6cqw, 44px); border-top:1px solid var(--at-charcoal); }
.pm-atelier .at-section:first-child{ border-top:0; }
.pm-atelier .at-l{ grid-column:1; padding-right:var(--at-gutter); border-right:1px solid var(--at-gray); }
.pm-atelier .at-r{ grid-column:2; padding-left:var(--at-gutter); border-top-color:transparent; }
.pm-atelier .at-r{ border-top:0; }
.pm-atelier .at-solo{ grid-column:1; padding-right:var(--at-gutter); }
.pm-atelier .at-full{ grid-column:1 / -1; border-top:4px double var(--at-charcoal); }
.pm-atelier .at-full:first-child{ border-top:0; }
.pm-atelier .at-cat-head{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; padding-bottom:12px; border-bottom:1px solid var(--at-ink); }
.pm-atelier .at-cat-title{ margin:0; font-family:var(--at-display); font-weight:800; font-size:clamp(20px, 3cqw, 30px); line-height:1; letter-spacing:.01em; text-transform:uppercase; overflow-wrap:anywhere; }
.pm-atelier .at-count{ flex:none; padding:3px 10px; border:1px solid var(--at-olive); border-radius:999px; font-size:10.5px; font-weight:500; letter-spacing:.16em; color:#5E624C; font-variant-numeric:tabular-nums; }
.pm-atelier .at-items{ display:flex; flex-direction:column; gap:18px; }
.pm-atelier .at-item{ display:flex; align-items:baseline; justify-content:space-between; gap:20px; }
.pm-atelier .at-item .pm-item-main{ flex:1 1 auto; min-width:0; gap:4px; }
.pm-atelier .at-item .pm-item-name{ font-family:var(--at-display); font-weight:600; font-size:clamp(14px, 1.8cqw, 17px); line-height:1.25; letter-spacing:.02em; text-transform:uppercase; overflow-wrap:anywhere; }
.pm-atelier .at-item .pm-item-desc{ font-size:13.5px; line-height:1.5; color:var(--at-charcoal); opacity:1; }
.pm-atelier .at-item .pm-item-price{ font-family:var(--at-display); font-weight:600; font-size:clamp(14px, 1.8cqw, 17px); font-variant-numeric:tabular-nums; text-align:right; }
.pm-atelier .at-compact{ display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 210px), 1fr)); column-gap:calc(var(--at-gutter) * 1.2); row-gap:0; }
.pm-atelier .at-compact .at-item{ padding:11px 0; border-bottom:1px solid var(--at-stone); }
.pm-atelier .at-tag{ font-family:var(--at-sans); color:var(--at-charcoal); }
.pm-atelier .at-tag--star{ padding:0 8px; border:1px solid var(--at-olive); border-radius:999px; color:#5E624C; }
.pm-atelier .at-foot{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:8px 20px; padding-top:16px; font-size:11.5px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; }
.pm-atelier .at-foot > :nth-child(2){ text-align:center; } .pm-atelier .at-foot > :nth-child(3){ text-align:right; }
@container atelier (max-width:760px){
  .pm-atelier .at-masthead{ grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); grid-template-areas:"id info" "head head"; row-gap:22px; }
  .pm-atelier .at-identity{ grid-area:id; justify-content:flex-start; } .pm-atelier .at-info{ grid-area:info; justify-content:flex-start; }
  .pm-atelier .at-headline{ grid-area:head; padding-top:18px; border-top:1px solid var(--at-charcoal); font-size:clamp(44px, 17cqw, 120px); }
  .pm-atelier .at-headline > span{ display:inline; } .pm-atelier .at-headline > span + span::before{ content:" "; }
  .pm-atelier .at-bands{ grid-template-columns:minmax(0, 1fr); }
  .pm-atelier .at-l, .pm-atelier .at-r, .pm-atelier .at-solo, .pm-atelier .at-full{ grid-column:1; padding-left:0; padding-right:0; border-right:0; }
  .pm-atelier .at-r{ border-top:1px solid var(--at-gray); }
}
@container atelier (max-width:440px){
  .pm-atelier .at-foot{ grid-template-columns:minmax(0, 1fr); text-align:center; } .pm-atelier .at-foot > *{ text-align:center !important; }
}
.pm-atelier.pm-embedded .at-controls{ position:static; }
/* <<< menuqr: atelier-table <<< */

/* >>> menuqr: bar-rosso >>> */
.pm-rosso{ max-width:none; margin:0; border-radius:0; box-shadow:none; min-height:0; font-size:16px; line-height:1.4; -webkit-font-smoothing:antialiased;
  padding:clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-right, 0px)) clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-left, 0px)); }
.pm-rosso.pm-embedded{ min-height:0; padding:10px max(10px, env(safe-area-inset-left, 0px)); }
.pm-rosso section{ padding:0; }
.pm-rosso footer{ background:none; border-top:0; padding:0; }
.pm-rosso .pm-section{ scroll-margin-top:150px; }
.pm-rosso .pm-item[hidden], .pm-rosso .pm-section[hidden]{ display:none !important; }
.pm-rosso .pm-sections{ padding:0; }
.pm-rosso .pm-header{ padding:0; }
.pm-rosso .pm-tabs{ position:static; background:none; border:0; border-radius:0; padding:0; }
.pm-rosso .br-topbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 8px; margin:0 0 12px; position:relative; z-index:3; }
.pm-rosso .br-topbar:empty{ display:none; }
.pm-rosso .br-pill, .pm-rosso .pm-lang{ display:inline-flex; align-items:center; margin:0; min-width:0; text-decoration:none; cursor:pointer; opacity:1; }
.pm-rosso .pm-langs{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin:0; }
.pm-rosso .br-logo{ display:block; max-height:64px; max-width:40%; margin:0 auto 10px; object-fit:contain; }
.pm-rosso .br-tools{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.pm-rosso .br-tools[hidden]{ display:none; }
.pm-rosso .br-search{ flex:1 1 170px; min-width:0; display:block; }
.pm-rosso .br-search input{ width:100%; height:40px; padding:0 14px; box-sizing:border-box; background:transparent; color:inherit; font:inherit; font-size:16px; outline:0; text-overflow:ellipsis; }
.pm-rosso .br-search input::placeholder{ color:inherit; opacity:.5; }
.pm-rosso .br-search input::-webkit-search-cancel-button{ display:none; }
.pm-rosso .br-filter-toggle, .pm-rosso .pm-chip{ flex:none; cursor:pointer; white-space:nowrap; font:inherit; color:inherit; }
.pm-rosso .br-filter-toggle[hidden]{ display:none; }
.pm-rosso .br-diet{ display:none; flex-basis:100%; flex-wrap:wrap; gap:6px 8px; overflow:visible; padding:0 0 4px; }
.pm-rosso .br-diet.open{ display:flex; }
.pm-rosso .br-tabs{ display:flex; overflow-x:auto; scrollbar-width:none; }
.pm-rosso .br-tabs::-webkit-scrollbar{ display:none; }
.pm-rosso .br-tab{ flex:none; cursor:pointer; font:inherit; color:inherit; }
.pm-rosso .br-tab{ border-radius:0; }
.pm-rosso .br-item{ border:0; padding:0; margin:0; }
.pm-rosso .pm-item-chips{ display:flex; flex-wrap:wrap; align-items:center; gap:3px 0; margin-top:3px; }
.pm-rosso .br-tag{ font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; line-height:1.6; font-style:normal; }
.pm-rosso .br-tag + .br-tag::before{ content:"·"; margin:0 .55em; opacity:.6; }
.pm-rosso .br-tag--warn::after{ content:"*"; margin-left:.1em; }
.pm-rosso .br-veg{ display:inline-grid; place-items:center; width:1.3em; height:1.3em; margin-left:.55em; border:1.5px solid currentColor; border-radius:50%; font:700 .6em/1 sans-serif; letter-spacing:0; vertical-align:.1em; text-decoration:none; font-style:normal; }
.pm-rosso .br-item.is-out .pm-item-name, .pm-rosso .br-item.is-out .pm-item-price{ text-decoration:line-through; opacity:.5; }
.pm-rosso .br-item .pm-item-side{ flex-direction:row; align-items:center; gap:10px; }
.pm-rosso .br-item .pm-item-desc{ overflow-wrap:anywhere; }
.pm-rosso .pm-promo-chip{ margin:0 0 0 6px !important; }
.pm-rosso .pm-noresults{ padding:24px 0; text-align:center; }
.pm-rosso .pm-empty{ padding:20px 0; }
/* "Bar Rosso" (premium, Cafeterías & Bares): un cartel partido 58 / 42. A la izquierda el menú; a la derecha el nombre en letras gigantes, apiladas y recortadas por el borde. */
.pm-rosso{ container:rosso / inline-size; --br-ivory:#F7F5E9; --br-red:#C83B35; --br-accent:#C83B35; --br-black:#252321; --br-coral:color-mix(in srgb, var(--br-accent) 78%, var(--br-ivory));
  --br-display:'Archivo Black','Arial Black','Helvetica Neue',Arial,sans-serif; --br-body:'DM Sans','Helvetica Neue',Arial,sans-serif; }
.pm-rosso .br-poster{ position:relative; max-width:900px; margin-inline:auto; background:var(--br-ivory); color:var(--br-red); box-shadow:0 1px 2px rgba(37,35,33,.06), 0 20px 44px -30px rgba(37,35,33,.32); overflow:hidden; overflow:clip; isolation:isolate; }
.pm-rosso .br-grain{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:.05; mix-blend-mode:multiply; z-index:3; }
.pm-rosso .br-grain rect{ fill:var(--br-black); }
.pm-rosso .br-layout{ display:grid; grid-template-columns:minmax(0, 58fr) minmax(0, 42fr); min-height:min(1180px, 150vw); }
.pm-rosso .br-menu-col{ min-width:0; padding:clamp(30px, 6.4cqw, 60px) clamp(22px, 4.4cqw, 44px) clamp(30px, 5cqw, 48px) clamp(24px, 6.4cqw, 60px); display:flex; flex-direction:column; }
.pm-rosso .br-head{ display:flex; flex-direction:column; align-items:flex-start; }
.pm-rosso .br-head .br-topbar{ justify-content:flex-start; }
.pm-rosso .br-pill, .pm-rosso .pm-lang{ padding:6px 11px; border:2px solid var(--br-red); border-radius:0; background:transparent; color:var(--br-red); font:700 11px/1 var(--br-body); letter-spacing:.16em; text-transform:uppercase; }
.pm-rosso .pm-lang.active{ background:var(--br-red); color:var(--br-ivory) !important; border-color:var(--br-red) !important; }
.pm-rosso .br-logo{ margin-left:0; }
.pm-rosso .br-title{ margin:0 0 0 -.05em; font-family:var(--br-display); font-weight:400; font-size:clamp(70px, 19cqw, 176px); line-height:.78; letter-spacing:-.055em; text-transform:uppercase; color:var(--br-red); }
.pm-rosso .br-subtitle{ margin:clamp(18px, 2.6cqw, 24px) 0 0; display:flex; align-items:center; gap:12px; font-size:12px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; opacity:1; }
.pm-rosso .br-subtitle::before{ content:""; width:28px; border-top:2px solid var(--br-red); flex:none; }
.pm-rosso .br-promos{ margin-top:22px; }
.pm-rosso .br-promos .pm-promo{ border:2px solid var(--br-red) !important; border-radius:0 !important; background:transparent; }
.pm-rosso .br-controls{ position:sticky; top:0; z-index:30; margin-top:clamp(28px, 4.6cqw, 40px); background:var(--br-ivory); padding:8px 0 6px; border-bottom:2px solid var(--br-red); }
.pm-rosso .br-search input{ border:2px solid var(--br-red); border-radius:0; padding:0 12px; font-family:var(--br-body); font-weight:600; }
.pm-rosso .br-filter-toggle, .pm-rosso .pm-chip{ height:40px; padding:0 12px; border:2px solid var(--br-red); border-radius:0; background:transparent; font:700 11px/1 var(--br-body); letter-spacing:.16em; text-transform:uppercase; }
.pm-rosso .pm-chip{ height:32px; }
.pm-rosso .br-filter-toggle.has-active, .pm-rosso .pm-chip[aria-pressed="true"]{ background:var(--br-red); color:var(--br-ivory); }
.pm-rosso .br-tabs{ gap:4px 16px; padding:10px 0 2px; }
.pm-rosso .br-tab{ padding:2px 0 3px; border:0; border-bottom:3px solid transparent; background:none; font:400 15px/1.1 var(--br-display); text-transform:uppercase; opacity:.5; transition:opacity .2s, border-color .2s; }
.pm-rosso .br-tab.active{ opacity:1; border-bottom-color:var(--br-red); }
.pm-rosso .br-cats{ display:flex; flex-direction:column; gap:clamp(28px, 4.4cqw, 40px); margin-top:clamp(30px, 5cqw, 44px); }
.pm-rosso .br-cat{ display:flex; flex-direction:column; gap:10px; }
.pm-rosso .br-cat-title{ margin:0 0 4px; font-family:var(--br-display); font-weight:400; font-size:clamp(17px, 2.2cqw, 21px); letter-spacing:.01em; text-transform:uppercase; line-height:1.05; overflow-wrap:anywhere; }
.pm-rosso .br-items{ display:flex; flex-direction:column; gap:9px; }
.pm-rosso .br-item{ display:flex; align-items:baseline; justify-content:space-between; gap:18px; font-size:clamp(15px, 1.9cqw, 16.5px); line-height:1.3; }
.pm-rosso .br-item .pm-item-main{ flex:1 1 auto; min-width:0; gap:2px; }
.pm-rosso .br-item .pm-item-name{ font-size:1em; font-weight:400; overflow-wrap:anywhere; }
.pm-rosso .br-item .pm-item-desc{ font-size:13px; line-height:1.4; color:var(--br-black); opacity:.78; }
.pm-rosso .br-item .pm-item-price{ font-family:var(--br-body); font-weight:700; font-size:1em; font-variant-numeric:tabular-nums; text-align:right; }
.pm-rosso .br-tag{ font-family:var(--br-body); color:var(--br-black); }
.pm-rosso .br-tag--star{ padding:0 6px; border:1.5px solid var(--br-red); color:var(--br-red); }
.pm-rosso .br-sketch{ width:clamp(150px, 26cqw, 210px); height:auto; margin-top:clamp(36px, 6cqw, 56px); overflow:visible; }
.pm-rosso .br-sketch path{ fill:none; stroke:var(--br-black); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.pm-rosso .br-sketch .br-solid{ fill:var(--br-black); stroke:none; }
.pm-rosso .br-sketch g{ filter:url(#brInk); }
.pm-rosso .br-decor{ --letter:300px; position:relative; min-width:0; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; padding:clamp(24px, 4cqw, 40px) 0 clamp(20px, 3cqw, 30px); user-select:none; }
.pm-rosso .br-prefix{ position:absolute; left:0; top:clamp(30px, 6.4cqw, 60px); writing-mode:vertical-rl; font-family:var(--br-display); font-size:clamp(18px, 3.2cqw, 30px); letter-spacing:.18em; line-height:1; color:var(--br-black); z-index:2; }
.pm-rosso .br-word{ position:absolute; inset:clamp(24px, 4cqw, 40px) 0 clamp(20px, 3cqw, 30px) 0; display:flex; flex-direction:column; justify-content:space-between; padding-left:clamp(30px, 5cqw, 50px); }
.pm-rosso .br-ltr{ display:block; font-family:var(--br-display); font-size:var(--letter); line-height:.74; letter-spacing:-.06em; text-transform:uppercase; color:var(--br-red); transform-origin:0 50%; white-space:nowrap; }
.pm-rosso .br-ltr.br-wide{ transform:scaleX(1.22); } .pm-rosso .br-ltr.br-narrow{ transform:scaleX(.8); }
.pm-rosso .br-ltr.br-outline{ color:transparent; -webkit-text-stroke:max(2px, calc(var(--letter) * .012)) var(--br-red); }
.pm-rosso .br-burst{ position:absolute; width:clamp(64px, 12cqw, 110px); height:auto; left:18%; top:47%; overflow:visible; z-index:2; transform:rotate(-12deg); }
.pm-rosso .br-burst path{ fill:none; stroke:var(--br-black); stroke-width:5; stroke-linecap:round; }
.pm-rosso .br-burst g{ filter:url(#brInk); }
@container rosso (max-width:620px){
  .pm-rosso .br-layout{ grid-template-columns:minmax(0, 1fr); min-height:0; }
  .pm-rosso .br-menu-col{ padding-left:clamp(20px, 6cqw, 36px); padding-right:clamp(20px, 6cqw, 36px); }
  .pm-rosso .br-title{ font-size:clamp(70px, 25cqw, 160px); }
  .pm-rosso .br-decor{ --letter:min(25cqw, calc(118cqw / var(--br-n, 5))); padding:0; height:calc(var(--letter) * .74 + 34px); border-top:2px solid var(--br-red); display:block; }
  .pm-rosso .br-prefix{ writing-mode:horizontal-tb; top:14px; left:clamp(20px, 6cqw, 36px); font-size:16px; }
  .pm-rosso .br-word{ position:static; flex-direction:row; justify-content:flex-start; align-items:flex-start; padding:40px 0 0 clamp(20px, 6cqw, 36px); }
  .pm-rosso .br-ltr{ line-height:.8; margin-right:-.06em; } .pm-rosso .br-ltr.br-wide{ transform:scaleX(1.12); margin-right:.05em; } .pm-rosso .br-ltr.br-narrow{ transform:scaleX(.86); margin-right:-.12em; }
  .pm-rosso .br-burst{ left:auto; right:6%; top:10px; width:64px; }
}
.pm-rosso.pm-embedded .br-controls{ position:static; }
/* <<< menuqr: bar-rosso <<< */

/* >>> menuqr: maison-celeste >>> */
.pm-celeste{ max-width:none; margin:0; border-radius:0; box-shadow:none; min-height:0; font-size:16px; line-height:1.4; -webkit-font-smoothing:antialiased;
  padding:clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-right, 0px)) clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-left, 0px)); }
.pm-celeste.pm-embedded{ min-height:0; padding:10px max(10px, env(safe-area-inset-left, 0px)); }
.pm-celeste section{ padding:0; }
.pm-celeste footer{ background:none; border-top:0; padding:0; }
.pm-celeste .pm-section{ scroll-margin-top:150px; }
.pm-celeste .pm-item[hidden], .pm-celeste .pm-section[hidden]{ display:none !important; }
.pm-celeste .pm-sections{ padding:0; }
.pm-celeste .pm-header{ padding:0; }
.pm-celeste .pm-tabs{ position:static; background:none; border:0; border-radius:0; padding:0; }
.pm-celeste .mc-topbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 8px; margin:0 0 12px; position:relative; z-index:3; }
.pm-celeste .mc-topbar:empty{ display:none; }
.pm-celeste .mc-pill, .pm-celeste .pm-lang{ display:inline-flex; align-items:center; margin:0; min-width:0; text-decoration:none; cursor:pointer; opacity:1; }
.pm-celeste .pm-langs{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin:0; }
.pm-celeste .mc-logo{ display:block; max-height:64px; max-width:40%; margin:0 auto 10px; object-fit:contain; }
.pm-celeste .mc-tools{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.pm-celeste .mc-tools[hidden]{ display:none; }
.pm-celeste .mc-search{ flex:1 1 170px; min-width:0; display:block; }
.pm-celeste .mc-search input{ width:100%; height:40px; padding:0 14px; box-sizing:border-box; background:transparent; color:inherit; font:inherit; font-size:16px; outline:0; text-overflow:ellipsis; }
.pm-celeste .mc-search input::placeholder{ color:inherit; opacity:.5; }
.pm-celeste .mc-search input::-webkit-search-cancel-button{ display:none; }
.pm-celeste .mc-filter-toggle, .pm-celeste .pm-chip{ flex:none; cursor:pointer; white-space:nowrap; font:inherit; color:inherit; }
.pm-celeste .mc-filter-toggle[hidden]{ display:none; }
.pm-celeste .mc-diet{ display:none; flex-basis:100%; flex-wrap:wrap; gap:6px 8px; overflow:visible; padding:0 0 4px; }
.pm-celeste .mc-diet.open{ display:flex; }
.pm-celeste .mc-tabs{ display:flex; overflow-x:auto; scrollbar-width:none; }
.pm-celeste .mc-tabs::-webkit-scrollbar{ display:none; }
.pm-celeste .mc-tab{ flex:none; cursor:pointer; font:inherit; color:inherit; }
.pm-celeste .mc-tab{ border-radius:0; }
.pm-celeste .mc-item{ border:0; padding:0; margin:0; }
.pm-celeste .pm-item-chips{ display:flex; flex-wrap:wrap; align-items:center; gap:3px 0; margin-top:3px; }
.pm-celeste .mc-tag{ font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; line-height:1.6; font-style:normal; }
.pm-celeste .mc-tag + .mc-tag::before{ content:"·"; margin:0 .55em; opacity:.6; }
.pm-celeste .mc-tag--warn::after{ content:"*"; margin-left:.1em; }
.pm-celeste .mc-veg{ display:inline-grid; place-items:center; width:1.3em; height:1.3em; margin-left:.55em; border:1.5px solid currentColor; border-radius:50%; font:700 .6em/1 sans-serif; letter-spacing:0; vertical-align:.1em; text-decoration:none; font-style:normal; }
.pm-celeste .mc-item.is-out .pm-item-name, .pm-celeste .mc-item.is-out .pm-item-price{ text-decoration:line-through; opacity:.5; }
.pm-celeste .mc-item .pm-item-side{ flex-direction:row; align-items:center; gap:10px; }
.pm-celeste .mc-item .pm-item-desc{ overflow-wrap:anywhere; }
.pm-celeste .pm-promo-chip{ margin:0 0 0 6px !important; }
.pm-celeste .pm-noresults{ padding:24px 0; text-align:center; }
.pm-celeste .pm-empty{ padding:20px 0; }
/* "Maison Céleste" (premium, Cafeterías & Bares): papel porcelana, acuarelas junto a cada categoría y filetes de oro. */
.pm-celeste{ container:celeste / inline-size; --mc-paper:#FCFAF8; --mc-ink:#292725; --mc-gold:#A38A55; --mc-gray:color-mix(in srgb, var(--mc-ink) 68%, var(--mc-paper));
  --mc-display:'Italiana','Didot','Bodoni 72',Georgia,serif; --mc-serif:'Cormorant Garamond','Garamond','Iowan Old Style',Georgia,serif; --mc-script:'Parisienne','Snell Roundhand','Apple Chancery',cursive; }
.pm-celeste .mc-page{ position:relative; max-width:880px; margin-inline:auto; background:var(--mc-paper); color:var(--mc-ink); box-shadow:0 1px 2px rgba(41,39,37,.05), 0 22px 48px -34px rgba(41,39,37,.3); isolation:isolate; }
.pm-celeste .mc-grain{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:.035; mix-blend-mode:multiply; z-index:0; }
.pm-celeste .mc-grain rect{ fill:var(--mc-gray); }
.pm-celeste .mc-inner{ position:relative; z-index:1; padding:clamp(36px, 9cqw, 92px) clamp(20px, 9cqw, 96px) clamp(36px, 7cqw, 72px); }
.pm-celeste .mc-masthead{ display:flex; flex-direction:column; align-items:center; text-align:center; }
.pm-celeste .mc-pill, .pm-celeste .mc-masthead .pm-lang{ padding:6px 13px; border:1px solid var(--mc-gold); border-radius:999px; background:transparent; color:var(--mc-gray); font:500 12px/1 var(--mc-serif); letter-spacing:.24em; text-transform:uppercase; }
.pm-celeste .pm-lang.active{ background:var(--mc-ink); color:var(--mc-paper) !important; border-color:var(--mc-ink) !important; }
.pm-celeste .mc-brand{ margin:0; font-family:var(--mc-script); font-weight:400; font-size:clamp(34px, 7.4cqw, 58px); line-height:1; color:var(--mc-ink); overflow-wrap:anywhere; }
.pm-celeste .mc-subtitle{ margin:10px 0 0; font-style:italic; font-size:clamp(15px, 2.2cqw, 18px); letter-spacing:.06em; color:var(--mc-gray); opacity:1; }
.pm-celeste .mc-hair{ display:block; width:72px; height:0; border-top:1px solid var(--mc-gold); margin:0 auto; }
.pm-celeste .mc-masthead .mc-hair{ margin-top:clamp(26px, 5cqw, 40px); }
.pm-celeste .mc-headline{ margin:clamp(24px, 4.6cqw, 38px) 0 0; font-family:var(--mc-display); display:flex; flex-direction:column; align-items:center; gap:.14em; line-height:1; }
.pm-celeste .mc-small{ font-size:clamp(14px, 2.4cqw, 20px); letter-spacing:.5em; padding-left:.5em; text-transform:uppercase; color:var(--mc-gray); }
.pm-celeste .mc-large{ font-size:clamp(34px, 8cqw, 76px); letter-spacing:.12em; padding-left:.12em; text-transform:uppercase; line-height:.95; text-wrap:balance; overflow-wrap:anywhere; }
.pm-celeste .mc-promos{ margin-top:clamp(28px, 5cqw, 40px); }
.pm-celeste .mc-promos .pm-promo{ border:1px solid var(--mc-gold) !important; border-radius:2px !important; background:transparent; }
.pm-celeste .mc-controls{ position:sticky; top:0; z-index:30; margin-top:clamp(36px, 6cqw, 56px); background:var(--mc-paper); padding:10px 0 6px; border-top:1px solid var(--mc-gold); border-bottom:1px solid var(--mc-gold); }
.pm-celeste .mc-search input{ border:1px solid var(--mc-gold); border-radius:999px; padding:0 18px; font-family:var(--mc-serif); font-size:17px; }
.pm-celeste .mc-filter-toggle, .pm-celeste .pm-chip{ height:40px; padding:0 16px; border:1px solid var(--mc-gold); border-radius:999px; background:transparent; font:500 12px/1 var(--mc-serif); letter-spacing:.24em; text-transform:uppercase; }
.pm-celeste .pm-chip{ height:32px; }
.pm-celeste .mc-filter-toggle.has-active, .pm-celeste .pm-chip[aria-pressed="true"]{ background:var(--mc-ink); border-color:var(--mc-ink); color:var(--mc-paper); }
.pm-celeste .mc-tabs{ gap:4px 22px; padding:12px 0 2px; justify-content:center; flex-wrap:wrap; overflow:visible; }
.pm-celeste .mc-tab{ padding:3px 0; border:0; border-bottom:1px solid transparent; background:none; font:500 13px/1.2 var(--mc-serif); letter-spacing:.34em; padding-left:.34em; text-transform:uppercase; color:var(--mc-gray); opacity:.7; transition:opacity .2s, border-color .2s; }
.pm-celeste .mc-tab.active{ opacity:1; color:var(--mc-ink); border-bottom-color:var(--mc-gold); }
.pm-celeste .mc-categories{ display:flex; flex-direction:column; gap:clamp(56px, 9cqw, 96px); margin-top:clamp(44px, 8cqw, 76px); }
.pm-celeste .mc-section{ display:flex; flex-direction:column; gap:clamp(30px, 5cqw, 48px); }
.pm-celeste .mc-cat-title{ margin:0; display:flex; align-items:center; gap:18px; font-family:var(--mc-serif); font-weight:500; font-size:13px; letter-spacing:.42em; text-transform:uppercase; color:var(--mc-gray); white-space:nowrap; }
.pm-celeste .mc-cat-title::before, .pm-celeste .mc-cat-title::after{ content:""; flex:1; border-top:1px solid var(--mc-gold); opacity:.7; }
.pm-celeste .mc-cat-title span{ padding-left:.42em; white-space:normal; text-align:center; overflow-wrap:anywhere; }
.pm-celeste .mc-spread{ display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 6fr); column-gap:clamp(28px, 6cqw, 64px); align-items:center; }
.pm-celeste .mc-right .mc-spread{ grid-template-columns:minmax(0, 6fr) minmax(0, 5fr); }
.pm-celeste .mc-art{ width:100%; max-width:320px; justify-self:center; }
.pm-celeste .mc-right .mc-art{ grid-column:2; grid-row:1; }
.pm-celeste .mc-right .mc-items{ grid-column:1; grid-row:1; text-align:right; }
.pm-celeste .mc-paint{ display:block; width:100%; height:auto; aspect-ratio:4 / 5; overflow:visible; }
.pm-celeste .mc-items{ min-width:0; display:flex; flex-direction:column; gap:clamp(26px, 4cqw, 38px); }
.pm-celeste .mc-item{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.pm-celeste .mc-right .mc-item{ align-items:flex-end; }
.pm-celeste .mc-item .pm-item-main{ gap:6px; }
.pm-celeste .mc-right .mc-item .pm-item-main{ align-items:flex-end; }
.pm-celeste .mc-item .pm-item-name{ font-weight:500; font-size:clamp(20px, 3.4cqw, 28px); line-height:1.12; letter-spacing:.18em; text-transform:uppercase; text-wrap:balance; overflow-wrap:anywhere; }
.pm-celeste .mc-item .pm-item-desc{ max-width:34ch; font-size:clamp(16px, 2.3cqw, 19px); line-height:1.5; opacity:1; }
.pm-celeste .mc-item .pm-item-chips{ justify-content:flex-start; } .pm-celeste .mc-right .mc-item .pm-item-chips{ justify-content:flex-end; }
.pm-celeste .mc-item .pm-item-price{ display:inline-flex; align-items:center; gap:10px; font-weight:500; font-size:15px; letter-spacing:.16em; color:var(--mc-gray); font-variant-numeric:lining-nums; }
.pm-celeste .mc-item .pm-item-price::before{ content:""; width:22px; border-top:1px solid var(--mc-gold); }
.pm-celeste .mc-right .mc-item .pm-item-price{ flex-direction:row-reverse; }
.pm-celeste .mc-item .pm-item-side{ flex-direction:row; }
.pm-celeste .mc-tag{ color:var(--mc-gray); font-family:var(--mc-serif); font-style:italic; text-transform:none; letter-spacing:.04em; font-size:14px; }
.pm-celeste .mc-tag--star{ padding:0 8px; border:1px solid var(--mc-gold); border-radius:999px; }
.pm-celeste .mc-foot{ margin-top:clamp(60px, 10cqw, 96px); display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; }
.pm-celeste .mc-sig{ margin:0; font-family:var(--mc-script); font-size:30px; line-height:1; }
@container celeste (max-width:620px){
  .pm-celeste .mc-spread, .pm-celeste .mc-right .mc-spread{ grid-template-columns:minmax(0, 1fr); row-gap:18px; justify-items:center; }
  .pm-celeste .mc-art, .pm-celeste .mc-right .mc-art{ grid-column:1; grid-row:1; width:min(64%, 240px); }
  .pm-celeste .mc-items, .pm-celeste .mc-right .mc-items{ grid-column:1; grid-row:2; text-align:center; align-items:center; }
  .pm-celeste .mc-item, .pm-celeste .mc-right .mc-item{ align-items:center; text-align:center; }
  .pm-celeste .mc-item .pm-item-main, .pm-celeste .mc-right .mc-item .pm-item-main{ align-items:center; }
  .pm-celeste .mc-item .pm-item-chips, .pm-celeste .mc-right .mc-item .pm-item-chips{ justify-content:center; }
  .pm-celeste .mc-item .pm-item-price::after{ content:""; width:22px; border-top:1px solid var(--mc-gold); }
  .pm-celeste .mc-right .mc-item .pm-item-price{ flex-direction:row; }
  .pm-celeste .mc-cat-title{ letter-spacing:.3em; }
}
.pm-celeste.pm-embedded .mc-controls{ position:static; }
/* <<< menuqr: maison-celeste <<< */

/* >>> menuqr: moss-mornings >>> */
.pm-moss{ max-width:none; margin:0; border-radius:0; box-shadow:none; min-height:0; font-size:16px; line-height:1.4; -webkit-font-smoothing:antialiased;
  padding:clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-right, 0px)) clamp(16px, 5vw, 64px) max(16px, env(safe-area-inset-left, 0px)); }
.pm-moss.pm-embedded{ min-height:0; padding:10px max(10px, env(safe-area-inset-left, 0px)); }
.pm-moss section{ padding:0; }
.pm-moss footer{ background:none; border-top:0; padding:0; }
.pm-moss .pm-section{ scroll-margin-top:150px; }
.pm-moss .pm-item[hidden], .pm-moss .pm-section[hidden]{ display:none !important; }
.pm-moss .pm-sections{ padding:0; }
.pm-moss .pm-header{ padding:0; }
.pm-moss .pm-tabs{ position:static; background:none; border:0; border-radius:0; padding:0; }
.pm-moss .mm-topbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 8px; margin:0 0 12px; position:relative; z-index:3; }
.pm-moss .mm-topbar:empty{ display:none; }
.pm-moss .mm-pill, .pm-moss .pm-lang{ display:inline-flex; align-items:center; margin:0; min-width:0; text-decoration:none; cursor:pointer; opacity:1; }
.pm-moss .pm-langs{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin:0; }
.pm-moss .mm-logo{ display:block; max-height:64px; max-width:40%; margin:0 auto 10px; object-fit:contain; }
.pm-moss .mm-tools{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.pm-moss .mm-tools[hidden]{ display:none; }
.pm-moss .mm-search{ flex:1 1 170px; min-width:0; display:block; }
.pm-moss .mm-search input{ width:100%; height:40px; padding:0 14px; box-sizing:border-box; background:transparent; color:inherit; font:inherit; font-size:16px; outline:0; text-overflow:ellipsis; }
.pm-moss .mm-search input::placeholder{ color:inherit; opacity:.5; }
.pm-moss .mm-search input::-webkit-search-cancel-button{ display:none; }
.pm-moss .mm-filter-toggle, .pm-moss .pm-chip{ flex:none; cursor:pointer; white-space:nowrap; font:inherit; color:inherit; }
.pm-moss .mm-filter-toggle[hidden]{ display:none; }
.pm-moss .mm-diet{ display:none; flex-basis:100%; flex-wrap:wrap; gap:6px 8px; overflow:visible; padding:0 0 4px; }
.pm-moss .mm-diet.open{ display:flex; }
.pm-moss .mm-tabs{ display:flex; overflow-x:auto; scrollbar-width:none; }
.pm-moss .mm-tabs::-webkit-scrollbar{ display:none; }
.pm-moss .mm-tab{ flex:none; cursor:pointer; font:inherit; color:inherit; }
.pm-moss .mm-tab{ border-radius:0; }
.pm-moss .mm-item{ border:0; padding:0; margin:0; }
.pm-moss .pm-item-chips{ display:flex; flex-wrap:wrap; align-items:center; gap:3px 0; margin-top:3px; }
.pm-moss .mm-tag{ font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; line-height:1.6; font-style:normal; }
.pm-moss .mm-tag + .mm-tag::before{ content:"·"; margin:0 .55em; opacity:.6; }
.pm-moss .mm-tag--warn::after{ content:"*"; margin-left:.1em; }
.pm-moss .mm-veg{ display:inline-grid; place-items:center; width:1.3em; height:1.3em; margin-left:.55em; border:1.5px solid currentColor; border-radius:50%; font:700 .6em/1 sans-serif; letter-spacing:0; vertical-align:.1em; text-decoration:none; font-style:normal; }
.pm-moss .mm-item.is-out .pm-item-name, .pm-moss .mm-item.is-out .pm-item-price{ text-decoration:line-through; opacity:.5; }
.pm-moss .mm-item .pm-item-side{ flex-direction:row; align-items:center; gap:10px; }
.pm-moss .mm-item .pm-item-desc{ overflow-wrap:anywhere; }
.pm-moss .pm-promo-chip{ margin:0 0 0 6px !important; }
.pm-moss .pm-noresults{ padding:24px 0; text-align:center; }
.pm-moss .pm-empty{ padding:20px 0; }
/* "Moss & Mornings" (premium, Cafeterías & Bares): un cartel verde ilustrado; titular sobre una línea ondulada y dos columnas de menú. */
.pm-moss{ container:moss / inline-size; --mm-paper:#F7F8F5; --mm-deep:#28664F; --mm-forest:#347D60; --mm-sage:color-mix(in srgb, var(--mm-forest) 40%, var(--mm-paper));
  --mm-muted:color-mix(in srgb, var(--mm-forest) 55%, var(--mm-paper)); --mm-soft:color-mix(in srgb, var(--mm-deep) 82%, var(--mm-paper));
  --mm-display:'Space Grotesk','Helvetica Neue',Arial,sans-serif; --mm-body:'Manrope','Helvetica Neue',Arial,sans-serif; }
.pm-moss .mm-poster{ max-width:940px; margin-inline:auto; background:var(--mm-paper); color:var(--mm-deep); box-shadow:0 1px 2px rgba(40,60,48,.06), 0 24px 48px -28px rgba(40,60,48,.22); }
.pm-moss .mm-sheet{ --mm-pad:clamp(20px, 7.4cqw, 76px); padding:calc(var(--mm-pad) * .7) var(--mm-pad) calc(var(--mm-pad) * .55); display:flex; flex-direction:column; }
.pm-moss .mm-draw{ display:block; overflow:visible; height:auto; }
.pm-moss .mm-ln, .pm-moss .mm-ln *{ fill:none; stroke:var(--mm-forest); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.pm-moss .mm-ln{ filter:url(#mmWobble); }
.pm-moss .mm-ln .mm-fine, .pm-moss .mm-ln.mm-fine{ stroke-width:1.4; }
.pm-moss .mm-dot{ fill:var(--mm-deep); stroke:none; }
.pm-moss .mm-wash{ fill:var(--mm-sage); opacity:.38; stroke:none; }
.pm-moss .mm-tint{ fill:var(--mm-sage); opacity:.55; stroke:none; }
.pm-moss .mm-masthead{ display:grid; grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr); align-items:end; column-gap:12px; }
.pm-moss .mm-top{ grid-column:1 / -1; }
.pm-moss .mm-pill, .pm-moss .pm-lang{ padding:6px 12px; border:1.5px solid var(--mm-forest); border-radius:999px; background:transparent; color:var(--mm-forest); font:600 11px/1 var(--mm-body); letter-spacing:.2em; text-transform:uppercase; }
.pm-moss .pm-lang.active{ background:var(--mm-forest); color:var(--mm-paper) !important; border-color:var(--mm-forest) !important; }
.pm-moss .mm-illo-a{ width:clamp(100px, 25cqw, 220px); margin-left:calc(var(--mm-pad) * -.45); }
.pm-moss .mm-illo-b{ width:clamp(72px, 17cqw, 150px); justify-self:end; margin-right:calc(var(--mm-pad) * -.3); }
.pm-moss .mm-brand{ text-align:center; padding-bottom:clamp(10px, 3cqw, 34px); min-width:0; }
.pm-moss .mm-brand-name{ margin:0; font-family:var(--mm-display); font-weight:700; font-size:clamp(13px, 2.1cqw, 18px); letter-spacing:.26em; padding-left:.26em; text-transform:uppercase; color:var(--mm-deep); overflow-wrap:anywhere; }
.pm-moss .mm-brand-sub{ margin:8px 0 0; font-weight:600; font-size:clamp(9px, 1.25cqw, 11.5px); letter-spacing:.34em; padding-left:.34em; text-transform:uppercase; color:var(--mm-forest); opacity:1; overflow-wrap:anywhere; }
.pm-moss .mm-brand-rule{ display:block; width:44px; height:1px; background:var(--mm-muted); margin:14px auto 0; }
.pm-moss .mm-headline{ margin:clamp(14px, 3cqw, 30px) 0 0; display:grid; font-family:var(--mm-display); font-weight:700; font-size:calc(clamp(58px, 19.5cqw, 178px) * var(--mm-scale, 1)); line-height:.84; letter-spacing:-.035em; text-transform:uppercase; color:var(--mm-forest); }
.pm-moss .mm-row{ display:flex; align-items:flex-end; max-width:100%; }
.pm-moss .mm-row-1{ justify-self:start; padding-left:4%; } .pm-moss .mm-row-2{ justify-self:end; padding-right:2%; color:var(--mm-deep); }
.pm-moss .mm-kicker{ writing-mode:vertical-rl; transform:rotate(180deg); font-size:.2em; letter-spacing:.28em; line-height:1; margin:0 .5em .18em 0; color:var(--mm-deep); }
.pm-moss .mm-ch{ display:inline-block; } .pm-moss .mm-gap{ display:inline-block; width:.22em; }
.pm-moss .mm-flourish{ width:min(78%, 520px); margin:clamp(14px, 3cqw, 26px) auto 0; }
.pm-moss .mm-promos{ margin-top:22px; }
.pm-moss .mm-promos .pm-promo{ border:1.5px solid var(--mm-forest) !important; border-radius:14px !important; background:transparent; }
.pm-moss .mm-controls{ position:sticky; top:0; z-index:30; margin-top:clamp(30px, 5cqw, 48px); background:var(--mm-paper); padding:8px 0 6px; border-bottom:1px solid var(--mm-sage); }
.pm-moss .mm-search input{ border:1.5px solid var(--mm-forest); border-radius:999px; padding:0 18px; font-family:var(--mm-body); }
.pm-moss .mm-filter-toggle, .pm-moss .pm-chip{ height:40px; padding:0 16px; border:1.5px solid var(--mm-forest); border-radius:999px; background:transparent; font:600 11px/1 var(--mm-body); letter-spacing:.2em; text-transform:uppercase; }
.pm-moss .pm-chip{ height:32px; }
.pm-moss .mm-filter-toggle.has-active, .pm-moss .pm-chip[aria-pressed="true"]{ background:var(--mm-forest); color:var(--mm-paper); }
.pm-moss .mm-tabs{ gap:4px 18px; padding:10px 0 2px; }
.pm-moss .mm-tab{ padding:3px 0; border:0; border-bottom:2px solid transparent; background:none; font:700 14px/1.2 var(--mm-display); letter-spacing:.04em; text-transform:uppercase; opacity:.55; transition:opacity .2s, border-color .2s; }
.pm-moss .mm-tab.active{ opacity:1; border-bottom-color:var(--mm-forest); }
.pm-moss .mm-columns{ column-count:2; column-gap:clamp(40px, 9cqw, 88px); column-rule:1px solid var(--mm-sage); margin-top:clamp(34px, 6cqw, 56px); }
.pm-moss .mm-section{ break-inside:avoid; display:flex; flex-direction:column; gap:26px; margin-bottom:46px; }
.pm-moss .mm-accent{ align-self:center; width:64px; height:26px; margin-bottom:6px; }
.pm-moss .mm-section__title{ margin:0; display:flex; align-items:flex-end; justify-content:space-between; gap:12px; font-family:var(--mm-display); font-weight:700; font-size:clamp(22px, 4cqw, 36px); line-height:.95; letter-spacing:-.01em; text-transform:uppercase; color:var(--mm-deep); text-wrap:balance; }
.pm-moss .mm-section__title span{ min-width:0; overflow-wrap:anywhere; }
.pm-moss .mm-sprig{ width:34px; height:34px; flex:none; }
.pm-moss .mm-items{ display:flex; flex-direction:column; gap:15px; }
.pm-moss .mm-item{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
.pm-moss .mm-item .pm-item-main{ flex:1 1 auto; min-width:0; gap:3px; }
.pm-moss .mm-item .pm-item-name{ font-weight:500; font-size:clamp(13.5px, 1.7cqw, 15px); letter-spacing:.085em; text-transform:uppercase; color:var(--mm-deep); overflow-wrap:anywhere; }
.pm-moss .mm-item .pm-item-desc{ font-size:13px; line-height:1.45; letter-spacing:.01em; color:var(--mm-soft); opacity:1; max-width:34ch; }
.pm-moss .mm-item .pm-item-price{ font-family:var(--mm-body); font-weight:500; font-size:clamp(13.5px, 1.7cqw, 15px); letter-spacing:.02em; font-variant-numeric:tabular-nums; color:var(--mm-forest); }
.pm-moss .mm-tag{ color:var(--mm-soft); font-family:var(--mm-body); }
.pm-moss .mm-tag--star{ padding:0 7px; border:1px solid var(--mm-forest); border-radius:999px; color:var(--mm-forest); }
.pm-moss .mm-family{ width:min(100%, 640px); margin:clamp(30px, 6cqw, 60px) auto 0; }
.pm-moss .mm-signoff{ margin-top:18px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 24px; padding-top:16px; border-top:1px solid var(--mm-sage); font-size:11px; font-weight:600; letter-spacing:.26em; text-transform:uppercase; color:var(--mm-forest); }
@container moss (max-width:680px){
  .pm-moss .mm-columns{ column-count:1; column-rule:0; }
  .pm-moss .mm-masthead{ column-gap:6px; } .pm-moss .mm-illo-a{ margin-left:-6px; } .pm-moss .mm-illo-b{ margin-right:-4px; }
  .pm-moss .mm-row-1{ padding-left:0; } .pm-moss .mm-row-2{ padding-right:0; }
  .pm-moss .mm-signoff{ justify-content:center; text-align:center; }
}
@container moss (max-width:520px){
  .pm-moss .mm-masthead{ grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); grid-template-areas:"top top" "brand brand" "a b"; row-gap:18px; }
  .pm-moss .mm-top{ grid-area:top; } .pm-moss .mm-brand{ grid-area:brand; padding-bottom:0; }
  .pm-moss .mm-illo-a{ grid-area:a; width:min(150px, 46%); margin-left:-4px; } .pm-moss .mm-illo-b{ grid-area:b; width:min(104px, 32%); margin-right:0; }
  .pm-moss .mm-headline{ margin-top:20px; }
}
.pm-moss.pm-embedded .mm-controls{ position:static; }
/* <<< menuqr: moss-mornings <<< */

/* >>> menuqr: pk-mini >>> */
/* Mosaicos de la galería y tarjeta de edición de las plantillas de cafetería, bar y restaurante. */
.pk-mini{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; width:100%; text-align:center; }
.pk-mini-name{ font-size:26px; line-height:1; max-width:100%; overflow-wrap:anywhere; }
.pk-mini-rule{ width:46px; height:3px; background:var(--pk-a, currentColor); border-radius:2px; }
.pk-mini--little-sunday .pk-mini-name{ font-family:'Caveat Brush','Segoe Print',cursive; font-size:34px; transform:rotate(-4deg); }
.pk-mini--little-sunday .pk-mini-rule{ height:2px; width:64px; transform:rotate(-2deg); }
.pk-mini--cherry-hour .pk-mini-name{ font-family:'Pacifico','Brush Script MT',cursive; font-size:28px; transform:rotate(-3deg); }
.pk-mini--cherry-hour .pk-mini-rule{ height:6px; width:6px; border-radius:50%; box-shadow:-14px 0 0 var(--pk-a), 14px 0 0 var(--pk-a); }
.pk-mini--velvet-room .pk-mini-name{ font-family:'Cinzel','Times New Roman',serif; font-size:20px; letter-spacing:.2em; text-transform:uppercase; color:var(--pk-a); }
.pk-mini--velvet-room .pk-mini-rule{ height:1px; width:70px; box-shadow:0 4px 0 var(--pk-a); }
.pk-mini--maison-floret .pk-mini-name{ font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:22px; letter-spacing:.14em; text-transform:uppercase; }
.pk-mini--maison-floret .pk-mini-rule{ height:1px; width:60px; box-shadow:0 4px 0 currentColor; }
.pk-mini--atelier-table .pk-mini-name{ font-family:'Archivo','Helvetica Neue',Arial,sans-serif; font-weight:900; font-size:26px; letter-spacing:-.02em; text-transform:uppercase; }
.pk-mini--atelier-table .pk-mini-rule{ height:3px; width:80%; background:currentColor; box-shadow:0 5px 0 -1px var(--pk-a); border-radius:0; }
.pk-mini--bar-rosso .pk-mini-name{ font-family:'Archivo Black','Arial Black',sans-serif; font-size:36px; letter-spacing:-.05em; text-transform:uppercase; }
.pk-mini--bar-rosso .pk-mini-rule{ width:28px; height:3px; border-radius:0; }
.pk-mini--maison-celeste .pk-mini-name{ font-family:'Parisienne','Snell Roundhand',cursive; font-size:32px; }
.pk-mini--maison-celeste .pk-mini-rule{ height:1px; width:64px; background:var(--pk-a); }
.pk-mini--moss-mornings .pk-mini-name{ font-family:'Space Grotesk','Helvetica Neue',Arial,sans-serif; font-weight:700; font-size:22px; letter-spacing:-.02em; text-transform:uppercase; }
.pk-mini--moss-mornings .pk-mini-rule{ width:34px; height:3px; border-radius:2px; box-shadow:12px 0 0 var(--pk-a), -12px 0 0 var(--pk-a); }
.menu-card.layout-little-sunday .m-head b, .menu-card.layout-cherry-hour .m-head b, .menu-card.layout-maison-celeste .m-head b{ font-family:inherit; font-weight:400; font-size:1.5em; }
.menu-card.layout-velvet-room .m-head b, .menu-card.layout-maison-floret .m-head b, .menu-card.layout-atelier-table .m-head b, .menu-card.layout-bar-rosso .m-head b, .menu-card.layout-moss-mornings .m-head b{ letter-spacing:.12em; text-transform:uppercase; }
/* <<< menuqr: pk-mini <<< */

/* >>> menuqr: mobile-nav >>> */
/* Phones: the page links (How it works, Templates, Pricing, My menus…) open from a menu button instead of disappearing. */
.nav-burger{ display:none; flex:none; width:42px; height:42px; border-radius:50%; border:1px solid rgba(251,246,232,0.2); background:none; color:inherit; align-items:center; justify-content:center; cursor:pointer; padding:0; }
.nav-burger:hover{ border-color:rgba(251,246,232,0.4); }
.nav-burger svg{ width:18px; height:18px; display:block; }
.nav-burger .nb-x{ display:none; }
.nav-burger[hidden]{ display:none !important; }
header.nav.nav-open .nav-burger .nb-lines{ display:none; }
header.nav.nav-open .nav-burger .nb-x{ display:block; }
@media (max-width:760px){
  .nav-burger{ display:inline-flex; }
  .nav-inner{ padding-left:20px; padding-right:20px; gap:10px; }
  header.nav.nav-open .nav-links{
    display:flex; flex-direction:column; gap:0; position:absolute; top:100%; left:0; right:0;
    background:#17181a; border-bottom:1px solid var(--line); padding:8px 20px 14px;
    box-shadow:0 18px 30px rgba(0,0,0,0.35); max-height:calc(100vh - 80px); overflow-y:auto;
  }
  header.nav.nav-open .nav-links a{ display:block; opacity:1; font-size:17px; padding:14px 2px; border-bottom:1px solid rgba(251,246,232,0.08); }
  header.nav.nav-open .nav-links a:last-child{ border-bottom:0; }
}
@media (max-width:420px){
  .nav-right{ gap:6px; }
  .nav-cta{ padding-left:13px; padding-right:13px; font-size:13px; white-space:nowrap; }
  .logo{ font-size:24px; }
}
/* <<< menuqr: mobile-nav <<< */

/* >>> menuqr: editor-preview-fit >>> */
/* The editor's live preview: the premium templates are size containers, so as a flex item with no width of their own they
   shrank to nothing (a thin bar). Give the card the full width of the frame. */
.editor-preview-frame > #menuCard{ width:100%; min-width:0; }
/* Sunny Side: a slightly smaller section title so a word like "Breakfast" is not cut in the middle. */
.pm-sunny .ss-section__title{ font-size:clamp(34px, 5.2cqw, 46px); }
/* <<< menuqr: editor-preview-fit <<< */
