*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#fff;color:#111;padding-bottom:92px}.ticker{background:#5b0707;color:white;text-align:center;padding:10px;font-weight:800}.topbar{position:sticky;top:0;z-index:10;background:#e60012;color:white;display:flex;justify-content:space-between;align-items:center;padding:18px 14px;box-shadow:0 4px 15px #0002}.logo{font-size:30px;font-weight:900}.brand{text-align:center}.brand small{font-weight:900;letter-spacing:3px}.icon-btn{background:0;border:0;color:white;font-size:30px}.cart-mini{position:relative}.cart-mini small{display:block;font-size:10px}.cart-mini b{position:absolute;top:-8px;right:-7px;background:white;color:#e60012;border-radius:50%;font-size:13px;padding:2px 6px}.hero{background:linear-gradient(135deg,#fff 0%,#fff 52%,#ffe5e5 100%);overflow:hidden}.start-btn{margin:18px;background:white;color:#e60012;border:0;border-radius:30px;padding:17px 26px;font-size:20px;font-weight:900;box-shadow:0 8px 18px #0002}.hero-content{display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:280px;padding:0 20px 20px}.label{background:#e60012;color:white;border-radius:5px;padding:6px 9px;font-weight:900}.hero h1{font-size:50px;line-height:.9;margin:16px 0}.hero em{font-size:28px;color:#e60012;font-style:normal}.hero button:not(.start-btn),.add,.send{background:#e60012;color:white;border:0;border-radius:9px;padding:12px 16px;font-weight:900}.pizza{width:210px;height:210px;border-radius:50%;background:radial-gradient(circle,#ffd98b 0 54%,#c77e24 56%);position:relative;box-shadow:0 12px 24px #0003}.pizza:before{content:'';position:absolute;inset:18px;border-radius:50%;background:repeating-conic-gradient(#ffd98b 0 35deg,#f4be54 36deg 45deg)}.pizza span{position:absolute;width:28px;height:28px;background:#d71920;border-radius:50%;z-index:1}.pizza span:nth-child(1){top:50px;left:70px}.pizza span:nth-child(2){top:80px;right:48px}.pizza span:nth-child(3){bottom:55px;left:60px}.pizza span:nth-child(4){bottom:70px;right:70px}.pizza span:nth-child(5){top:120px;left:110px}.cards{display:grid;grid-template-columns:repeat(3,160px);gap:12px;overflow:auto;padding:15px}.cards article{background:white;border-radius:18px;box-shadow:0 5px 18px #0001;padding:16px}.cards div{font-size:32px}.cards h3{font-size:16px}.section{padding:15px}.section h2{color:#e60012;font-style:italic}.cat{background:#fff;border-radius:15px;box-shadow:0 4px 18px #0001;margin:12px 0;overflow:hidden}.cat summary{list-style:none;padding:18px;font-size:22px;font-weight:900;cursor:pointer;border-bottom:1px solid #eee}.cat summary:after{content:'▼';float:right}.cat[open] summary:after{content:'▲'}.products{padding:10px}.product{display:grid;grid-template-columns:58px 1fr auto;gap:10px;align-items:center;padding:12px;border-bottom:1px solid #eee}.product h3{margin:0}.product p{margin:5px 0;color:#555;font-size:14px}.thumb{background:#fff1f1;border-radius:14px;text-align:center;font-size:30px;padding:12px}.menuOverlay{display:none;position:fixed;inset:0;background:#0008;z-index:25}.menuOverlay.show{display:block}.drawer{position:fixed;z-index:30;top:0;bottom:0;left:-86%;width:86%;background:white;transition:.25s;box-shadow:8px 0 25px #0003;overflow:auto}.drawer.open{left:0}.drawer-head{background:#e60012;color:white;padding:20px;display:flex;gap:25px;align-items:center}.drawer-head button{background:0;border:0;color:white;font-size:32px}.drawer-head small{display:block;font-size:10px}.drawer nav button{display:block;width:100%;text-align:left;background:white;border:0;padding:20px 24px;border-bottom:1px solid #eee;font-weight:900;font-size:16px}.cartOverlay{display:none;position:fixed;inset:0;background:#0008;z-index:35}.cartOverlay.show{display:block}.cart-bar{display:none;position:fixed;left:15px;right:15px;bottom:88px;z-index:18;background:#111;color:white;border:0;border-radius:15px;padding:15px;font-size:17px;font-weight:900}.cart-panel{position:fixed;right:-430px;top:0;bottom:0;width:min(430px,94vw);background:white;z-index:40;box-shadow:-10px 0 30px #0003;padding:18px;transition:.25s;overflow:auto}.cart-panel.open{right:0}.cart-head{display:flex;justify-content:space-between;align-items:center;font-size:24px;margin-bottom:12px}.cart-head button{border:0;background:#eee;border-radius:50%;font-size:22px;width:38px;height:38px}.free-box{background:#fff1f1;border-radius:14px;padding:12px;margin-bottom:12px}.free-text{font-weight:900;color:#e60012;margin-bottom:8px}.progress{height:10px;background:white;border-radius:99px;overflow:hidden}.progress span{display:block;height:100%;width:0;background:#e60012;transition:.25s}.cart-line{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center;border-bottom:1px solid #eee;padding:12px 0}.cart-line button{border:0;background:#e60012;color:white;border-radius:7px;padding:7px 10px}.empty-cart{text-align:center;color:#777;padding:30px 10px}.order-type{display:grid;gap:8px;background:#f7f7f7;border-radius:14px;padding:12px;margin:15px 0}.cart-panel input,.cart-panel select,.cart-panel textarea{width:100%;padding:14px;border:1px solid #ddd;border-radius:10px;margin-bottom:10px;font-size:16px;font-family:Arial,Helvetica,sans-serif}.cart-panel textarea{min-height:88px;resize:vertical;line-height:1.35}.hidden{display:none}.summary{font-size:16px;margin:12px 0}.summary div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid #eee}.summary .total{font-size:22px;color:#e60012;border-bottom:0}.send{width:100%;font-size:17px;padding:16px}.whatsapp{position:fixed;right:14px;bottom:98px;background:#e60012;color:white;text-decoration:none;border:0;border-radius:30px;padding:13px 16px;font-weight:900;z-index:17;box-shadow:0 5px 15px #0003}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:82px;background:white;box-shadow:0 -4px 18px #0001;display:flex;justify-content:space-around;align-items:center;z-index:15}.bottom-nav button{background:0;border:0;font-size:24px;color:#666}.bottom-nav span{display:block;font-size:12px;font-weight:800}.bottom-nav .active{color:#e60012}.bottom-nav .main{background:#e60012;color:white;width:70px;height:70px;border-radius:50%;margin-top:-35px;font-size:34px}@media(max-width:520px){.logo{font-size:26px}.hero h1{font-size:42px}.hero em{font-size:24px}.pizza{width:170px;height:170px}.product{grid-template-columns:52px 1fr}.product .add{grid-column:2}.whatsapp{display:none}.cart-panel{width:94vw;right:-94vw}}
.order-choice{margin:10px 15px 0;background:#111;color:white;border-radius:22px;padding:18px;box-shadow:0 8px 22px #0002}.order-choice h2{margin:0 0 12px;color:white;font-size:24px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice-grid button{border:0;border-radius:14px;background:#e60012;color:white;padding:17px 10px;font-size:18px;font-weight:900;box-shadow:inset 0 -3px 0 #0002}.order-choice p{margin:12px 0 0;color:#eee;font-weight:700}.quick-cats{position:sticky;top:78px;z-index:9;display:flex;gap:8px;overflow:auto;background:white;padding:10px 12px;border-bottom:1px solid #eee;box-shadow:0 4px 12px #0001}.quick-cats button{flex:0 0 auto;border:0;border-radius:999px;background:#fff1f1;color:#111;padding:11px 14px;font-size:15px;font-weight:900}.quick-cats button.active-cat{background:#e60012;color:white}.cat.flash{animation:catFlash .8s ease}@keyframes catFlash{0%{box-shadow:0 0 0 0 #e6001266}50%{box-shadow:0 0 0 6px #e6001233}100%{box-shadow:0 4px 18px #0001}}@media(max-width:520px){.choice-grid{grid-template-columns:1fr}.quick-cats{top:70px}.quick-cats button{font-size:14px}}

.install-app{display:block;margin-top:12px;background:#111!important;color:white!important;border:0;border-radius:999px;padding:13px 18px;font-weight:900;box-shadow:0 8px 18px #0002}
.install-tip{display:none;position:fixed;left:14px;right:14px;bottom:178px;z-index:22;background:#111;color:white;border-radius:18px;padding:15px 48px 15px 16px;box-shadow:0 8px 24px #0005}
.install-tip.show{display:block}
.install-tip strong{display:block;font-size:18px;margin-bottom:4px;color:#fff}
.install-tip span{display:block;font-size:14px;color:#eee;line-height:1.35}
.install-tip button{position:absolute;right:10px;top:10px;border:0;border-radius:50%;background:#e60012;color:white;width:30px;height:30px;font-weight:900}
@media(max-width:520px){.install-app{width:100%;font-size:16px}.install-tip{bottom:95px}}


/* PASO 4: selector Normal / XL en pizzas */
.pizza-product{grid-template-columns:58px 1fr auto auto}
.size-box{display:flex;gap:6px;align-items:center}
.size-option{border:2px solid #e60012;background:white;color:#e60012;border-radius:999px;padding:9px 12px;font-weight:900;cursor:pointer}
.size-option.active{background:#e60012;color:white}
@media(max-width:520px){.pizza-product{grid-template-columns:52px 1fr}.pizza-product .size-box{grid-column:2}.pizza-product .add{grid-column:2}.size-option{padding:8px 12px}}


/* PASO 5: al añadir producto no se abre el carrito */
.added-toast{position:fixed;left:50%;bottom:175px;transform:translateX(-50%) translateY(20px);z-index:60;background:#111;color:white;padding:13px 18px;border-radius:999px;font-weight:900;box-shadow:0 8px 24px #0004;opacity:0;pointer-events:none;transition:.22s;white-space:nowrap}
.added-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.cart-pulse{animation:cartPulse .55s ease}
@keyframes cartPulse{0%{transform:scale(1)}50%{transform:scale(1.08)}100%{transform:scale(1)}}
@media(max-width:520px){.added-toast{bottom:105px;font-size:14px;max-width:92vw;text-align:center;white-space:normal}}


/* PASO 7: ubicación GPS para pedidos a domicilio */
.location-box{background:#fff1f1;border:1px solid #ffd0d0;border-radius:14px;padding:10px;margin-bottom:10px}
.location-box button{width:100%;border:0;border-radius:10px;background:#111;color:white;padding:13px 12px;font-weight:900;font-size:15px}
.location-box small{display:block;margin-top:8px;color:#555;font-weight:700;line-height:1.3}

.required-note{
  font-size:14px;
  font-weight:700;
  color:#b00020;
  background:#fff1f1;
  border:1px solid #ffcaca;
  padding:8px 10px;
  border-radius:10px;
  margin:8px 0;
}


.order-success-modal{
  position:fixed;
  inset:0;
  z-index:99999;
  background:rgba(0,0,0,.78);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.order-success-modal.hidden{
  display:none;
}
.order-success-card{
  width:min(92vw,430px);
  background:#fff;
  color:#111;
  border-radius:22px;
  padding:24px 20px;
  text-align:center;
  box-shadow:0 20px 70px rgba(0,0,0,.45);
  border:3px solid #e30613;
}
.order-success-icon{
  font-size:52px;
  margin-bottom:6px;
}
.order-success-card h2{
  margin:5px 0 14px;
  color:#e30613;
  font-size:24px;
}
.order-success-card p{
  margin:8px 0;
  font-size:16px;
  line-height:1.35;
}
.back-home-btn{
  width:100%;
  margin-top:16px;
  padding:14px 16px;
  border:0;
  border-radius:14px;
  background:#e30613;
  color:white;
  font-weight:900;
  font-size:17px;
  cursor:pointer;
}
.back-home-btn:active{
  transform:scale(.98);
}


.challenge-info-modal{
  position:fixed;
  inset:0;
  z-index:100000;
  background:rgba(0,0,0,.78);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.challenge-info-modal.hidden{display:none;}
.challenge-info-card{
  width:min(94vw,520px);
  max-height:88vh;
  overflow:auto;
  background:#fff;
  color:#111;
  border-radius:22px;
  padding:24px 20px;
  border:3px solid #e30613;
  box-shadow:0 20px 70px rgba(0,0,0,.45);
  position:relative;
}
.challenge-close-x{
  position:absolute;
  right:12px;
  top:10px;
  border:0;
  background:#111;
  color:white;
  width:34px;
  height:34px;
  border-radius:50%;
  font-size:24px;
  line-height:30px;
  cursor:pointer;
}
.challenge-info-card h2{
  color:#e30613;
  margin:6px 35px 14px 0;
  font-size:24px;
}
.challenge-info-card h3{
  margin-top:16px;
  color:#111;
}
.challenge-info-card p,.challenge-info-card li{
  font-size:16px;
  line-height:1.4;
}
.challenge-info-card ul{
  list-style:none;
  padding:0;
  margin:10px 0;
}
.challenge-info-card li{
  margin:8px 0;
}
.challenge-actions{
  display:flex;
  gap:10px;
  margin-top:18px;
}
.challenge-close-btn,.challenge-order-btn{
  flex:1;
  padding:14px 12px;
  border:0;
  border-radius:14px;
  font-weight:900;
  cursor:pointer;
}
.challenge-close-btn{
  background:#222;
  color:white;
}
.challenge-order-btn{
  background:#e30613;
  color:white;
}
@media(max-width:480px){
  .challenge-actions{flex-direction:column;}
  .challenge-info-card h2{font-size:21px;}
}


.reto10-main-btn{
  display:block;
  width:calc(100% - 28px);
  max-width:520px;
  margin:14px auto;
  padding:15px 18px;
  border:0;
  border-radius:16px;
  background:#ffcc00;
  color:#111;
  font-size:18px;
  font-weight:900;
  box-shadow:0 8px 22px rgba(0,0,0,.25);
}
.challenge-info-modal{
  position:fixed;
  inset:0;
  z-index:100000;
  background:rgba(0,0,0,.78);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.challenge-info-modal.hidden{display:none !important;}
.challenge-info-card{
  width:min(94vw,520px);
  max-height:88vh;
  overflow:auto;
  background:#fff;
  color:#111;
  border-radius:22px;
  padding:24px 20px;
  border:3px solid #e30613;
  box-shadow:0 20px 70px rgba(0,0,0,.45);
  position:relative;
}
.challenge-close-x{
  position:absolute;
  right:12px;
  top:10px;
  border:0;
  background:#111;
  color:white;
  width:34px;
  height:34px;
  border-radius:50%;
  font-size:24px;
  line-height:30px;
  cursor:pointer;
}
.challenge-info-card h2{
  color:#e30613;
  margin:6px 35px 14px 0;
  font-size:24px;
}
.challenge-info-card ul{
  list-style:none;
  padding:0;
}
.challenge-info-card li{
  margin:8px 0;
}
.challenge-actions{
  display:flex;
  gap:10px;
  margin-top:18px;
}
.challenge-close-btn,.challenge-order-btn{
  flex:1;
  padding:14px 12px;
  border:0;
  border-radius:14px;
  font-weight:900;
  cursor:pointer;
}
.challenge-close-btn{background:#222;color:white;}
.challenge-order-btn{background:#e30613;color:white;}
@media(max-width:480px){.challenge-actions{flex-direction:column;}}


.location-required-msg{
  margin:8px 0 10px;
  padding:10px 12px;
  border-radius:12px;
  background:#fff1f1;
  border:1px solid #ffb3b3;
  color:#8a0000;
  font-size:14px;
  line-height:1.35;
}
.location-box{
  margin:10px 0;
}
#shareLocationBtn{
  width:100%;
  padding:13px 14px;
  border:0;
  border-radius:14px;
  background:#ffcc00;
  color:#111;
  font-weight:900;
  cursor:pointer;
}
#locationStatus{
  display:block;
  margin-top:6px;
  font-size:13px;
}


.allergen-note{
  grid-column:1/-1;
  padding:14px;
  border-radius:14px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.18);
  font-size:.92rem;
  line-height:1.45;
}


.coming-soon-card{
  border:2px dashed rgba(255,255,255,.35);
  opacity:.95;
}
.coming-soon-card strong{
  color:#ffcc66;
}
