/* ============================================================
   CARTA DIGITAL · LA HIENA PÁDEL
   Paleta y tipografía tomadas del logo: negro, rojo, azul y crema.
   ============================================================ */

/* ---------- Tipografías (locales, sin depender de internet) ---------- */
@font-face{
  font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/anton-400.woff2') format('woff2');
}
@font-face{
  font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/barlow-400.woff2') format('woff2');
}
@font-face{
  font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;
  src:url('fonts/barlow-600.woff2') format('woff2');
}
@font-face{
  font-family:'Barlow';font-style:normal;font-weight:700;font-display:swap;
  src:url('fonts/barlow-700.woff2') format('woff2');
}
@font-face{
  font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;
  src:url('fonts/barlowcond-600.woff2') format('woff2');
}
@font-face{
  font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;
  src:url('fonts/barlowcond-700.woff2') format('woff2');
}
@font-face{
  font-family:'Barlow Condensed';font-style:normal;font-weight:800;font-display:swap;
  src:url('fonts/barlowcond-800.woff2') format('woff2');
}

/* ---------- Variables ---------- */
:root{
  --bg:#08080c;
  --bg2:#0e0e15;
  --panel:#14141d;
  --panel2:#1b1b26;
  --line:#2a2a37;
  --line-soft:rgba(255,255,255,.07);
  --txt:#f4efe6;
  --dim:#9a9aa9;
  --red:#ff3b30;
  --red-deep:#8e1a14;
  --red-soft:rgba(255,59,48,.12);
  --blue:#3fa9e0;
  --blue-deep:#0f4568;
  --blue-soft:rgba(63,169,224,.12);
  --gold:#e8c66a;
  --green:#57d977;
  --maxw:720px;
  --radius:16px;
  --sat:env(safe-area-inset-top,0px);
  --sab:env(safe-area-inset-bottom,0px);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  min-height:100%;
  background:
    radial-gradient(1100px 520px at 50% -260px, rgba(255,59,48,.13), transparent 65%),
    radial-gradient(900px 520px at 112% 4%, rgba(63,169,224,.09), transparent 62%),
    var(--bg);
  color:var(--txt);
  font-family:'Barlow',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none}
a{color:inherit}
::selection{background:var(--red);color:#160403}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* ---------- Utilidades ---------- */
.hidden{display:none !important}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.toast{
  position:fixed;left:50%;bottom:calc(22px + var(--sab));z-index:120;
  transform:translate(-50%,24px);opacity:0;pointer-events:none;
  background:#18231a;border:1px solid #2f5a38;color:#d9ffdf;
  padding:12px 18px;border-radius:12px;font-size:.88rem;font-weight:600;
  max-width:calc(100vw - 40px);text-align:center;
  box-shadow:0 18px 40px rgba(0,0,0,.5);
  transition:opacity .22s,transform .22s;
}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.err{background:#2c1212;border-color:#72302c;color:#ffd7d3}

/* ============================================================
   CABECERA DE LA CARTA
   ============================================================ */
.site-head{
  max-width:var(--maxw);margin:0 auto;
  padding:calc(18px + var(--sat)) 20px 10px;
  display:flex;align-items:center;gap:14px;
  position:relative;z-index:2;
}
.brand-logo{
  width:62px;height:62px;border-radius:16px;object-fit:cover;flex:0 0 auto;
  box-shadow:0 0 0 1px rgba(255,255,255,.07), 0 14px 30px rgba(0,0,0,.55);
}
.brand-txt{min-width:0}
.brand-name{
  font-family:'Anton',Impact,sans-serif;font-weight:400;
  font-size:1.42rem;line-height:1;letter-spacing:.035em;text-transform:uppercase;
}
.brand-sub{font-size:.78rem;color:var(--dim);margin-top:5px;letter-spacing:.01em}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  max-width:var(--maxw);margin:0 auto;padding:12px 20px 20px;
  position:relative;
}
.kicker{
  display:inline-flex;align-items:center;gap:9px;
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--blue);
}
.kicker::before{content:"";width:24px;height:2px;background:var(--red);border-radius:2px}
.hero h2{
  font-family:'Anton',Impact,sans-serif;font-weight:400;
  font-size:clamp(3rem,13.5vw,4.8rem);line-height:.9;letter-spacing:.01em;
  text-transform:uppercase;margin:10px 0 14px;
}
.hero h2 span{color:var(--red)}
.hero-notice{
  display:flex;align-items:flex-start;gap:9px;
  font-size:.84rem;color:var(--txt);
  border-left:3px solid var(--gold);
  background:linear-gradient(90deg,rgba(232,198,106,.09),transparent);
  border-radius:0 10px 10px 0;padding:9px 12px;width:fit-content;max-width:100%;
}
.hero-notice::before{content:"◷";color:var(--gold);font-size:.95rem;line-height:1.3}
.hero-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.meta-pill{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.72rem;font-weight:600;color:var(--dim);
  background:rgba(255,255,255,.04);border:1px solid var(--line-soft);
  border-radius:999px;padding:5px 10px;
}
.meta-pill b{color:var(--txt);font-weight:600}

