:root{--cafe:#3C0B00;--terra:#9D3A12;--fuego:#CE4B14;--oro:#FAB418;--crema:#FCFAEE;--papel:#fff;--linea:#eadfc8;--texto:#2b1a14;--gris:#7a6a60;--ok:#2e7d32;--mal:#b3261e}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--crema);color:var(--texto);font:17px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;color:var(--cafe);line-height:1.2;margin:1.2em 0 .5em}
h1{font-size:1.9rem;margin-top:.4em}h2{font-size:1.45rem}h3{font-size:1.15rem}
a{color:var(--terra)}img{max-width:100%;height:auto}
.cont{max-width:980px;margin:0 auto;padding:1rem 1rem 2.5rem}
/* cabecera */
.cab{position:sticky;top:0;z-index:20;background:var(--cafe);display:flex;align-items:center;justify-content:space-between;padding:.4rem 1rem;flex-wrap:wrap}
.marca{display:flex;align-items:center;gap:.6rem;color:var(--crema);text-decoration:none;font-family:Georgia,serif;font-weight:700}
.marca img{width:46px;height:46px;object-fit:contain}
.cab nav{display:none;width:100%;flex-direction:column;padding:.4rem 0 .6rem}
.cab nav a{color:var(--crema);text-decoration:none;padding:.55rem .3rem;border-bottom:1px solid #ffffff22}
.cab nav a.act{color:var(--oro);font-weight:700}
.burger-chk{display:none}.burger{cursor:pointer;padding:.5rem;display:block}
.burger i{display:block;width:26px;height:3px;background:var(--oro);margin:5px 0;border-radius:2px}
.burger-chk:checked~nav{display:flex}
@media(min-width:860px){.burger{display:none}.cab nav{display:flex!important;flex-direction:row;width:auto;padding:0;gap:.2rem;flex-wrap:wrap}.cab nav a{border:0;border-radius:6px;padding:.4rem .7rem;font-size:.95rem}.cab nav a:hover{background:#ffffff1a}}
/* inicio */
@media(min-width:700px){.botones{grid-template-columns:repeat(3,1fr)}}
/* botones y formularios */
.btn{display:inline-block;background:var(--fuego);color:#fff;border:0;border-radius:10px;padding:.65rem 1.2rem;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--terra)}
.btn-sec{background:var(--papel);color:var(--cafe);border:2px solid var(--linea)}.btn-sec:hover{background:var(--crema);color:var(--cafe)}
.btn-mal{background:var(--mal)}.btn-mal:hover{background:#8c1d18}
.btn-chico{padding:.3rem .7rem;font-size:.9rem;border-radius:8px}
form.f label{display:block;font-weight:600;margin:.9rem 0 .25rem}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=password],input[type=url],select,textarea{width:100%;padding:.6rem .7rem;border:2px solid var(--linea);border-radius:10px;font:inherit;background:#fff;color:var(--texto)}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--fuego)}
textarea{min-height:110px;resize:vertical}
.fila{display:grid;gap:.8rem}@media(min-width:640px){.fila.dos{grid-template-columns:1fr 1fr}.fila.tres{grid-template-columns:1fr 1fr 1fr}}
.chk{display:flex;gap:.6rem;align-items:flex-start;font-weight:400!important;margin-top:1rem!important}.chk input{margin-top:.35rem;width:auto}
.trampa{position:absolute;left:-9999px;height:0;overflow:hidden}
.ayuda{color:var(--gris);font-size:.9rem;margin:.2rem 0 0}
.aviso{padding:.75rem 1rem;border-radius:10px;margin:.8rem 0;font-weight:600}
.aviso.ok{background:#e6f4e7;color:#1b5e20;border:1px solid #b7dfba}.aviso.error{background:#fde8e6;color:#8c1d18;border:1px solid #f4bcb7}
.tarjeta{background:var(--papel);border:1px solid var(--linea);border-radius:14px;padding:1rem 1.1rem;margin:.8rem 0}
/* estrellas */
.estrellas{color:#d8ccb4;letter-spacing:2px;white-space:nowrap}.estrellas .on{color:var(--oro)}
.calif{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:.1rem}
.calif input{position:absolute;opacity:0}.calif label{font-size:2rem;color:#d8ccb4;cursor:pointer;margin:0!important;line-height:1}
.calif input:checked~label,.calif label:hover,.calif label:hover~label{color:var(--oro)}
.calif input:focus+label{outline:2px solid var(--fuego);border-radius:4px}
/* menú */
.fecha-menu{color:var(--terra);font-weight:700}.fecha-menu::first-letter{text-transform:uppercase}
.cat-tit{border-bottom:3px solid var(--oro);padding-bottom:.2rem;margin-top:1.6rem}
.plato{display:flex;gap:.9rem;background:var(--papel);border:1px solid var(--linea);border-radius:14px;padding:.7rem;margin:.6rem 0;align-items:center}
.plato .ft{flex:0 0 84px;height:84px;border-radius:10px;background:linear-gradient(135deg,var(--oro),var(--fuego));overflow:hidden}
.plato .ft img{width:100%;height:100%;object-fit:cover;display:block}
.plato .tx{flex:1;min-width:0}.plato h3{margin:0 0 .15rem;font-size:1.05rem}.plato p{margin:0;color:var(--gris);font-size:.93rem}
.precio{font-family:Georgia,serif;font-weight:700;font-size:1.25rem;color:var(--terra);white-space:nowrap}
.plato.agotado{opacity:.55}.plato.agotado .precio{text-decoration:line-through}
.etiqueta{display:inline-block;background:var(--mal);color:#fff;font-size:.75rem;padding:.1rem .5rem;border-radius:20px;font-weight:700;vertical-align:middle}
.vacio{text-align:center;padding:2rem 1rem;background:var(--papel);border:2px dashed var(--linea);border-radius:14px}
.nota{font-size:.85rem;color:var(--gris);margin-top:1rem}
/* galería */
.grid-fotos{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}@media(min-width:700px){.grid-fotos{grid-template-columns:repeat(3,1fr)}}
.grid-fotos a{display:block;aspect-ratio:1;overflow:hidden;border-radius:12px;background:var(--linea)}
.grid-fotos img{width:100%;height:100%;object-fit:cover;transition:.2s}.grid-fotos a:hover img{transform:scale(1.05)}
.ev-card{position:relative;display:block;color:#fff;text-decoration:none;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:linear-gradient(135deg,var(--terra),var(--cafe))}
.ev-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ev-card span{position:absolute;left:0;right:0;bottom:0;padding:1.5rem .8rem .6rem;background:linear-gradient(transparent,#000c);font-weight:700}
.ev-card small{display:block;font-weight:400;opacity:.9}
#lb{position:fixed;inset:0;background:#000e;display:none;align-items:center;justify-content:center;z-index:50;padding:1rem}
#lb.on{display:flex}#lb img{max-width:100%;max-height:88vh;border-radius:8px}
#lb button{position:absolute;top:.6rem;right:.8rem;background:none;border:0;color:#fff;font-size:2.2rem;cursor:pointer}
/* reseñas */
.resumen{display:grid;gap:.5rem;grid-template-columns:1fr 1fr}.resumen div{background:var(--papel);border:1px solid var(--linea);border-radius:12px;padding:.6rem;text-align:center}
.resumen b{display:block;font-size:1.5rem;font-family:Georgia,serif;color:var(--terra)}
.resena .resp{background:var(--crema);border-left:4px solid var(--oro);padding:.5rem .8rem;margin-top:.6rem;border-radius:0 8px 8px 0}
/* pie */
.pie{background:var(--cafe);color:var(--crema);padding:1.5rem 1rem 1rem}.pie h2{color:var(--oro);text-align:center;margin:0 0 1rem}
.pie a{color:var(--oro)}.pie-grid{max-width:980px;margin:0 auto;display:grid;gap:1rem}@media(min-width:700px){.pie-grid{grid-template-columns:1fr 1fr}}
.pie p{margin:.25rem 0}.pie .redes a{margin-right:1rem;font-weight:700}
.pie-qrs{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}.pie-qrs figure{margin:0;text-align:center;font-size:.85rem}
.pie-qrs canvas{background:#fff;border-radius:8px;padding:4px;display:block;margin:0 auto .2rem}
.peq{text-align:center;font-size:.85rem;opacity:.85;margin-top:1.2rem!important}
/* pagos */
.pago{display:grid;gap:1rem}@media(min-width:700px){.pago{grid-template-columns:1fr 1fr}}
.pago img{max-width:280px;width:100%;display:block;margin:.5rem auto;border-radius:10px}
.dato{display:flex;justify-content:space-between;gap:.8rem;border-bottom:1px dashed var(--linea);padding:.4rem 0}.dato b{text-align:right;word-break:break-all}
/* panel */
.adm .cab{background:#222}
.tabla{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;font-size:.95rem}
.tabla th{background:var(--cafe);color:#fff;text-align:left;padding:.5rem .6rem}.tabla td{padding:.5rem .6rem;border-top:1px solid var(--linea);vertical-align:top}
.scroll{overflow-x:auto}
.kpis{display:grid;gap:.7rem;grid-template-columns:1fr 1fr}@media(min-width:760px){.kpis{grid-template-columns:repeat(4,1fr)}}
.kpi{background:#fff;border:1px solid var(--linea);border-radius:14px;padding:.8rem;text-align:center}.kpi b{display:block;font-size:1.9rem;font-family:Georgia,serif;color:var(--fuego)}.kpi span{font-size:.85rem;color:var(--gris)}
.graf{display:grid;gap:1rem}@media(min-width:800px){.graf.dos{grid-template-columns:2fr 1fr}}
.graf canvas{max-height:280px}
.est{display:inline-block;padding:.1rem .6rem;border-radius:20px;font-size:.8rem;font-weight:700;background:var(--linea)}
.est.nueva,.est.pendiente{background:#fff0c2;color:#7a5a00}.est.confirmada,.est.publicada{background:#dcf0dd;color:#1b5e20}.est.cancelada,.est.oculta{background:#eee;color:#666}.est.en_contacto{background:#dbe9fb;color:#0d47a1}
.acciones{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.acciones form{margin:0}
.sel-plato{display:grid;grid-template-columns:auto 1fr;gap:.35rem .7rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--linea)}
.sel-plato .nom{margin:0!important;font-weight:700}
.sel-plato .ctrl{grid-column:2;display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;align-items:center}
.sel-plato .ctrl label{margin:0!important;font-weight:400;font-size:.9rem;display:inline-flex;align-items:center;gap:.3rem}
.sel-plato .ctrl input[type=number]{width:105px;padding:.35rem .5rem}
.sel-plato .ctrl input[type=checkbox]{width:auto}
.sel-plato .horarios{display:inline-flex;flex-wrap:wrap;gap:.3rem .9rem;padding:.2rem .6rem;background:var(--crema);border-radius:20px}
.jor.jor-carta{background:#eadfc8}
.mini{width:56px;height:56px;object-fit:cover;border-radius:8px;background:var(--linea)}
.login{max-width:380px;margin:2.5rem auto}.login img{display:block;width:150px;margin:0 auto}
@media print{.cab,.pie,.no-print{display:none!important}body{background:#fff}}

/* ===== Diseño público (fondo, tarjetas y etiquetas) ===== */
body.pub::before{content:"";position:fixed;inset:-640px;z-index:-1;background:url(../img/fondo.svg) 0 0/640px 640px;animation:deriva 120s linear infinite;pointer-events:none}
@keyframes deriva{to{transform:translate(640px,640px)}}
@media(prefers-reduced-motion:reduce){body.pub::before{animation:none;inset:0}}
.franja{display:flex;gap:1.2rem;justify-content:center;flex-wrap:wrap;padding:.45rem 1rem;background:var(--cafe);font-size:.9rem}
.franja a{color:var(--crema);text-decoration:none}.franja a:hover,.franja a.act{color:var(--oro)}
.cab-pub{max-width:1000px;margin:0 auto;padding:0 1rem;text-align:center}
.logo-caja{display:table;margin:0 auto;background:var(--crema);border-radius:0 0 26px 26px;padding:.6rem 2.2rem .3rem;box-shadow:0 3px 0 var(--linea)}
.logo-caja img{width:min(200px,50vw);display:block}
.lema{display:table;margin:.5rem auto .8rem;font-family:Georgia,serif;font-style:italic;color:var(--terra);background:rgba(252,250,238,.92);padding:.1rem .9rem;border-radius:20px}
.tarjetas{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
@media(max-width:759px){.tarjetas a:last-child{grid-column:1/-1}}
@media(min-width:760px){.tarjetas{grid-template-columns:repeat(5,1fr)}}
.tj{display:flex;flex-direction:column;justify-content:center;background:#fff;border:2px solid var(--linea);border-bottom:4px solid var(--fuego);border-radius:12px;padding:.6rem .4rem;text-decoration:none;color:var(--cafe);line-height:1.2;transition:.15s}
.tj b{font-size:.98rem}.tj span{font-size:.78rem;color:var(--gris);margin-top:.15rem}
.tj:hover,.tj:focus,.tj.act{border-color:var(--fuego);background:#fff7ea;transform:translateY(-2px)}
body.pub .cont.inicio{max-width:1000px}
body.pub .cont.hoja{max-width:900px;background:rgba(252,250,238,.95);border-radius:18px;margin:1rem auto;padding:1rem 1.2rem 2rem;box-shadow:0 3px 0 var(--linea)}
.portada{display:grid;gap:1.3rem;grid-template-areas:"menu" "quien" "carr";margin-top:.8rem}
@media(min-width:820px){.portada{grid-template-columns:1fr 1fr;grid-template-areas:"quien menu" "carr menu";align-items:start}}
.a-quien{grid-area:quien}.a-menu{grid-area:menu}.a-carr{grid-area:carr}
/* tarjetas tipo etiqueta con agujero */
.etq-s{filter:drop-shadow(0 3px 0 rgba(60,11,0,.25))}
.etq{position:relative;padding:3.1rem 1.3rem 1.3rem;color:var(--cafe);box-shadow:inset 0 0 0 3px rgba(255,255,255,.35);
 clip-path:polygon(24px 0,calc(100% - 24px) 0,100% 24px,100% 100%,0 100%,0 24px);
 -webkit-mask:radial-gradient(circle at 50% 26px,transparent 0,transparent 9px,#000 10px);mask:radial-gradient(circle at 50% 26px,transparent 0,transparent 9px,#000 10px)}
.etq.kraft{background:#E3C8A0}.etq.beige{background:#F7ECD8}
.etq h2{margin:0 0 .6rem;text-align:center;font-size:1.55rem}
.etq p{margin:.3rem 0}.etq .centro{text-align:center;margin-top:1rem}
.etq details{border-top:1px solid rgba(60,11,0,.2)}
.etq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:.55rem .2rem;font-family:Georgia,serif;font-weight:700;font-size:1.15rem}
.etq summary::-webkit-details-marker{display:none}
.etq summary::after{content:"+";font-size:1.5rem;line-height:1;color:var(--fuego)}
.etq details[open] summary::after{content:"\2013"}
.fp{display:flex;justify-content:space-between;gap:.7rem;padding:.3rem .2rem;border-bottom:1px dotted rgba(60,11,0,.25)}
.fp .pr{font-family:Georgia,serif;font-weight:700;color:var(--terra);white-space:nowrap}
.fp.ag{opacity:.55}.fp.ag .pr{text-decoration:line-through}
/* carrusel de la galería */
.carrusel{position:relative;border-radius:16px;overflow:hidden;background:#fff;border:4px solid #fff;box-shadow:0 3px 0 rgba(60,11,0,.2)}
.car-pista{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.car-pista::-webkit-scrollbar{display:none}
.car-pista a{position:relative;flex:0 0 100%;scroll-snap-align:center;aspect-ratio:16/10;display:block;background:var(--linea)}
.car-pista img{width:100%;height:100%;object-fit:cover;display:block}
.car-pista span{position:absolute;left:0;right:0;bottom:0;padding:1.4rem .8rem .5rem;color:#fff;font-weight:700;background:linear-gradient(transparent,#000b)}
.car-btn{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:0;background:#fffd;color:var(--cafe);font-size:1.4rem;line-height:1;cursor:pointer}
.car-btn:hover{background:#fff}.car-ant{left:.5rem}.car-sig{right:.5rem}
.car-vacio{padding:1.6rem 1rem;text-align:center;color:var(--gris);background:#fff}

/* ===== filtro por horario: desayuno, almuerzo, merienda ===== */
[hidden]{display:none!important}
.chips{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center;margin:.7rem 0}
.chip{border:2px solid var(--linea);background:#fff;border-radius:20px;padding:.3rem .95rem;font:inherit;font-size:.9rem;font-weight:700;color:var(--cafe);cursor:pointer}
.chip:hover{border-color:var(--fuego)}.chip.on{background:var(--fuego);border-color:var(--fuego);color:#fff}
.jor{display:inline-block;background:var(--oro);color:var(--cafe);font-size:.7rem;font-weight:700;padding:.05rem .5rem;border-radius:20px;margin:0 .25rem .15rem 0;vertical-align:middle}

/* ===== videos ===== */
.videos{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin:1rem 0}
.vid{margin:0}
.vid video{width:100%;display:block;max-height:80vh;border-radius:12px;background:#000}
.vid-caja{position:relative;overflow:hidden;border-radius:12px;background:#000}
.vid-h .vid-caja{aspect-ratio:16/9}
.vid-v .vid-caja{aspect-ratio:9/16;max-height:80vh}
.vid-caja iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vid-tit{margin:.3rem 0 0;font-weight:600}

/* ===== pie de página: logos de redes, usuarios y crédito ===== */
.redes-lista{list-style:none;margin:.7rem 0 0;padding:0;display:grid;gap:.5rem}
.redes-lista a{display:inline-flex;align-items:center;gap:.6rem;color:var(--crema);text-decoration:none;font-weight:600;word-break:break-all}
.redes-lista a:hover span{color:var(--oro);text-decoration:underline}
.red-ico{width:24px;height:24px;flex:0 0 24px;color:var(--oro)}
.pie-qrs canvas{width:110px;height:110px;image-rendering:pixelated}
.pie-qrs figcaption{display:flex;align-items:center;justify-content:center;gap:.3rem}
.pie-qrs .red-ico{width:18px;height:18px;flex-basis:18px}
.credito{text-align:center;font-size:.85rem;margin:.2rem 0 0}
.credito strong{color:var(--oro)}
.credito a{text-decoration:none}
.adm .credito{color:var(--gris);padding:0 1rem 1.5rem}
.adm .credito strong{color:var(--terra)}
