/* Rustic finish, exclusively for the public landing. */
:root {
 --rustic-paper:#f4ebda;
 --rustic-ink:#3d291e;
 --rustic-edge:#cfb99a;
 --orange:#a43c2c;
 --paper-grain:radial-gradient(rgba(99,64,34,.055) .6px,transparent .9px);
}
.carta,.gallery,.reviews,.contact {
 background-color:var(--rustic-paper);
 background-image:var(--paper-grain);
 background-size:5px 7px;
}
.gallery,.contact { background-color:#faf3e7; }
.navbar,.navbar.scrolled { border-bottom:3px double #b29671; }
.hero.hero-image-only { border-bottom:4px solid #5b3c28; }
.info-banner {
 background:#3d291e;
 color:#fff6e5;
 border-bottom:4px double #a78a66;
}
.info-banner .info-icon { color:#e3b890; }
.info-banner .info-text .label { color:#d7bfa3; }
.info-banner .info-text .value { color:#fff6e5; }
.info-banner .value a { text-decoration-color:#bd9270; }
.landing-section-heading.section-title {
 position:relative;
 border-bottom:0;
 padding-bottom:16px;
 text-shadow:0 1px 0 #fff9;
}
.landing-section-heading::after {
 content:'';
 position:absolute;
 left:15%; right:15%; bottom:0;
 height:6px;
 border-top:1px solid #ae735b;
 border-bottom:1px solid #ae735b;
}
.carta .search-wrap,.carta .tabs { background:#f4ebda; }
.carta .search-box { background:#fffaf0; border-color:#c5ab86; border-radius:5px; }
.carta .tab { border-radius:5px; border-color:#c5ab86; background:#fcf6ea; }
.carta .tab.active { background:#503421; border-color:#503421; box-shadow:inset 0 0 0 2px #503421,inset 0 0 0 3px #c6a47d; }
.carta .tabs { border-bottom:1px solid #cbb696; }
.carta .dish,.carta .dish.tone-1:not(.in-cart),.carta .dish.tone-2:not(.in-cart) {
 background:#fffaf0;
 border:1px solid #dac5a7;
 border-radius:6px;
 box-shadow:0 3px 8px #4e321008;
}
.carta .dish-thumb { border-radius:4px; outline:1px solid #d5c2a7; outline-offset:3px; }
.carta .dish-name,.carta .cat-title h2 { color:var(--rustic-ink); }
.carta .cat-title { display:flex; align-items:center; justify-content:center; gap:14px; }
.carta .cat-title::before,.carta .cat-title::after { content:''; height:1px; flex:1; max-width:56px; background:#bfa582; }
.carta .cat-title h2 { flex:0 1 auto; }
.carta .dish-tag { border-radius:3px; }
.gallery-item { border:6px solid #fffaf0; border-radius:3px; box-shadow:0 4px 12px #50342120; }
.review-card,.reviews-cta,.horario,.contact-info-item { background:#fffaf0; border:1px solid #d4bea0; border-radius:6px; }
.review-card { border-top:3px solid #b37a52; }
.contact-info-item:nth-child(1),.contact-info-item:nth-child(2) { background:#ede0cc; }
.contact-map { border:5px solid #fffaf0; border-radius:4px; box-shadow:0 2px 10px #50342115; }
.reviews-cta { border:3px double #c9ae8a; }
.cta-section,.footer { background:#302117; }
.footer { border-top:3px double #84694b; }
.navbar .mobile-call,.btn-primary {
 border-radius:5px;
 box-shadow:inset 0 0 0 3px #a43c2c,inset 0 0 0 4px #ffffff40;
}
#dishSheet { background:#fffaf0; border-color:#d4bea0; }
#dishSheet .dsh-allergens li { background:#efe3d0; }
@media(max-width:768px) {
 .hero.hero-image-only { padding-top:63px; }
 .gallery-item,.gallery-item:nth-child(1) { border-radius:3px; border-width:5px; }
 .carta .cat-title { gap:10px; }
 .carta .cat-title h2 { font-size:25px; }
 .carta .cat-title::before,.carta .cat-title::after { max-width:32px; }
}

/* Compact product details, with a quieter warm background. */
#dishSheet { background:#f8f0e3; width:min(480px,calc(100vw - 32px)); }
#dishSheet .dsh-photo { height:170px; max-height:24dvh; aspect-ratio:auto; background:#e9dcc7; }
#dishSheet .dsh-photo img { object-position:center 55%; }
#dishSheet .dsh-content { padding:18px 20px 22px; }
#dishSheet .dsh-name { font-size:23px; line-height:1.2; letter-spacing:0; margin-bottom:0; }
#dishSheet .dsh-price { font-size:20px; margin-top:6px; margin-bottom:16px; padding-bottom:12px; }
#dishSheet .dsh-tag { margin-bottom:8px; padding:4px 8px; letter-spacing:1px; }
#dishSheet .dsh-ingredients { margin-bottom:16px; }
#dishSheet .dsh-ingredients li { font-size:15px; line-height:1.55; }
#dishSheet .dsh-section-title { margin-bottom:8px; }
#dishSheet .dsh-allergens { margin-bottom:0; gap:6px; }
#dishSheet .dsh-allergens li { padding:5px 9px; background:#fffaf0; border:1px solid #ddcbb2; }
#sheetBg { backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px); background:rgba(40,26,16,.48); }
@media(max-width:768px) {
 #dishSheet { width:100%; }
 #dishSheet .dsh-photo { height:150px; max-height:23dvh; }
 #dishSheet .dsh-name { font-size:22px; }
 .carta .dish { padding:12px; gap:8px 12px; grid-template-columns:64px minmax(0,1fr); }
 .carta .dish-thumb { width:64px; height:64px; }
 .carta .dish-name { font-size:17px; }
 .carta .dish-price { font-size:17px; }
}

/* Illustrated drinks in the public menu. */
.carta #cat-bebidas .dish, .carta #cat-vinos .dish {
 grid-template-columns:52px minmax(0,1fr) auto; align-items:center; gap:12px;
}
.carta #cat-bebidas .dish-thumb, .carta #cat-vinos .dish-thumb {
 display:flex; align-items:center; justify-content:center;
 grid-column:1; grid-row:1; width:52px; height:58px;
 background:#f1e6d3; border-radius:8px; outline:none;
}
.carta #cat-bebidas .dish-thumb img, .carta #cat-vinos .dish-thumb img {
 width:36px; height:40px; object-fit:contain; padding:0;
}
.carta #cat-bebidas .dish-info, .carta #cat-vinos .dish-info {
 grid-column:2; grid-row:1; min-width:0;
}
.carta #cat-bebidas .dish-side, .carta #cat-vinos .dish-side {
 grid-column:3; grid-row:1; align-self:center;
}
@media(max-width:480px) {
 .carta #cat-bebidas .dish, .carta #cat-vinos .dish { gap:8px 10px; }
 .carta #cat-vinos .dish { grid-template-columns:52px minmax(0,1fr); }
 .carta #cat-vinos .dish-thumb { grid-row:1 / 3; }
 .carta #cat-vinos .dish-side { grid-column:2; grid-row:2; }
}
.carta #cat-bebidas .dish-info, .carta #cat-vinos .dish-info { display:block; }
.carta #cat-bebidas .dish-desc, .carta #cat-vinos .dish-desc { margin:5px 0 0; }

/* Real product packshots, with the whole bottle or can visible. */
.carta #cat-bebidas .dish-thumb, .carta #cat-vinos .dish-thumb { height:76px; background:transparent; border-radius:0; }
.carta #cat-bebidas .dish-thumb img, .carta #cat-vinos .dish-thumb img { width:52px; height:76px; object-fit:contain; mix-blend-mode:multiply; }
.carta #cat-bebidas .dish, .carta #cat-vinos .dish { grid-template-columns:64px minmax(0,1fr) auto; }
.carta #cat-bebidas .dish-thumb, .carta #cat-vinos .dish-thumb { width:64px; overflow:hidden; }
.carta #cat-bebidas .dish-thumb img, .carta #cat-vinos .dish-thumb img { width:76px; max-width:none; flex-shrink:0; }
@media(max-width:480px) { .carta #cat-vinos .dish { grid-template-columns:64px minmax(0,1fr); } }
/* Allergen presentation only; the stored menu and table ordering are unchanged. */
.carta #cat-bebidas .dish-dots,
.carta #cat-vinos .dish-dots { display:none; }
@media(max-width:768px) {
 .carta .dish-dots {
  grid-column:1 / -1; grid-row:4;
  justify-content:flex-end; justify-self:stretch; align-self:end;
  margin:0;
 }
 #dishSheet .dsh-allergens { justify-content:flex-end; }
 #dishSheet .dsh-section-title:has(+ .dsh-allergens) { text-align:right; }
}
/* More space for food photography in the mobile detail sheet. */
@media(max-width:768px) {
 #dishSheet .dsh-photo {
  height:clamp(210px,34dvh,320px); max-height:38dvh; flex-shrink:0;
 }
 #dishSheet .dsh-content {
  display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:16px;
 }
 #dishSheet .dsh-content > * { grid-column:1 / -1; min-width:0; }
 #dishSheet .dsh-tag { grid-row:1; justify-self:start; }
 #dishSheet .dsh-name, #dishSheet .dsh-price {
  grid-row:2; align-self:start; margin:0 0 16px; padding:0;
  border:0; line-height:1.25;
 }
 #dishSheet .dsh-name { grid-column:1; overflow-wrap:anywhere; }
 #dishSheet .dsh-price { grid-column:2; white-space:nowrap; text-align:right; }
}
/* Without a badge, the title occupies the first row before ingredients. */
@media(max-width:768px) {
 #dishSheet .dsh-content:has(> .dsh-tag[hidden]) .dsh-name,
 #dishSheet .dsh-content:has(> .dsh-tag[hidden]) .dsh-price { grid-row:1; }
}
