/* Doscar Carta - temas nuevos de la carta de las mesas: Clasica, Moderna y Revista (body.dct.tpl-<id>) */
body.dct{--c:#47a6dd;--a:#1f73a8;--tx:#1d232b;--mu:#5b6470;--li:#e3e7ec;--so:#f4f6f8;--bg:#fff;--ok:#0a7a3d;--er:#b00020;
  margin:0;background:var(--bg);color:var(--tx);font:16px/1.45 "Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;-webkit-text-size-adjust:100%}
body.dct *{box-sizing:border-box}
body.dct button{font-family:inherit;cursor:pointer}
body.dct h1,body.dct h2,body.dct h3{margin:0;font:inherit}
body.dct :focus{outline:none}
body.dct :focus-visible{outline:3px solid var(--tx);outline-offset:2px;box-shadow:0 0 0 5px #fff}
.dct-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Paginas de acceso y de mensajes (mismo marcado que el tema basico) */
body.dct>header{background:linear-gradient(135deg,var(--c),var(--cf,#1d3c52));color:#fff;padding:34px 16px 26px;text-align:center}
body.dct>header h1{font-size:clamp(24px,7vw,32px);font-weight:700;text-shadow:0 2px 10px rgba(0,0,0,.45);line-height:1.15}
body.dct>header small{display:inline-block;margin-top:10px;background:#fff;color:var(--tx);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700}
body.dct>main{max-width:760px;margin:0 auto;padding:12px}
body.dct .caja{background:#fff;border:1px solid var(--li);border-radius:16px;padding:22px;margin:24px auto;max-width:400px;box-shadow:0 2px 10px rgba(0,0,0,.05)}
body.dct .caja h2{font-size:18px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}
body.dct input[type=password]{width:100%;padding:12px;border:1px solid #8a939d;border-radius:8px;font:inherit;background:#fff;color:var(--tx)}
body.dct .btn,.dct-btn{display:block;width:100%;background:var(--a);color:#fff;border:2px solid var(--a);border-radius:8px;padding:13px 16px;min-height:48px;
  font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.05em;text-align:center}
body.dct .btn[disabled],.dct-btn[disabled]{opacity:.45;cursor:default}
.dct-btn.sec,body.dct .b2{background:#fff;color:var(--a);border:2px solid var(--a);border-radius:8px;padding:13px 16px;min-height:48px;font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.05em}
body.dct .err{color:var(--er);font-weight:700;margin:8px 0}
body.dct .msg{background:var(--ok);color:#fff;border-radius:8px;padding:10px 12px;margin:8px 0}
body.dct .p{color:var(--mu)}
body.dct .previa{background:#fff8e5;border-bottom:1px solid #e9cfa6;color:#5b4300;text-align:center;font-size:14px;padding:8px 12px;position:relative;z-index:30}

/* Carta */
#dct-app{min-height:100vh;padding-bottom:110px}
.dct-banner{position:relative;min-height:170px;display:flex;align-items:center;justify-content:center;padding:54px 16px 44px;color:#fff;
  background:linear-gradient(135deg,var(--c),var(--cf,#1d3c52));background-size:cover;background-position:center}
.dct-banner.foto{background-image:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4)),var(--portada)}
.dct-marca{color:inherit;display:flex;align-items:center;justify-content:center;text-decoration:none;max-width:75%}
.dct-marca img{max-height:100px;max-width:100%;object-fit:contain;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}
.dct-marca span{font-size:clamp(24px,7vw,34px);font-weight:700;text-align:center;text-shadow:0 2px 10px rgba(0,0,0,.45);line-height:1.15}
.dct-mesa{position:absolute;left:12px;bottom:10px;margin:0;background:#fff;color:var(--tx);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700}

.dct-menu{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--li)}
.dct-menu ul{list-style:none;margin:0 auto;padding:0 6px;max-width:860px;display:flex;overflow-x:auto;scrollbar-width:none}
.dct-menu li{flex:0 0 auto}
.dct-menu a{display:block;padding:14px 12px;font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--mu);text-decoration:none;border-bottom:3px solid transparent;white-space:nowrap}
.dct-menu a.on{color:var(--tx);border-bottom-color:var(--a);font-weight:700}

.dct-cuerpo{max-width:720px;margin:0 auto;padding:22px 16px}
.dct-tit{font-size:17px;text-transform:uppercase;letter-spacing:.05em;font-weight:800;margin:0 0 6px}
.dct-vacio{color:var(--mu);padding:14px 0}

/* Inicio */
.dct-inicio{text-align:center}
.dct-desc{font-size:16px;color:#333b44;max-width:480px;margin:0 auto 16px}
.dct-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:18px 0 26px}
.dct-btns .dct-btn{width:auto;min-width:210px}
.dct-fams{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;text-align:left}
.dct-fam{position:relative;display:block;height:100px;border-radius:12px;overflow:hidden;text-decoration:none;color:#fff;background:linear-gradient(135deg,var(--c),var(--cf,#1d3c52))}
.dct-fam i{position:absolute;inset:0;background-size:cover;background-position:center}
.dct-fam:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 20%,rgba(0,0,0,.75))}
.dct-fam b{position:absolute;left:10px;right:10px;bottom:8px;z-index:1;font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.03em}
.dct-empresa{margin-top:30px;font-size:14px;color:var(--mu);display:flex;flex-direction:column;gap:2px}

/* Listas de platos (Clasica) */
.dct-lista{list-style:none;margin:0;padding:0}
.dct-prod{position:relative;display:grid;grid-template-columns:136px minmax(0,1fr) auto;gap:16px;padding:16px 0;border-bottom:1px solid var(--li);align-items:start}
.dct-img{display:block;width:136px;height:92px;border:0;padding:0;border-radius:6px;overflow:hidden;background:var(--so)}
.dct-img img{width:100%;height:100%;object-fit:cover;display:block}
.dct-img.sin{visibility:hidden}
.dct-fila{display:flex;align-items:baseline;gap:8px}
.dct-nombre{color:var(--tx);background:none;border:0;padding:0;text-align:left;font-weight:800;font-size:15px;text-transform:uppercase;letter-spacing:.02em;flex:1;line-height:1.3}
.dct-nombre:hover{text-decoration:underline}
.dct-puntos{display:none}
.dct-precio{font-weight:800;font-size:15px;white-space:nowrap}
.dct-info p{margin:5px 0 0;font-size:14px;color:var(--mu)}

/* Control de cantidad */
.dct-ctl{align-self:end;display:flex;align-items:center;gap:8px}
.dct-mas,.dct-menos{width:44px;height:44px;border-radius:50%;border:2px solid var(--a);background:#fff;color:var(--a);font-size:22px;font-weight:800;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}
.dct-cant{min-width:22px;text-align:center;font-weight:800}

/* Moderna: tarjetas con foto grande */
.tpl-moderna .dct-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-top:8px}
.tpl-moderna .dct-cuerpo{max-width:900px}
.tpl-moderna .dct-prod{display:flex;flex-direction:column;border:1px solid var(--li);border-radius:16px;overflow:hidden;padding:0;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.05);gap:0}
.tpl-moderna .dct-img{width:100%;height:auto;aspect-ratio:4/3;border-radius:0}
.tpl-moderna .dct-img.sin{display:none}
.tpl-moderna .dct-info{padding:14px 16px 66px}
.tpl-moderna .dct-fila{flex-wrap:wrap}
.tpl-moderna .dct-nombre{text-transform:none;font-size:17px;letter-spacing:0}
.tpl-moderna .dct-precio{font-size:17px}
.tpl-moderna .dct-prod .dct-ctl{position:absolute;right:14px;bottom:14px}

/* Revista: fondo crema, serifa, una familia por pagina */
body.tpl-revista{--bg:#fbf8f3}
.tpl-revista .dct-cuerpo{font-family:Georgia,"Times New Roman",serif}
.tpl-revista .dct-menu{background:#fbf8f3}
.dct-pag{display:none}
.tpl-revista .dct-pag{display:block;font-family:"Segoe UI",system-ui,sans-serif;font-size:12px;letter-spacing:.2em;color:var(--mu);text-align:center;margin:0 0 4px}
.tpl-revista .dct-tit{font-size:34px;text-transform:none;letter-spacing:0;font-weight:700;font-style:italic;text-align:center;border-bottom:2px solid var(--tx);padding-bottom:10px}
.dct-portada{display:none}
.tpl-revista .dct-portada{display:block;height:220px;border-radius:4px;background-size:cover;background-position:center;margin:14px 0 18px}
.tpl-revista .dct-prod{grid-template-columns:minmax(0,1fr) auto;padding:14px 0;border-bottom:1px dotted #b9ad9b}
.tpl-revista .dct-img{display:none}
.tpl-revista .dct-nombre{font-family:Georgia,"Times New Roman",serif;text-transform:none;font-size:19px;font-weight:700;letter-spacing:0;flex:0 1 auto}
.tpl-revista .dct-puntos{display:block;flex:1;border-bottom:2px dotted #a39784;transform:translateY(-4px);min-width:20px}
.tpl-revista .dct-info p{font-style:italic;color:#4d4538;font-size:15px}
.tpl-revista .dct-mas,.tpl-revista .dct-menos{width:40px;height:40px}
.dct-nav{display:none}
.tpl-revista .dct-nav{display:flex;justify-content:space-between;gap:12px;margin-top:24px;font-family:"Segoe UI",system-ui,sans-serif}
.dct-nav a{color:var(--a);font-weight:700;text-decoration:none;padding:10px 0}

/* Barra inferior */
#dct-barra{position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--li);box-shadow:0 -2px 12px rgba(0,0,0,.1);padding:10px 12px}
#dct-barra .in{max-width:720px;margin:0 auto;display:flex;gap:10px;align-items:center}
#dct-barra .dct-btn{margin:0;font-size:13px;padding:13px 10px;white-space:nowrap}
#dct-barra .dct-btn:not(.sec){flex:1}
#dct-barra .dct-btn.sec{width:auto;padding:13px 14px}

/* Ventanas (detalle y cuenta) */
dialog.dct-dlg{border:0;border-radius:16px;padding:0;max-width:440px;width:94%;color:var(--tx);background:#fff}
dialog.dct-dlg::backdrop{background:rgba(0,0,0,.45)}
.dct-dlgc{padding:20px}
.dct-dlgc h2{font-size:18px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.dct-foto{margin:-20px -20px 14px;height:230px;background-size:cover;background-position:center;border-radius:16px 16px 0 0}
.dct-lin{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--li)}
.dct-total{font-weight:800}
.dct-acc{display:flex;gap:12px;align-items:center;margin-top:16px}
.dct-acc .dct-btn{margin:0;flex:1}
.dct-cerrar{margin-top:14px}

@media (max-width:520px){
  .dct-prod{grid-template-columns:104px minmax(0,1fr) auto;gap:12px}
  .dct-img{width:104px;height:78px}
  .tpl-revista .dct-prod{grid-template-columns:minmax(0,1fr) auto}
}

/* Alergenos */
.dct-als{display:inline-flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.dct-al{display:inline-flex;width:26px;height:26px;border-radius:50%;background:#fff4e5;border:1px solid #e9cfa6;align-items:center;justify-content:center;font-size:14px;line-height:1}
.dct-alfila{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.dct-inicio .dct-alfila{justify-content:center}
.dct-alfila .dct-albtn{width:auto;min-height:40px;padding:7px 16px}
.dct-alnota{font-size:13px;color:var(--mu)}
.dct-aviso{font-size:13px;color:var(--mu);margin:16px 0 0}
.dct-alsel{display:grid;grid-template-columns:1fr 1fr;gap:2px 12px;margin:8px 0}
.dct-alopt{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:15px}
.dct-alopt input{width:20px;height:20px;accent-color:var(--a)}
.dct-albloque{margin:14px 0 0}
.dct-albloque h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.dct-allista{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:15px}
.tpl-revista .dct-als{margin-top:6px}
