/* ============================================================
   DELIVERY APP — ESTILO iFOOD / 99FOOD
   ============================================================ */

:root {
    --primary: #EA1D2C;
    --primary-dark: #c21525;
    --primary-light: color-mix(in srgb, var(--primary) 8%, white);
    --secondary: #ff9800;
    --accent: #50A773;
    --success: #50A773;
    --white: #ffffff;
    --gray-50: #fafafa;
    --gray-100: #f5f5f5;
    --gray-200: #eeeeee;
    --gray-400: #bdbdbd;
    --gray-600: #757575;
    --gray-800: #424242;
    --text: #3D3D3D;
    --text-light: #717171;
    --font-main: 'DM Sans', 'Poppins', sans-serif;
    --font-display: 'Nunito', 'Fredoka One', sans-serif;
    --brand-cta: var(--primary);
    --brand-cta-hover: var(--primary-dark);
    --brand-cta-text: #ffffff;
    --radius-card: 16px;
    --radius-pill: 9999px;
    --elev-1: 0 2px 8px rgba(0,0,0,0.08);
    --elev-2: 0 8px 24px rgba(0,0,0,0.12);
    --elev-3: 0 16px 40px rgba(0,0,0,0.16);
    --header-h: 64px;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 60px); overflow-x:clip; }
body { font-family:var(--font-main); background:var(--gray-100); color:var(--text); padding-top:var(--header-h); overflow-x:clip; -webkit-font-smoothing:antialiased; }
.container { max-width:1100px; margin:0 auto; padding:0 16px; }

