
  @font-face{
    font-family:'Rockwell-fallback'; src:local('Rockwell'), local('Rockwell Nova');
  }
  @font-face{
    font-family:'Champagne & Limousines';
    font-weight:400; font-style:normal; font-display:swap;
    src:url('/fonts/champagne-limousines-400.ttf') format('truetype');
  }
  @font-face{
    font-family:'Champagne & Limousines';
    font-weight:700; font-style:normal; font-display:swap;
    src:url('/fonts/champagne-limousines-700.ttf') format('truetype');
  }
  :root{
    --ink:#1E1712;
    --crust:#2B2119;
    --crust-2:#382B1F;
    --dough:#EFE6D3;
    --dough-2:#F7F1E4;
    --ember:#D6472B;
    --ember-deep:#A83420;
    --basil:#5B7345;
    --gold:#D9A23C;
    --text-on-dark:#F3E9D8;
    --muted-on-dark:#C9B79C;
    --text-on-light:#241B12;
    --muted-on-light:#6B5D48;
    --hairline-dark: rgba(243,233,216,0.16);
    --hairline-light: rgba(36,27,18,0.14);

    --display: 'Rockwell Nova Extra Bold','Rockwell Extra Bold','Rockwell','Roboto Slab',Georgia,serif;
    --body: Optima, Candara, 'Noto Sans','Segoe UI',sans-serif;
    --mono: 'SFMono-Regular', Consolas, 'Roboto Mono', 'Liberation Mono', monospace;
    --hand: 'Champagne & Limousines', var(--display);

    --ochre:#F5ECD8;
    --ochre-deep:#E3D2A8;
    --text-on-ochre:#241B12;
    --muted-on-ochre:#4A2F16;
  }
  *,*::before,*::after{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } *{ animation-duration:0.001ms !important; transition-duration:0.001ms !important; } }

  html,body{ overflow-x:hidden; max-width:100%; }
  body{
    margin:0;
    background:var(--dough);
    color:var(--text-on-light);
    font-family:var(--body);
    font-size:16px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  img,svg{ display:block; max-width:100%; }
  a{ color:inherit; }
  h1,h2,h3{ font-family:var(--display); text-wrap:balance; margin:0; letter-spacing:0.01em; }
  .num{ font-family:var(--mono); font-variant-numeric:tabular-nums; }
  .wrap{ max-width:1180px; margin:0 auto; padding-inline:1.5rem; }
  .eyebrow{
    font-family:var(--body); font-weight:700; font-size:0.78rem; letter-spacing:0.16em;
    text-transform:uppercase; color:var(--ember);
  }
  section{ padding:5rem 0; }
  @media (max-width:720px){ section{ padding:3.25rem 0; } }

  /* arch-topped button, echoes the brandmark's arch instead of a plain rectangle */
  .btn{
    display:inline-flex; align-items:center; gap:0.55rem;
    font-family:var(--body); font-weight:700; font-size:0.95rem;
    padding:0.85rem 1.6rem;
    text-decoration:none; cursor:pointer; border:2px solid transparent;
    border-radius:999px 999px 6px 6px;
    transition:transform 0.15s ease, background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
    white-space:nowrap;
  }
  .btn:focus-visible{ outline:3px solid var(--text-on-ochre); outline-offset:2px; }
  .btn:active{ transform:translateY(1px); }
  .btn-ember{ background:var(--ember); color:#fff; }
  .btn-ember:hover{ background:var(--ember-deep); box-shadow:0 6px 16px rgba(30,23,18,0.28); }
  .btn-ghost-dark{ background:transparent; border-color:rgba(36,27,18,0.35); color:var(--text-on-ochre); }
  .btn-ghost-dark:hover{ background:rgba(36,27,18,0.08); }
  .btn-ghost-light{ background:transparent; border-color:var(--hairline-light); color:var(--text-on-light); }
  .btn-ghost-light:hover{ background:rgba(36,27,18,0.06); }
  .btn svg{ width:1.05em; height:1.05em; flex:none; }

  /* ---------- header ---------- */
  header{
    position:sticky; top:0; z-index:40;
    background:rgba(245,236,216,0.92); backdrop-filter:blur(10px) saturate(1.2);
    border-bottom:1px solid rgba(36,27,18,0.18);
    color:var(--text-on-ochre);
  }
  .header-row{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:0.5rem 0; }
  /* ---------- brandmark (real logo, redrawn) ---------- */
  .brandmark3{ display:inline-flex; align-items:center; text-decoration:none; }
  .brandmark3 img{ display:block; height:104px; width:auto; }
  .brandmark3.lg img{ height:170px; }
  .brandmark-tagline-img{ width:100px; height:auto; display:block; }
  nav.primary{ display:flex; align-items:center; gap:1.8rem; }
  nav.primary a{ white-space:nowrap; font-size:0.85rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; text-decoration:none; color:var(--text-on-ochre); }
  nav.primary a:hover{ color:var(--ember-deep); }
  .header-cta{ display:flex; align-items:center; gap:0.75rem; }
  .nav-toggle-input{ position:absolute; opacity:0; pointer-events:none; }
  .nav-toggle-btn{ display:none; cursor:pointer; padding:0.4rem; color:var(--text-on-ochre); }
  .nav-toggle-btn svg{ width:26px; height:26px; display:block; }
  .mobile-nav{ display:none; flex-direction:column; }
  @media (max-width:900px){
    nav.primary{ display:none; }
    .header-cta{ display:none; }
    .nav-toggle-btn{ display:flex; }
    .nav-toggle-input:checked ~ .mobile-nav{ display:flex; }
  }
  .mobile-nav a, .mobile-nav summary{
    padding:1rem 1.5rem; color:var(--text-on-ochre); text-decoration:none; font-weight:700;
    text-transform:uppercase; letter-spacing:0.06em; font-size:0.9rem;
    border-top:1px solid rgba(36,27,18,0.15); background:var(--ochre); cursor:pointer;
  }

  /* ---------- hero ---------- */
  .hero{
    position:relative; overflow:hidden;
    background:var(--ochre);
    color:var(--text-on-ochre);
    padding:5.5rem 0 7rem;
  }
  .hero .wrap{ position:relative; z-index:1; max-width:700px; }
  .hero h1{ font-size:clamp(1.8rem,3.4vw,2.5rem); line-height:1.15; }
  .hero h1 em{ font-style:normal; color:var(--text-on-ochre); text-decoration:underline; text-decoration-color:var(--ember-deep); text-decoration-thickness:0.06em; text-underline-offset:0.1em; }
  .hero .tagline{
    margin-top:1.25rem; max-width:34ch; font-size:1.1rem; color:var(--muted-on-ochre);
  }
  .hero .quote{
    font-family:var(--hand); font-weight:700; font-size:1.5rem; color:var(--text-on-ochre);
    border-left:3px solid var(--ember-deep); padding-left:1rem; margin-top:2rem; max-width:24ch;
    transform:rotate(-1deg);
  }
  .hero .cta-row{ display:flex; flex-wrap:wrap; gap:0.9rem; margin-top:2.25rem; }
  .torn{ height:34px; }
  .torn svg{ width:100%; height:100%; display:block; }

  /* ---------- manifesto ---------- */
  .manifesto{ background:var(--dough-2); }
  .manifesto-inner{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:3.5rem; align-items:center; }
  @media (max-width:860px){ .manifesto-inner{ grid-template-columns:1fr; } }
  .manifesto-inner h2{ font-size:clamp(2rem,4vw,2.75rem); margin:0.5rem 0 2.25rem; }
  .manifesto-body p{ margin:0 0 1.25rem; color:var(--text-on-light); font-size:1.08rem; }
  .manifesto-body p:last-child{ margin-bottom:0; }
  .manifesto-tagline-img{ width:100%; max-width:320px; height:auto; display:block; margin:0 auto; transform:rotate(-2deg); }
  @media (max-width:860px){ .manifesto-tagline-img{ max-width:240px; } }
  .manifesto-sign{ font-family:var(--hand); font-weight:700; font-size:1.9rem; letter-spacing:0.02em; color:var(--ember); margin-top:2.75rem; transform:rotate(-1.5deg); }

  /* ---------- value strip ---------- */
  .values{ background:var(--dough); }
  .values-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.75rem; }
  @media (max-width:900px){ .values-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:520px){ .values-grid{ grid-template-columns:1fr; } }
  .value-card{ border-top:3px solid var(--basil); padding-top:1rem; }
  .value-card h3{ font-size:1.05rem; }
  .value-card p{ margin:0.5rem 0 0; color:var(--muted-on-light); font-size:0.94rem; }
  .value-card p a{ color:var(--ember-deep); font-weight:700; text-underline-offset:2px; }
  .value-card svg{ width:1.6rem; height:1.6rem; color:var(--ember); margin-bottom:0.6rem; }

  /* ---------- section headings ---------- */
  .section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:2.5rem; flex-wrap:wrap; }
  .section-head h2{ font-size:clamp(1.8rem,3.4vw,2.5rem); margin-top:0.35rem; }
  .section-head p.lede{ max-width:44ch; color:var(--muted-on-light); margin:0.35rem 0 0; }

  /* ---------- menu ---------- */
  .menu{ background:var(--ochre); color:var(--text-on-ochre); }
  .menu .section-head p.lede,.menu .section-head{ color:var(--muted-on-ochre); }
  .menu-grid{ display:grid; grid-template-columns:1fr 1fr; gap:2.5rem 3rem; }
  @media (max-width:760px){ .menu-grid{ grid-template-columns:1fr; } }
  .menu-cat h3{
    font-size:1.15rem; color:var(--text-on-ochre); text-transform:uppercase; letter-spacing:0.08em;
    border-bottom:2px solid var(--gold); padding-bottom:0.6rem; margin-bottom:1rem;
  }
  .cat-photo{ width:100%; height:200px; object-fit:cover; display:block; margin-bottom:1rem; }
  .dish{ display:flex; align-items:baseline; gap:0.6rem; padding:0.55rem 0; }
  .dish .name{ font-weight:600; }
  .dish .desc{ display:block; font-size:0.85rem; color:var(--muted-on-ochre); font-weight:400; margin-top:0.1rem; }
  .dish .leader{ flex:1; border-bottom:2px dotted rgba(36,27,18,0.3); transform:translateY(-0.35em); }
  .dish .price{ font-size:0.98rem; color:var(--text-on-ochre); }
  .menu-note{ margin-top:2.5rem; font-size:0.85rem; color:var(--muted-on-ochre); }
  .menu-cta{ margin-top:2rem; }

  /* ---------- locations ---------- */
  .locations{ background:var(--dough-2); }
  .loc-grid{ display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
  @media (max-width:800px){ .loc-grid{ grid-template-columns:1fr; } }
  .loc-card{ background:#fff; border:1px solid var(--hairline-light); padding:1.75rem; display:flex; flex-direction:column; gap:0.9rem; }
  .loc-card h3{ font-size:1.3rem; }
  .loc-row{ display:flex; gap:0.65rem; align-items:flex-start; font-size:0.94rem; color:var(--muted-on-light); }
  .loc-row svg{ width:1.15rem; height:1.15rem; flex:none; margin-top:0.15rem; color:var(--ember); }
  .loc-hours{ font-family:var(--mono); font-size:0.86rem; color:var(--text-on-light); }
  .loc-hours div{ display:flex; justify-content:space-between; gap:1rem; }
  .loc-actions{ display:flex; gap:0.6rem; flex-wrap:wrap; margin-top:0.4rem; }

  /* ---------- reviews ---------- */
  .reviews{ background:var(--ochre); color:var(--text-on-ochre); }
  .review-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.75rem; }
  @media (max-width:760px){ .review-grid{ grid-template-columns:1fr; } }
  .review-card{ border:1px solid rgba(36,27,18,0.2); padding:1.75rem; }
  .review-card .rating-row{ display:flex; align-items:baseline; gap:0.6rem; margin-bottom:0.35rem; }
  .review-card .rating-num{ font-family:var(--mono); font-size:2.1rem; font-weight:700; color:var(--text-on-ochre); }
  .review-card .rating-count{ font-size:0.85rem; color:var(--muted-on-ochre); }
  .review-card h3{ font-size:1.05rem; color:var(--text-on-ochre); margin:0.6rem 0 1rem; }
  .review-pull{ grid-column:1 / -1; text-align:center; max-width:44ch; margin:0.5rem auto 0; }
  .review-pull p{ font-family:var(--hand); font-weight:700; font-size:1.3rem; color:var(--text-on-ochre); }
  .review-pull cite{ font-style:normal; font-size:0.85rem; color:var(--muted-on-ochre); }
  .stars{ color:var(--gold); letter-spacing:0.15em; font-size:0.95rem; }

  /* ---------- contact ---------- */
  .contact{ background:var(--dough); }
  .contact-grid{ display:grid; grid-template-columns:0.95fr 1.05fr; gap:3rem; }
  @media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }
  .contact-info .loc-row{ margin-bottom:0.9rem; }
  .contact-social{ display:flex; gap:0.75rem; margin-top:1.5rem; }
  .contact-social a{ border:1px solid var(--hairline-light); padding:0.6rem; display:flex; }
  .contact-social svg{ width:1.2rem; height:1.2rem; }

  form.contact-form{ background:#fff; border:1px solid var(--hairline-light); padding:2rem; display:flex; flex-direction:column; gap:1.1rem; }
  .field{ display:flex; flex-direction:column; gap:0.4rem; }
  .field label{ font-size:0.82rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--muted-on-light); }
  .field input, .field select, .field textarea{
    font-family:var(--body); font-size:1rem; padding:0.7rem 0.8rem;
    border:1px solid var(--hairline-light); background:var(--dough-2); color:var(--text-on-light);
  }
  .field input:focus, .field select:focus, .field textarea:focus{ outline:2px solid var(--ember); outline-offset:1px; }
  .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
  @media (max-width:520px){ .field-row{ grid-template-columns:1fr; } }
  .consent{ display:flex; gap:0.6rem; align-items:flex-start; font-size:0.82rem; color:var(--muted-on-light); }
  .consent input{ margin-top:0.2rem; }
  .form-msg{ font-size:0.9rem; color:var(--basil); font-weight:700; display:none; }
  .form-msg.show{ display:block; }
  .form-msg.error{ color:var(--ember-deep); }
  .consent a{ color:var(--ember-deep); text-decoration:underline; }
  .hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; pointer-events:none; }

  /* ---------- footer ---------- */
  footer{ background:var(--ochre); color:var(--muted-on-ochre); padding:3rem 0 6.5rem; font-size:0.88rem; }
  @media (min-width:721px){ footer{ padding-bottom:3rem; } }
  .foot-grid{ display:flex; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
  .foot-grid h3{ color:var(--text-on-ochre); font-size:1.1rem; margin-bottom:0.6rem; }
  .foot-bottom{ border-top:1px solid rgba(36,27,18,0.2); margin-top:2.5rem; padding-top:1.5rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }

  /* ---------- location picker (shared by every generic "Llamar" CTA) ---------- */
  .call-picker summary{ list-style:none; cursor:pointer; }
  .call-picker summary::-webkit-details-marker{ display:none; }
  .call-picker-menu{
    background:#fff; border:1px solid rgba(36,27,18,0.2);
    box-shadow:0 10px 24px rgba(30,23,18,0.22);
    display:flex; flex-direction:column; min-width:230px;
  }
  .call-picker-menu a{ padding:0.85rem 1rem; color:var(--text-on-light); text-decoration:none; font-weight:700; font-size:0.88rem; border-top:1px solid rgba(36,27,18,0.12); }
  .call-picker-menu a:first-child{ border-top:none; }
  .call-picker-menu a:hover{ background:var(--dough); }

  .header-cta .call-picker{ position:relative; }
  .header-cta .call-picker-menu{ position:absolute; top:calc(100% + 10px); right:0; z-index:70; }

  /* ---------- floating call button (slides in from the right) ---------- */
  .float-call{
    position:fixed; top:50%; right:0; z-index:60;
    animation:floatCallIn 0.7s cubic-bezier(.2,.8,.2,1) 0.5s both;
  }
  .float-call summary{
    display:flex; align-items:center; gap:0.55rem;
    background:var(--ember); color:#fff; font-weight:700; font-size:0.95rem;
    padding:0.85rem 1.3rem 0.85rem 1rem;
    clip-path:polygon(10px 0,100% 0,100% 100%,10px 100%,0 50%);
    box-shadow:-8px 8px 20px rgba(30,23,18,0.28);
    transition:background 0.15s ease;
  }
  .float-call summary:hover{ background:var(--ember-deep); }
  .float-call svg{ width:1.2em; height:1.2em; flex:none; }
  .float-call .call-picker-menu{ position:absolute; top:100%; right:0; margin-top:0.6rem; z-index:70; }
  @keyframes floatCallIn{
    from{ transform:translate(120%,-50%); }
    to{ transform:translate(0,-50%); }
  }
  @media (prefers-reduced-motion: reduce){ .float-call{ animation:none; transform:translate(0,-50%); } }
  @media (max-width:720px){ .float-call{ display:none; } }

  /* ---------- sticky mobile call bar ---------- */
  .call-bar{ display:none; }
  @media (max-width:720px){
    .call-bar{
      display:flex; position:fixed; bottom:0; left:0; right:0; z-index:50;
      background:var(--ochre); border-top:1px solid rgba(36,27,18,0.2);
    }
    .call-bar a{ flex:1; text-align:center; padding:0.95rem 0; font-weight:700; font-size:0.92rem; text-decoration:none; display:flex; align-items:center; justify-content:center; gap:0.5rem; }
    .call-bar a.book{ color:var(--text-on-ochre); }
    .call-bar svg{ width:1.1em; height:1.1em; }
    .call-bar details{ flex:1; position:relative; }
    .call-bar details summary{ height:100%; display:flex; align-items:center; justify-content:center; gap:0.5rem; color:#fff; background:var(--ember); font-weight:700; font-size:0.92rem; }
    .call-bar .call-picker-menu{ position:absolute; bottom:100%; left:0; width:100%; z-index:70; }
  }

  .mobile-nav .call-picker-menu{ position:static; border:none; box-shadow:none; }
  .mobile-nav .call-picker-menu a{ padding-left:2.5rem; background:rgba(36,27,18,0.06); color:var(--text-on-ochre); }

  /* ---------- sub-pages (locales, carta) ---------- */
  .hero-sub{ padding:3.5rem 0 5.5rem; }
  .hero-sub h1{ font-size:clamp(1.8rem,3.6vw,2.6rem); }
  .crumbs{ font-size:0.82rem; color:var(--muted-on-ochre); margin-bottom:1.25rem; }
  .crumbs a{ color:var(--muted-on-ochre); }
  .menu-page{ padding-top:3.5rem; }
  .h1-section{ font-size:clamp(1.8rem,3.4vw,2.5rem); margin-top:0.35rem; }
  .menu-page .section-head{ margin-bottom:2.5rem; }
  .allergens{ margin-top:2.5rem; padding:1.5rem; border:1px solid rgba(36,27,18,0.25); background:rgba(255,255,255,0.35); }
  .allergens h2{ font-size:1.25rem; margin-bottom:0.5rem; }
  .allergens p{ margin:0; color:var(--muted-on-ochre); }
  .menu-links{ margin-top:2rem; }
  .menu-links a, .other-local-text a{ color:var(--ember-deep); font-weight:700; text-underline-offset:2px; }
  .loc-detail{ display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:stretch; }
  @media (max-width:860px){ .loc-detail{ grid-template-columns:1fr; } }
  .loc-card a:not(.btn){ color:inherit; }
  .about-local{ background:var(--dough); }
  .about-local .about-text{ max-width:720px; }
  .about-local h2{ font-size:clamp(1.8rem,3.4vw,2.5rem); margin:0.35rem 0 1.5rem; }
  .review-single{ grid-template-columns:minmax(0,640px); }
  .other-local{ padding:2.5rem 0; }
  .other-local-text{ margin:0; font-size:1.05rem; }

  /* ---------- third-party gate (map, reviews): only loaded after consent ---------- */
  .map-embed{ min-height:320px; border:1px solid var(--hairline-light); background:#fff; display:flex; }
  .map-embed iframe{ border:0; width:100%; min-height:320px; flex:1; }
  .gate-fallback{ padding:1.5rem; display:flex; flex-direction:column; gap:1rem; justify-content:center; align-items:flex-start; width:100%; }
  .gate-fallback p{ margin:0; color:var(--muted-on-light); }
  .reviews .gate-fallback p{ color:var(--muted-on-ochre); }
  .gate-fallback{ padding:1.5rem; }
  .gate-actions{ display:flex; gap:0.6rem; flex-wrap:wrap; }
  .gate-content{ display:none; width:100%; }
  html.consent-yes .gate-content{ display:block; }
  html.consent-yes .map-embed .gate-content{ display:block; }
  html.consent-yes .gate-fallback{ display:none; }

  /* ---------- cookie banner ---------- */
  .cookie-banner{
    position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:90; max-width:560px;
    background:var(--ochre); color:var(--text-on-ochre);
    border:1px solid rgba(36,27,18,0.3); box-shadow:0 12px 32px rgba(30,23,18,0.3);
    padding:1.25rem 1.4rem; font-size:0.9rem;
  }
  .cookie-banner[hidden]{ display:none; }
  .cookie-banner p{ margin:0 0 0.75rem; }
  .cookie-banner .cookie-title{ font-family:var(--display); font-size:1.05rem; margin-bottom:0.4rem; }
  .cookie-banner a{ color:var(--ember-deep); font-weight:700; }
  .cookie-actions{ display:flex; gap:0.6rem; flex-wrap:wrap; }
  .cookie-actions .btn{ padding:0.65rem 1.3rem; }
  @media (max-width:720px){ .cookie-banner{ bottom:4.25rem; } }
  button.linklike{ background:none; border:0; padding:0; font:inherit; color:inherit; text-decoration:underline; cursor:pointer; text-align:left; }

  /* ---------- legal pages ---------- */
  main.legal{ background:var(--dough-2); padding:3.5rem 0 5rem; }
  .legal-wrap{ max-width:820px; }
  .legal h1{ font-size:clamp(1.8rem,3.4vw,2.5rem); margin-bottom:1.5rem; }
  .legal h2{ font-size:1.25rem; margin:2rem 0 0.6rem; }
  .legal p, .legal li{ color:var(--text-on-light); }
  .legal a{ color:var(--ember-deep); font-weight:700; }
  .legal mark{ background:#FBE38A; color:var(--text-on-light); padding:0 0.25em; }
  .draft-note{ background:#FFF4C2; border:1px solid #D9A23C; padding:1rem 1.25rem; font-size:0.92rem; }
  .table-wrap{ overflow-x:auto; }
  .legal table{ border-collapse:collapse; width:100%; font-size:0.9rem; }
  .legal th, .legal td{ border:1px solid var(--hairline-light); padding:0.55rem 0.7rem; text-align:left; vertical-align:top; }
  .legal th{ background:var(--dough); }
  .legal code{ font-family:var(--mono); font-size:0.85em; }
  .review-link{ margin:1rem 0 0; font-size:0.9rem; }
  .review-link a{ color:var(--ember-deep); font-weight:700; text-underline-offset:2px; }