/* ============================================================
   BARRA PEGAJOSA: BUSCADOR + CATEGORÍAS
   ============================================================ */
.toolbar{
  position:sticky;top:0;z-index:40;
  background:rgba(8,8,12,.84);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line-soft);
  padding-top:env(safe-area-inset-top,0px);
}
.toolbar-inner{max-width:var(--maxw);margin:0 auto;padding:10px 20px 0}
.search{
  display:flex;align-items:center;gap:10px;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:9px 12px;
}
.search svg{flex:0 0 auto;color:var(--dim)}
.search input{
  flex:1;min-width:0;background:none;border:0;outline:none;
  font-size:.92rem;color:var(--txt);
}
.search input::placeholder{color:#6d6d7c}
.search-clear{
  width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.08);color:var(--dim);font-size:.72rem;flex:0 0 auto;
}
.chips{
  display:flex;gap:8px;overflow-x:auto;padding:10px 0 11px;
  scrollbar-width:none;-ms-overflow-style:none;
}
.chips::-webkit-scrollbar{display:none}
.chip{
  flex:0 0 auto;white-space:nowrap;
  background:var(--panel);border:1px solid var(--line);color:var(--dim);
  border-radius:999px;padding:7px 13px;
  font-size:.8rem;font-weight:600;letter-spacing:.01em;
  transition:background .15s,color .15s,border-color .15s,transform .1s;
}
.chip:active{transform:scale(.96)}
.chip.active{background:var(--red);border-color:var(--red);color:#1a0503;font-weight:700}

/* ============================================================
   DESTACADOS
   ============================================================ */
.featured-wrap{max-width:var(--maxw);margin:0 auto;padding:20px 20px 2px}
.sec-eyebrow{
  display:flex;align-items:center;gap:10px;margin-bottom:11px;
  font-family:'Barlow Condensed',sans-serif;font-weight:800;
  font-size:.86rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);
}
.sec-eyebrow::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,rgba(232,198,106,.4),transparent)}
.featured-row{
  display:grid;grid-auto-flow:column;
  grid-auto-columns:minmax(230px,74%);
  gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:2px 2px 10px;scrollbar-width:none;
}
.featured-row::-webkit-scrollbar{display:none}
@media(min-width:640px){
  .featured-row{grid-auto-columns:minmax(240px,46%)}
}
.fcard{
  scroll-snap-align:start;position:relative;overflow:hidden;
  background:linear-gradient(180deg,var(--panel2),#101018);
  border:1px solid var(--line);border-radius:18px;
  box-shadow:0 16px 34px rgba(0,0,0,.32);
}
.fcard-media{height:142px;position:relative;overflow:hidden;background:#0d0d14}
.fcard-media img{width:100%;height:100%;object-fit:cover}
.fcard-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(10,10,16,.92));
}
.fcard-body{padding:0 14px 14px;margin-top:-18px;position:relative;z-index:1}
.fcard-cat{
  font-size:.62rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--blue);
}
.fcard-name{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:1.24rem;line-height:1.08;margin-top:3px;
}
.fcard-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}
.fcard-price{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:1.15rem;color:var(--gold)}

/* ============================================================
   SECCIONES Y PLATOS
   ============================================================ */