/* HEADER */
.top-accent { position:sticky; top:0; height:3px; background:var(--primary); z-index:1201; }
.main-header { background:#fff; border-bottom:1px solid var(--gray-200); position:fixed; top:0; left:0; width:100%; z-index:1200; height:var(--header-h); display:flex; align-items:center; box-shadow:var(--elev-1); }
.main-header .container { display:flex; justify-content:space-between; align-items:center; width:100%; gap:16px; }
.logo h1 { font-family:var(--font-display); color:var(--primary); font-size:1.4rem; font-weight:900; margin:0; white-space:nowrap; }
.logo img { vertical-align:middle; max-height:40px; }
.mobile-menu-btn { display:none; background:none; border:none; font-size:1.5rem; color:var(--text); cursor:pointer; padding:8px; border-radius:8px; transition:background .2s; }
.mobile-menu-btn:hover { background:var(--gray-100); }
.main-nav ul { list-style:none; display:flex; gap:4px; align-items:center; }
.main-nav a { text-decoration:none; color:var(--gray-800); font-weight:600; font-size:.9rem; padding:8px 14px; border-radius:var(--radius-pill); transition:all .2s; display:inline-flex; align-items:center; gap:6px; }
.main-nav a:hover { background:var(--primary-light); color:var(--primary); }
.cart-btn { position:relative; color:var(--primary); font-size:1.4rem; text-decoration:none; transition:transform .2s; }
.cart-btn:hover { transform:scale(1.1); }
#cart-count { position:absolute; top:-8px; right:-10px; background:var(--primary); color:#fff; font-size:.65rem; padding:2px 5px; border-radius:50%; font-weight:800; border:2px solid #fff; min-width:18px; text-align:center; }
@keyframes bounce { 0%{transform:scale(0)}50%{transform:scale(1.3)}100%{transform:scale(1)} }

@media (min-width:769px) {
    .mobile-menu-btn { display:none; }
    .logo { display:none !important; }
    .main-nav { display:flex; flex:1; justify-content:center; }
    .main-nav ul { justify-content:center; }
    .header-actions { display:none; }
}
@media (max-width:768px) {
    body { padding-top:0; }
    .main-header { display:none; }
    .main-nav { display:none; }
    .logo { display:none !important; }
    .mobile-menu-btn { display:block; }
    .main-nav.open { display:block; position:fixed; top:56px; left:0; width:100%; background:#fff; border-top:1px solid var(--gray-200); box-shadow:var(--elev-2); z-index:1199; animation:slideDown .25s ease; }
    .main-nav.open ul { flex-direction:column; gap:0; }
    .main-nav.open li { border-bottom:1px solid var(--gray-100); }
    .main-nav.open a { border-radius:0; padding:14px 20px; width:100%; }
}

/* AF Mobile Header */
.af-header { display:none; position:sticky; top:0; z-index:1200; background:#fff; height:56px; border-bottom:1px solid var(--gray-200); box-shadow:var(--elev-1); padding:0 16px; }
.af-header .left,.af-header .right { display:flex; align-items:center; gap:10px; }
.af-header .btn-ico { width:36px; height:36px; border:none; border-radius:50%; background:var(--gray-100); color:var(--text); display:inline-flex; align-items:center; justify-content:center; font-size:.9rem; cursor:pointer; }
.af-header .center { display:flex; align-items:center; gap:10px; flex:1; min-width:0; justify-content:center; }
.af-header .logo { width:32px; height:32px; border-radius:50%; overflow:hidden; background:#fff; border:2px solid var(--gray-200); }
.af-header .logo img { width:100%; height:100%; object-fit:cover; }
.af-header .store-name { font-weight:800; color:var(--text); font-size:1rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:50vw; }
@supports (padding:env(safe-area-inset-top)){ .af-header { padding-top:env(safe-area-inset-top); height:calc(56px + env(safe-area-inset-top)); } }
@media (max-width:768px){ .af-header { display:flex; align-items:center; justify-content:space-between; } }

@keyframes slideDown { from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)} }

/* BOTTOM NAV MOBILE */
.mobile-bottom-nav { display:none; }
@media (max-width:768px) {
    .mobile-bottom-nav { position:fixed; bottom:0; left:0; right:0; z-index:1200; background:#fff; border-top:1px solid var(--gray-200); box-shadow:0 -4px 16px rgba(0,0,0,.08); display:flex; align-items:center; justify-content:space-around; padding:8px 6px; }
    .mobile-bottom-nav a { color:var(--gray-600); text-decoration:none; font-size:.72rem; font-weight:700; display:flex; flex-direction:column; align-items:center; gap:3px; }
    .mobile-bottom-nav a i { font-size:1.1rem; }
    .mobile-bottom-nav a.cart-nav { position:relative; background:var(--primary); color:#fff !important; padding:8px 14px; border-radius:14px; box-shadow:0 4px 12px color-mix(in srgb, var(--primary) 35%, transparent); }
    .mobile-bottom-nav a.cart-nav i,.mobile-bottom-nav a.cart-nav span { color:#fff; }
    .mobile-bottom-nav a.cart-nav .badge { position:absolute; top:-5px; right:-5px; background:#fff; color:var(--primary); font-size:.65rem; padding:2px 5px; border-radius:999px; font-weight:800; border:1.5px solid var(--primary); }
    body { padding-bottom:68px; }
    @supports (padding:env(safe-area-inset-bottom)){ .mobile-bottom-nav{padding-bottom:calc(8px + env(safe-area-inset-bottom))} body{padding-bottom:calc(68px + env(safe-area-inset-bottom))} }
}

/* HERO */
.hero { background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%); color:#fff; padding:60px 0 40px; text-align:center; position:relative; overflow:hidden; margin-bottom:0; }
.hero::before { content:''; position:absolute; inset:0; background:url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M20 20c0-5.5-4.5-10-10-10s-10 4.5-10 10 4.5 10 10 10 10-4.5 10-10zm10 0c0-5.5 4.5-10 10-10s10 4.5 10 10-4.5 10-10 10-10-4.5-10-10z'/%3E%3C/g%3E%3C/svg%3E"); pointer-events:none; }
.hero h2 { font-family:var(--font-display); font-size:2.4rem; font-weight:900; margin-bottom:10px; position:relative; z-index:1; text-shadow:0 2px 8px rgba(0,0,0,.2); }
.hero p { font-size:1.05rem; opacity:.9; max-width:560px; margin:0 auto 24px; position:relative; z-index:1; line-height:1.6; }
.btn-hero { background:#fff; color:var(--primary); padding:13px 36px; border-radius:var(--radius-pill); text-decoration:none; font-weight:800; font-size:.95rem; display:inline-block; transition:all .25s; box-shadow:0 4px 20px rgba(0,0,0,.2); position:relative; z-index:1; }
.btn-hero:hover { background:rgba(255,255,255,.1); color:#fff; border:2px solid #fff; transform:translateY(-2px); }

/* Store Card Desktop */
.store-card { max-width:900px; margin:-28px auto 0; background:#fff; border-radius:var(--radius-card); border:1px solid var(--gray-200); box-shadow:var(--elev-3); position:relative; z-index:10; }
.store-card-inner { display:flex; align-items:center; gap:16px; padding:20px 24px; }
.store-logo-lg { width:88px; height:88px; border-radius:14px; object-fit:cover; background:var(--gray-100); border:2px solid var(--gray-200); box-shadow:var(--elev-2); flex-shrink:0; }
.store-logo-lg.placeholder { display:flex; align-items:center; justify-content:center; font-size:2rem; font-weight:900; color:var(--primary); background:var(--primary-light); }
.store-title { font-family:var(--font-display); color:var(--text); margin:0 0 4px; font-size:1.6rem; font-weight:900; }
.store-meta { flex:1; }
.store-sub { display:flex; flex-wrap:wrap; gap:8px; align-items:center; color:var(--text-light); font-size:.9rem; }
.store-sub .link-info { background:var(--gray-100); border:1px solid var(--gray-200); color:var(--text); padding:5px 12px; border-radius:var(--radius-pill); font-weight:700; font-size:.82rem; cursor:pointer; transition:all .2s; }
.store-sub .link-info:hover { background:var(--primary-light); color:var(--primary); }
.status-badge { display:inline-flex; align-items:center; gap:5px; font-size:.78rem; font-weight:800; padding:4px 10px; border-radius:var(--radius-pill); }
.status-badge.open { background:#e8f5e9; color:#2e7d32; border:1px solid #c8e6c9; }
.status-badge.closed { background:#ffebee; color:#c62828; border:1px solid #ffcdd2; }
.store-address i { color:var(--primary); margin-right:4px; }
.store-actions { margin-left:auto; display:flex; gap:8px; flex-shrink:0; }
.store-action { width:36px; height:36px; border-radius:50%; background:var(--gray-100); border:1px solid var(--gray-200); display:inline-flex; align-items:center; justify-content:center; color:var(--gray-800); font-size:.9rem; transition:all .2s; text-decoration:none; }
.store-action:hover { background:var(--primary); color:#fff; border-color:var(--primary); transform:translateY(-2px); }
@media (max-width:600px) { .store-card-inner{padding:14px 16px;gap:12px} .store-logo-lg{width:68px;height:68px;border-radius:12px} .store-title{font-size:1.3rem} .store-actions{margin-left:0} }

/* MOBILE HERO CARD */
.m-hero-99 { display:none; }
@media (max-width:768px) {
    section.hero { margin-top:0 !important; padding-top:0 !important; }
    html,body { background:var(--gray-100); }
    .sidebar,.side-menu,.left-sidebar,.main-sidebar,aside { display:none !important; }
    .m-hero-99 { display:block; position:relative; background:#fff; border-radius:0 0 20px 20px; box-shadow:var(--elev-2); overflow:hidden; margin-bottom:0; }
    .m-hero-99 .bg { display:none; }
    .m-hero-99 .top-actions { display:none; }
    .m-hero-99 .card { position:relative; padding:14px 14px 10px; background:#fff; }
    .m-hero-99 .card .share-fab { position:absolute; top:12px; right:12px; width:34px; height:34px; border:none; border-radius:50%; background:var(--gray-100); color:var(--text); display:flex; align-items:center; justify-content:center; font-size:.85rem; cursor:pointer; z-index:3; }
    .m-hero-99 .row { display:flex; align-items:flex-start; gap:12px; }
    .m-hero-99 .store-avatar { width:68px; height:68px; border-radius:14px; background:var(--gray-100); overflow:hidden; border:2px solid var(--gray-200); flex-shrink:0; }
    .m-hero-99 .store-avatar img { display:block; width:100%; height:100%; object-fit:cover; }
    .m-hero-99 .store-avatar .logo-initial { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:1.4rem; color:var(--primary); background:var(--primary-light); }
    .m-hero-99 .title { font-family:var(--font-display); font-weight:900; font-size:1.15rem; line-height:1.1; color:var(--text); margin-bottom:3px; }
    .m-hero-99 .title-row { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:2px; }
    .m-hero-99 .subtitle { font-size:.82rem; color:var(--text-light); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .m-hero-99 .status-line { margin-top:4px; font-weight:800; font-size:.82rem; display:flex; align-items:center; gap:5px; }
    .m-hero-99 .status-open-text { color:#2e7d32; }
    .m-hero-99 .status-closed-text { color:#c62828; }
    .m-hero-99 .status-dot { font-size:.5rem; }
    .m-hero-99 .social-row { margin-top:6px; display:flex; align-items:center; gap:8px; }
    .m-hero-99 .social-btn { width:32px; height:32px; border-radius:50%; border:1px solid var(--gray-200); background:var(--gray-50); display:flex; align-items:center; justify-content:center; font-size:.9rem; }
    .m-hero-99 .stars-row { margin-top:6px; display:flex; align-items:center; gap:6px; }
    .m-hero-99 .stars { display:flex; gap:1px; color:#ffc107; font-size:.75rem; }
    .m-hero-99 .pill-row { display:flex; gap:8px; margin:8px 14px 10px; }
    .m-hero-99 .pill { flex:1; display:inline-flex; align-items:center; justify-content:center; gap:5px; background:var(--gray-50); border:1px solid var(--gray-200); border-radius:10px; padding:7px 6px; font-weight:700; font-size:.75rem; color:var(--text); white-space:nowrap; }
    .m-hero-99 .pill i { font-size:.8rem; color:var(--primary); }
    .m-hero-99 .pill-btn { cursor:pointer; }
    .m-hero-99 .chips { margin-top:8px; display:flex; gap:6px; overflow:auto; padding-bottom:2px; }
    .m-hero-99 .chip { background:#fff8e1; color:#e65100; border:1px solid #ffe0b2; border-radius:999px; padding:4px 10px; font-weight:800; font-size:.72rem; white-space:nowrap; flex-shrink:0; }
    .promo-slider { margin:0 14px 10px; border-radius:14px; overflow:hidden; box-shadow:var(--elev-2); position:relative; }
    .promo-slider .slides { display:flex; transition:transform .4s ease; }
    .promo-slider .slide { min-width:100%; height:110px; }
    .promo-slider .slide img { display:block; width:100%; height:100%; object-fit:cover; }
    .promo-slider .dots { position:absolute; right:8px; bottom:8px; display:flex; gap:5px; }
    .promo-slider .dot { width:5px; height:5px; border-radius:50%; background:#ffffffaa; border:1px solid #ffffffcc; }
    .promo-slider .dot.active { background:#fff; }
    .promo-slider .nav-btn { position:absolute; top:50%; transform:translateY(-50%); width:28px; height:28px; border:none; border-radius:50%; background:#ffffffdd; color:#333; display:flex; align-items:center; justify-content:center; font-size:.75rem; cursor:pointer; }
    .promo-slider .nav-btn.prev { left:6px; }
    .promo-slider .nav-btn.next { right:6px; }
    .af-search { margin:0 14px 10px; display:flex; align-items:center; gap:8px; background:var(--gray-100); border:1.5px solid var(--gray-200); border-radius:var(--radius-pill); padding:10px 14px; }
    .af-search i { color:var(--gray-400); font-size:.9rem; }
    .af-search input { border:none; outline:none; background:transparent; width:100%; font-size:.92rem; color:var(--text); font-family:var(--font-main); }
    .af-cats { display:block; background:#fff; border-bottom:1px solid var(--gray-200); position:sticky; top:56px; z-index:100; }
    .af-cats .cat-scroll { display:flex; gap:8px; overflow:auto; padding:10px 14px; scrollbar-width:none; }
    .af-cats .cat-scroll::-webkit-scrollbar { display:none; }
    .af-cats .cat-btn { background:var(--gray-100); border:1px solid var(--gray-200); border-radius:var(--radius-pill); padding:7px 14px; font-weight:700; font-size:.82rem; color:var(--text); white-space:nowrap; flex-shrink:0; cursor:pointer; transition:all .2s; }
    .af-cats .cat-btn.active { background:var(--primary); color:#fff; border-color:var(--primary); }
    .category-filter { display:none !important; }
    .search-container { display:none !important; }
    .cat-title { font-weight:800; font-size:.78rem; color:var(--gray-600); text-transform:uppercase; letter-spacing:.08em; margin:20px 0 0; padding:12px 14px 8px; background:#fff; }
    .menu-grid { display:block; }
    .cat-section { background:#fff; border-radius:0; border:none; border-bottom:8px solid var(--gray-100); margin-bottom:0; box-shadow:none; }
    .cat-section .cat-title { border-left:none; border-bottom:1px solid var(--gray-200); background:var(--gray-50); font-size:.78rem; padding:10px 14px; }
    .product-card { display:flex; align-items:center; gap:12px; padding:14px 14px; border-bottom:1px solid var(--gray-100); background:#fff; border-radius:0; box-shadow:none; margin:0; transition:background .15s; }
    .product-card:last-child { border-bottom:none; }
    .product-card:active { background:var(--gray-50); }
    .product-card .product-img { order:2; width:90px; height:90px; border-radius:14px; flex-shrink:0; margin:0; }
    .product-card .product-info { order:1; flex:1; padding:0; }
    .product-card .product-info h3 { font-size:.93rem; font-weight:800; color:var(--text); margin:0 0 4px; line-height:1.2; }
    .product-card .product-desc { font-size:.78rem; color:var(--text-light); line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin-bottom:8px; }
    .product-card .price-row { display:flex; align-items:center; justify-content:space-between; }
    .product-card .price { font-size:1rem; font-weight:800; color:var(--text); }
    .product-card .old-price { font-size:.75rem; text-decoration:line-through; color:var(--gray-400); margin-right:4px; }
    .product-card .btn-add { background:var(--primary-light); border:1.5px solid var(--primary); color:var(--primary); border-radius:50%; width:36px; height:36px; min-width:36px; display:flex; align-items:center; justify-content:center; padding:0; box-shadow:none; font-size:.9rem; transition:all .2s; }
    .product-card .btn-add span { display:none; }
    .product-card .btn-add:hover { background:var(--primary); color:#fff; }
    section.hero .container .store-card,
    section.hero .container > h2,
    section.hero .container > p,
    section.hero .container > a.btn-hero { display:none !important; }
    .m-coupon-bar { position:sticky; bottom:0; left:0; right:0; margin:0; background:#fff9c4; color:#e65100; padding:10px 14px; text-align:center; font-weight:800; font-size:.82rem; border-top:1px solid #ffe082; }
    #about,#contact { padding:0 14px; }
}

/* DESKTOP PROMO SLIDER */
.desk-promo { display:none; }
@media (min-width:769px) {
    .desk-promo { display:block; max-width:900px; margin:20px auto 24px; border-radius:16px; overflow:hidden; box-shadow:var(--elev-2); position:relative; }
    .desk-promo .slides { display:flex; transition:transform .4s ease; }
    .desk-promo .slide { min-width:100%; height:170px; }
    .desk-promo .slide img { display:block; width:100%; height:100%; object-fit:cover; }
    .desk-promo .dots { position:absolute; right:12px; bottom:12px; display:flex; gap:7px; }
    .desk-promo .dot { width:7px; height:7px; border-radius:50%; background:#ffffffaa; border:1px solid #ffffffcc; }
    .desk-promo .dot.active { background:#fff; }
    .desk-promo .nav-btn { position:absolute; top:50%; transform:translateY(-50%); width:36px; height:36px; border:none; border-radius:50%; background:#ffffffee; color:#333; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:.85rem; box-shadow:var(--elev-1); }
    .desk-promo .nav-btn.prev { left:10px; }
    .desk-promo .nav-btn.next { right:10px; }
}

/* SECTION TITLE */
.section-title { text-align:center; margin:20px 0; font-family:var(--font-display); font-size:1.5rem; font-weight:900; color:var(--text); }

/* BUSCA DESKTOP */
.search-container { max-width:540px; margin:0 auto 24px; position:relative; }
.search-container input { width:100%; padding:13px 48px 13px 20px; border-radius:var(--radius-pill); font-size:.95rem; border:2px solid var(--gray-200); background:#fff; box-shadow:var(--elev-1); font-family:var(--font-main); transition:border-color .2s,box-shadow .2s; color:var(--text); }
.search-container input:focus { border-color:var(--primary); outline:none; box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 10%, transparent); }
#product-search-icon { position:absolute; right:18px; top:50%; transform:translateY(-50%); color:var(--gray-400); cursor:pointer; font-size:.95rem; }

/* FILTRO CATEGORIAS DESKTOP */
.category-filter { display:flex; justify-content:center; gap:8px; margin-bottom:24px; flex-wrap:wrap; position:sticky; top:var(--header-h); z-index:50; background:var(--gray-100); padding:12px 16px; box-shadow:0 4px 12px rgba(0,0,0,.06); }
.cat-btn { background:#fff; border:1.5px solid var(--gray-200); color:var(--text); padding:8px 18px; border-radius:var(--radius-pill); cursor:pointer; font-weight:700; font-size:.85rem; transition:all .2s; }
.cat-btn.active,.cat-btn:hover { background:var(--primary); color:#fff; border-color:var(--primary); }
.cat-btn:focus-visible { outline:none; box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 25%, transparent); }

/* MENU GRID DESKTOP */
.menu-grid { display:grid; grid-template-columns:1fr; gap:0; padding:8px 0 24px; }
.cat-title { font-family:var(--font-display); font-weight:900; font-size:1.05rem; color:var(--text); margin:28px 0 12px; padding:0 10px; border-left:3px solid var(--primary); }
.cat-section { background:#fff; border-radius:var(--radius-card); border:1px solid var(--gray-200); overflow:hidden; margin-bottom:14px; box-shadow:var(--elev-1); }
.cat-section .cat-title { margin:0; padding:13px 18px; font-size:.92rem; border-left:none; border-bottom:1px solid var(--gray-200); background:var(--gray-50); color:var(--gray-600); letter-spacing:.06em; text-transform:uppercase; font-family:var(--font-main); }

.product-card { background:#fff; border-radius:0; display:flex; flex-direction:row; align-items:center; gap:16px; padding:16px 18px; border-bottom:1px solid var(--gray-100); position:relative; transition:background .15s; cursor:pointer; }
.product-card:last-child { border-bottom:none; }
.product-card:hover { background:var(--gray-50); }
.product-img { width:106px; height:106px; object-fit:cover; border-radius:12px; background:var(--gray-100); flex-shrink:0; margin:0; order:2; }
.product-info { flex:1; order:1; padding:0; display:flex; flex-direction:column; }
.product-info h3 { font-family:var(--font-display); font-size:1rem; font-weight:800; color:var(--text); margin:0 0 5px; line-height:1.2; }
.product-desc { font-size:.83rem; color:var(--text-light); line-height:1.45; margin-bottom:12px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; flex:1; }
.price-row { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:auto; }
.price { font-family:var(--font-display); font-size:1.05rem; font-weight:900; color:var(--text); }
.old-price { font-size:.8rem; text-decoration:line-through; color:var(--gray-400); margin-right:4px; }
.btn-add { background:#fff; border:1.5px solid var(--primary); color:var(--primary); width:40px; height:40px; min-width:40px; border-radius:50%; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; padding:0; transition:all .2s; font-size:.9rem; font-weight:700; box-shadow:none; }
.btn-add i { font-size:.9rem; }
.btn-add span { display:none; }
.btn-add:hover { background:var(--primary); color:#fff; box-shadow:0 4px 12px color-mix(in srgb, var(--primary) 30%, transparent); transform:scale(1.05); }
.btn-add.out-of-stock { background:var(--gray-200); border-color:var(--gray-200); color:var(--gray-600); cursor:not-allowed; }
.btn-add.out-of-stock:hover { transform:none; box-shadow:none; }

body.store-closed .product-card { pointer-events:none; opacity:.65; filter:grayscale(80%); }
body.store-closed .btn-add { background:var(--gray-200) !important; border-color:var(--gray-200) !important; color:var(--gray-600) !important; }

@keyframes fadeIn { from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)} }

/* SEÇÃO RASTREAR */
#about { background:#fff; border-radius:var(--radius-card); border:1px solid var(--gray-200); padding:32px 24px; text-align:center; margin:24px auto; max-width:900px; box-shadow:var(--elev-1); }
#about h2 { font-family:var(--font-display); color:var(--primary); margin-bottom:12px; font-size:1.3rem; font-weight:900; }
#about p { max-width:600px; margin:0 auto; color:var(--text-light); line-height:1.7; }

/* CONTATO */
#contact { display:none !important; }
.info-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px; align-items:stretch; }
.info-card,.map-card { background:#fff; border-radius:var(--radius-card); box-shadow:var(--elev-1); padding:18px; border:1px solid var(--gray-200); }
.info-item { display:flex; gap:12px; align-items:flex-start; padding:12px 0; border-bottom:1px solid var(--gray-100); }
.info-item:last-child { border-bottom:none; }
.info-ico { width:36px; height:36px; display:flex; align-items:center; justify-content:center; border-radius:10px; background:var(--gray-50); border:1px solid var(--gray-200); }
.info-text strong { display:block; margin-bottom:4px; font-weight:700; }
.map-card { padding:0; overflow:hidden; min-height:300px; }
.map-frame { width:100%; height:100%; border:0; min-height:300px; }
.map-placeholder { height:100%; display:flex; align-items:center; justify-content:center; color:var(--gray-400); }
.btn-route { display:inline-flex; align-items:center; gap:8px; margin-top:8px; background:var(--primary); color:#fff; padding:9px 14px; border-radius:var(--radius-pill); text-decoration:none; font-weight:700; font-size:.85rem; transition:.2s; }
.btn-route:hover { background:var(--primary-dark); transform:translateY(-1px); }

/* FOOTER */
.main-footer { background:var(--text); color:#fff; padding:32px 0; text-align:center; margin-top:40px; }
.main-footer p { opacity:.7; font-size:.88rem; }
.social-links { display:flex; gap:14px; justify-content:center; margin-top:14px; }
.social-links a { color:rgba(255,255,255,.7); font-size:1.3rem; transition:.2s; text-decoration:none; }
.social-links a:hover { color:#fff; transform:translateY(-2px); }

/* FLOAT BUTTONS */
.float-wa { position:fixed; bottom:24px; right:24px; background:#25d366; color:#fff; width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.7rem; box-shadow:0 4px 16px rgba(37,211,102,.4); z-index:1300; transition:.25s; text-decoration:none !important; }
.float-wa:hover { transform:scale(1.08); color:#fff; }
/* ── FLOAT CART BUTTON (desktop) ─────────────────────────── */
.float-cart {
  position: fixed;
  bottom: 96px;
  right: 24px;
  background: var(--primary);
  color: #fff;
  width: auto;
  min-width: 56px;
  height: 56px;
  border-radius: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 18px;
  font-size: 1rem;
  font-weight: 800;
  font-family: var(--font-main);
  box-shadow: 0 6px 24px color-mix(in srgb, var(--primary) 45%, transparent);
  z-index: 1400;
  transition: all .25s cubic-bezier(.4,0,.2,1);
  text-decoration: none !important;
  white-space: nowrap;
}
.float-cart:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 10px 32px color-mix(in srgb, var(--primary) 50%, transparent); }
.float-cart .badge {
  background: #fff;
  color: var(--primary);
  font-size: .68rem;
  padding: 2px 6px;
  border-radius: 999px;
  font-weight: 900;
  border: 1.5px solid var(--primary);
  min-width: 20px;
  text-align: center;
  line-height: 1.4;
}
@media (max-width:768px) { .float-wa,.float-cart { display:none !important; } }
@supports (bottom:env(safe-area-inset-bottom)){
  .float-wa { bottom: calc(24px + env(safe-area-inset-bottom)); }
  .float-cart { bottom: calc(96px + env(safe-area-inset-bottom)); }
}

/* ── CART BOTTOM BAR (mobile) ─────────────────────────────── */
.cart-bottom-bar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  padding: 10px 14px;
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-top: 1px solid rgba(0,0,0,.08);
  display: none;
  z-index: 1600;
}
.cart-bottom-bar .bar-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: var(--primary);
  color: #fff;
  font-family: var(--font-main);
  cursor: pointer;
  box-shadow: 0 6px 20px color-mix(in srgb, var(--primary) 35%, transparent);
  overflow: hidden;
  transition: all .2s;
}
.cart-bottom-bar .bar-btn:active { transform: scale(.98); }
.bar-btn-inner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  font-weight: 800;
  font-size: .98rem;
  width: 100%;
  justify-content: center;
}
.bar-btn-count {
  background: rgba(255,255,255,.25);
  border-radius: 999px;
  padding: 2px 8px;
  font-size: .78rem;
  font-weight: 900;
  min-width: 24px;
  text-align: center;
}
@supports (bottom:env(safe-area-inset-bottom)){
  .cart-bottom-bar { padding-bottom: calc(10px + env(safe-area-inset-bottom)); }
}
@media (min-width:769px){ .cart-bottom-bar { display:none !important; } }
/* CART BOTTOM BAR */
/* cart-bottom-bar already defined above */


/* CART MODAL */
/* ============================================================
   CARRINHO MODAL — REDESIGN MODERNO
   ============================================================ */
.cart-modal { position:fixed; top:0; right:0; width:420px; max-width:100%; height:100%; background:#f8f9fb; box-shadow:-8px 0 40px rgba(0,0,0,.18); z-index:2000; transform:translateX(100%); visibility:hidden; transition:transform .35s cubic-bezier(.4,0,.2,1),visibility .35s; display:flex; flex-direction:column; }
.cart-modal.open { transform:translateX(0); visibility:visible; }
.cart-content { display:flex; flex-direction:column; height:100%; overflow:hidden; }

/* Header vermelho elegante */
.cart-header { padding:16px 18px; background:var(--primary); color:#fff; display:flex; justify-content:space-between; align-items:center; flex-shrink:0; position:relative; }
.cart-header::after { content:''; position:absolute; bottom:-10px; left:0; right:0; height:10px; background:linear-gradient(to bottom, color-mix(in srgb, var(--primary) 8%, transparent), transparent); pointer-events:none; }
.cart-header h3 { font-family:var(--font-display); font-size:1.1rem; font-weight:900; margin:0; }
.cart-header .cart-subtitle { font-size:.78rem; opacity:.85; margin-top:2px; font-weight:600; }
.cart-header .cart-header-right { display:flex; align-items:center; gap:8px; }
.cart-header button { background:rgba(255,255,255,.18); border:none; color:#fff; width:32px; height:32px; border-radius:50%; font-size:1.1rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s; }
.cart-header button:hover { background:rgba(255,255,255,.3); }
.cart-header .btn-clear { background:rgba(255,255,255,.12); border:none; color:rgba(255,255,255,.85); font-size:.72rem; font-weight:800; padding:4px 10px; border-radius:20px; cursor:pointer; letter-spacing:.02em; transition:.2s; }
.cart-header .btn-clear:hover { background:rgba(255,255,255,.25); }

.cart-scroll-area { flex:1; overflow-y:auto; padding-bottom:8px; scrollbar-width:thin; scrollbar-color:rgba(0,0,0,.1) transparent; }
.cart-scroll-area::-webkit-scrollbar { width:3px; }
.cart-scroll-area::-webkit-scrollbar-track { background:transparent; }
.cart-scroll-area::-webkit-scrollbar-thumb { background:rgba(0,0,0,.12); border-radius:3px; }

/* Items */
.cart-items { background:#fff; margin:12px 12px 4px; border-radius:16px; overflow:hidden; box-shadow:0 1px 8px rgba(0,0,0,.06); border:1px solid #f0f0f0; }
.cart-item { display:flex; align-items:flex-start; gap:12px; padding:13px 14px; border-bottom:1px solid #f7f7f7; transition:background .15s; animation:fadeIn .3s ease; }
.cart-item:last-child { border-bottom:none; }
.cart-item:hover { background:#fafafa; }
.cart-item-img { width:52px; height:52px; border-radius:12px; object-fit:cover; flex-shrink:0; background:#f3f4f6; }
.cart-item-body { flex:1; min-width:0; }
.cart-item-info h4 { font-size:.9rem; color:#1f2937; margin:0 0 2px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cart-item-addons { font-size:.75rem; color:#6b7280; margin-bottom:4px; line-height:1.4; }
.cart-item-price { font-size:.9rem; color:var(--primary); font-weight:800; }
.cart-item-controls { display:flex; align-items:center; gap:0; margin-top:6px; background:#f3f4f6; border-radius:999px; width:fit-content; }
.cart-item-controls button { width:28px; height:28px; border:none; background:transparent; cursor:pointer; font-size:.95rem; color:#374151; display:flex; align-items:center; justify-content:center; border-radius:999px; transition:.15s; font-weight:800; }
.cart-item-controls button:hover { background:#e5e7eb; }
.cart-item-controls .qty { font-weight:900; font-size:.9rem; padding:0 10px; color:#111; min-width:28px; text-align:center; }
.cart-item-remove { color:#ef4444; cursor:pointer; font-size:.85rem; transition:.2s; padding:4px; border-radius:6px; flex-shrink:0; align-self:flex-start; margin-top:2px; border:none; background:none; }
.cart-item-remove:hover { background:#fee2e2; }
.empty-cart { text-align:center; color:#9ca3af; padding:40px 20px; font-size:.95rem; }
.empty-cart i { font-size:2.5rem; display:block; margin-bottom:10px; opacity:.3; }

/* Checkout Section */
.checkout-section { padding:0 12px 12px; display:flex; flex-direction:column; gap:10px; }
.checkout-block { background:#fff; border:1px solid #f0f0f0; border-radius:14px; padding:14px; box-shadow:0 1px 6px rgba(0,0,0,.04); }
.checkout-block h4 { margin:0 0 10px; font-size:.88rem; color:#1f2937; display:flex; align-items:center; gap:7px; font-weight:800; letter-spacing:.01em; }
.checkout-block h4 i { color:var(--primary); }

/* Pills de método */
.payment-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(90px,1fr)); gap:8px; }
.payment-card { background:#fff; border:1.5px solid #e5e7eb; border-radius:12px; padding:10px 8px; display:flex; flex-direction:column; align-items:center; gap:5px; cursor:pointer; transition:all .18s; }
.payment-card:hover { border-color:var(--primary); background:#fff5f5; }
.payment-card.selected { border-color:var(--primary); background:color-mix(in srgb, var(--primary) 8%, white); box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 12%, transparent); }
.payment-icon { width:34px; height:34px; border-radius:9px; background:color-mix(in srgb, var(--primary) 8%, white); color:var(--primary); display:flex; align-items:center; justify-content:center; font-size:.95rem; }
.payment-label { font-size:.72rem; font-weight:700; color:#374151; text-align:center; line-height:1.2; }
.payment-card.selected .payment-label { color:var(--primary); }
.payment-method-select { display:none; }

/* Info chips */
.checkout-info { display:flex; gap:8px; flex-wrap:wrap; }
.checkout-info .info-item { flex:1; min-width:110px; background:#f9fafb; border:1px solid #e5e7eb; border-radius:12px; padding:10px 12px; }
.checkout-info .info-label { font-size:.68rem; color:#6b7280; font-weight:800; text-transform:uppercase; letter-spacing:.06em; display:flex; align-items:center; gap:5px; }
.checkout-info .info-label i { color:var(--primary); }
.checkout-info .info-value { font-weight:900; font-size:.9rem; color:#1f2937; margin-top:4px; font-family:var(--font-display); }

/* Coupon */
.coupon-banner { background:#f0fdf4; border:1px solid #bbf7d0; border-radius:12px; padding:10px 12px; display:flex; align-items:center; gap:8px; }
.coupon-banner .label { display:flex; align-items:center; gap:6px; font-weight:800; color:#166534; font-size:.82rem; flex:1; }
.coupon-banner .apply { background:var(--primary); color:#fff; border:none; border-radius:8px; padding:6px 12px; font-weight:800; cursor:pointer; white-space:nowrap; font-size:.8rem; flex:none; transition:.15s; }
.coupon-banner .apply:hover { background:var(--primary-dark,#c21525); }
.coupon-banner input.form-control { flex:0 1 160px; min-width:100px; height:32px; padding:5px 10px; border-radius:8px; font-size:.85rem; border:1.5px solid #d1fae5; }
.coupon-banner input.form-control:focus { border-color:var(--primary); outline:none; }

/* Breakdown */
.breakdown { margin-top:8px; }
.breakdown .row { display:flex; align-items:center; justify-content:space-between; padding:7px 0; }
.breakdown .row + .row { border-top:1px dashed #f3f4f6; }
.breakdown .title { color:#1f2937; font-weight:700; display:flex; align-items:center; gap:6px; font-size:.88rem; }
.breakdown .value { font-weight:800; font-size:.9rem; color:#1f2937; }
.breakdown .muted { color:#6b7280; font-weight:500; font-size:.84rem; }
.breakdown .green { color:#15803d; font-weight:700; font-size:.84rem; }
.breakdown .red { color:#dc2626; font-weight:700; }
.total-row { padding:10px 0 4px; font-size:1.05rem; border-top:2px solid #f3f4f6; margin-top:4px; font-weight:900; color:#111; }
.checkout-card { background:#fff; border:1px solid #f0f0f0; border-radius:12px; padding:12px; box-shadow:0 1px 6px rgba(0,0,0,.04); }
.checkout-card h4 { font-weight:800; font-size:.9rem; margin:0 0 8px; color:#1f2937; }
.info-ico { width:17px; height:17px; border-radius:50%; background:#f0f0f0; color:#6b7280; display:inline-flex; align-items:center; justify-content:center; font-weight:800; font-size:.7rem; position:relative; cursor:default; vertical-align:middle; }
.info-ico .tip { position:absolute; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%); background:#111; color:#fff; font-size:.74rem; padding:7px 10px; border-radius:8px; line-height:1.3; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .15s; z-index:9999; }
.info-ico:hover .tip,.info-ico:focus .tip { opacity:1; }
.info-ico .tip::after { content:''; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:5px solid transparent; border-top-color:#111; }

/* Form fields */
.checkout-form .form-control, .checkout-section input.form-control, .checkout-section select.form-control, .checkout-section textarea.form-control { font-size:.9rem; min-height:44px; padding:10px 13px; border-radius:12px; border:1.5px solid #e5e7eb; color:#1f2937; background:#fff; transition:border-color .2s,box-shadow .2s; font-family:inherit; }
.checkout-section .form-control:focus { border-color:var(--primary); outline:none; box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 8%, transparent); }
.checkout-section select.form-control { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236b7280' d='M6 8L0 0h12z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; padding-right:32px; }

/* Checkout methods */
.checkout-methods { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.checkout-methods .method-btn { display:inline-flex; align-items:center; gap:6px; font-size:.85rem; padding:7px 12px; border-radius:999px; border:1.5px solid #e5e7eb; background:#f9fafb; white-space:nowrap; cursor:pointer; transition:.18s; font-weight:700; color:#374151; }
.checkout-methods .method-btn:hover { border-color:var(--primary); background:#fff5f5; color:var(--primary); }
.checkout-methods .method-btn.active { background:color-mix(in srgb, var(--primary) 8%, white); border-color:var(--primary); color:var(--primary); box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 10%, transparent); }
.checkout-methods .method-btn input { display:none; }
.checkout-methods .chip-text { display:inline; }

/* Footer */
.cart-footer { background:#fff; border-top:1px solid #f0f0f0; padding:14px 14px; flex-shrink:0; box-shadow:0 -4px 16px rgba(0,0,0,.06); }
.cart-total { display:flex; justify-content:space-between; align-items:center; font-size:1.1rem; font-weight:900; margin-bottom:12px; color:#1f2937; font-family:var(--font-display); }
.cart-total .total-label { font-size:.82rem; color:#6b7280; font-weight:600; }
.cart-total .total-amount { font-size:1.25rem; color:var(--primary); }
.btn-checkout { width:100%; padding:15px; background:var(--primary); color:#fff; border:none; border-radius:14px; font-size:.95rem; font-weight:800; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:10px; transition:background .2s,transform .15s; box-shadow:0 6px 18px color-mix(in srgb, var(--primary) 30%, transparent); font-family:var(--font-main); letter-spacing:.01em; }
.btn-checkout:hover { background:var(--primary-dark,#c21525); transform:translateY(-1px); box-shadow:0 8px 24px color-mix(in srgb, var(--primary) 40%, transparent); }
.btn-checkout:active { transform:translateY(0); }

@media (max-width:480px) { .cart-modal{width:100%;border-radius:0} }
@media (min-width:1024px) { .cart-modal{width:440px} }
@supports (padding:env(safe-area-inset-bottom)) { .cart-footer{padding-bottom:calc(14px + env(safe-area-inset-bottom))} }

/* MODAL PRODUTO */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:1500; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .25s; backdrop-filter:blur(4px); }
.modal-overlay.open { opacity:1; pointer-events:all; }
.modal-open { overflow:hidden; }
.modal-content { background:#fff; padding:0; border-radius:20px; width:92%; max-width:500px; max-height:92vh; overflow:hidden; display:flex; flex-direction:column; box-shadow:var(--elev-3); transform:translateY(16px); transition:transform .25s; }
.modal-overlay.open .modal-content { transform:translateY(0); }
.modal-header { padding:16px 20px; border-bottom:1px solid var(--gray-200); display:flex; justify-content:space-between; align-items:center; position:sticky; top:0; background:#fff; z-index:2; }
.modal-header h3 { margin:0; color:var(--text); font-family:var(--font-display); font-weight:900; font-size:1.1rem; }
.modal-header button { background:var(--gray-100); border:none; font-size:1.1rem; cursor:pointer; color:var(--gray-600); width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; transition:.2s; }
.modal-header button:hover { background:var(--gray-200); }
.modal-body { padding:18px 20px; overflow-y:auto; flex:1; }
.modal-section { margin-top:18px; }
.modal-section h4 { font-size:.9rem; font-weight:800; color:var(--text); margin-bottom:10px; display:flex; align-items:center; justify-content:space-between; }
.additional-item { display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid var(--gray-100); cursor:pointer; }
.additional-item:last-child { border-bottom:none; }
.additional-item input { margin-right:10px; accent-color:var(--primary); }
.add-price { font-weight:800; color:var(--primary); font-size:.88rem; }
.modal-footer-action { position:sticky; bottom:0; background:#fff; padding:12px 20px; border-top:1px solid var(--gray-200); display:flex; gap:12px; align-items:center; box-shadow:0 -4px 16px rgba(0,0,0,.06); }
.qty-control { display:flex; align-items:center; border:1.5px solid var(--gray-200); border-radius:12px; overflow:hidden; }
.qty-control button { background:var(--gray-100); border:none; padding:9px 14px; font-size:1.1rem; cursor:pointer; font-weight:700; transition:background .15s; }
.qty-control button:hover { background:var(--gray-200); }
.qty-control span { padding:0 14px; font-weight:800; font-size:.95rem; }
.btn-add-modal { flex:1; background:var(--primary); color:#fff; border:none; padding:14px; border-radius:14px; font-weight:800; cursor:pointer; font-size:.95rem; transition:background .2s; font-family:var(--font-main); box-shadow:0 4px 12px color-mix(in srgb, var(--primary) 30%, transparent); }
.btn-add-modal:hover { background:var(--primary-dark); }
@media (max-width:600px){ .modal-overlay{align-items:flex-end} .modal-content{width:100%;max-width:none;border-radius:20px 20px 0 0;max-height:88vh} }

/* FORM CONTROLS */
.form-control { border:1.5px solid var(--gray-200); border-radius:10px; padding:11px 14px; font-family:var(--font-main); font-size:.92rem; color:var(--text); width:100%; transition:border-color .2s,box-shadow .2s; background:#fff; }
.form-control:focus { border-color:var(--primary); outline:none; box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 10%, transparent); }

/* NOTIFICAÇÃO TOAST */
.notification-toast { position:fixed; top:80px; right:20px; background:#fff; border-left:4px solid #333; box-shadow:var(--elev-3); padding:14px 18px; border-radius:12px; z-index:9999; display:flex; align-items:center; justify-content:space-between; min-width:280px; animation:slideInToast .4s ease-out; transition:opacity .4s; }
.notification-toast.hide { opacity:0; }
.notification-toast.info { border-left-color:#2196F3; }
.notification-toast.success { border-left-color:var(--accent); }
.notification-toast.warning { border-left-color:#FF9800; }
.notification-toast.error { border-left-color:var(--primary); }
.notification-toast .notif-content { display:flex; align-items:center; gap:10px; font-weight:600; font-size:.9rem; }
.notification-toast button { background:none; border:none; font-size:1.1rem; cursor:pointer; color:var(--gray-400); margin-left:10px; }
@keyframes slideInToast { from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1} }

/* INFO DA LOJA MODAL */
.store-info-overlay { position:fixed; inset:0; background:rgba(0,0,0,.4); display:none; align-items:center; justify-content:center; z-index:99999; }
.store-info-modal { background:#fff; width:min(660px,94vw); border-radius:20px; max-height:86vh; overflow:auto; box-shadow:var(--elev-3); }
.store-info-modal .hdr { display:flex; align-items:center; justify-content:space-between; padding:16px 18px; background:var(--primary); color:#fff; border-radius:20px 20px 0 0; }
.store-info-modal .body { padding:16px 18px; color:var(--text); }
.info-section { margin:12px 0; }
.info-title { font-weight:800; margin-bottom:8px; color:var(--text); display:flex; align-items:center; gap:7px; }
.pay-badges { display:flex; flex-wrap:wrap; gap:8px; }
.pay-badge { background:var(--gray-50); border:1px solid var(--gray-200); border-radius:10px; padding:8px 12px; font-weight:700; font-size:.85rem; display:inline-flex; align-items:center; gap:8px; color:var(--text); }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.stat-card { background:#fff; border:1px solid var(--gray-200); border-radius:12px; padding:12px; text-align:center; }
.map-link { display:inline-flex; align-items:center; gap:8px; background:var(--primary-light); border:1px solid #ffcdd2; border-radius:12px; padding:10px 14px; color:var(--primary); text-decoration:none; font-weight:700; font-size:.88rem; }
@media (max-width:768px){ .store-info-overlay{align-items:flex-end} .store-info-modal{width:100%;border-radius:20px 20px 0 0;max-height:80vh} }

/* RESERVA */
.reservation-card { width:92%; max-width:460px !important; background:#fff; border-radius:20px; overflow:hidden; box-shadow:var(--elev-3); }
.reservation-header { padding:16px 18px; background:var(--primary); color:#fff; display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:2; }
.reservation-header .title-wrap { display:flex; align-items:center; gap:10px; }
.reservation-header .ico { width:34px; height:34px; border-radius:9px; background:rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; }
.reservation-header h3 { margin:0; font-size:1.1rem; font-weight:900; font-family:var(--font-display); }
.reservation-header .close-btn { background:rgba(255,255,255,.2); border:none; color:#fff; font-size:1.2rem; cursor:pointer; width:36px; height:36px; border-radius:9px; display:flex; align-items:center; justify-content:center; }
.reservation-body { padding:16px 18px 20px; }
.reservation-card .field { margin-bottom:10px; }
.reservation-card .two-col { display:grid; grid-template-columns:1fr 140px; gap:10px; }
.reservation-card .input-icon { position:relative; }
.reservation-card .input-icon i { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--gray-400); }
.reservation-card .input-icon input { padding-left:38px !important; height:44px; border-radius:12px; border:1.5px solid var(--gray-200); background:var(--gray-50); }
.btn-reserve { width:100%; display:flex; align-items:center; justify-content:center; gap:10px; padding:14px 16px; border:none; border-radius:14px; background:var(--primary); color:#fff; font-weight:800; font-size:.95rem; cursor:pointer; transition:.2s; font-family:var(--font-main); }
.btn-reserve:hover { background:var(--primary-dark); transform:translateY(-1px); }

/* UTILITY */
.btn { padding:11px 22px; border-radius:10px; font-weight:700; cursor:pointer; transition:.2s; font-family:var(--font-main); font-size:.9rem; }
:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
