/* Pedidos Rey Pizza · la tienda en línea (diseño aprobado «reypizza.gt — pedidos en línea»).
 * Marca: Azul Monarca #0F1F3D · Oro Corona #FFC600 · Pergamino #FFF7E1 · blanco. Nunito (títulos y botones) y Nunito Sans (textos).
 * En modo oscuro del celular todo se vuelve azul marino. */
@font-face{font-family:Nunito;font-weight:700;font-display:swap;src:url(fuentes/nunito-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:Nunito;font-weight:800;font-display:swap;src:url(fuentes/nunito-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:Nunito;font-weight:900;font-display:swap;src:url(fuentes/nunito-latin-900-normal.woff2) format('woff2')}
@font-face{font-family:'Nunito Sans';font-weight:400;font-display:swap;src:url(fuentes/nunito-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Nunito Sans';font-weight:600;font-display:swap;src:url(fuentes/nunito-sans-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Nunito Sans';font-weight:700;font-display:swap;src:url(fuentes/nunito-sans-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Nunito Sans';font-weight:800;font-display:swap;src:url(fuentes/nunito-sans-latin-800-normal.woff2) format('woff2')}

:root{
  --azul:#0F1F3D;--azul2:#14284B;--azul3:#1D3A6B;--oro:#FFC600;--oro-osc:#8A6A00;--crema:#FFF7E1;--blanco:#FFFFFF;
  --fondo:#FFFFFF;--tarjeta:#FFFFFF;--suave:#FFF7E1;--tinta:#0F1F3D;--tinta2:#4A5270;--borde:#E6DFCC;--linea:#EFE9DA;
  --boton:#0F1F3D;--boton-t:#FFF7E1;--ok:#1D6B3A;--mal:#B3261E;--sombra:0 8px 18px -14px rgba(15,31,61,.32);
  --trono:radial-gradient(120% 90% at 50% 0%,#2A4A80 0%,#14284B 40%,#0F1F3D 80%);
  --titulo:Nunito,'Nunito Sans',system-ui,sans-serif;--texto:'Nunito Sans',Nunito,system-ui,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{--fondo:#0F1F3D;--tarjeta:#14284B;--suave:#1A3260;--tinta:#FFF7E1;--tinta2:#C9D0E6;--borde:#2A4A80;--linea:#24467A;
    --boton:#FFC600;--boton-t:#0F1F3D;--ok:#7FD6A0;--mal:#FF8A80;--oro-osc:#FFD95A;--sombra:none;color-scheme:dark}
}
*{box-sizing:border-box}
html,body{margin:0;overscroll-behavior-y:none}
body{background:var(--fondo);color:var(--tinta);font:400 16px/1.45 var(--texto);-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;max-width:560px;margin:0 auto}

/* encabezado */
.enc{position:sticky;top:0;z-index:5;min-height:64px;background:var(--azul);display:flex;align-items:center;gap:12px;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top))}
.enc img{width:36px;height:auto;flex:none}
.enc .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.enc .t b{font:900 18px/1 var(--titulo);letter-spacing:.02em;color:#FFF7E1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.enc .t span{font:800 11px/1 var(--texto);letter-spacing:.2em;color:#FFC600;white-space:nowrap}
.ib{width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,247,225,.28);background:transparent;color:#FFF7E1;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}
.carro-b{height:44px;padding:0 12px;border-radius:12px;border:0;background:#FFC600;color:#0F1F3D;display:flex;align-items:center;gap:6px;font:800 16px var(--titulo);cursor:pointer;flex:none}
svg{flex:none}

main{flex:1;padding:18px 16px 28px;display:flex;flex-direction:column;gap:12px}
h1{margin:0;font:900 28px/1.1 var(--titulo)}
h2{margin:6px 0 0;font:800 11px/1.2 var(--texto);letter-spacing:.12em;color:var(--tinta2);text-transform:uppercase}
p{margin:0}
.sub{color:var(--tinta2);font-size:15px}
.peq{font-size:13px;color:var(--tinta2)}
.centro{text-align:center}

/* botones */
.btn{min-height:54px;border:0;border-radius:14px;background:var(--boton);color:var(--boton-t);font:800 16px var(--titulo);cursor:pointer;padding:0 16px;display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;width:100%}
.btn.sec{min-height:48px;background:var(--tarjeta);color:var(--tinta);border:1.5px solid var(--borde)}
.btn.oro{background:#FFC600;color:#0F1F3D}
.btn[disabled]{opacity:.5;cursor:default}
.lnk{border:0;background:transparent;color:var(--tinta);font:700 15px var(--texto);text-decoration:underline;cursor:pointer;min-height:44px}
.chico{min-height:44px;padding:0 14px;border-radius:12px;border:0;background:#FFC600;color:#0F1F3D;font:800 15px var(--titulo);cursor:pointer;flex:none}
.chico.az{background:var(--boton);color:var(--boton-t)}
.chico.ln{background:var(--tarjeta);color:var(--tinta);border:1.5px solid var(--tinta)}

/* tarjetas */
.tj{background:var(--tarjeta);border:1.5px solid var(--borde);border-radius:16px;padding:12px 14px;box-shadow:var(--sombra)}
.op{text-align:left;padding:14px;border-radius:16px;display:flex;flex-direction:column;gap:4px;cursor:pointer;border:1.5px solid var(--borde);background:var(--tarjeta);color:var(--tinta);box-shadow:var(--sombra)}
.op.on{border-color:var(--azul);background:var(--azul);color:#FFF7E1}
@media (prefers-color-scheme:dark){.op.on{border-color:#FFC600;background:#FFC600;color:#0F1F3D}}
.op b{font:800 16px var(--titulo)}.op span{font-size:13px;opacity:.85}
.dos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.suc{text-align:left;padding:12px 14px;border-radius:16px;display:flex;flex-direction:column;gap:2px;cursor:pointer;background:var(--tarjeta);color:var(--tinta);border:1.5px solid var(--borde)}
.suc.on{border:2px solid var(--tinta)}
.suc b{font:800 17px var(--titulo)}
.suc[disabled]{opacity:.6;cursor:default}
.aviso{border:1.5px solid #FFC600;background:var(--suave);border-radius:16px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.aviso .et{font:800 11px var(--texto);letter-spacing:.12em;color:var(--oro-osc);text-transform:uppercase}
.mal{color:var(--mal);font-weight:700;font-size:15px}
.ok{color:var(--ok);font-weight:700;font-size:15px}

/* campos */
label{font-weight:700;font-size:15px}
.campo{display:flex;flex-direction:column;gap:6px}
.campo .fila{display:flex;gap:8px}
input[type=text],input[type=tel],input[type=email],input[type=search],textarea{height:48px;border:1.5px solid var(--borde);border-radius:12px;padding:0 14px;font-size:16px;background:var(--tarjeta);color:var(--tinta);width:100%;min-width:0}
textarea{height:auto;min-height:72px;padding:10px 14px;resize:vertical}
input:focus,textarea:focus,button:focus-visible{outline:2.5px solid #FFC600;outline-offset:1px}
input.cod{font-size:20px;letter-spacing:6px}
.chk{display:flex;align-items:center;gap:10px;min-height:44px;font-weight:700}
.chk input{width:20px;height:20px;accent-color:var(--azul)}
.lab{display:flex;align-items:center;gap:6px}

/* «!» ayuda */
.ayu{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--tinta2);background:transparent;color:var(--tinta2);font:800 13px var(--titulo);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:none;padding:0}
.ayu-t{font-size:14px;color:var(--tinta2);background:var(--suave);border-radius:12px;padding:10px 12px}

/* menú */
.cats{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.cats::-webkit-scrollbar{display:none}
.cat{flex-shrink:0;height:64px;min-width:92px;padding:0 10px;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font:700 13px var(--texto);cursor:pointer;border:1.5px solid var(--borde);background:var(--tarjeta);color:var(--tinta)}
.cat.on{border-color:var(--azul);background:var(--azul);color:#FFF7E1}
@media (prefers-color-scheme:dark){.item input,.chk input{accent-color:#FFC600}}
@media (prefers-color-scheme:dark){.cat.on{border-color:#FFC600;background:#FFC600;color:#0F1F3D}}
.prod{display:flex;gap:12px;align-items:center;border-radius:18px;padding:12px 14px}
.prod .n{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.prod .n b{font:800 18px/1.2 var(--titulo)}
.prod .n .pr{font:800 20px var(--titulo)}
.mas{width:48px;height:48px;border:0;border-radius:14px;background:#FFC600;color:#0F1F3D;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}

/* carrito */
.lin{background:var(--suave);border-radius:12px;padding:8px 10px 8px 12px;display:flex;align-items:center;gap:6px}
.lin .n{flex:1;min-width:0}.lin .n b{font-weight:700;font-size:15px;display:block}
.lin .q{width:40px;height:44px;border:0;background:transparent;font:800 22px var(--titulo);color:var(--tinta);cursor:pointer}
.lin .c{font-weight:800;min-width:18px;text-align:center}
.lin .t{font-weight:700;min-width:64px;text-align:right;font-variant-numeric:tabular-nums}
.tot{display:flex;flex-direction:column;gap:4px;font-size:15px;margin-top:4px}
.tot div{display:flex;justify-content:space-between;color:var(--tinta2);font-variant-numeric:tabular-nums}
.tot .gr{align-items:baseline;color:var(--tinta)}.tot .gr span:last-child{font:900 40px var(--titulo)}
.tot .desc{color:var(--ok)}

/* hoja de opciones */
.velo{position:fixed;inset:0;z-index:20;background:rgba(15,31,61,.55);display:flex;align-items:flex-end;justify-content:center}
.hoja{width:100%;max-width:560px;max-height:88vh;overflow-y:auto;background:var(--fondo);border-radius:22px 22px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}
.hoja h3{margin:0;font:900 22px var(--titulo)}
.grupo{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0}
.grupo legend{font-weight:700;font-size:15px;margin-bottom:6px;padding:0}
.item{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 12px;border:1.5px solid var(--borde);border-radius:12px;background:var(--tarjeta);cursor:pointer}
.item input{width:20px;height:20px;accent-color:var(--azul)}
.item span{flex:1}.item em{font-style:normal;color:var(--tinta2);font-variant-numeric:tabular-nums}
.cant{display:flex;align-items:center;gap:12px;justify-content:center}
.cant button{width:48px;height:48px;border-radius:14px;border:1.5px solid var(--borde);background:var(--tarjeta);font:800 22px var(--titulo);cursor:pointer;color:var(--tinta)}
.cant b{font:900 24px var(--titulo);min-width:30px;text-align:center}

/* trono (Coronas, pedido) */
.trono{background:var(--trono);color:#FFF7E1;border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:10px}
.trono .et{font:800 11px var(--texto);letter-spacing:.2em;color:#FFC600}
.trono .gr{font:900 40px/1 var(--titulo);font-variant-numeric:tabular-nums}
.trono .gr small{font-size:20px;font-weight:800;color:#C9D0E6}
.trono .sb{font-size:15px;color:#C9D0E6}
.barra{height:10px;border-radius:5px;background:rgba(255,247,225,.18);overflow:hidden}.barra i{display:block;height:10px;background:#FFC600;border-radius:5px}
.trono.c{align-items:center;text-align:center}

/* etapas del pedido */
.etapas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.etapas li{display:flex;gap:12px;align-items:flex-start;min-height:52px}
.etapas .p{width:18px;height:18px;border-radius:50%;flex-shrink:0;margin-top:2px;background:var(--tarjeta);border:3px solid var(--borde)}
.etapas .hecho .p{background:#FFC600;border-color:var(--tinta)}
.etapas b{font:700 17px var(--titulo);color:var(--tinta2)}.etapas .hecho b{font-weight:900;color:var(--tinta)}
.etapas small{display:block;font-size:13px;color:var(--tinta2)}

/* mapa */
.mapa{height:180px;border-radius:16px;border:1.5px solid var(--borde);background:var(--suave);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.mapa .leaflet-container{position:absolute;inset:0}

.cargando{display:flex;justify-content:center;padding:40px 0}
.cargando i{width:28px;height:28px;border-radius:50%;border:3px solid var(--borde);border-top-color:var(--tinta);animation:gira .8s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:30;background:var(--azul);color:#FFF7E1;padding:12px 16px;border-radius:14px;font-weight:700;max-width:calc(100% - 32px);box-shadow:0 10px 30px rgba(0,0,0,.3)}
.toast.malo{background:#B3261E;color:#fff}
@media (prefers-color-scheme:dark){.toast{background:#FFF7E1;color:#0F1F3D}}
.pie{padding:8px 16px 24px;text-align:center;font-size:13px;color:var(--tinta2);display:flex;flex-direction:column;gap:4px;align-items:center}
.pie a{color:var(--tinta2)}
.oculto{display:none!important}
.rey-ver{color:var(--tinta2)!important}