.section{max-width:var(--maxw);margin:0 auto;padding:26px 20px 2px;scroll-margin-top:128px}
.sec-head{
  display:flex;align-items:flex-end;gap:10px;
  padding-bottom:10px;margin-bottom:13px;
  border-bottom:1px solid var(--line);
}
.sec-num{
  font-family:'Anton',sans-serif;font-size:.82rem;letter-spacing:.08em;
  color:var(--red);padding-bottom:3px;
}
.sec-title{
  font-family:'Barlow Condensed',sans-serif;font-weight:800;
  font-size:1.58rem;line-height:1;letter-spacing:.025em;text-transform:uppercase;
}
.sec-note{font-size:.74rem;color:var(--dim);margin-left:auto;text-align:right;max-width:48%}

.dish{
  display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:13px;
  align-items:center;padding:10px;margin-bottom:10px;
  background:linear-gradient(180deg,rgba(255,255,255,.038),rgba(255,255,255,.012));
  border:1px solid var(--line-soft);border-radius:16px;
  transition:border-color .15s,transform .15s;
}
.dish:active{transform:scale(.994)}
@media(min-width:520px){
  .dish{grid-template-columns:104px minmax(0,1fr) auto;gap:16px;padding:12px}
}
.dish-media{
  width:88px;height:88px;border-radius:12px;overflow:hidden;
  position:relative;background:#0d0d14;flex:0 0 auto;
}
@media(min-width:520px){.dish-media{width:104px;height:104px}}
.dish-media img{width:100%;height:100%;object-fit:cover}
/* La foto real va por encima del marcador de posición; si falla, se oculta
   y queda el logo de fondo. */
