@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,600;0,700;1,600&display=swap');
:root{--ink:#172322;--muted:#71807b;--forest:#173d34;--accent:#c8944c;--cream:#f8f6f1;--line:#e9e7e0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased}body.sheet-open{overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #d7a76d;outline-offset:2px}.hidden{display:none!important}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1120px)/2));background:#111e1b;color:#fff;position:sticky;top:0;z-index:20;border-bottom:1px solid #ffffff18}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:2px;font-size:17px}.brand-icon{color:#d6ac70;font-size:26px}.brand small{display:block;font-size:8px;letter-spacing:3px;font-weight:600;color:#c7c8bf;margin-top:3px}.table-chip{background:#263a34;color:#fff;border:1px solid #4c665b;border-radius:999px;padding:11px 13px;font-weight:700;font-size:12px;display:flex;gap:8px;align-items:center}.hero{min-height:355px;position:relative;overflow:hidden;background:radial-gradient(circle at 85% 20%,#41614a 0%,transparent 40%),linear-gradient(130deg,#172c25,#0e1a17);color:#fff;display:flex;align-items:center;padding:44px max(22px,calc((100vw - 1120px)/2))}.hero-inner{position:relative;z-index:1;max-width:570px}.overline{color:#d7b17a;font-size:10px;letter-spacing:2.1px;font-weight:800}.hero h1{font:700 clamp(42px,7vw,72px)/1.06 'Playfair Display',Georgia,serif;letter-spacing:-1px;margin:18px 0}.hero h1 em{font-weight:600;color:#e5bd82}.hero p{color:#d6ded7;line-height:1.7;font-size:14px;max-width:390px}.hero-cta{margin-top:16px;border:0;background:#dfb47a;color:#1d2b22;font-weight:800;padding:15px 22px;border-radius:12px}.hero-cta span{margin-left:20px}.hero-art{font-size:clamp(140px,24vw,270px);position:absolute;right:10%;bottom:10px;transform:rotate(-12deg);filter:drop-shadow(0 22px 30px #0008)}.service-strip{background:#233c32;color:#e3d3b9;display:flex;justify-content:center;gap:45px;padding:14px;font-size:11px;letter-spacing:.3px}.catalog,.tracking-section{max-width:1140px;margin:auto;padding:42px 20px 20px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:24px}.section-heading h2,.sheet h2{font:700 31px/1.18 'Playfair Display',Georgia,serif;margin:9px 0 0}.overline.dark{color:#b08145}.count{color:#7d857f;font-size:12px}.categories{display:flex;gap:9px;overflow-x:auto;scrollbar-width:none;padding-bottom:18px;margin-bottom:4px}.categories::-webkit-scrollbar{display:none}.cat{white-space:nowrap;border:1px solid #e5e4dc;background:#fff;padding:11px 17px;border-radius:999px;color:#4d5a54;font-size:12px;font-weight:800}.cat.active{background:#193f34;border-color:#193f34;color:#fff}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.product-card{background:#fff;border:1px solid #e8e8df;border-radius:20px;overflow:hidden;box-shadow:0 8px 30px #243e2b0a;display:flex;flex-direction:column}.product-photo{height:180px;background:linear-gradient(145deg,#e8e1cf,#c9bfa8);position:relative;overflow:hidden}.product-photo img{width:100%;height:100%;object-fit:cover}.food-placeholder{height:100%;display:grid;place-items:center;font-size:92px;filter:drop-shadow(0 14px 12px #0002)}.product-label{position:absolute;top:12px;left:12px;background:#fffdf3ed;border-radius:6px;padding:6px 9px;color:#6e603e;font-size:9px;letter-spacing:1px;font-weight:800}.product-body{padding:17px;display:flex;flex-direction:column;flex:1}.product-body h3{margin:0;font-size:16px;letter-spacing:-.3px}.product-body p{font-size:12px;line-height:1.6;color:#83908a;margin:8px 0 18px;min-height:35px}.product-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:auto}.product-bottom strong{font-size:17px;color:#173e33}.product-bottom button{border:0;border-radius:12px;background:#173e33;color:#fff;width:43px;height:43px;font-size:25px;line-height:1}.footer{text-align:center;padding:55px 20px 135px;background:#172720;color:#fff;margin-top:50px}.footer strong{letter-spacing:2px}.footer p{font-size:13px;color:#d4d9d2}.footer small{color:#8e9e95}.floatbar{position:fixed;bottom:max(14px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(92%,600px);z-index:35;background:#152f27;color:#fff;border:1px solid #4e695b;border-radius:18px;box-shadow:0 14px 45px #0e261e55;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.float-info{display:flex;align-items:center;gap:10px;min-width:0}.float-info>span{font-size:24px}.float-info strong{display:block;font-size:12px}.float-info small{display:block;color:#c4d1c9;font-size:10px;margin-top:3px}.floatbar button{background:#d7a96b;border:0;color:#18271e;padding:13px 15px;border-radius:10px;font-size:11px;font-weight:800;white-space:nowrap}.overlay{position:fixed;inset:0;background:#0a1814aa;z-index:39;backdrop-filter:blur(3px)}.sheet{position:fixed;z-index:40;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,600px);max-height:94dvh;overflow-y:auto;overscroll-behavior:contain;background:#faf9f5;border-radius:26px 26px 0 0;padding:13px 23px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -15px 60px #0003}.sheet-handle{height:5px;width:48px;border-radius:20px;background:#d8d8d0;margin:0 auto 20px}.sheet-head{display:flex;justify-content:space-between;align-items:start;gap:12px}.sheet h2{font-size:27px}.close{width:39px;height:39px;border:0;border-radius:12px;background:#eaeae3;color:#314139}.muted,.sheet-note{font-size:13px;color:#7d8a83;line-height:1.6}.table-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.table-choice{border:1px solid #dedfd7;background:#fff;border-radius:15px;padding:20px 6px;font-size:13px;font-weight:800;color:#2d493d}.table-choice span{display:block;font-size:24px;margin-bottom:6px}.table-choice.chosen{border-color:#265440;background:#e9f3eb}.sheet-note{background:#f0eee7;border-radius:12px;padding:12px}.cart-items{margin:20px 0}.cart-line{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e8e7e0;padding:15px 0}.cart-line>div:first-child{flex:1}.cart-line strong{font-size:13px}.cart-line small{display:block;color:#87928b;margin-top:5px;font-size:11px}.quantity{display:flex;align-items:center;gap:10px;background:#edf0e9;border-radius:10px;padding:4px}.quantity button{width:30px;height:30px;background:#fff;border:0;border-radius:8px;font-size:18px}.quantity span{min-width:12px;text-align:center;font-size:13px;font-weight:800}.cart-footer{border-top:1px solid #e8e7e0;padding-top:16px}.cart-total{display:flex;justify-content:space-between;align-items:center;font-size:14px}.cart-total strong{font-size:24px;color:#174735}.pay-note{font-size:12px;color:#54705e;background:#e9f1e8;padding:12px;border-radius:10px}.cart-footer label{display:block;margin:13px 0 6px;font-size:12px;font-weight:800}.cart-footer input,.cart-footer textarea{width:100%;background:#fff;border:1px solid #dedfd7;border-radius:12px;padding:13px;color:#203c30;font-size:15px}.submit{width:100%;margin-top:20px;background:#194734;color:#fff;border:0;border-radius:13px;padding:17px;font-weight:800;font-size:14px}.submit:disabled{opacity:.45}.secondary-submit{background:#e7ede5;color:#234635}.status-content{margin-top:22px}.status-card{background:#fff;border:1px solid #e5e7df;border-radius:17px;padding:17px;margin:14px 0}.status-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;font-weight:800}.status-pill{background:#e7f2e9;color:#1b6845;border-radius:99px;padding:7px 9px;font-size:10px}.status-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:19px 0}.status-step{text-align:center;color:#9ba49c;font-size:10px}.status-step .dot{display:grid;place-items:center;background:#e8ebe7;border-radius:50%;height:30px;width:30px;margin:0 auto 7px;font-size:15px}.status-step.completed{color:#235c43;font-weight:700}.status-step.completed .dot{background:#cce9d4}.status-step.current .dot{background:#235c43;color:#fff}.status-card p{font-size:12px;color:#7c8981}.tracking-section:empty{display:none}.premium-toast{position:fixed;z-index:60;top:84px;left:50%;transform:translateX(-50%);background:#193c2f;color:#fff;border-radius:12px;padding:13px 20px;box-shadow:0 10px 25px #0004;font-size:12px;font-weight:700;max-width:90vw;text-align:center}.empty,.loading{text-align:center;color:#7d8981;padding:35px 10px;font-size:13px}
@media(max-width:700px){.topbar{height:66px;padding:0 16px}.brand{font-size:14px}.table-chip{font-size:11px}.hero{min-height:320px;padding:37px 22px 50px}.hero h1{font-size:47px;max-width:310px}.hero p{max-width:270px;font-size:12px}.hero-art{font-size:145px;right:-12px;bottom:15px;opacity:.45}.service-strip{gap:18px;font-size:9px;padding:12px 8px}.catalog,.tracking-section{padding:30px 15px 15px}.section-heading h2{font-size:28px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.product-photo{height:132px}.food-placeholder{font-size:64px}.product-body{padding:12px}.product-body h3{font-size:13px;line-height:1.35}.product-body p{font-size:10px;min-height:44px;margin:6px 0 10px}.product-bottom strong{font-size:14px}.product-bottom button{height:38px;width:38px}.product-label{font-size:7px}.sheet{padding-left:18px;padding-right:18px}.floatbar{width:calc(100% - 22px)}}@media(max-width:370px){.hero h1{font-size:41px}.product-photo{height:113px}.food-placeholder{font-size:55px}.product-bottom strong{font-size:12px}.float-info strong{font-size:11px}}

/* V4: acciones móviles separadas y confirmación tipo ticket */
.mobile-actions{position:fixed;z-index:45;bottom:calc(12px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 24px));display:flex;flex-direction:column;gap:9px;pointer-events:none}.mobile-actions>button{pointer-events:auto;border:0;width:100%;display:flex;align-items:center;text-align:left;gap:12px;padding:12px 14px;border-radius:18px;box-shadow:0 12px 35px #14231b35;font-family:inherit;min-height:66px}.mobile-actions>button.hidden{display:none!important}.status-float{background:#e9f1ff;color:#1b4489;border:1px solid #bed3f7!important}.status-float[data-state="RECEIVED"]{background:#efe8ff;color:#6335a4;border-color:#d9c4fb!important}.status-float[data-state="PREPARING"]{background:#fff0d7;color:#885012;border-color:#f5d39c!important}.status-float[data-state="READY"],.status-float[data-state="DELIVERED"]{background:#dff7e7;color:#17683c;border-color:#a4e0b9!important}.status-orb{width:42px;height:42px;display:grid;place-items:center;background:#ffffffaa;border-radius:13px;font-size:23px;flex-shrink:0}.status-copy{flex:1;min-width:0}.status-copy strong,.status-copy small,.cart-float small{display:block}.status-copy strong{font-size:13px;line-height:1.3}.status-copy small{font-size:11px;margin-top:4px;opacity:.85}.status-arrow{font-size:21px}.cart-float{background:#163f30;color:#fff;justify-content:space-between}.cart-float strong{font-size:13px}.cart-float small{font-size:11px;color:#d0e7d7;margin-top:4px}.cart-cta{background:#d2f0dc;color:#184a32;border-radius:10px;padding:11px 12px;font-size:12px;font-weight:800;white-space:nowrap}.success-overlay{position:fixed;inset:0;z-index:150;background:#071610d9;display:flex;align-items:center;justify-content:center;padding:18px;overflow:auto}.success-overlay.hidden{display:none!important}.success-ticket{width:min(100%,410px);background:#fffdf8;border-radius:26px;padding:29px 22px 23px;box-shadow:0 30px 80px #0006;text-align:center;color:#173d30}.success-symbol{margin:0 auto 15px;width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:#d9f4e2;color:#197847;font-size:35px;font-weight:900}.ticket-eyebrow{font-size:10px;letter-spacing:2px;font-weight:800;color:#648274}.success-ticket h2{font-size:29px;line-height:1.15;margin:11px 0}.success-ticket p{font-size:13px;color:#677d71;line-height:1.6}.ticket-number{background:#eaf5ec;border:1px dashed #a9cdb5;border-radius:17px;padding:18px;margin:21px 0}.ticket-number small,.ticket-number strong,.ticket-number span{display:block}.ticket-number small{font-size:10px;letter-spacing:1.5px;color:#557963}.ticket-number strong{font-size:31px;margin:5px 0;color:#174a32}.ticket-number span{font-size:13px;font-weight:700}.ticket-row{display:flex;justify-content:space-between;gap:12px;text-align:left;padding:11px 0;border-bottom:1px solid #e7eee6;font-size:12px}.ticket-row span{color:#748579}.success-ticket button{margin-top:23px;width:100%;background:#174b35;color:white;border:0;border-radius:14px;padding:17px 10px;font-weight:800;font-size:14px;min-height:52px}body.success-open{overflow:hidden}body:not(.sheet-open) main{padding-bottom:170px}@media(max-width:380px){.mobile-actions{width:calc(100% - 16px)}.mobile-actions>button{padding:10px;min-height:61px}.status-copy strong{font-size:12px}.cart-cta{padding:10px 8px;font-size:11px}.success-ticket{padding:24px 17px}}

/* V5: CTA de envío siempre visible en móviles, independiente del flotante de carrito. */
body.sheet-open .mobile-actions{display:none!important}
#cartSheet{z-index:110;padding-bottom:calc(125px + env(safe-area-inset-bottom));scroll-padding-bottom:135px}
#cartSheet .cart-intro{color:#667b70;font-size:13px;line-height:1.6;margin:12px 0 4px}
#cartSheet .cart-footer{padding-bottom:20px}
#cartSheet .checkout-action{position:fixed;bottom:0;left:0;right:0;z-index:115;background:#fffdf8;border-top:1px solid #e3e8df;box-shadow:0 -12px 32px #112e1b17;padding:11px 18px calc(13px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:12px}
#cartSheet .checkout-action-copy{flex:0 0 auto;min-width:92px}
#cartSheet .checkout-action-copy small{display:block;color:#798c7e;font-size:9px;font-weight:800;letter-spacing:.6px}
#cartSheet .checkout-action-copy strong{display:block;color:#173d30;font-size:20px;margin-top:4px}
#cartSheet .checkout-action .submit{margin:0;flex:1;min-width:0;min-height:56px;border-radius:15px;font-size:14px;background:linear-gradient(120deg,#165a3b,#103e2c);box-shadow:0 8px 20px #155b3b2e;padding:12px 9px}
#cartSheet .checkout-action .submit:disabled{background:#94a99c;box-shadow:none}
#cartSheet .sheet-head{position:relative}
#cartSheet .cart-total{padding:6px 0}
#cartSheet input,#cartSheet textarea{min-height:48px}
@media(max-width:370px){#cartSheet .checkout-action{gap:8px;padding-left:12px;padding-right:12px}#cartSheet .checkout-action-copy{min-width:80px}#cartSheet .checkout-action-copy strong{font-size:17px}#cartSheet .checkout-action .submit{font-size:12px}}

/* V6: flujo móvil y estados con progreso vertical legible */
.status-steps{display:flex;flex-direction:column;gap:0;margin:18px 0 12px;padding-left:4px}.status-step{display:flex;align-items:center;gap:13px;text-align:left;font-size:13px;min-height:54px;position:relative}.status-step:not(:last-child)::after{content:'';position:absolute;left:15px;top:38px;bottom:-12px;width:2px;background:#dfe6e0}.status-step.completed:not(:last-child)::after{background:#2b9866}.status-step .dot{margin:0;flex:none;width:32px;height:32px;font-size:14px}.status-step.current{font-weight:900}.status-card-top{flex-wrap:wrap}.status-card[data-state="PREPARING"]{border-color:#f0bd73}.status-card[data-state="READY"]{border-color:#7ec69c}.status-card[data-state="RECEIVED"]{border-color:#bea2ef}.status-card[data-state="SENT"]{border-color:#a9c9f5}.status-card[data-state="PREPARING"] .status-pill{background:#fff0d7;color:#885012}.status-card[data-state="RECEIVED"] .status-pill{background:#efe8ff;color:#6335a4}.status-card[data-state="SENT"] .status-pill{background:#e9f1ff;color:#1b4489}.status-card[data-state="READY"] .status-pill{background:#dff7e7;color:#17683c}.status-content{padding-bottom:calc(25px + env(safe-area-inset-bottom))}

/* Final: error siempre visible sobre los paneles móviles */
.premium-toast{z-index:220!important;top:calc(12px + env(safe-area-inset-top));width:min(94vw,520px);font-size:14px;line-height:1.45;box-shadow:0 16px 50px #0005}.premium-toast.error-toast{background:#8b2531;color:#fff;border:1px solid #ffb9c0}
body.success-open .mobile-actions,body.success-open .overlay{display:none!important}
#cartSheet .checkout-action{max-width:600px;margin:auto}
@media(max-width:700px){#cartSheet .checkout-action{padding-bottom:calc(15px + env(safe-area-inset-bottom))}.status-card{padding:16px}.status-step{min-height:59px}}

/* EL RUTERO · Fotografías reales y tarjetas uniformes en carta del cliente */
.product-grid{align-items:stretch}
.product-card{min-width:0;height:100%;display:flex;flex-direction:column}
.product-photo{height:auto;aspect-ratio: 4 / 3;flex:none;overflow:hidden;background:linear-gradient(145deg,#e8e1cf,#c9bfa8)}
.product-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.product-photo img[hidden]{display:none}
.customer-photo-empty{width:100%;height:100%;background:radial-gradient(circle at 50% 45%,#e8dec7 0%,#c7baa0 100%)}
.customer-photo-empty[hidden]{display:none}
.product-body{min-width:0;flex:1;display:flex;flex-direction:column}
.product-body h3{line-height:1.4;min-height:2.8em;overflow-wrap:anywhere}
.product-body p{min-height:3.2em;overflow-wrap:anywhere}
.product-bottom{margin-top:auto;gap:8px;min-width:0}
.product-bottom strong{min-width:0;overflow-wrap:anywhere}
.product-bottom button{flex:0 0 43px;min-width:43px;min-height:43px;touch-action:manipulation}
@media(max-width:700px){
 .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .product-photo{height:auto;aspect-ratio:4 / 3}
 .product-body h3{min-height:2.8em}
 .product-body p{min-height:4.8em}
 .product-bottom button{flex-basis:44px;width:44px;height:44px}
}
@media(max-width:370px){
 .product-grid{gap:9px}
 .product-body{padding:10px}
 .product-bottom{gap:5px}
 .product-bottom strong{font-size:12px}
}

/* Portada carrusel: sin modificar catálogo, carrito ni resto del sitio */
.hero.hero-carousel{height:clamp(320px,43vw,520px);min-height:320px;padding:0;display:grid;place-items:center;isolation:isolate;background:#152b23}
.hero-slides,.hero-carousel-shade{position:absolute;inset:0}
.hero-slides{z-index:-2}
.hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity .75s ease}
.hero-slide.is-active{opacity:1}
.hero-carousel-shade{z-index:-1;background:linear-gradient(90deg,#0b1b16a6,#0b1b1640,#0b1b16a6)}
.hero-carousel-actions{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:14px;padding:20px;width:100%}
.hero-carousel-actions .hero-cta{margin:0;min-width:180px;min-height:52px;text-align:center;box-shadow:0 6px 24px #0005}
.hero-carousel-actions .hero-cta-secondary{background:#142e25e8;color:#fff;border:1px solid #e0b87b}
@media(max-width:700px){.hero.hero-carousel{height:clamp(300px,65svh,470px);min-height:300px}.hero-carousel-actions{gap:10px;padding:16px}.hero-carousel-actions .hero-cta{min-width:0;padding:14px 15px;font-size:13px}.hero-carousel-actions .hero-cta span{margin-left:7px}}
@media(max-width:370px){.hero-carousel-actions .hero-cta{font-size:12px;padding:13px 10px}}
@media(prefers-reduced-motion:reduce){.hero-slide{transition:none}}