.dish-media .dish-img,.fcard-media .dish-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;
}
.dish-media .ph,.fcard-media .ph{z-index:0;pointer-events:none}
.ph img{height:auto}
.dish-body{min-width:0}
.dish-name{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:1.14rem;line-height:1.08;letter-spacing:.015em;
}
.dish-desc{
  font-size:.79rem;line-height:1.36;color:var(--dim);margin-top:3px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
@media(min-width:520px){
  .dish-name{font-size:1.24rem}
  .dish-desc{font-size:.83rem;-webkit-line-clamp:3}
}
.dish-price{
  font-family:'Barlow Condensed',sans-serif;font-weight:800;
  font-size:1.18rem;color:var(--gold);white-space:nowrap;
  align-self:start;padding-top:2px;
}
@media(min-width:520px){.dish-price{font-size:1.3rem}}
.tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.tag{
  font-size:.6rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  padding:2.5px 6px;border-radius:5px;border:1px solid transparent;line-height:1.25;
}
.tag-picante{color:#ff8a80;background:rgba(255,59,48,.11);border-color:rgba(255,59,48,.3)}
.tag-vegano,.tag-vegetariano{color:#8ce6a3;background:rgba(87,217,119,.1);border-color:rgba(87,217,119,.28)}
.tag-sin-gluten,.tag-sin-lactosa{color:#f0d68f;background:rgba(232,198,106,.1);border-color:rgba(232,198,106,.28)}
.tag-nuevo{color:#8fd3ff;background:rgba(63,169,224,.12);border-color:rgba(63,169,224,.3)}
.tag-recomendado{color:#ffd7d4;background:rgba(255,59,48,.16);border-color:rgba(255,59,48,.42)}

/* Placeholder cuando el plato no tiene foto */
.ph{
  position:absolute;inset:0;display:grid;place-items:center;
  background:
    radial-gradient(circle at 28% 18%, rgba(255,59,48,.18), transparent 58%),
    radial-gradient(circle at 82% 86%, rgba(63,169,224,.16), transparent 58%),
    #101019;
}
.ph img{width:52%;opacity:.3;filter:grayscale(1);object-fit:contain}

/* Plato agotado */
.dish.out{opacity:.48}
.dish.out .dish-media img{filter:grayscale(1)}
.badge-out{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg);
  background:rgba(8,8,12,.86);border:1px solid var(--red);color:#ff8a80;
  font-size:.6rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  padding:3px 8px;border-radius:5px;white-space:nowrap;
}

/* Buscador sin resultados */
.empty{
  max-width:var(--maxw);margin:0 auto;padding:46px 24px 60px;text-align:center;color:var(--dim);
}
.empty img{width:92px;margin:0 auto 16px;opacity:.22;filter:grayscale(1)}
.empty h3{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:1.3rem;color:var(--txt);text-transform:uppercase;letter-spacing:.04em}
.empty p{font-size:.85rem;margin-top:6px}

/* Carga */
.loading{
  display:flex;flex-direction:column;align-items:center;gap:14px;
  padding:70px 20px;color:var(--dim);font-size:.86rem;
}
.loading img{width:76px;border-radius:18px;animation:hiena-pulse 1.5s ease-in-out infinite}
@keyframes hiena-pulse{50%{opacity:.45;transform:scale(.96)}}

/* Pie */
.site-foot{
  max-width:var(--maxw);margin:34px auto 0;
  padding:26px 20px calc(40px + var(--sab));
  border-top:1px solid var(--line);
  color:var(--dim);font-size:.82rem;
}
.foot-brand{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.foot-brand img{width:46px;height:46px;border-radius:11px;object-fit:cover}
.foot-brand strong{display:block;color:var(--txt);font-family:'Barlow Condensed',sans-serif;font-size:1.2rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;line-height:1.1}
.foot-brand span{font-size:.75rem}
.foot-links{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.foot-links a{
  display:inline-flex;align-items:center;gap:7px;
  border:1px solid var(--line);background:rgba(255,255,255,.03);
  padding:8px 12px;border-radius:999px;text-decoration:none;
  color:var(--txt);font-size:.78rem;font-weight:600;
}
.foot-links a:active{background:var(--panel2)}
.foot-meta{line-height:1.7}
.foot-fine{margin-top:18px;font-size:.68rem;opacity:.55;letter-spacing:.02em}

/* ============================================================
   COMPONENTES COMPARTIDOS (admin)
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border-radius:12px;padding:10px 16px;
  font-size:.86rem;font-weight:700;line-height:1;letter-spacing:.01em;
  border:1px solid transparent;
  transition:transform .1s,filter .15s,opacity .15s;
}
.btn:active{transform:scale(.97)}
.btn:disabled{opacity:.4;cursor:default;transform:none}
.btn-primary{background:var(--red);color:#1a0503;border-color:var(--red)}
.btn-primary:not(:disabled):hover{filter:brightness(1.08)}
.btn-blue{background:var(--blue);color:#04131d;border-color:var(--blue)}
.btn-ghost{background:var(--panel);border-color:var(--line);color:var(--txt)}
.btn-danger{background:transparent;border-color:rgba(255,59,48,.4);color:#ff8a80}
.btn-sm{padding:8px 11px;font-size:.78rem;border-radius:10px}
.btn-block{width:100%}
.icon-btn{
  width:36px;height:36px;border-radius:10px;display:grid;place-items:center;
  background:var(--panel);border:1px solid var(--line);color:var(--dim);
  font-size:.95rem;flex:0 0 auto;
}
.icon-btn:active{transform:scale(.94);color:var(--txt)}
.icon-btn:disabled{opacity:.28;cursor:default;transform:none}
.icon-btn.danger{color:#ff8a80;border-color:rgba(255,59,48,.3)}

.field{display:block;margin-bottom:14px}
.field > span,.field-label{
  display:block;margin-bottom:6px;
  font-size:.66rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--dim);
}
.input,textarea.input,select.input{
  width:100%;background:var(--panel);border:1px solid var(--line);
  color:var(--txt);border-radius:11px;padding:11px 12px;
  font-size:.94rem;font-family:inherit;outline:none;
}
.input:focus,textarea.input:focus,select.input:focus{
  border-color:var(--blue);box-shadow:0 0 0 3px rgba(63,169,224,.14);
}
textarea.input{min-height:84px;resize:vertical;line-height:1.45}
select.input{
  appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--dim) 50%),linear-gradient(135deg,var(--dim) 50%,transparent 50%);
  background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
  padding-right:34px;
}
.hint{font-size:.72rem;color:var(--dim);line-height:1.5;margin-top:6px}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:440px){.row-2{grid-template-columns:1fr}}

.switch{
  position:relative;display:inline-flex;align-items:center;gap:10px;
  cursor:pointer;font-size:.83rem;font-weight:600;color:var(--txt);user-select:none;
}
.switch input{position:absolute;opacity:0;pointer-events:none}
.switch .track{
  width:44px;height:26px;border-radius:999px;background:#2b2b38;
  border:1px solid var(--line);position:relative;transition:background .18s;
  flex:0 0 auto;
}
.switch .track::after{
  content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;
  border-radius:50%;background:#8d8d9c;transition:transform .18s,background .18s;
}
.switch input:checked + .track{background:rgba(255,59,48,.28);border-color:rgba(255,59,48,.6)}
.switch input:checked + .track::after{transform:translateX(18px);background:var(--red)}
.switch input:focus-visible + .track{outline:2px solid var(--blue);outline-offset:2px}

/* Modal */
.modal{
  position:fixed;inset:0;z-index:90;display:none;
  align-items:flex-end;justify-content:center;
  background:rgba(0,0,0,.68);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
}
.modal.show{display:flex}
.modal-box{
  width:100%;max-width:560px;max-height:92vh;overflow-y:auto;
  background:var(--bg2);border:1px solid var(--line);
  border-radius:22px 22px 0 0;
  padding:18px 18px calc(20px + var(--sab));
  box-shadow:0 -24px 60px rgba(0,0,0,.6);
  animation:sheet-up .2s ease-out;
}
@keyframes sheet-up{from{transform:translateY(18px);opacity:.6}to{transform:none;opacity:1}}
@media(min-width:640px){
  .modal{align-items:center;padding:22px}
  .modal-box{border-radius:22px;padding-bottom:20px}
}
.modal-head{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.modal-head h2{
  font-family:'Barlow Condensed',sans-serif;font-weight:800;
  font-size:1.35rem;letter-spacing:.03em;text-transform:uppercase;line-height:1;
}
.modal-head .icon-btn{margin-left:auto}
.modal-foot{display:flex;gap:9px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.modal-foot .btn{flex:1}

/* Etiquetas seleccionables */
.tag-select{display:flex;flex-wrap:wrap;gap:7px}
.tag-select label{position:relative;cursor:pointer}
.tag-select input{position:absolute;opacity:0;pointer-events:none}
.tag-select span{
  display:inline-block;padding:7px 11px;border-radius:999px;
  background:var(--panel);border:1px solid var(--line);
  font-size:.75rem;font-weight:600;color:var(--dim);
  transition:background .15s,color .15s,border-color .15s;
}
.tag-select input:checked + span{background:var(--red-soft);border-color:rgba(255,59,48,.55);color:#ffb4ae}
.tag-select input:focus-visible + span{outline:2px solid var(--blue);outline-offset:2px}

/* ============================================================
   IMPRESIÓN DEL CARTEL DEL QR
   ============================================================ */
.print-sheet{display:none}
@media print{
  html,body{background:#f4efe6 !important;color:#08080c !important;height:auto !important;overflow:visible !important}
  body > *:not(.print-sheet){display:none !important}
  .print-sheet{
    display:flex !important;position:static;
    flex-direction:column;align-items:center;justify-content:center;
    gap:4mm;background:#f4efe6;color:#08080c;text-align:center;
    padding:9mm;
    -webkit-print-color-adjust:exact;print-color-adjust:exact;
  }
  .print-sheet img.qr{width:95mm;height:95mm;image-rendering:pixelated}
  .print-sheet .ps-logo{width:20mm;height:20mm;border-radius:4mm}
  .print-sheet .ps-kicker{font-family:'Barlow Condensed',sans-serif;font-size:4.4mm;letter-spacing:.2em;text-transform:uppercase;color:#0f4568;font-weight:700}
  .print-sheet .ps-title{font-family:'Anton',sans-serif;font-size:9mm;line-height:1.02;text-transform:uppercase;color:#08080c}
  .print-sheet .ps-title span{color:#e03127}
  .print-sheet .ps-url{font-family:'Barlow',sans-serif;font-size:3mm;color:#5a5a66;word-break:break-all}
  .print-sheet .ps-foot{font-family:'Barlow Condensed',sans-serif;font-size:3.2mm;letter-spacing:.14em;text-transform:uppercase;color:#0f4568;font-weight:700}
  @page{size:A5 portrait;margin:0}
}
