:root{
  --red:#c24a30;
  --bg:#fbf6f1;
  --muted:#7a6b60;
  --text:#211915;
  --radius:14px;
  --shadow:0 12px 30px rgba(33,25,21,0.06);
  --space:16px;
  --font: 'Outfit', sans-serif
}
*{box-sizing:border-box}
button,a,[role="button"],[role="tab"],[role="link"]{touch-action:manipulation}
input[type="search"]{font-size:16px!important;touch-action:manipulation;-webkit-text-size-adjust:100%}
body{margin:0;padding:0;font-family:'Nunito',sans-serif;background-color:#f8f9fa;color:var(--text);-webkit-tap-highlight-color:transparent;user-select:none;display:flex;justify-content:center}
.app{width:100%;max-width:480px;background:#f8f9fa;min-height:100vh;position:relative;box-shadow:0 0 40px rgba(0,0,0,0.05);overflow-x:hidden;display:flex;flex-direction:column}
.insta-header{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;background:#fff;position:sticky;top:0;z-index:100;gap:24px}
.header-left{display:flex;align-items:center;gap:16px}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--text)}
.brand .logo{height:36px;border-radius:4px}
.brand .brand-text{font-size:22px;font-weight:800;letter-spacing:-0.5px;color:#0b552b}
.desktop-smart-appbar{display:flex;min-width:0;flex-shrink:1;flex-direction:column;justify-content:center;padding-left:16px;border-left:1px solid #e5e7eb;line-height:1.15;max-width:clamp(120px,25vw,350px)}
.desktop-brand-message{max-width:clamp(80px,20vw,230px);color:#000000;opacity:1;font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity 180ms ease,transform 180ms ease}
.desktop-brand-message.is-changing{opacity:0;transform:translateX(-16px)}
.desktop-smart-greeting{max-width:clamp(100px,25vw,280px);margin-top:3px;color:#111827;font-size:16px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;outline:none}
.desktop-smart-greeting{transition:opacity 220ms ease,transform 420ms cubic-bezier(.16,1,.3,1),filter 220ms ease,color 180ms ease}
.desktop-smart-greeting.is-changing{opacity:0;transform:translateX(-18px) scale(.97);filter:blur(1px)}
.desktop-smart-greeting.is-install-message{color:#d71948}
.desktop-smart-greeting.is-exchange-message{color:#0b552b;font-size:14px}
.desktop-smart-greeting.is-register-cta{color:#d91f4c;cursor:pointer;border-radius:8px;transition:color 180ms ease,background 180ms ease,transform 180ms ease}
.desktop-smart-greeting.is-register-cta{transition:opacity 220ms ease,transform 420ms cubic-bezier(.16,1,.3,1),filter 220ms ease,color 180ms ease,background 180ms ease}
.desktop-smart-greeting.is-register-cta:hover{color:#b5163d;background:rgba(217,31,76,0.07)}
.desktop-smart-greeting.is-register-cta:active{transform:scale(0.97)}
.desktop-smart-greeting.is-register-cta:focus-visible{box-shadow:0 0 0 3px rgba(217,31,76,0.18)}
.desktop-smart-greeting.is-appbar-recommendation,.mobile-header-left h1.brand-title.is-appbar-recommendation{color:#26364f}
.desktop-smart-greeting.is-appbar-offer,.mobile-header-left h1.brand-title.is-appbar-offer{color:#c24a30}
.smart-appbar-thinking-dots{display:inline-flex;align-items:center;gap:5px;min-width:38px;height:1em;vertical-align:middle}
.smart-appbar-thinking-dots i{display:block;width:7px;height:7px;border-radius:50%;background:linear-gradient(145deg,#f5a400,#c24a30);box-shadow:0 2px 7px rgba(194,74,48,.24);animation:smartAppbarThinking 900ms ease-in-out infinite}
.smart-appbar-thinking-dots i:nth-child(2){animation-delay:140ms}
.smart-appbar-thinking-dots i:nth-child(3){animation-delay:280ms}
@keyframes smartAppbarThinking{0%,100%{opacity:.35;transform:translateY(2px) scale(.78)}50%{opacity:1;transform:translateY(-2px) scale(1)}}
.desktop-smart-greeting.is-ai-thinking,
.mobile-header-left h1.brand-title.is-ai-thinking{display:flex;align-items:center;justify-content:center;text-align:center;width:100%;min-height:1em}
.desktop-smart-greeting.is-appbar-revealing,
.mobile-header-left h1.brand-title.is-appbar-revealing{overflow:hidden;clip-path:inset(0 100% 0 0);animation:smartAppbarRevealLeftToRight 760ms cubic-bezier(.16,1,.3,1) forwards}
@keyframes smartAppbarRevealLeftToRight{0%{clip-path:inset(0 100% 0 0);opacity:0;transform:translateX(-18px)}40%{opacity:1}100%{clip-path:inset(0 0 0 0);opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.desktop-smart-greeting.is-appbar-revealing,.mobile-header-left h1.brand-title.is-appbar-revealing{animation:none;clip-path:none}}
.insta-header.is-ai-thinking-line::after,
.mobile-header.is-ai-thinking-line::after{height:8px;background:radial-gradient(circle at calc(50% - 14px),#c24a30 0 3px,transparent 4px),radial-gradient(circle at 50%,#e66b35 0 3px,transparent 4px),radial-gradient(circle at calc(50% + 14px),#f59e0b 0 3px,transparent 4px);background-size:100% 100%;background-position:0 0;animation:appbarThinkingLine 900ms ease-in-out infinite;filter:none;box-shadow:none}
.insta-header.is-ai-revealing-line::after,
.mobile-header.is-ai-revealing-line::after{height:3px;background:linear-gradient(90deg,#c24a30 0 50%,#f59e0b 50% 100%);background-size:100% 100%;background-position:0 0;transform-origin:0% 50%;animation:appbarLineRevealLeftToRight 760ms cubic-bezier(.16,1,.3,1) both}
@keyframes appbarThinkingLine{0%,100%{opacity:.42;transform:scale(.78)}50%{opacity:1;transform:scale(1)}}
@keyframes appbarLineRevealLeftToRight{from{opacity:.35;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.insta-header.is-ai-thinking-line::after,.mobile-header.is-ai-thinking-line::after,.insta-header.is-ai-revealing-line::after,.mobile-header.is-ai-revealing-line::after{animation:none;transform:none}}
.appbar-ai-wave{position:absolute;z-index:11;top:100%;left:50%;bottom:auto;display:flex;align-items:center;justify-content:center;gap:8px;width:48px;height:20px;opacity:0;transform:translate(-50%,-50%) scale(.3);pointer-events:none;transition:transform 350ms ease,opacity 250ms ease}
.appbar-ai-wave i{display:inline-block;flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:#eab308;box-shadow:0 0 6px rgba(234,179,8,.45);animation:appbarWaveDotSequential 1.25s infinite ease-in-out}
.appbar-ai-wave i:nth-child(2){background:#f97316;box-shadow:0 0 6px rgba(249,115,22,.45);animation-delay:100ms}
.appbar-ai-wave i:nth-child(3){background:#ef4444;box-shadow:0 0 6px rgba(239,68,68,.45);animation-delay:200ms}
.insta-header.is-ai-thinking-line .appbar-ai-wave,.mobile-header.is-ai-thinking-line .appbar-ai-wave{opacity:1;transform:translate(-50%,-50%) scale(1)}
.insta-header.is-ai-thinking-line::after,.mobile-header.is-ai-thinking-line::after{opacity:0!important;background:none!important;box-shadow:none!important}
.insta-header.is-ai-revealing-line .appbar-ai-wave,.mobile-header.is-ai-revealing-line .appbar-ai-wave{opacity:0;transform:translate(-50%,-50%) scale(.3);transition:opacity 180ms ease,transform 350ms ease}
@keyframes appbarWaveDotSequential{0%,28%,100%{opacity:.55;transform:translateY(2px) scale(.82)}14%{opacity:1;transform:translateY(-4px) scale(1.22)}}
.desktop-smart-greeting{font-size:13px;font-weight:700;letter-spacing:0}
.mobile-header-left h1.brand-title{font-size:15px;font-weight:700;letter-spacing:0;line-height:1.2}
@media(prefers-reduced-motion:reduce){.appbar-ai-wave i{animation:none}.insta-header.is-ai-revealing-line .appbar-ai-wave,.mobile-header.is-ai-revealing-line .appbar-ai-wave{transition:none}}
.header-center{flex:1;display:flex;justify-content:center}
.search-bar-wrap{display:flex;align-items:center;background:#f3f4f6;border-radius:999px;padding:12px 18px;width:100%;max-width:800px;gap:12px}
.search-bar-wrap i{color:#6b7280;font-size:18px}
.search-bar-wrap input{border:none;background:transparent;outline:none;font-size:16px;width:100%;font-family:var(--font);color:var(--text)}
.header-right{display:flex;align-items:center;gap:12px}
.btn-outline{background:transparent;border:1px solid #e5e7eb;color:var(--text)}
.btn-outline:hover{background:#f9fafb}
.btn-primary{background:#0b552b;color:#fff}
.btn-primary:hover{background:#084221}
.btn-premium-red{background:linear-gradient(135deg,#c24a30 0%,#a03a24 100%);color:#fff;box-shadow:0 4px 12px rgba(194,74,48,0.3)}
.btn-premium-red:hover{background:linear-gradient(135deg,#a03a24 0%,#8a2f1f 100%);box-shadow:0 6px 16px rgba(194,74,48,0.4)}
.btn-cart{background:transparent;border:none;font-size:24px;position:relative;cursor:pointer;padding:8px}
.btn-cart i{color:#0b552b}
.btn-cart .badge{position:absolute;top:0;right:0;background:#c24a30;color:#fff;font-size:12px;font-weight:700;border-radius:999px;padding:2px 6px;border:2px solid #fff}
.root-safe-area{--safe-top:env(safe-area-inset-top);--safe-bottom:env(safe-area-inset-bottom)}
html,body{height:100%}
body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
.icon-btn{background:transparent;border:0;padding:8px;cursor:pointer;font-size:20px;color:var(--text)}
.content{padding-top:16px;padding-bottom:90px;flex:1}
/* Center column sizing when side menu and cart are visible */
@media(min-width:1024px){
  .content{max-width:none;margin-left:24px;margin-right:24px;width:calc(100% - 320px - 400px);}
}
.carousel{margin:16px 24px 24px;border-radius:20px;overflow:hidden;position:relative;background:#1f2937;padding:0;display:flex;min-height:220px;box-shadow:0 12px 24px rgba(0,0,0,0.1)}
.carousel .slide{opacity:0;visibility:hidden;transition:opacity 0.8s ease, visibility 0.8s ease;width:100%;height:100%;position:absolute;inset:0;background-size:cover;background-position:center;z-index:1}
.carousel .slide.active{opacity:1;visibility:visible;z-index:2}
.carousel .slide-overlay{position:absolute;inset:0;background:linear-gradient(90deg, rgba(15, 23, 42, 0.95) 0%, rgba(15, 23, 42, 0.6) 45%, transparent 100%); mix-blend-mode: multiply;}
.carousel .slide-content{position:absolute;top:0;left:0;bottom:0;width:65%;padding:40px 48px;display:flex;flex-direction:column;justify-content:center;z-index:2; text-shadow: 0 2px 10px rgba(0,0,0,0.3);}
.carousel .slide-content h2{font-size:32px;margin:0 0 8px;font-weight:800;letter-spacing:-0.5px;line-height:1.1;color:#ffffff;}
.carousel .slide .cta{display:inline-flex; align-items:center; justify-content:center; margin-top:8px; padding:12px 28px; border-radius:8px; background:#e11d48; color:#ffffff; font-weight:700; font-size:15px; letter-spacing:0.3px; text-decoration:none; transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1); border:none; box-shadow: 0 4px 12px rgba(225, 29, 72, 0.3); max-width:max-content;}
.carousel .slide .cta:hover{background:#be123c; transform:translateY(-2px); box-shadow: 0 6px 16px rgba(225, 29, 72, 0.4);}
.carousel .dots{position:absolute;bottom:16px;left:24px;display:flex;gap:6px;justify-content:center;z-index:10}
.carousel .dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,0.4);cursor:pointer;transition:background .2s}
.carousel .dot.active{background:#fff}

/* categories (Stores style) */
.categories{display:flex;gap:12px;padding:8px 24px;overflow:auto;margin-top:24px;scrollbar-width:none;-ms-overflow-style:none}
.categories::-webkit-scrollbar{display:none}
.categories .cat{min-width:76px;background:transparent;border:none;padding:0;text-align:center;cursor:pointer;transition:transform .2s}
.categories .cat:hover{transform:scale(1.02)}
.categories .cat img{width:64px;height:64px;border-radius:18px;object-fit:contain;margin:0 auto 8px;display:block;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,0.04);padding:8px}
.categories .cat span{display:block;font-size:13px;color:#111827;font-weight:800;line-height:1.2}

/* products section */
.section{padding:32px 0}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:20px}
.section-head h3{margin:0;font-size:24px;font-weight:800;color:var(--text)}
.view-all{color:#0b552b;font-size:15px;font-weight:600;text-decoration:none}
.products-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;padding-bottom:24px;margin:0 -24px;padding:0 24px 24px 24px;scrollbar-width:none;-ms-overflow-style:none;}
.products-grid::-webkit-scrollbar{display:none;}
.product-card{flex:0 0 calc(42%);min-width:150px;scroll-snap-align:start;background:#fff;border:none;border-radius:16px;padding:16px;position:relative;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;justify-content:flex-start;box-shadow:0 4px 16px rgba(0,0,0,0.03);}
.product-card img{width:100%;height:160px;object-fit:contain;margin-bottom:12px}
.product-price{color:var(--text);font-weight:800;font-size:18px}
.product-title{font-weight:500;font-size:14px;margin-top:4px;color:#4b5563;line-height:1.4;flex:1}
.product-card .hot-badge{position:absolute;left:12px;top:12px;background:#c24a30;color:#fff;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:800;text-transform:uppercase}
.product-card .add-circle{margin-top:16px;width:100%;padding:10px;border-radius:999px;background:#f3f4f6;color:#0b552b;border:none;font-weight:700;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s}
.product-card .add-circle:hover{background:#e5e7eb}
.product-card .add-circle.added{background:#0b552b;color:#fff}
/* bottom nav */
.bottom-nav{display:none}

/* Side menu */
.side-overlay{position:fixed;inset:0;background:rgba(2,6,23,0.45);opacity:0;visibility:hidden;transition:opacity .24s ease,visibility .24s;z-index:190}
.side-overlay.show{opacity:1;visibility:visible}
.side-menu{position:fixed;left:0;top:0;bottom:0;width:50vw;max-width:420px;background:#fff;padding:0;transform:translateX(-50vw);transition:transform .28s cubic-bezier(.2,.9,.2,1);z-index:200;box-shadow:20px 0 60px rgba(2,6,23,0.08);border-radius:0;overflow:hidden}
.side-menu.open{transform:translateX(0)}
.side-card{display:flex;align-items:center;gap:12px;padding:20px 18px 20px 18px;border-radius:0;background:linear-gradient(90deg,#8a1f1f,#6e1818);color:#fff;position:relative;margin-bottom:0;padding-right:28px}
.side-card-left{flex:0 0 auto;padding-left:14px}
  .side-logo{width:72px;height:72px;object-fit:contain;border-radius:8px;background:transparent;padding:0}
  .side-card-body{flex:1;padding-left:12px;display:flex;flex-direction:column;justify-content:center}
  .side-card-title{font-weight:900;font-size:clamp(16px,3.6vw,22px);line-height:1;color:#fff;letter-spacing:0.6px;text-transform:uppercase;margin:0;white-space:normal;overflow-wrap:break-word}
  .side-card-sub{font-size:clamp(12px,2.2vw,16px);margin-top:4px;opacity:0.95;font-weight:800;text-transform:uppercase;color:rgba(255,255,255,0.95)}
  .side-card-tagline{font-size:13px;margin-top:6px;opacity:0.92;font-weight:500;color:rgba(255,255,255,0.92)}
/* hide any leftover close button if present */
.close-on-card{display:none}
.side-nav{display:flex;flex-direction:column;gap:0;margin-top:6px}
.side-nav .side-link{position:relative;padding:14px 18px 14px 28px;border-bottom:1px solid rgba(0,0,0,0.04);display:flex;align-items:center;color:var(--text)}
.side-icon{width:22px;height:22px;flex:0 0 28px;color:var(--muted)}
.side-nav .side-link span{margin-left:8px;color:var(--text);font-size:16px;font-weight:700}
.side-nav .side-link:hover{background:rgba(11,85,43,0.04)}

/* Active / highlighted item style */
.side-link.active{margin:6px 14px;background:#8a1f1f;box-shadow:0 8px 24px rgba(138,31,31,0.28);color:#fff;border-radius:12px;padding:12px 14px;border-bottom:none}
.side-link.active span{color:#fff}
.side-link.active .side-icon{color:#fff}
.side-link.active::before{content:'';position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:4px;height:24px;border-radius:0 4px 4px 0;background:#fff;box-shadow:0 4px 12px rgba(255,255,255,0.2)}
.side-link{display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;color:var(--text);text-decoration:none}
.side-link i{width:30px;text-align:center}
.side-badge{margin-left:auto;background:#f2573b;color:#fff;padding:6px 10px;border-radius:999px;font-weight:800;font-size:13px}
.side-footer{margin-top:24px}

/* On small screens use half width for the side menu */
@media (max-width:600px){
  /* Make slightly wider on small phones so title doesn't clip; use responsive font size */
  .side-menu{width:50vw;max-width:50vw;transform:translateX(-50vw)}
  .side-card{padding:16px 14px;border-radius:0 18px 0 0;gap:12px;align-items:center}
  .side-logo{width:48px;height:48px}
  .side-card-body{padding-left:12px;display:flex;flex-direction:column;justify-content:center}
  .side-card-title{font-size:clamp(16px,6.5vw,20px);line-height:1;letter-spacing:0.6px;font-weight:800;text-transform:uppercase;white-space:normal;overflow:visible}
  .side-card-sub{font-size:13px;margin-top:6px;opacity:0.95;font-weight:700;text-transform:uppercase}
  .side-card-tagline{font-size:13px;margin-top:4px;opacity:0.95;font-weight:500}
  .side-link{padding:12px 14px}
}
  /* Make side-card header match reference image */
  .side-card{padding:22px 18px;border-radius:0 12px 0 0}
  .side-logo{width:64px;height:64px}
  .side-card-body{padding-left:12px}
  .side-card-title{font-size:clamp(18px,4.2vw,24px);line-height:1;color:#fff;letter-spacing:0.6px;text-transform:uppercase}
  .side-card-sub{font-size:clamp(13px,2.2vw,16px);margin-top:6px;opacity:0.95;font-weight:700;text-transform:uppercase}
  .side-card-tagline{font-size:13px;margin-top:6px;opacity:0.92;font-weight:500;color:rgba(255,255,255,0.95)}
/* cart sidebar */
.cart-sidebar{position:fixed;right:0;top:0;width:400px;max-width:100%;height:100vh;background:#fff;box-shadow:-4px 0 24px rgba(0,0,0,0.1);transition:transform .3s ease;z-index:300;display:flex;flex-direction:column;transform:translateX(100%)}
.cart-sidebar.open{transform:translateX(0)}
.cart-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e5e7eb}
.cart-header h4{margin:0;font-size:20px;font-weight:700}
.cart-items{padding:20px;flex:1;overflow:auto}
.cart-item{display:flex;gap:10px;align-items:center;padding:10px;border-radius:10px;background:#fff;margin-bottom:10px}
.cart-item img{width:60px;height:60px;border-radius:8px;object-fit:cover}
.cart-footer{padding:12px;border-top:1px solid #f3f4f6}
.checkout-btn{width:100%;padding:12px;border-radius:12px;background:var(--red);color:#fff;border:0;font-weight:800}
/* modal */
.modal{position:fixed;left:0;right:0;top:0;bottom:0;background:rgba(2,6,23,0.45);display:none;align-items:center;justify-content:center;z-index:130}
.modal.show{display:flex}
.modal-card{width:92%;max-width:720px;background:#fff;border-radius:16px;overflow:hidden;display:flex;gap:12px}
.modal img{width:46%;height:260px;object-fit:cover}
.modal-body{padding:18px}
.modal-close{position:absolute;right:14px;top:14px;background:#fff;border-radius:8px;padding:8px;border:0;box-shadow:var(--shadow)}
.modal-handle{width:36px;height:4px;background:rgba(0,0,0,0.08);border-radius:999px;margin:8px auto}
.btn{padding:10px 14px;border-radius:12px;border:0}
.btn.primary{background:var(--red);color:#fff;font-weight:800}

/* search modal */
.search-modal{position:fixed;left:0;right:0;top:0;bottom:0;background:rgba(2,6,23,0.4);display:none;align-items:center;justify-content:center;z-index:140}
.search-modal.show{display:flex}
.search-card{width:92%;max-width:720px;background:#fff;border-radius:12px;padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px}
.search-card input[type='search']{width:100%;padding:12px;border-radius:10px;border:1px solid #eef2f7;font-size:16px}
.search-results{max-height:60vh;overflow:auto;padding-top:6px;display:flex;flex-direction:column;gap:8px}
.search-result{display:flex;gap:10px;align-items:center;padding:8px;border-radius:10px;border:1px solid #f3f4f6}
.search-result img{width:64px;height:64px;border-radius:8px;object-fit:cover}
.search-result .meta{flex:1}
.search-result .meta .name{font-weight:700}
.search-result .meta .price{color:var(--red);font-weight:800}
.search-result .add{background:#fff;border-radius:8px;border:1px solid #f3f4f6;padding:8px}
/* responsive tweaks */
@media(min-width:768px){.app{max-width:100%}.product-card{min-width:200px}.modal-card{flex-direction:row}.modal img{height:320px}}

/* Native-like bottom sheet modal for mobile */
@media (max-width:600px){
  .modal{align-items:flex-end;background:rgba(2,6,23,0.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
  .modal-card{width:100%;max-width:100%;border-radius:16px 16px 0 0;margin:0;transform:translateY(100%);transition:transform .38s cubic-bezier(.2,.9,.25,1);box-shadow:0 -18px 40px rgba(2,6,23,0.28);max-height:92vh;display:flex;flex-direction:column}
  .modal.show .modal-card{transform:translateY(0)}
  .modal-card .modal-body{padding:14px;overflow:auto}
  .modal-card .modal-img{width:100%;height:180px;object-fit:cover}
  .modal-handle{background:rgba(255,255,255,0.6)}
  .modal-card .modal-close{right:12px;top:10px;background:rgba(255,255,255,0.95)}
  .modal-card .cta{align-self:stretch;margin:12px}
  /* make search modal also behave like bottom sheet */
  .search-modal{align-items:flex-end}
  .search-card{width:100%;max-width:100%;border-radius:14px 14px 0 0;margin:0;transform:translateY(100%);transition:transform .38s cubic-bezier(.2,.9,.25,1);box-shadow:0 -18px 40px rgba(2,6,23,0.28);max-height:92vh;display:flex;flex-direction:column}
  .search-modal.show .search-card{transform:translateY(0)}
}

/* Full cover image modal (used by promo slides) */
.modal.full-image .modal-card{flex-direction:column;max-width:1080px}
.modal.full-image .modal-card img{width:100%;height:auto;max-height:80vh;object-fit:cover;border-radius:0}
.modal.full-image .modal-body{display:none}
.modal.full-image .modal-close{background:rgba(255,255,255,0.9)}

@keyframes receiptModalOpen {
  from {
    opacity: 0;
    transform: scale(0.92) translateY(16px);
    backdrop-filter: blur(0px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
    backdrop-filter: blur(8px);
  }
}

@keyframes receiptShellIn {
  from {
    opacity: 0;
    transform: translateY(100vh);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.receipt-modal {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.24);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 180;
  padding: 20px;
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px);
  transition: backdrop-filter 420ms cubic-bezier(0.16, 1, 0.3, 1), -webkit-backdrop-filter 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

.receipt-modal.show {
  display: flex;
  animation: receiptModalOpen 420ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.receipt-shell {
  width: min(100%, 380px);
  background: #ffffff;
  border-radius: 0;
  padding: 24px 16px;
  filter: drop-shadow(0 20px 48px rgba(15, 23, 42, 0.15));
  position: relative;
  overflow: visible;
  animation: receiptShellIn 500ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
  
  /* Ticket shape using mask-image */
  -webkit-mask-image: 
    radial-gradient(circle at 12px 0px, transparent 12px, black 12.5px),
    radial-gradient(circle at 12px 100%, transparent 12px, black 12.5px),
    linear-gradient(black, black);
  -webkit-mask-size: 24px 24px, 24px 24px, 100% calc(100% - 48px);
  -webkit-mask-position: top, bottom, center;
  -webkit-mask-repeat: repeat-x, repeat-x, no-repeat;
  
  mask-image: 
    radial-gradient(circle at 12px 0px, transparent 12px, black 12.5px),
    radial-gradient(circle at 12px 100%, transparent 12px, black 12.5px),
    linear-gradient(black, black);
  mask-size: 24px 24px, 24px 24px, 100% calc(100% - 48px);
  mask-position: top, bottom, center;
  mask-repeat: repeat-x, repeat-x, no-repeat;
}

.receipt-header-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0px;
  padding-top: 2px;
}

.receipt-back-btn,
.receipt-more-btn {
  background: rgba(107, 114, 128, 0.1);
  border: none;
  color: #6b7280;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  padding: 6px 8px;
  font-weight: 800;
  border-radius: 10px;
  transition: all 200ms ease;
}

.receipt-back-btn:hover,
.receipt-more-btn:hover {
  background: rgba(107, 114, 128, 0.15);
  transform: scale(1.05);
}

.receipt-more-btn {
  font-size: 22px;
  transform: translateY(-1px);
}

.receipt-title {
  margin: 4px 0 0;
  font-size: clamp(1.6rem, 4.5vw, 2.4rem);
  line-height: 0.88;
  letter-spacing: -0.08em;
  font-weight: 950;
  color: #1f2937;
  font-family: "Segoe UI", "Arial Black", sans-serif;
  text-transform: uppercase;
}

.receipt-subtitle {
  margin: 2px 0 8px;
  color: #d1d5db;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.3px;
  text-transform: uppercase;
}

.receipt-card {
  background: #ffffff;
  border-radius: 14px;
  border: 1.5px solid rgba(107, 114, 128, 0.1);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.8);
  padding: 12px 12px 8px;
  overflow: hidden;
  position: relative;
}

.receipt-card::before,
.receipt-card::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 18px);
  height: 16px;
  background: #fff;
  border-radius: 50%;
  z-index: 1;
}

.receipt-card::before {
  top: -8px;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.02);
}

.receipt-card::after {
  bottom: -8px;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.02);
}

.receipt-brand-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 2px 0 10px;
  padding-bottom: 8px;
  border-bottom: 1.5px solid rgba(107, 114, 128, 0.1);
}

.receipt-badge {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.5);
  flex-shrink: 0;
  border: 1px solid rgba(107, 114, 128, 0.15);
}

.receipt-badge img {
  width: 38px;
  height: 38px;
  object-fit: contain;
  filter: drop-shadow(0 2px 4px rgba(15, 23, 42, 0.2));
}

.receipt-brand-name {
  font-size: 0.95rem;
  font-weight: 900;
  color: #1f2937;
  letter-spacing: -0.02em;
  text-transform: uppercase;
}

.receipt-divider {
  border-top: 2px dashed rgba(107, 114, 128, 0.15);
  margin: 8px 0 10px;
}

.receipt-info-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px 12px;
  align-items: end;
  padding: 6px 0;
  border-bottom: 1.5px dashed rgba(107, 114, 128, 0.1);
}

.receipt-info-grid.second-row {
  margin-top: 1px;
}

.receipt-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.receipt-meta.right-align {
  text-align: right;
}

.receipt-meta-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #6b7280;
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.receipt-meta-label i {
  font-size: 0.85rem;
}

.receipt-meta-value {
  color: #1f2937;
  font-size: 0.85rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  word-break: break-word;
}

.receipt-meta-value.amount {
  color: #1f2937;
  font-size: 1.05rem;
  font-weight: 900;
}

.receipt-meta-value.points {
  color: #1f2937;
}

.receipt-meta-value.status {
  color: #1f2937;
}

.receipt-code-block {
  margin-top: 10px;
  text-align: center;
  padding: 8px 0;
  border-top: 1.5px dashed rgba(107, 114, 128, 0.12);
  border-bottom: 1.5px dashed rgba(107, 114, 128, 0.12);
}

.receipt-code-block p {
  margin: 0 0 8px;
  color: #9ca3af;
  font-size: 0.68rem;
  line-height: 1.3;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.barcode {
  height: 44px;
  border-radius: 6px;
  background: repeating-linear-gradient(
    to right,
    #1f2937 0,
    #1f2937 2px,
    transparent 2px,
    transparent 4px
  );
  overflow: hidden;
  opacity: 0.95;
  position: relative;
  margin: 6px 0 6px;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}

.barcode::before,
.barcode::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(15, 23, 42, 0.08) 100%);
}

.receipt-code {
  color: #1f2937;
  text-align: center;
  font-size: 0.85rem;
  letter-spacing: 0.18em;
  font-weight: 900;
  font-family: 'Courier New', monospace;
}

.receipt-save-btn,
.receipt-share-btn {
  width: 100%;
  border: none;
  border-radius: 10px;
  background: linear-gradient(180deg, #2d3748 0%, #1f2937 100%);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 800;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: all 240ms ease;
}

.receipt-save-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.receipt-save-btn {
  margin-top: 10px;
}

.receipt-share-btn {
  display: none;
}

.receipt-share-btn i,
.receipt-save-btn i {
  font-size: 1.3rem;
}

@media (max-width: 420px) {
  .receipt-shell {
    padding: 14px 14px 18px;
  }

  .receipt-brand-name {
    font-size: 0.95rem;
  }

  .receipt-meta-label {
    font-size: 0.82rem;
  }

  .receipt-meta-value {
    font-size: 0.94rem;
  }
}

/* Receipt visual refinement: additive overrides based on the supplied reference. */
.receipt-modal {
  background: rgba(30, 41, 59, 0.32);
  padding: clamp(10px, 3vw, 24px);
}

.receipt-shell {
  width: min(100%, 460px);
  max-height: calc(100dvh - 24px);
  padding: 30px 20px 28px;
  overflow-y: auto;
  scrollbar-width: none;
  filter: drop-shadow(0 24px 56px rgba(15, 23, 42, 0.2));
}

.receipt-shell::-webkit-scrollbar {
  display: none;
}

.receipt-header-bar {
  margin-bottom: 8px;
}

.receipt-back-btn,
.receipt-more-btn {
  width: 48px;
  height: 48px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: #f1f3f5;
  color: #70798a;
}

.receipt-back-btn:focus-visible,
.receipt-more-btn:focus-visible,
.receipt-save-btn:focus-visible {
  outline: 3px solid rgba(194, 74, 48, 0.24);
  outline-offset: 3px;
}

.receipt-title {
  margin-top: 2px;
  font-size: clamp(2rem, 8vw, 2.75rem);
  line-height: 0.98;
  letter-spacing: -0.065em;
}

.receipt-subtitle {
  margin: 3px 0 14px;
  font-size: clamp(0.82rem, 3vw, 1rem);
  letter-spacing: 0.02em;
  color: #c6cbd4;
}

.receipt-card {
  border-radius: 20px;
  border-color: rgba(100, 116, 139, 0.14);
  padding: 17px 16px 12px;
  box-shadow: 0 14px 36px rgba(15, 23, 42, 0.07), inset 0 1px 0 #fff;
}

.receipt-brand-row {
  gap: 14px;
  margin: 0 0 13px;
  padding-bottom: 13px;
}

.receipt-badge {
  width: 58px;
  height: 58px;
  border-radius: 16px;
}

.receipt-badge img {
  width: 48px;
  height: 48px;
}

.receipt-brand-name {
  font-size: clamp(1rem, 4vw, 1.2rem);
  line-height: 1.15;
}

.receipt-divider {
  margin: 9px 0 12px;
}

.receipt-info-grid {
  min-height: 61px;
  gap: 8px 18px;
  padding: 9px 0 10px;
}

.receipt-meta-label {
  gap: 7px;
  font-size: 0.78rem;
  line-height: 1.15;
  letter-spacing: 0.04em;
}

.receipt-meta-label i {
  width: 17px;
  font-size: 1rem;
  text-align: center;
}

.receipt-meta-value {
  font-size: 0.98rem;
  line-height: 1.2;
}

.receipt-meta-value.amount {
  font-size: 1.28rem;
}

.receipt-code-block {
  margin-top: 13px;
  padding: 12px 0 8px;
}

.receipt-code-block p {
  max-width: 340px;
  margin: 0 auto 11px;
  font-size: 0.78rem;
  line-height: 1.25;
}

.barcode {
  height: 54px;
  margin: 7px 0 8px;
  border-radius: 8px;
  background: repeating-linear-gradient(
    to right,
    #202b3d 0,
    #202b3d 2px,
    transparent 2px,
    transparent 5px,
    #202b3d 5px,
    #202b3d 8px,
    transparent 8px,
    transparent 11px
  );
}

.receipt-code {
  font-size: 0.98rem;
  letter-spacing: 0.23em;
}

.receipt-save-btn {
  height: 48px;
  margin-top: 14px;
  border-radius: 14px;
  font-size: 1rem;
  background: linear-gradient(180deg, #344154 0%, #202b3d 100%);
}

@media (max-width: 420px) {
  .receipt-modal {
    padding: 6px;
  }

  .receipt-shell {
    max-height: calc(100dvh - 12px);
    padding: 22px 14px 24px;
  }

  .receipt-back-btn,
  .receipt-more-btn {
    width: 44px;
    height: 44px;
  }

  .receipt-title {
    font-size: clamp(1.85rem, 10vw, 2.35rem);
  }

  .receipt-card {
    padding-inline: 13px;
  }

  .receipt-info-grid {
    gap: 7px 10px;
  }

  .receipt-meta-label {
    font-size: 0.7rem;
  }

  .receipt-meta-value {
    font-size: 0.87rem;
  }

  .receipt-meta-value.amount {
    font-size: 1.12rem;
  }
}

/* side menu update for offcanvas everywhere */
@media(min-width:1024px){
  .app{display:block;padding-bottom:40px;margin:0 auto;max-width:100%}
  .side-menu{position:fixed;width:320px;z-index:400;transform:translateX(-100%);border-radius:0;border-right:1px solid rgba(0,0,0,0.04);box-shadow:8px 0 24px rgba(2,6,23,0.1);height:100vh;top:0;left:0;transition:transform 0.3s ease}
  .side-menu.open{transform:translateX(0)}
  .side-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.4);z-index:390}
  .side-overlay.show{display:block}
}

/* make main content visually separated and centered like design */
@media(min-width:1200px){
  .content{width:100%;max-width:100%;margin:0 auto;padding:16px 40px}
}

.mobile-header { display: none; }
.bottom-nav-mobile { display: none; }

@media(max-width: 768px) {
  body { background: #f9fafb; }
  .app { background: #f9fafb; padding-bottom: 100px; }
  .hide-on-mobile { display: none !important; }
  .content { padding: 0; }
  
  /* Mobile Header */
  .mobile-header { display: flex; justify-content: space-between; align-items: center; padding: 24px 24px 16px; background: #f9fafb; position: relative; }
  .mobile-header-left span.greeting-small{display:block;font-size:12px;color:#000000;opacity:1;font-weight:700;margin-bottom:2px}
  .mobile-header-left #appbar-brand-message{transition:opacity 180ms ease,transform 180ms ease}
  .mobile-header-left #appbar-brand-message.is-changing{opacity:0;transform:translateX(-16px)}
  .mobile-header-left .brand-title.is-register-cta{display:inline-flex;align-items:center;color:#d91f4c;cursor:pointer;border-radius:8px;outline:none;transition:color 180ms ease,background 180ms ease,transform 180ms ease}
  .mobile-header-left .brand-title.is-register-cta{transition:opacity 220ms ease,transform 420ms cubic-bezier(.16,1,.3,1),filter 220ms ease,color 180ms ease,background 180ms ease}
  .mobile-header-left .brand-title.is-register-cta:hover{color:#b5163d;background:rgba(217,31,76,0.07)}
  .mobile-header-left .brand-title.is-register-cta:active{transform:scale(0.96)}
  .mobile-header-left .brand-title.is-register-cta:focus-visible{box-shadow:0 0 0 3px rgba(217,31,76,0.18)}
  .mobile-header-left h1.brand-title{margin:0;font-size:22px;font-weight:900;color:#111827;letter-spacing:-0.5px}
  .mobile-header-left h1.brand-title{transition:opacity 220ms ease,transform 420ms cubic-bezier(.16,1,.3,1),filter 220ms ease,color 180ms ease}
  .mobile-header-left h1.brand-title.is-changing{opacity:0;transform:translateX(-18px) scale(.97);filter:blur(1px)}
  .mobile-header-left h1.brand-title.is-install-message{color:#d71948}
  .mobile-header-left h1.brand-title.is-exchange-message{color:#0b552b;font-size:17px;letter-spacing:-0.25px}
  .mobile-header-right { display: flex; gap: 12px; }
  .icon-circle { width: 44px; height: 44px; border-radius: 50%; background: #fff; border: 1px solid #e5e7eb; display: flex; justify-content: center; align-items: center; font-size: 18px; color: #111827; box-shadow: 0 2px 8px rgba(0,0,0,0.04); position: relative; cursor: pointer; }
  .icon-circle.notif .badge { position: absolute; top: 12px; right: 12px; width: 8px; height: 8px; background: #c24a30; border-radius: 50%; display: block; }

  /* Categories */
  .categories { gap: 16px; padding: 12px 24px; margin-top: 16px; }
  .categories .cat { min-width: 80px; padding: 0; background: transparent; border: none; box-shadow: none; border-radius: 0; }
  .categories .cat:hover { box-shadow: none; border: none; }
  .categories .cat img { width: 72px; height: 72px; border-radius: 20px; border: none; background: #fff; padding: 12px; box-shadow: 0 4px 16px rgba(0,0,0,0.04); margin-bottom: 8px; }
  .categories .cat span { font-size: 14px; font-weight: 800; color: #111827; }

  /* Hero Banner uses global styles now, just adjust sizes if needed */
  .carousel { min-height: 200px; }
  .carousel .slide-content { width: 80%; padding: 24px; }
  .carousel .slide-content h2 { font-size: 20px; }
  .carousel .slide .cta { padding: 10px 16px; font-size: 13px; }
  .dots { bottom: 12px; left: 24px; }

  /* Section Title */
  .section { padding: 0 24px 24px; }
  .section-head h3 { font-size: 22px; color: #111827; }
  .view-all { color: #c24a30; font-weight: 700; font-size: 15px; }

  /* Premium Product Cards */
  .products-grid { display: flex; flex-wrap: nowrap; gap: 16px; padding-bottom: 0; margin: 0 -24px; padding: 0 24px 24px 24px; }
  .product-card { flex: 0 0 calc(38%); min-width: 140px; padding: 16px; border: none; box-shadow: 0 4px 16px rgba(0,0,0,0.03); border-radius: 20px; display: flex; flex-direction: column; justify-content: space-between; position: relative; }
  .product-title { order: 1; font-size: 15px; font-weight: 700; color: #111827; margin-bottom: 2px; }
  .product-price { order: 2; font-size: 14px; font-weight: 500; color: #6b7280; margin-bottom: 12px; margin-top: 0; }
  .product-card img { order: 3; width: 100%; height: 110px; object-fit: contain; margin-bottom: 12px; }
  .product-bottom-row { order: 4; display: flex; justify-content: flex-start; align-items: center; width: 100%; }
  .product-rating { font-size: 13px; font-weight: 600; color: #6b7280; display: flex; align-items: center; gap: 4px; }
  .product-rating i { color: #fbbf24; font-size: 14px; }
  .product-card .add-circle { margin-top: 0; width: 32px; height: 32px; border-radius: 8px; background: #c24a30; color: #fff; padding: 0; position: absolute; right: 16px; bottom: 16px; }
  .product-card .add-circle i { font-size: 16px; margin: 0; }
  .product-card .add-circle span { display: none; }

  /* Cart Sidebar Mobile */
  .cart-sidebar { width: 100%; height: 80vh; top: auto; bottom: 0; border-radius: 24px 24px 0 0; transform: translateY(100%); }
  .cart-sidebar.open { transform: translateY(0); }

  /* Bottom Nav Pill */
  .bottom-nav-mobile { display: block; position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); z-index: 200; width: auto; min-width: 300px; }
  .bottom-nav-pill { display: flex; justify-content: space-between; align-items: center; background: #fff; padding: 8px 16px; border-radius: 999px; box-shadow: 0 12px 32px rgba(0,0,0,0.1); gap: 16px; }
  .nav-item { color: #9ca3af; font-size: 20px; display: flex; justify-content: center; align-items: center; width: 44px; height: 44px; position: relative; text-decoration: none; }
  .nav-item.active { width: auto; padding: 0 20px; background: #8a1f1f; border-radius: 999px; color: #fff; font-size: 16px; font-weight: 700; height: 44px; }
  .nav-pill-active { display: flex; align-items: center; gap: 8px; }
  .nav-item .badge { position: absolute; top: 8px; right: 8px; background: #c24a30; border-radius: 50%; width: 8px; height: 8px; border: 2px solid #fff; }
}

/* Real-time stats and branches */
.product-stats {
  font-size: 11px;
  color: #64748b;
  margin-top: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  order: 5;
  width: 100%;
}
.stat-badge {
  background: #f1f5f9;
  padding: 3px 6px;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.stat-badge i { color: #f43f5e; }
.product-sucursales {
  font-size: 11px;
  color: #059669;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 4px;
  font-weight: 500;
  order: 2;
  width: 100%;
}/* Decorative Header Line */
.insta-header::after, .mobile-header::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: 
    linear-gradient(90deg, transparent 0%, transparent 45%, rgba(255,255,255,0.9) 50%, transparent 55%, transparent 100%) no-repeat,
    linear-gradient(90deg, #c24a30 0%, #c24a30 50%, #f59e0b 50%, #f59e0b 100%) no-repeat;
  background-size: 300% 100%, 100% 100%;
  background-position: 100% 0, 0 0;
  animation: ai-neon-bar 10s ease-in-out infinite;
  z-index: 10;
}

@keyframes ai-neon-bar {
  /* Escaneo (0s a 2s) */
  0% { 
    background-position: 100% 0, 0 0; 
    filter: brightness(1); 
    box-shadow: 0 0 0 transparent; 
  }
  10% {
    background-position: 50% 0, 0 0; 
    filter: brightness(1.2);
    box-shadow: 0 0 10px rgba(255,255,255,0.5);
  }
  20% { 
    background-position: 0% 0, 0 0; 
    filter: brightness(1); 
    box-shadow: 0 0 0 transparent; 
  }
  
  /* Respiro / Parpadeo (2s a 5s) */
  35% {
    background-position: 0% 0, 0 0; 
    filter: brightness(1.6); 
    box-shadow: 0 0 15px rgba(245,158,11,0.8), 0 0 15px rgba(194,74,48,0.8);
  }
  50% {
    background-position: 0% 0, 0 0; 
    filter: brightness(1); 
    box-shadow: 0 0 0 transparent;
  }
  
  /* Pausa normal (5s a 10s) */
  99.9% {
    background-position: 0% 0, 0 0; 
    filter: brightness(1); 
    box-shadow: 0 0 0 transparent;
  }
  100% {
    background-position: 100% 0, 0 0; 
    filter: brightness(1); 
    box-shadow: 0 0 0 transparent;
  }
}

/* Product Modal Stats & Ratings */
.product-stats {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 12px 0;
  padding: 12px;
  background: #f9fafb;
  border-radius: 12px;
  font-size: 14px;
}

.views-counter {
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
}

.rating-widget {
  display: flex;
  align-items: center;
  gap: 6px;
}

.stars {
  display: inline-flex;
  gap: 2px;
}

.star-btn {
  color: #cbd5e1;
  cursor: pointer;
  transition: color 0.2s, transform 0.1s;
  font-size: 16px;
}

.star-btn:hover, .star-btn.active, .star-btn.hover-active {
  color: #f59e0b;
}

.star-btn:active {
  transform: scale(0.9);
}

.rating-avg {
  font-weight: 700;
  color: #1e293b;
  margin-left: 4px;
}

.rating-count {
  color: #94a3b8;
  font-size: 13px;
}

/* Fix product card heights to align bottom buttons */
.products-grid {
  align-items: stretch !important;
}
.product-card {
  height: 100%; 
}

/* Beautify Modal */
.modal-card {
  padding: 0;
  overflow: hidden;
}
#modal-img {
  width: 100%;
  max-height: 260px;
  object-fit: contain;
  background-color: #f8fafc;
  padding: 24px;
  border-bottom: 1px solid #f1f5f9;
  border-radius: 24px 24px 0 0;
}
.modal-body {
  padding: 24px;
}
.modal-close {
  background: rgba(255,255,255,0.8);
  backdrop-filter: blur(4px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  top: 16px;
  right: 16px;
}

/* Modal Tags */
.modal-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
.modal-tag {
  font-size: 11px;
  font-weight: 800;
  padding: 4px 10px;
  border-radius: 6px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.tag-hot { background: #fee2e2; color: #b91c1c; }
.tag-oferta { background: #fee2e2; color: #b91c1c; }
.tag-nuevo { background: #dcfce7; color: #15803d; }
.tag-especial { background: #fef3c7; color: #b45309; }
.tag-flash { background: #f3e8ff; color: #7e22ce; display: inline-flex; align-items: center; gap: 4px; }

/* Beautify product cards further */
.product-card {
  height: 100%; 
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.product-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}

/* =========================================
   PROFILE & AUTH VIEW STYLES
   ========================================= */

/* Auth Forms */
.input-group {
  margin-bottom: 16px;
  text-align: left;
}
.input-group label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: #475569;
  margin-bottom: 6px;
}
.input-group input {
  width: 100%;
  padding: 14px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  font-size: 15px;
  background: #f8fafc;
  outline: none;
  transition: border-color 0.2s;
}
.input-group input:focus {
  border-color: #c24a30;
  background: #fff;
}
.btn-full {
  width: 100%;
  padding: 14px;
  font-size: 15px;
  font-weight: 700;
}

.auth-divider {
  display: flex;
  align-items: center;
  text-align: center;
  margin: 24px 0;
  color: #94a3b8;
  font-size: 13px;
  font-weight: 600;
}
.auth-divider::before, .auth-divider::after {
  content: '';
  flex: 1;
  border-bottom: 1px solid #e2e8f0;
}
.auth-divider span {
  padding: 0 12px;
}

.social-auth-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.btn-social {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #fff;
  font-size: 14px;
  font-weight: 700;
  color: #334155;
  cursor: pointer;
  transition: background 0.2s, box-shadow 0.2s;
}
.btn-social:hover {
  background: #f8fafc;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.btn-pill-social {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  padding: 16px;
  border-radius: 50px;
  border: none;
  font-size: 15px;
  font-weight: 700;
  color: #0f172a;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s, opacity 0.2s;
}
.btn-pill-social:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}
.btn-pill-social:active {
  transform: translateY(0);
}
.bg-light { background: #f1f5f9; }
.bg-green-light { background: #93ec66; }

.bg-brand-red {
  background: linear-gradient(135deg, #e11d48, #be123c);
  color: #fff !important;
}
.bg-brand-red:hover {
  box-shadow: 0 4px 14px rgba(225, 29, 72, 0.3);
  transform: translateY(-2px);
}
.bg-brand-blue {
  background: linear-gradient(135deg, #2563eb, #1d4ed8);
  color: #fff !important;
}
.bg-brand-blue:hover {
  box-shadow: 0 4px 14px rgba(37, 99, 235, 0.3);
  transform: translateY(-2px);
}
.bg-brand-black {
  background: linear-gradient(135deg, #1f2937, #111827);
  color: #fff !important;
}
.bg-brand-black:hover {
  box-shadow: 0 4px 14px rgba(17, 24, 39, 0.3);
  transform: translateY(-2px);
}

/* Profile Header */
.profile-content {
  background: #f1f5f9;
  min-height: 100vh;
}
.profile-header-area {
  text-align: center;
  margin-bottom: 32px;
}
.profile-avatar-container {
  position: relative;
  width: 96px;
  height: 96px;
  margin: 0 auto 16px;
}
.profile-avatar {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: #e2e8f0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 40px;
  color: #64748b;
  border: 4px solid #fff;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}
.status-dot {
  position: absolute;
  bottom: 4px;
  right: 4px;
  width: 16px;
  height: 16px;
  background: #22c55e;
  border: 3px solid #fff;
  border-radius: 50%;
}
.profile-name {
  font-size: 20px;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 4px;
}
.profile-role {
  font-size: 13px;
  color: #64748b;
  font-weight: 600;
  text-transform: uppercase;
}

/* Profile Menus */
.profile-sections {
  text-align: left;
  padding: 0 24px 40px;
  max-width: 600px;
  margin: 0 auto;
}
.profile-section-title {
  font-size: 12px;
  font-weight: 700;
  color: #64748b;
  margin-bottom: 8px;
  margin-top: 24px;
}
.profile-card-menu {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.profile-option-hidden {
  display: none !important;
}
.menu-item {
  display: flex;
  align-items: center;
  padding: 16px;
  background: #fff;
  border-radius: 16px;
  border: 1px solid #f1f5f9;
  box-shadow: 0 4px 12px rgba(0,0,0,0.03);
  cursor: pointer;
  transition: all 0.2s;
}
.menu-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 16px rgba(0,0,0,0.06);
}
.menu-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 14px;
  margin-right: 12px;
}
.bg-green { background: #22c55e; }
.bg-blue { background: #3b82f6; }
.bg-purple { background: #8b5cf6; }
.bg-dark { background: #334155; }
.bg-red { background: #ef4444; }

.menu-text {
  flex: 1;
  font-size: 15px;
  font-weight: 600;
  color: #1e293b;
}
.menu-value {
  font-size: 14px;
  color: #64748b;
  margin-right: 8px;
}
.menu-arrow {
  color: #cbd5e1;
  font-size: 12px;
}
.toggle-switch {
  width: 44px;
  height: 24px;
  background: #cbd5e1;
  border-radius: 20px;
  position: relative;
}
.toggle-switch::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 20px;
  height: 20px;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.2s;
}

/* Premium Profile Card */
.premium-card {
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 24px;
  padding: 8px 16px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.03);
}
.premium-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 8px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
.premium-label {
  color: #64748b;
  font-size: 15px;
  font-weight: 500;
}
.premium-input {
  text-align: right;
  border: none;
  background: transparent;
  font-weight: 700;
  color: #0f172a;
  font-size: 16px;
  width: 65%;
  outline: none;
  font-family: inherit;
}
.premium-input::placeholder {
  color: #94a3b8;
  font-weight: 500;
}

/* Modern Sidebar Menu */
.sidebar-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(15, 23, 42, 0.4);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease;
}
.sidebar-overlay.active {
  opacity: 1;
  visibility: visible;
}
.modern-sidebar {
  position: fixed;
  top: 0;
  left: -320px;
  width: 300px;
  height: 100%;
  background: #ffffff;
  z-index: 1001;
  box-shadow: 20px 0 50px rgba(0, 0, 0, 0.1);
  transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
}
.modern-sidebar.active {
  left: 0;
}
.sidebar-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 20px;
  border-bottom: 1px solid #f1f5f9;
}
.sidebar-logo {
  font-size: 20px;
  font-weight: 800;
  color: #0f172a;
  display: flex;
  align-items: center;
}
.close-sidebar-btn {
  background: #f1f5f9;
  border: none;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
  cursor: pointer;
  font-size: 18px;
  transition: all 0.2s;
}
.close-sidebar-btn:hover {
  background: #e2e8f0;
  color: #0f172a;
}
.sidebar-content {
  flex: 1;
  overflow-y: auto;
  padding: 20px 12px;
}
.sidebar-item {
  display: flex;
  align-items: center;
  padding: 16px 20px;
  border-radius: 16px;
  color: #475569;
  font-weight: 600;
  font-size: 16px;
  text-decoration: none;
  transition: all 0.2s;
  margin-bottom: 8px;
}
.sidebar-item i {
  width: 24px;
  font-size: 20px;
  margin-right: 16px;
  text-align: center;
  color: #94a3b8;
}
.sidebar-item.active, .sidebar-item:hover {
  background: #fff1f2;
  color: #e11d48;
}
.sidebar-item.active i, .sidebar-item:hover i {
  color: #e11d48;
}

/* Premium Profile Redesign */
.profile-red-header {
  background: linear-gradient(135deg, #b91c1c, #dc2626, #ef4444);
  color: white;
  border-radius: 30px;
  padding: 22px 20px 18px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(220, 38, 38, 0.3);
  margin: 0 24px 20px;
}
.profile-red-header::after {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 150px; height: 150px;
  background-image: url('../img/logo.png'); /* cow watermark */
  background-size: cover;
  opacity: 0.1;
  transform: translate(30%, -20%);
}
.profile-header-top {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
  position: relative;
  z-index: 2;
}
.profile-avatar {
  width: 74px;
  height: 74px;
  border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.4);
  object-fit: cover;
}
.profile-title {
  font-size: 24px;
  font-weight: 800;
  margin: 0 0 4px;
  letter-spacing: -0.04em;
}
.profile-subtitle {
  font-size: 13px;
  opacity: 0.9;
  margin: 0 0 8px;
}
.badge-premium {
  background: #fcd34d;
  color: #78350f;
  font-size: 12px;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.profile-stats-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 2px dashed rgba(255, 255, 255, 0.38);
  padding-top: 14px;
  position: relative;
  z-index: 2;
}
.profile-stats-row::before, .profile-stats-row::after {
  content: '';
  position: absolute;
  top: -12px;
  width: 24px;
  height: 24px;
  background-color: #f8fafc;
  border-radius: 50%;
  z-index: 10;
}
.profile-stats-row::before { left: -36px; }
.profile-stats-row::after { right: -36px; }
.profile-stat-item {
  flex: 1;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.profile-stat-item:not(:last-child) {
  border-right: 1px solid rgba(255, 255, 255, 0.18);
}
.profile-stat-val {
  font-size: 20px;
  font-weight: 800;
  display: flex;
  align-items: center;
  gap: 8px;
  letter-spacing: -0.04em;
}
.profile-stat-lbl {
  font-size: 12px;
  opacity: 0.9;
}

.action-card-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 0 24px 16px;
}
.action-card {
  background: white;
  border-radius: 16px;
  padding: 16px 14px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.03);
  text-decoration: none;
  color: inherit;
  border: 1px solid #f1f5f9;
}
.action-card-icon {
  width: 42px; height: 42px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; color: white;
  flex-shrink: 0;
}
.action-card-content h3 {
  font-size: 16px; font-weight: 700; margin: 0 0 4px; color: #0f172a;
  letter-spacing: -0.02em;
}
.action-card-content p {
  font-size: 12px; color: #64748b; margin: 0; line-height: 1.3;
}
.action-card-arrow {
  margin-left: auto;
  color: #94a3b8;
  font-size: 14px;
  align-self: center;
}

.action-card-full {
  display: flex;
  background: white;
  border-radius: 16px;
  padding: 16px;
  align-items: center;
  gap: 16px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.03);
  margin: 0 24px 24px;
  text-decoration: none;
  border: 1px solid #f1f5f9;
}

.section-header-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 24px 16px;
}
.section-header-row h2 {
  font-size: 18px;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
}
.section-header-row a {
  font-size: 14px;
  font-weight: 600;
  color: #dc2626;
  text-decoration: none;
}

.profile-offers-empty {
  background: #fff;
  border: 1px solid #f1f5f9;
  border-radius: 16px;
  color: #64748b;
  font-size: 14px;
  font-weight: 600;
  padding: 20px 16px;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.03);
}

.product-offer-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0 24px 24px;
}
.product-offer-item {
  display: flex;
  align-items: center;
  gap: 14px;
  background: white;
  border-radius: 16px;
  padding: 12px 12px 12px 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.03);
  border: 1px solid #f1f5f9;
}
.product-offer-img {
  width: 80px; height: 80px;
  border-radius: 12px;
  object-fit: cover;
  background: #f8fafc;
}
.product-offer-info {
  flex: 1;
}
.product-offer-title {
  font-size: 15px; font-weight: 700; color: #0f172a; margin: 0 0 4px;
  letter-spacing: -0.02em;
}
.product-offer-weight {
  font-size: 13px; color: #64748b; margin: 0 0 6px;
}
.tag-light {
  background: #dcfce7; color: #166534; font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 4px; display: inline-block;
}
.product-offer-price-col {
  text-align: right;
  display: flex; flex-direction: column; align-items: flex-end; gap: 4px;
}
.discount-badge {
  background: #dc2626; color: white; font-size: 12px; font-weight: 700; padding: 2px 6px; border-radius: 4px;
}
.price-current {
  font-size: 16px; font-weight: 800; color: #0f172a; margin: 0;
  letter-spacing: -0.03em;
}
.price-old {
  font-size: 12px; color: #94a3b8; text-decoration: line-through; margin: 0;
}
.btn-add-round {
  width: 34px; height: 34px; border-radius: 50%; background: #fee2e2; color: #dc2626; border: none; display: flex; align-items: center; justify-content: center; font-size: 16px; cursor: pointer;
}

.banner-footer {
  background: linear-gradient(135deg, #991b1b, #dc2626);
  border-radius: 20px;
  overflow: hidden;
  display: flex;
  align-items: center;
  position: relative;
  margin: 0 24px 80px;
}
.banner-footer img {
  width: 140px;
  height: 100%;
  object-fit: cover;
}
.banner-footer-content {
  padding: 16px;
  color: white;
  flex: 1;
}
.banner-footer-content h3 {
  font-size: 16px; font-weight: 800; margin: 0 0 4px;
}
.banner-footer-content p {
  font-size: 12px; margin: 0 0 12px; opacity: 0.9; line-height: 1.3;
}
.btn-white-pill {
  background: white; color: #dc2626; font-size: 12px; font-weight: 700; padding: 6px 16px; border-radius: 12px; text-decoration: none; display: inline-flex; align-items: center; gap: 4px;
}

/* iOS-inspired premium layer for the profile cards.
   Additive and scoped to preserve the existing structure and behavior. */
#profile-view {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", sans-serif;
}

#profile-view .profile-sections {
  width: 100%;
  max-width: none;
}

.profile-content {
  background:
    radial-gradient(circle at 12% 4%, rgba(255, 255, 255, 0.95), transparent 30%),
    linear-gradient(180deg, #f7f8fa 0%, #eef1f5 100%);
}

#profile-view .profile-red-header {
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 28px;
  background: linear-gradient(145deg, #a9141b 0%, #d51f28 48%, #f23b42 100%);
  box-shadow:
    0 18px 42px rgba(170, 20, 27, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

#profile-view .profile-avatar {
  border: 4px solid rgba(255, 255, 255, 0.88);
  box-shadow: 0 8px 22px rgba(92, 10, 15, 0.2);
}

#profile-view .badge-premium {
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: linear-gradient(180deg, #ffe87a 0%, #ffc93d 100%);
  box-shadow: 0 5px 14px rgba(111, 54, 0, 0.16);
}

#profile-view .action-card,
#profile-view .action-card-full,
#profile-view .product-offer-item,
#profile-view .menu-item {
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow:
    0 12px 30px rgba(15, 23, 42, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.95);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  backdrop-filter: blur(18px) saturate(140%);
  transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

#profile-view .action-card {
  min-height: 118px;
  padding: 18px;
  align-items: center;
}

#profile-view .action-card-full,
#profile-view .menu-item {
  min-height: 84px;
  padding: 18px;
}

#profile-view .product-offer-item {
  min-height: 132px;
  padding: 16px;
}

#profile-view .action-card-icon,
#profile-view .menu-icon {
  width: 48px;
  height: 48px;
  border-radius: 15px;
  box-shadow:
    0 8px 18px rgba(15, 23, 42, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.32);
}

#profile-view .action-card-content h3,
#profile-view .product-offer-title,
#profile-view .menu-text {
  color: #111827;
  font-weight: 750;
  letter-spacing: -0.025em;
}

#profile-view .action-card-content p,
#profile-view .product-offer-weight,
#profile-view .menu-value {
  color: #667085;
  letter-spacing: -0.01em;
}

#profile-view .action-card-arrow,
#profile-view .menu-arrow {
  color: #aeb8c6;
}

#profile-view .product-offer-img {
  width: 82px;
  height: 82px;
  border-radius: 17px;
  background: linear-gradient(145deg, #ffffff, #f1f3f6);
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.04);
  object-fit: cover;
}

#profile-view .product-offer-item {
  align-items: center;
  min-height: 120px;
}

#profile-view .discount-badge,
#profile-view .tag-light {
  border-radius: 999px;
  padding: 4px 9px;
}

#profile-view .profile-offers-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 90px;
  font-size: 15px;
  font-weight: 700;
  color: #475467;
}

/* Horizontal offer rail in the profile view. */
#profile-view .product-offer-list {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 14px;
  margin-right: 0;
  padding: 4px 24px 14px 0;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x proximity;
  scroll-padding-inline: 24px;
  scrollbar-width: thin;
  scrollbar-color: rgba(217, 31, 76, 0.32) transparent;
  -webkit-overflow-scrolling: touch;
}

#profile-view .product-offer-list::-webkit-scrollbar {
  height: 5px;
}

#profile-view .product-offer-list::-webkit-scrollbar-track {
  background: transparent;
}

#profile-view .product-offer-list::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: linear-gradient(90deg, #d91f4c, #f5a400);
}

#profile-view .product-offer-list .product-offer-item {
  position: relative;
  isolation: isolate;
  box-sizing: border-box;
  flex: 0 0 clamp(300px, 72vw, 390px);
  width: clamp(300px, 72vw, 390px);
  min-height: 232px;
  padding: 42px 16px 16px;
  border: 1px solid rgba(203, 213, 225, .9);
  border-radius: 26px;
  background:
    linear-gradient(90deg, rgba(217, 31, 76, .025) 1px, transparent 1px) 0 0 / 18px 100%,
    linear-gradient(150deg, #fff 0%, #fff 72%, #fff8f3 100%);
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.075);
  overflow: hidden;
  flex-wrap: wrap;
  scroll-snap-align: start;
  scroll-snap-stop: normal;
}

#profile-view .product-offer-list .product-offer-item::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, #d91f4c, #f5a400);
}

#profile-view .product-offer-list .product-offer-item::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 9px;
  border: 1px dashed rgba(217, 31, 76, .14);
  border-radius: 18px;
  pointer-events: none;
}

#profile-view .profile-offer-badge {
  position: absolute;
  top: 12px;
  left: 16px;
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 9px;
  border-radius: 999px;
  background: #fff0f3;
  color: #d71948;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .055em;
  line-height: 1;
  border: 1px dashed rgba(217, 25, 72, .28);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .72);
}

#profile-view .profile-offer-coupon-notch {
  position: absolute;
  z-index: 3;
  bottom: 58px;
  width: 22px;
  height: 22px;
  border: 1px solid rgba(203, 213, 225, .9);
  border-radius: 50%;
  background: #f7f9fc;
  pointer-events: none;
}

#profile-view .profile-offer-coupon-notch-left {
  left: -12px;
}

#profile-view .profile-offer-coupon-notch-right {
  right: -12px;
}

#profile-view .product-offer-list .product-offer-img {
  flex: 0 0 88px;
  width: 88px;
  height: 88px;
  padding: 7px;
  object-fit: contain;
  background: #f8fafc;
}

#profile-view .product-offer-list .product-offer-info {
  min-width: 0;
}

#profile-view .product-offer-list .product-offer-title {
  display: -webkit-box;
  min-height: 38px;
  overflow: hidden;
  font-size: 15px;
  line-height: 19px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

#profile-view .profile-offer-stats {
  display: grid;
  flex: 1 0 100%;
  grid-template-columns: repeat(3, max-content);
  align-items: center;
  justify-content: space-between;
  min-height: 24px;
  color: #526074;
  font-size: 11px;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}

#profile-view .profile-offer-stats > span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

#profile-view .profile-offer-stat-icon {
  display: block;
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#profile-view .profile-offer-stat-cart {
  color: #e11d48;
}

#profile-view .profile-offer-stat-views {
  color: #f43f5e;
}

#profile-view .profile-offer-stat-rating {
  color: #f5b301;
  fill: currentColor;
  stroke: none;
}

#profile-view .product-offer-list .product-offer-price-col {
  display: flex;
  flex: 1 0 100%;
  flex-direction: row;
  align-self: auto;
  align-items: center;
  justify-content: space-between;
  padding-top: 13px;
  border-top: 1px dashed #d6dde7;
  text-align: left;
}

#profile-view .profile-offer-price-details {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
}

#profile-view .profile-offer-price-label {
  margin-bottom: 3px;
  color: #9b3a2c;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .09em;
  line-height: 1;
  text-transform: uppercase;
}

#profile-view .profile-offer-price-line {
  display: flex;
  align-items: baseline;
  gap: 7px;
}

#profile-view .profile-offer-savings {
  margin-top: 2px;
  color: #d71948;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .015em;
}

#profile-view .profile-offer-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 0 auto;
}

#profile-view .profile-offer-qty {
  display: grid;
  grid-template-columns: 28px 23px 28px;
  align-items: center;
  height: 36px;
  border: 1px solid #e8edf3;
  border-radius: 13px;
  background: #f7f9fc;
  overflow: hidden;
}

#profile-view .profile-offer-qty button {
  width: 28px;
  height: 34px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #263247;
  font-family: inherit;
  font-size: 16px;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  transition: color 150ms ease, background 150ms ease, transform 120ms ease;
}

#profile-view .profile-offer-qty button:hover:not(:disabled) {
  background: #fff0f3;
  color: #d71948;
}

#profile-view .profile-offer-qty button:active:not(:disabled) {
  transform: scale(.88);
}

#profile-view .profile-offer-qty button:disabled {
  color: #bdc5d1;
  cursor: default;
}

#profile-view .profile-offer-qty-value {
  color: #111827;
  font-size: 13px;
  font-weight: 900;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

#profile-view .product-offer-list .price-current {
  color: #08602f;
  font-size: 17px;
  font-weight: 900;
}

#profile-view .product-offer-list .btn-add-round {
  background: linear-gradient(145deg, #e71d4f, #c8103d);
  color: #fff;
  box-shadow: 0 8px 18px rgba(200, 16, 61, .22);
  transition: transform 160ms ease, box-shadow 180ms ease;
}

#profile-view .product-offer-list .btn-add-round:hover {
  box-shadow: 0 10px 22px rgba(200, 16, 61, .3);
  transform: translateY(-2px);
}

#profile-view .product-offer-list .btn-add-round:active {
  transform: scale(.93);
}

#profile-view .product-offer-list .profile-offers-empty {
  flex: 1 0 calc(100% - 24px);
}

@media (max-width: 520px) {
  #profile-view .product-offer-list {
    gap: 12px;
    padding-bottom: 12px;
  }

  #profile-view .product-offer-list .product-offer-item {
    flex-basis: min(84vw, 340px);
    width: min(84vw, 340px);
  }
}

/* Stores interaction polish: one confirmed marker, smooth views and desktop layout. */
.stores-page .stores-map-pin {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease, visibility 0s linear 180ms;
}

.stores-page .stores-map-pin.is-selected {
  visibility: visible;
  z-index: 7;
  opacity: 1;
  pointer-events: auto;
  filter: drop-shadow(0 10px 10px rgba(209, 47, 80, .34));
  transition-delay: 0s;
}

.stores-page .stores-map-pin.is-selected span {
  z-index: 2;
  animation:
    storesSelectedPinDrop 760ms cubic-bezier(.16, 1, .3, 1) both,
    storesSelectedPinFloat 2.8s ease-in-out 860ms infinite;
}

.stores-page .stores-map-pin.is-selected::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: 50%;
  bottom: -2px;
  width: 24px;
  height: 7px;
  border-radius: 50%;
  background: rgba(15, 23, 42, .24);
  filter: blur(3px);
  transform: translateX(-50%);
  animation: storesSelectedPinShadow 760ms cubic-bezier(.16, 1, .3, 1) both;
}

.stores-page .stores-map-pin small {
  z-index: 9;
  top: calc(100% + 7px);
  padding: 5px 10px;
  border: 1px solid rgba(255, 255, 255, .22);
  background: #d71948;
  box-shadow: 0 7px 16px rgba(215, 25, 72, .28);
  white-space: nowrap;
}

.stores-page .stores-map-pin.is-selected small:not([hidden]) {
  animation: storesMyStoreLabelIn 440ms 420ms cubic-bezier(.16, 1, .3, 1) both;
}

.stores-page .stores-map-pin .stores-nearest-label {
  display: none !important;
}

.stores-page .stores-map-pin.is-selected::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 8px;
  left: 50%;
  width: 24px;
  height: 24px;
  border: 2px solid rgba(215, 25, 72, .42);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: storesSelectedPinPulse 1.2s ease-out 420ms both;
}

@keyframes storesSelectedPinDrop {
  0% { opacity: 0; transform: translateY(-25px) scale(.68) rotate(-5deg); }
  58% { opacity: 1; transform: translateY(4px) scale(1.07) rotate(2deg); }
  76% { transform: translateY(-3px) scale(.985) rotate(-1deg); }
  90% { transform: translateY(1px) scale(1.01) rotate(.4deg); }
  100% { opacity: 1; transform: translateY(0) scale(1) rotate(0); }
}

@keyframes storesSelectedPinShadow {
  0% { opacity: 0; transform: translateX(-50%) scale(.35); }
  58% { opacity: .72; transform: translateX(-50%) scale(1.18); }
  100% { opacity: .5; transform: translateX(-50%) scale(1); }
}

@keyframes storesSelectedPinFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

@keyframes storesSelectedPinPulse {
  0% { opacity: .85; transform: translateX(-50%) scale(.45); }
  100% { opacity: 0; transform: translateX(-50%) scale(2.2); }
}

@keyframes storesMyStoreLabelIn {
  from { opacity: 0; transform: translate(-50%, 8px) scale(.82); }
  to { opacity: 1; transform: translate(-50%, 0) scale(1); }
}

.stores-page .stores-featured-card {
  margin: 26px 0 18px;
  animation: storesCardEnter 520ms cubic-bezier(.16, 1, .3, 1) both;
}

.stores-page .stores-select-button.is-selected-store {
  border-color: #111827;
  background: #111827;
  box-shadow: 0 10px 24px rgba(17, 24, 39, .18);
}

.stores-other-locations {
  min-width: 0;
  margin: 8px 0 18px;
}

.stores-other-heading {
  margin: 0 2px 12px;
}

.stores-other-heading > span {
  display: block;
  margin-bottom: 3px;
  color: #d71948;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.stores-other-heading h3 {
  margin: 0;
  color: #111827;
  font-size: 1.15rem;
  letter-spacing: -.025em;
}

.stores-other-grid {
  display: grid;
  gap: 12px;
}

.stores-page .stores-other-grid .stores-compact-card {
  grid-column: auto;
  grid-row: auto;
  grid-template-columns: 52px minmax(0, 1fr) 22px;
  grid-template-rows: auto auto auto;
  gap: 3px 11px;
  min-height: 82px;
  margin: 0;
  padding: 12px 15px;
  transition: border-color 180ms ease, box-shadow 220ms ease, transform 180ms ease;
}

.stores-page .stores-other-grid .stores-compact-card:hover {
  border-color: rgba(215, 25, 72, .18);
  box-shadow: 0 13px 28px rgba(15, 23, 42, .09);
  transform: translateY(-2px);
}

.stores-other-card[hidden] { display: none; }
.stores-other-card > img { grid-column: 1; grid-row: 1 / 4; align-self: center; }
.stores-other-card > strong { grid-column: 2; grid-row: 1; align-self: end; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stores-other-card > span[aria-hidden="true"] { display: none; }
.stores-page .stores-other-card > .stores-hours-badge { display: inline-flex; grid-column: 2; grid-row: 2; justify-self: start; font-size: .72rem; font-weight: 900; line-height: 1; }
.stores-hours-badge { color: #64748b; }
.stores-hours-badge.is-open { color: #16803d; }
.stores-hours-badge.is-closed { color: #dc2626; }
.stores-other-card > small { grid-column: 2; grid-row: 3; align-self: start; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stores-other-card > i { grid-column: 3; grid-row: 1 / 4; align-self: center; }

.stores-other-card--coming-soon {
  grid-template-rows: auto auto auto !important;
  border-style: dashed;
  background: linear-gradient(145deg, #fff, #f8fafc);
  cursor: default;
}

.stores-other-card--coming-soon > img { grid-row: 1 / 4; filter: grayscale(.28); opacity: .84; }
.stores-other-card--coming-soon > strong { grid-row: 1; }
.stores-other-card--coming-soon > .stores-coming-soon {
  grid-column: 2;
  grid-row: 2;
  justify-self: start;
  padding: 4px 8px;
  border-radius: 999px;
  background: #111827;
  color: #fff;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .06em;
  line-height: 1;
  text-transform: uppercase;
}
.stores-other-card--coming-soon > small { grid-row: 3; }
.stores-other-card--coming-soon > i { grid-row: 1 / 4; color: #d71948; }

.stores-other-card {
  animation: storesCardEnter 440ms cubic-bezier(.16, 1, .3, 1) both;
}
.stores-other-card:nth-child(2) { animation-delay: 45ms; }
.stores-other-card:nth-child(3) { animation-delay: 90ms; }
.stores-other-card:nth-child(4) { animation-delay: 135ms; }

.stores-map-view.is-switching-out,
.stores-list-view.is-switching-out {
  animation: storesViewOut 80ms ease-out both;
  pointer-events: none;
  will-change: opacity, transform;
}

.stores-map-view.is-switching-in,
.stores-list-view.is-switching-in {
  animation: storesViewIn 200ms cubic-bezier(.16, 1, .3, 1) both;
  will-change: opacity, transform;
}

@keyframes storesViewOut {
  to { opacity: 0; transform: translate3d(0, 3px, 0); }
}

@keyframes storesViewIn {
  from { opacity: 0; transform: translate3d(0, 7px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes storesCardEnter {
  0% { opacity: 0; transform: translate3d(0, 18px, 0) scale(.965); }
  70% { opacity: 1; transform: translate3d(0, -2px, 0) scale(1.006); }
  100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

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

.stores-page .stores-intro > h2 { animation: storesScreenEnter 420ms cubic-bezier(.16, 1, .3, 1) both; }
.stores-page .stores-intro > p { animation: storesScreenEnter 460ms 45ms cubic-bezier(.16, 1, .3, 1) both; }
.stores-page .stores-view-switch { animation: storesScreenEnter 500ms 90ms cubic-bezier(.16, 1, .3, 1) both; }
.stores-page .stores-location-button { animation: storesScreenEnter 540ms 135ms cubic-bezier(.16, 1, .3, 1) both; }
.stores-page .stores-map { animation: storesScreenEnter 580ms 180ms cubic-bezier(.16, 1, .3, 1) both; }

.stores-page .stores-view-button:disabled {
  cursor: wait;
  opacity: .72;
}

@media (min-width: 1000px) {
  .stores-page {
    max-width: 1240px;
    padding: 44px 42px 140px;
  }

  .stores-page .stores-intro {
    display: grid;
    grid-template-columns: minmax(320px, .9fr) minmax(420px, 1.1fr);
    column-gap: 30px;
    align-items: center;
  }

  .stores-page .stores-intro > h2,
  .stores-page .stores-intro > p {
    grid-column: 1 / -1;
  }

  .stores-page .stores-view-switch {
    grid-column: 1;
    margin-top: 0;
  }

  .stores-page .stores-location-button {
    grid-column: 2;
    grid-row: 3;
    margin-top: 0;
  }

  .stores-page .stores-location-status {
    grid-column: 2;
    min-height: 22px;
  }

  .stores-page .stores-map-view:not([hidden]) {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(340px, .8fr);
    grid-template-rows: auto auto;
    align-items: start;
    gap: 24px 28px;
    margin-top: 12px;
  }

  .stores-page .stores-map {
    grid-column: 1;
    grid-row: 1 / 3;
    height: 640px;
    margin: 0;
  }

  .stores-page .stores-featured-card {
    grid-column: 2;
    grid-row: 1;
    margin: 20px 0 0;
  }

  .stores-page .stores-compact-card {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    margin: 0;
  }

  .stores-page .stores-other-locations {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    margin: 0;
  }

  .stores-page .stores-other-grid {
    grid-template-columns: 1fr;
  }

  .stores-page .stores-list-view:not([hidden]) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 20px;
    margin-top: 28px;
  }

  .stores-page .stores-list-card {
    grid-template-columns: 66px minmax(0, 1fr) 42px;
    min-height: 150px;
  }
}

@media (min-width: 1440px) {
  .stores-page { max-width: 1380px; }
  .stores-page .stores-map-view:not([hidden]) { grid-template-columns: minmax(0, 1.8fr) 390px; }
  .stores-page .stores-map { height: 690px; }
}

@media (max-width: 520px) {
  .stores-page .stores-featured-card { margin: 24px 0 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .stores-page .stores-map-pin.is-selected span,
  .stores-page .stores-map-pin.is-selected::before,
  .stores-page .stores-map-pin.is-selected small:not([hidden]),
  .stores-page .stores-map-pin.is-selected::after,
  .stores-page .stores-featured-card,
  .stores-page .stores-other-card,
  .stores-page .stores-list-card,
  .stores-page .stores-intro > h2,
  .stores-page .stores-intro > p,
  .stores-page .stores-view-switch,
  .stores-page .stores-location-button,
  .stores-page .stores-map,
  .stores-map-view.is-switching-out,
  .stores-list-view.is-switching-out,
  .stores-map-view.is-switching-in,
  .stores-list-view.is-switching-in {
    animation: none;
    transition: none;
    filter: none;
  }
}

/* Shared corporate footer used by every view that includes components/footer.php. */
.site-legal-footer {
  position: relative;
  z-index: 1;
  display: flex;
  width: 100%;
  box-sizing: border-box;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 28px 24px calc(116px + env(safe-area-inset-bottom));
  color: #64748b;
  text-align: center;
}

.site-legal-footer::before {
  content: "";
  width: min(100%, 420px);
  height: 1px;
  margin-bottom: 17px;
  background: linear-gradient(90deg, transparent, #e2e8f0 18%, #e2e8f0 82%, transparent);
}

.site-legal-footer strong {
  color: #172033;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: .01em;
}

.site-legal-footer span {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .025em;
}

@media (min-width: 769px) {
  .site-legal-footer {
    padding: 34px 32px 46px;
  }
}

/* Modern product-card presentation; additive and scoped to the existing catalog. */
#products-container .products-grid {
  gap: clamp(16px, 2.4vw, 24px);
  padding-bottom: 30px;
  scroll-padding-inline: 24px;
}

#products-container .products-grid .product-card {
  flex: 0 0 clamp(250px, 30vw, 315px);
  width: clamp(250px, 30vw, 315px);
  height: 545px;
  min-height: 545px;
  max-height: 545px;
  padding: 20px;
  border: 1px solid rgba(226, 232, 240, .82);
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(15, 23, 42, .075);
  isolation: isolate;
  overflow: hidden;
  transition: border-color 220ms ease, box-shadow 280ms ease, transform 280ms cubic-bezier(.16, 1, .3, 1);
}

#products-container .products-grid .product-card:hover {
  border-color: rgba(225, 29, 72, .18);
  box-shadow: 0 24px 54px rgba(15, 23, 42, .12);
  transform: translateY(-6px);
}

#products-container .products-grid .product-card .hot-badge {
  z-index: 3;
  top: 30px;
  left: 30px;
  padding: 8px 17px;
  border: 2px solid rgba(255, 255, 255, .95);
  border-radius: 999px;
  background: linear-gradient(135deg, #ef233c, #c8102e);
  box-shadow: 0 8px 18px rgba(200, 16, 46, .25);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: none;
}

#products-container .products-grid .product-image-frame {
  order: 1;
  position: relative;
  flex: 0 0 218px;
  width: 100%;
  height: 218px;
  margin: 0 0 16px !important;
  border: 1px solid rgba(248, 113, 113, .06);
  border-radius: 24px;
  background: radial-gradient(circle at 50% 44%, #fff 0 35%, #fff8f7 76%, #fff3f1 100%);
  overflow: hidden;
}

#products-container .catalog-offer-timer {
  position: absolute;
  z-index: 2;
  top: 8px;
  right: 8px;
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 3px 5px;
  border-radius: 7px;
  background: linear-gradient(135deg, #d91f4c, #a90f35);
  color: #fff;
  text-align: center;
  box-shadow: 0 3px 8px rgba(169, 15, 53, .22);
}

#products-container .catalog-offer-timer small {
  font-size: 5px;
  font-weight: 800;
  letter-spacing: .06em;
  line-height: 1;
  text-transform: uppercase;
  opacity: .9;
}

#products-container .catalog-offer-timer strong {
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .02em;
  line-height: 1.1;
}

#products-container .products-grid .product-image-frame::after {
  content: "";
  position: absolute;
  right: 14%;
  bottom: 10px;
  left: 14%;
  z-index: 0;
  height: 18px;
  border-radius: 50%;
  background: rgba(15, 23, 42, .09);
  filter: blur(13px);
}

#products-container .products-grid .product-image-frame > img {
  z-index: 1;
  width: 92% !important;
  height: 196px !important;
  padding: 12px !important;
  filter: drop-shadow(0 10px 12px rgba(15, 23, 42, .1));
}

#products-container .products-grid .product-card-actions {
  order: 2;
  display: flex;
  flex: 0 0 auto;
  min-height: 0 !important;
  flex-direction: column;
  justify-content: flex-start;
  margin: 0 0 15px !important;
}

#products-container .products-grid .product-stats-card {
  display: grid;
  height: 48px;
  min-height: 48px;
  margin: 0 0 12px !important;
  padding: 0 14px;
  border: 1px solid #f1f3f6;
  border-radius: 17px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 8px 24px rgba(15, 23, 42, .045);
}

#products-container .products-grid .stat-badge {
  gap: 6px;
  font-size: 12px;
}

#products-container .products-grid .stat-icon {
  flex-basis: 18px;
  width: 18px;
  height: 18px;
}

#products-container .products-grid .product-bottom-row {
  flex: 0 0 48px;
  height: 48px;
  gap: 12px;
}

#products-container .products-grid .card-qty-control {
  grid-template-columns: 36px 34px 36px;
  flex: 1 1 auto;
  height: 46px;
  border: 1px solid #edf0f4;
  border-radius: 16px !important;
  background: #fafbfc !important;
}

#products-container .products-grid .card-qty-control button {
  width: 36px !important;
  height: 46px !important;
  font-size: 18px;
  transition: color 160ms ease, background 160ms ease, transform 120ms ease;
}

#products-container .products-grid .card-qty-control button:not(:disabled):hover {
  background: #fff0f3;
  color: #d71948;
}

#products-container .products-grid .card-qty-control button:not(:disabled):active {
  transform: scale(.86);
}

#products-container .products-grid .card-qty-control .c-val {
  width: 34px !important;
  font-size: 17px !important;
  font-weight: 900 !important;
}

#products-container .products-grid .btn-card-add {
  flex: 0 0 82px;
  width: 82px !important;
  height: 48px !important;
  padding: 0 !important;
  border-radius: 16px !important;
  background: linear-gradient(135deg, #ff315c, #e0003b) !important;
  box-shadow: 0 12px 24px rgba(224, 0, 59, .23);
}

#products-container .products-grid .btn-card-add i {
  font-size: 18px !important;
}

#products-container .products-grid .btn-card-add span {
  display: none !important;
}

#products-container .products-grid .btn-card-add.is-added {
  background: linear-gradient(135deg, #16a34a, #059669) !important;
  box-shadow: 0 12px 24px rgba(5, 150, 105, .24);
  animation: productAddedPulse 440ms cubic-bezier(.16, 1, .3, 1) both;
}

#products-container .products-grid .product-title {
  order: 3;
  flex: 0 0 auto;
  height: auto;
  min-height: 46px;
  max-height: 52px;
  margin: 0 0 7px !important;
  color: #0f172a !important;
  font-size: 20px !important;
  font-weight: 900 !important;
  letter-spacing: -.025em;
  line-height: 1.14 !important;
}

#products-container .products-grid .product-price {
  order: 4;
  flex: 0 0 auto;
  height: auto;
  margin: 0 0 8px !important;
  color: #0f172a !important;
  font-size: 24px !important;
  font-weight: 950 !important;
  line-height: 1.1;
}

#products-container .products-grid .product-existencia {
  order: 5;
  align-self: flex-start;
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  width: auto;
  height: auto;
  max-width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  line-height: 1 !important;
  overflow: visible !important;
}

#products-container .products-grid .product-existencia .stock-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  background: #eaf7ed;
  color: #0b923f !important;
  font-size: 12px !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  white-space: nowrap;
}

#products-container .products-grid .product-existencia .stock-pill i {
  font-size: 14px;
  color: #16a34a;
}

#products-container .products-grid .product-existencia .stock-pill.is-out {
  background: #fee2e2;
  color: #dc2626 !important;
}

#products-container .products-grid .product-existencia .stock-pill.is-out i {
  color: #ef4444;
}

#products-container .products-grid .product-existencia .unit-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  background: #f0f4f8;
  color: #1e293b !important;
  font-size: 12px !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  white-space: nowrap;
}

#products-container .products-grid .product-existencia .unit-pill i {
  font-size: 13px;
  color: #475569;
}

#products-container .products-grid .product-sucursales {
  order: 6;
  flex: 0 0 auto;
  height: auto;
  max-width: 100%;
  margin: 7px 0 0;
}

body.category-full-view .products-grid .product-card {
  width: 100%;
}

@media (max-width: 767px) {
  #products-container .products-grid .product-card {
    flex-basis: min(72vw, 270px);
    width: min(72vw, 270px);
    height: 468px;
    min-height: 468px;
    max-height: 468px;
    padding: 15px;
    border-radius: 24px;
  }

  #products-container .products-grid .product-card .hot-badge {
    top: 23px;
    left: 23px;
    padding: 6px 13px;
    font-size: 10px;
  }

  #products-container .products-grid .product-image-frame {
    flex-basis: 172px;
    height: 172px;
    margin-bottom: 12px !important;
    border-radius: 20px;
  }

  #products-container .products-grid .product-image-frame > img {
    height: 158px !important;
    padding: 10px !important;
  }

  #products-container .products-grid .product-card-actions {
    min-height: 0 !important;
    margin-bottom: 12px !important;
  }

  #products-container .products-grid .product-stats-card {
    height: 42px;
    min-height: 42px;
    margin-bottom: 9px !important;
    padding: 0 10px;
    border-radius: 14px;
    font-size: 10px !important;
  }

  #products-container .products-grid .product-bottom-row {
    flex-basis: 42px;
    height: 42px;
    gap: 8px;
  }

  #products-container .products-grid .card-qty-control {
    grid-template-columns: 32px 28px 32px;
    height: 40px;
    border-radius: 14px !important;
  }

  #products-container .products-grid .card-qty-control button {
    width: 32px !important;
    height: 40px !important;
  }

  #products-container .products-grid .card-qty-control .c-val {
    width: 28px !important;
    font-size: 15px !important;
  }

  #products-container .products-grid .btn-card-add {
    flex-basis: 58px;
    width: 58px !important;
    height: 42px !important;
    border-radius: 14px !important;
  }

  #products-container .products-grid .product-title {
    min-height: 39px;
    max-height: 42px;
    font-size: 17px !important;
  }

  #products-container .products-grid .product-price {
    margin-bottom: 6px !important;
    font-size: 20px !important;
  }

  body.category-full-view .products-grid .product-card {
    width: 100%;
    height: 430px;
    min-height: 430px;
    max-height: 430px;
    padding: 12px;
  }

  body.category-full-view .products-grid .product-image-frame {
    flex-basis: 145px;
    height: 145px;
  }

  body.category-full-view .products-grid .product-image-frame > img {
    height: 134px !important;
  }

  body.category-full-view .products-grid .product-title {
    font-size: 15px !important;
  }
}

@media (min-width: 1200px) {
  #products-container .products-grid .product-card {
    flex-basis: 330px;
    width: 330px;
    height: 565px;
    min-height: 565px;
    max-height: 565px;
    padding: 22px;
  }

  #products-container .products-grid .product-image-frame {
    flex-basis: 228px;
    height: 228px;
  }

  #products-container .products-grid .product-image-frame > img {
    height: 208px !important;
  }
}

@keyframes productAddedPulse {
  0% { transform: scale(.9); }
  55% { transform: scale(1.07); }
  100% { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  #products-container .products-grid .product-card,
  #products-container .products-grid .product-image-frame > img,
  #products-container .products-grid .card-qty-control button {
    transition: none;
  }
}

/* Progressive interactive map layer for sucursales.php. */
.stores-page .stores-live-map {
  position: absolute;
  z-index: 2;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
  transition: opacity 320ms ease;
}

.stores-page .stores-map.has-live-map .stores-live-map {
  opacity: 1;
  pointer-events: auto;
}

.stores-page .stores-map.has-live-map > iframe,
.stores-page .stores-map.has-live-map > .stores-map-pin {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.stores-page .stores-live-map .leaflet-tile-pane {
  filter: grayscale(.88) saturate(.42) contrast(.88) brightness(1.08);
}

.stores-page .stores-live-map .leaflet-control-zoom {
  overflow: hidden;
  border: 1px solid rgba(226, 232, 240, .95);
  border-radius: 13px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .12);
}

.stores-page .stores-live-map .leaflet-control-zoom a {
  width: 42px;
  height: 42px;
  border: 0;
  color: #111827;
  font: 700 22px/42px var(--font);
}

.stores-page .stores-live-map .leaflet-control-attribution {
  color: #64748b;
  font-size: 8px;
}

.stores-leaflet-pin-shell {
  width: 61.5px !important;
  height: 88.5px !important;
  border: 0 !important;
  background: transparent !important;
  overflow: visible !important;
}

.stores-leaflet-pin {
  position: relative;
  display: block;
  width: 61.5px;
  height: 88.5px;
  overflow: visible;
  filter: drop-shadow(0 9px 9px rgba(209, 47, 80, .34));
  animation: storesSelectedPinDrop 760ms cubic-bezier(.16, 1, .3, 1) both;
}

.stores-leaflet-pin img {
  position: absolute;
  width: 81px !important;
  min-width: 81px;
  max-width: 81px !important;
  height: 81px !important;
  transform: translate(-9px, 7.5px);
}

@media (prefers-reduced-motion: reduce) {
  .stores-page .stores-live-map,
  .stores-leaflet-pin {
    animation: none;
    transition: none;
  }
}

/* Full-screen catalog for all profile offers. */
body.profile-offers-fullscreen-open {
  overflow: hidden;
}

body.coupon-offers-fullscreen-open {
  overflow: auto;
}

body.coupon-offers-fullscreen-open .coupons-page > h2,
body.coupon-offers-fullscreen-open .coupons-category,
body.coupon-offers-fullscreen-open .coupon-products-section:not(.is-fullscreen) {
  display: none !important;
}

#profile-view .product-offer-list.is-fullscreen {
  position: fixed;
  z-index: 1200;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  align-content: start;
  align-items: stretch;
  gap: 18px;
  width: 100%;
  height: 100dvh;
  margin: 0;
  padding: max(22px, env(safe-area-inset-top)) clamp(18px, 4vw, 54px) max(34px, env(safe-area-inset-bottom));
  overflow-x: hidden;
  overflow-y: auto;
  background: #f7f9fc;
  scroll-snap-type: none;
  scrollbar-width: thin;
  animation: profileOffersFullscreenIn 360ms cubic-bezier(.16, 1, .3, 1) both;
}

#profile-view .product-offer-list.is-fullscreen .profile-offers-fullscreen-head {
  position: sticky;
  z-index: 5;
  top: calc(0px - max(22px, env(safe-area-inset-top)));
  display: flex;
  grid-column: 1 / -1;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: calc(0px - max(22px, env(safe-area-inset-top))) 0 4px;
  padding: max(22px, env(safe-area-inset-top)) 0 18px;
  background: rgba(247, 249, 252, .92);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  backdrop-filter: blur(18px) saturate(150%);
}

#profile-view .profile-offers-fullscreen-head > div > span {
  display: block;
  margin-bottom: 3px;
  color: #d34a35;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

#profile-view .profile-offers-fullscreen-head h2 {
  margin: 0;
  color: #111827;
  font-size: clamp(26px, 4vw, 40px);
  font-weight: 950;
  letter-spacing: -.045em;
}

#profile-view .profile-offers-fullscreen-head small {
  display: block;
  margin-top: 4px;
  color: #64748b;
  font-size: 12px;
  font-weight: 750;
}

#profile-view .profile-offers-fullscreen-close {
  display: flex;
  flex: 0 0 46px;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid #e1e6ed;
  border-radius: 15px;
  background: #fff;
  color: #172033;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .08);
  cursor: pointer;
  transition: color 160ms ease, border-color 160ms ease, transform 140ms ease;
}

#profile-view .profile-offers-fullscreen-close:hover {
  border-color: #f3b5c5;
  color: #d71948;
}

#profile-view .profile-offers-fullscreen-close:active {
  transform: scale(.93);
}

#profile-view .profile-offers-fullscreen-close svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
}

#profile-view .profile-offers-search {
  flex: 1 1 360px;
  width: min(100%, 430px);
  max-width: 430px;
}

#profile-view .profile-offers-search .category-full-search-wave {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
}

#profile-view .product-offer-list.is-fullscreen .product-offer-item[hidden] {
  display: none !important;
}

#profile-view .profile-offers-fullscreen-empty {
  display: flex;
  grid-column: 1 / -1;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 230px;
  padding: 34px;
  border: 1px dashed #d6dde7;
  border-radius: 24px;
  background: #fff;
  text-align: center;
}

#profile-view .profile-offers-fullscreen-empty[hidden] {
  display: none;
}

#profile-view .profile-offers-fullscreen-empty strong {
  color: #172033;
  font-size: 20px;
  font-weight: 900;
}

#profile-view .profile-offers-fullscreen-empty span {
  margin-top: 7px;
  color: #718096;
  font-size: 14px;
  font-weight: 650;
}

#profile-view .product-offer-list.is-fullscreen .product-offer-item {
  width: 100%;
  min-width: 0;
  max-width: none;
  min-height: 232px;
  animation: profileOfferCardIn 380ms cubic-bezier(.16, 1, .3, 1) both;
}

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

@keyframes profileOfferCardIn {
  from { opacity: 0; transform: translateY(10px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 680px) {
  #profile-view .product-offer-list.is-fullscreen {
    grid-template-columns: 1fr;
    gap: 14px;
    padding-right: 14px;
    padding-left: 14px;
  }

  #profile-view .product-offer-list.is-fullscreen .profile-offers-fullscreen-head {
    flex-wrap: wrap;
    gap: 12px;
  }

  #profile-view .profile-offers-search {
    order: 3;
    flex-basis: 100%;
    width: 100%;
    max-width: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  #profile-view .product-offer-list.is-fullscreen,
  #profile-view .product-offer-list.is-fullscreen .product-offer-item {
    animation: none;
  }
}

/* Stores refinement: shared search animation and minimal Uber-inspired map. */
.stores-location-button.search-page-field {
  position: relative;
  display: flex;
  width: 100%;
  height: 68px;
  min-height: 68px;
  margin-top: 18px;
  padding: 0 10px 0 16px;
  border: 1px solid #dfe1e5;
  border-radius: 999px;
  background: #fff;
  color: #202124;
  box-shadow: 0 1px 2px rgba(60, 64, 67, .08);
  text-align: left;
  cursor: pointer;
  transition: box-shadow 220ms ease, transform 220ms ease;
}

.stores-location-button.search-page-field:hover {
  border-color: transparent;
  background: #fff;
  box-shadow: 0 3px 12px rgba(32, 33, 36, .18);
}

.stores-location-button.search-page-field:focus-within {
  border-color: transparent;
  background: #fff;
  transform: none;
}

.stores-location-button .search-page-wave {
  margin-right: 12px;
}

.stores-location-copy {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
  justify-content: center;
}

.stores-location-copy strong {
  overflow: hidden;
  color: #202124;
  font-size: 16px;
  font-weight: 650;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stores-location-copy small {
  margin-top: 4px;
  overflow: hidden;
  color: #70757a;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stores-location-action {
  display: grid;
  flex: 0 0 46px;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid #eceff2;
  border-radius: 50%;
  background: #f8f9fa;
  color: #d71948;
  box-shadow: inset 0 1px 0 #fff;
  transition: color 180ms ease, background 180ms ease, transform 260ms cubic-bezier(.16, 1, .3, 1);
}

.stores-location-button:hover .stores-location-action,
.stores-location-button:focus-visible .stores-location-action {
  background: #fff0f4;
  transform: scale(1.04);
}

.stores-location-button.is-locating .stores-location-action {
  color: #fff;
  background: #d71948;
  animation: storesLocationPulse 1.25s ease-in-out infinite;
}

.stores-location-button.is-locating::after {
  opacity: 1;
  animation: searchContourNeonSweep 2.4s cubic-bezier(.16, 1, .3, 1) infinite;
}

@keyframes storesLocationPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(215, 25, 72, .2); transform: scale(1); }
  50% { box-shadow: 0 0 0 7px rgba(215, 25, 72, 0); transform: scale(.94); }
}

.stores-location-status {
  min-height: 20px;
  margin: 7px 14px 0;
  color: #70757a;
  font-size: 11px;
  text-align: left;
}

.stores-map-view {
  margin-top: 4px;
}

.stores-map {
  isolation: isolate;
  height: clamp(360px, 50vw, 510px);
  margin: 12px 0 0;
  overflow: hidden;
  border: 6px solid #fff;
  border-radius: 30px;
  background: #ecefed;
  box-shadow: 0 20px 50px rgba(15, 23, 42, .12), 0 3px 10px rgba(15, 23, 42, .06);
}

.stores-map iframe {
  position: absolute;
  z-index: 0;
  inset: -2%;
  width: 104%;
  height: 104%;
  opacity: .78;
  filter: grayscale(1) saturate(0) contrast(.75) brightness(1.16);
  transform: scale(1.025);
}

.stores-map::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(247, 249, 248, .18), rgba(238, 241, 239, .3));
}

.stores-map::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .04), inset 0 -80px 90px -100px rgba(15, 23, 42, .28);
}

.stores-map-toolbar {
  position: absolute;
  z-index: 6;
  top: 14px;
  left: 14px;
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 7px 13px 7px 7px;
  border: 1px solid rgba(255, 255, 255, .9);
  border-radius: 17px;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 8px 24px rgba(15, 23, 42, .1);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  backdrop-filter: blur(16px) saturate(140%);
}

.stores-map-toolbar > span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 11px;
  background: #111827;
  color: #fff;
  font-size: 13px;
}

.stores-map-toolbar > div { display: flex; flex-direction: column; }
.stores-map-toolbar strong { color: #111827; font-size: 12px; line-height: 1.15; }
.stores-map-toolbar small { margin-top: 2px; color: #6b7280; font-size: 9px; line-height: 1.15; }

.stores-map-mode {
  position: absolute;
  z-index: 5;
  left: 14px;
  bottom: 14px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 30px;
  padding: 0 11px;
  border: 1px solid rgba(255, 255, 255, .86);
  border-radius: 999px;
  background: rgba(255, 255, 255, .88);
  color: #4b5563;
  box-shadow: 0 6px 18px rgba(15, 23, 42, .08);
  font-size: 9px;
  font-weight: 750;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.stores-map-mode span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #22a559;
  box-shadow: 0 0 0 3px rgba(34, 165, 89, .13);
}

.stores-map-center {
  right: 14px;
  bottom: 14px;
  z-index: 6;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255, 255, 255, .9);
  color: #111827;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .12);
}

.stores-featured-card {
  margin: -26px 16px 16px;
  border-radius: 26px;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .12);
}

@media (max-width: 520px) {
  .stores-location-button.search-page-field { height: 62px; min-height: 62px; }
  .stores-location-copy small { max-width: 210px; }
  .stores-location-action { width: 42px; height: 42px; flex-basis: 42px; }
  .stores-map { height: 390px; margin-top: 10px; border-width: 4px; border-radius: 25px; }
  .stores-map-toolbar { top: 11px; left: 11px; }
  .stores-map-mode { left: 11px; bottom: 11px; }
  .stores-map-center { right: 11px; bottom: 11px; }
  .stores-featured-card { margin: -23px 8px 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .stores-location-button,
  .stores-location-action,
  .stores-location-button.is-locating .stores-location-action,
  .stores-location-button.is-locating::after {
    animation: none;
    transition: none;
  }
}

/* Stores view: isolated, additive styles for sucursales.php. */
.stores-page {
  --stores-accent: #d12f50;
  --stores-ink: #111827;
  --stores-muted: #69758a;
  --stores-line: #e2e6ec;
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  padding: 32px 24px 132px;
  background: #f8f9fa;
}

.stores-intro h2 {
  margin: 0;
  color: var(--stores-ink);
  font-size: clamp(2rem, 5vw, 2.7rem);
  line-height: 1.05;
  letter-spacing: -0.045em;
  font-weight: 900;
}

.stores-intro > p {
  margin: 8px 0 24px;
  color: var(--stores-muted);
  font-size: clamp(1rem, 2.6vw, 1.25rem);
  line-height: 1.35;
}

.stores-view-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 4px;
  border: 1px solid var(--stores-line);
  border-radius: 15px;
  background: #f4f5f7;
}

.stores-view-button {
  min-height: 58px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: #7a8598;
  font: inherit;
  font-size: 1.05rem;
  font-weight: 700;
  cursor: pointer;
  transition: color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.stores-view-button i { margin-right: 10px; font-size: 1.18em; }
.stores-view-button.is-active {
  color: var(--stores-accent);
  background: #fff;
  box-shadow: 0 2px 9px rgba(15, 23, 42, 0.08);
}

.stores-location-button {
  width: 100%;
  min-height: 68px;
  margin-top: 18px;
  padding: 0 16px 0 22px;
  display: grid;
  grid-template-columns: 28px 1fr 48px;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--stores-line);
  border-radius: 20px;
  background: #fff;
  color: var(--stores-muted);
  box-shadow: 0 7px 18px rgba(15, 23, 42, 0.05);
  font: inherit;
  font-size: 1.08rem;
  text-align: left;
  cursor: pointer;
}

.stores-location-button > i:first-child { color: var(--stores-accent); font-size: 1.35rem; }
.stores-location-button > i:last-child {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  justify-self: end;
  border: 1px solid #e7e9ee;
  border-radius: 50%;
  background: #fff;
  color: var(--stores-accent);
  box-shadow: 0 3px 10px rgba(15, 23, 42, 0.06);
}

.stores-location-status { min-height: 18px; margin: 6px 4px 0; color: var(--stores-muted); font-size: .82rem; }

.stores-map-view { margin-top: 4px; }
.stores-map {
  position: relative;
  height: clamp(330px, 52vw, 500px);
  margin: 0 -24px;
  overflow: hidden;
  background: #dcefd4;
}

.stores-map iframe { width: 100%; height: 100%; border: 0; pointer-events: none; filter: grayscale(.12) saturate(.52) contrast(.88) brightness(1.08); }
.stores-map::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: rgba(255, 255, 255, .08); box-shadow: inset 0 14px 18px -20px rgba(15, 23, 42, .45); }

.stores-map-pin {
  position: absolute;
  z-index: 2;
  width: 61.5px;
  height: 88.5px;
  padding: 0;
  border: 0;
  background: transparent;
  overflow: visible;
  cursor: pointer;
  filter: drop-shadow(0 5px 5px rgba(15, 23, 42, .28));
}

.stores-map-pin span { position: relative; width: 61.5px; height: 88.5px; display: block; overflow: visible; }
.stores-map-pin img { position: absolute; width: 81px; height: 81px; max-width: 81px; transform: translate(-9px, 7.5px); }
.stores-map-pin.is-nearest { z-index: 5; filter: drop-shadow(0 8px 8px rgba(209, 47, 80, .38)); }
.stores-map-pin.is-nearest span { animation: storesNearestPin 1.8s ease-in-out infinite; }
.stores-map-pin--port { left: 18.22433%; top: 84.61071%; transform: translate(-50%, -100%) scale(.82); transform-origin: center bottom; }
.stores-map-pin--groves { left: 47.21233%; top: 81.00996%; transform: translate(-50%, -100%); transform-origin: center bottom; }
.stores-map-pin--orange { left: 86.82997%; top: 25.25616%; transform: translate(-50%, -100%) scale(.82); transform-origin: center bottom; }
.stores-map-pin small {
  position: absolute;
  top: calc(100% + 4px);
  left: 50%;
  width: max-content;
  transform: translateX(-50%);
  padding: 5px 10px;
  border-radius: 999px;
  color: #fff;
  background: var(--stores-accent);
  font: 700 .7rem/1 var(--font);
}

@keyframes storesNearestPin {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

.stores-map-center {
  position: absolute;
  right: 16px;
  bottom: 18px;
  z-index: 3;
  width: 54px;
  height: 54px;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: var(--stores-accent);
  box-shadow: 0 7px 18px rgba(15, 23, 42, .16);
  font-size: 1.4rem;
  cursor: pointer;
}

.stores-featured-card {
  position: relative;
  z-index: 4;
  margin: -2px -4px 16px;
  padding: 22px;
  border: 1px solid #edf0f3;
  border-radius: 24px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 16px 32px rgba(15, 23, 42, .09);
}

.stores-card-heading { display: grid; grid-template-columns: 74px 1fr 42px; align-items: start; gap: 15px; }
.stores-card-heading > img { width: 74px; height: 74px; object-fit: cover; border: 1px solid #eef0f3; border-radius: 50%; }
.stores-card-heading h3 { margin: 2px 0 5px; color: var(--stores-ink); font-size: clamp(1.3rem, 3vw, 1.75rem); line-height: 1.1; }
.stores-card-heading p { margin: 0; display: flex; flex-wrap: wrap; gap: 7px; color: var(--stores-muted); font-size: 1rem; }
.stores-card-heading p strong { color: #16a34a; }
.stores-card-heading p strong.is-open { color: #16a34a; }
.stores-card-heading p strong.is-closed { color: #dc2626; }
.stores-favorite { border: 0; background: transparent; color: #a8b0bc; font-size: 1.75rem; cursor: pointer; }
.stores-favorite[aria-pressed="true"] { color: var(--stores-accent); }

.stores-card-meta { margin: -14px 0 18px 89px; }
.stores-card-meta p { margin: 9px 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: #556176; font-size: 1rem; }
.stores-card-meta i { width: 18px; color: var(--stores-accent); text-align: center; }
.stores-card-meta p + p i { color: #f59e0b; }

.stores-card-actions { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 12px; }
.stores-directions-button, .stores-select-button {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 2px solid var(--stores-accent);
  border-radius: 15px;
  font: 800 1rem/1 var(--font);
  text-decoration: none;
  cursor: pointer;
}
.stores-directions-button { color: var(--stores-accent); background: #fff; }
.stores-select-button { color: #fff; background: linear-gradient(100deg, #cf2d4f, #d82f55); }

.stores-compact-card {
  width: 100%;
  min-height: 86px;
  padding: 14px 20px;
  display: grid;
  grid-template-columns: 52px auto auto 1fr 22px;
  align-items: center;
  gap: 9px;
  border: 1px solid #edf0f3;
  border-radius: 22px;
  background: #fff;
  color: var(--stores-ink);
  box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
  text-align: left;
  cursor: pointer;
}
.stores-compact-card img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; }
.stores-compact-card strong { font-size: 1.1rem; }
.stores-compact-card small { color: var(--stores-muted); font-size: .98rem; }
.stores-compact-card > i { justify-self: end; color: #abb3bf; }

.stores-list-view { display: grid; gap: 14px; margin-top: 22px; }
.stores-list-view[hidden] { display: none; }
.stores-list-card {
  display: grid;
  grid-template-columns: 70px 1fr 42px;
  align-items: center;
  gap: 15px;
  padding: 18px;
  border: 1px solid #e9edf2;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .05);
  transition: border-color 180ms ease, box-shadow 220ms ease, transform 180ms ease;
}
.stores-list-view:not([hidden]) .stores-list-card { animation: storesCardEnter 390ms cubic-bezier(.16, 1, .3, 1) both; }
.stores-list-view:not([hidden]) .stores-list-card:nth-child(2) { animation-delay: 45ms; }
.stores-list-view:not([hidden]) .stores-list-card:nth-child(3) { animation-delay: 90ms; }
.stores-list-card:hover { border-color: rgba(215, 25, 72, .18); box-shadow: 0 14px 30px rgba(15, 23, 42, .09); transform: translateY(-2px); }
.stores-list-card > img { width: 70px; height: 70px; border-radius: 50%; object-fit: cover; }
.stores-list-card h3 { margin: 4px 0; color: var(--stores-ink); font-size: 1.12rem; }
.stores-list-card p { margin: 0; color: var(--stores-muted); font-size: .9rem; }
.stores-list-card button { width: 42px; height: 42px; border: 0; border-radius: 50%; background: #fff0f4; color: var(--stores-accent); cursor: pointer; }
.stores-open-badge { color: #16a34a; font-size: .78rem; font-weight: 800; }
.stores-open-badge.is-open { color: #16a34a; }
.stores-open-badge.is-closed { color: #dc2626; }

.stores-toast {
  position: fixed;
  left: 50%;
  bottom: 104px;
  z-index: 500;
  max-width: calc(100% - 40px);
  transform: translateX(-50%);
  padding: 12px 18px;
  border-radius: 999px;
  background: #111827;
  color: #fff;
  box-shadow: 0 10px 30px rgba(15, 23, 42, .22);
  font-size: .9rem;
  font-weight: 700;
  text-align: center;
}

/* Customer profile: persisted nearest-store summary. */
.profile-my-store {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  margin: 0 24px 16px;
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, .92);
  border-radius: 22px;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 12px 30px rgba(15, 23, 42, .07), inset 0 1px 0 rgba(255, 255, 255, .95);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  backdrop-filter: blur(18px) saturate(140%);
}

.profile-my-store-icon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 70px;
  overflow: hidden;
  border-radius: 18px;
  background: linear-gradient(135deg, #fff1f2 0%, #ffe4e6 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
}

.profile-my-store-icon img {
  position: static;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  transform: none;
  padding: 10px;
}

.profile-my-store-content { min-width: 0; }
.profile-my-store-content > span {
  display: inline-flex;
  margin-bottom: 4px;
  color: #d71948;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.profile-my-store-content h3 { margin: 0 0 4px; color: #111827; font-size: 1.02rem; line-height: 1.18; }
.profile-my-store-content p { margin: 0; color: #64748b; font-size: .78rem; line-height: 1.35; }
.profile-my-store-content small { display: block; margin-top: 5px; color: #16803d; font-size: .72rem; font-weight: 800; }
.profile-my-store-content small[hidden] { display: none; }
.profile-my-store > a {
  min-width: 40px;
  min-height: 40px;
  padding: 0 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-radius: 13px;
  background: #fff0f4;
  color: #d71948;
  font-size: .76rem;
  font-weight: 800;
  text-decoration: none;
}
.profile-my-store > a i { font-size: .68rem; }
.profile-my-store:not(.has-store) .profile-my-store-icon { filter: grayscale(1); opacity: .48; }

.profile-account-card {
  background: linear-gradient(180deg, rgba(255, 255, 255, .98) 0%, rgba(255, 249, 250, .98) 100%);
  border: 1px solid #f3f4f6;
  box-shadow: 0 18px 34px rgba(15, 23, 42, .06);
  margin-top: -60px;
  position: relative;
}

.profile-account-card input,
.profile-account-card textarea {
  border: 1px solid #f1f5f9;
  background: #f8fafc;
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, .03);
  transition: border-color 180ms ease, box-shadow 180ms ease;
}

.profile-account-card input:focus,
.profile-account-card textarea:focus {
  border-color: rgba(239, 68, 68, .45);
  box-shadow: 0 0 0 3px rgba(239, 68, 68, .08);
  outline: none;
}

.profile-account-card.is-fullscreen {
  position: fixed;
  inset: 0;
  z-index: 1400;
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: linear-gradient(180deg, #e63b2a 0%, #d8192f 28%, #f2f2f2 60%, #f8fafc 100%);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.profile-account-card.is-fullscreen .profile-account-hero {
  margin: 0;
  padding: max(16px, env(safe-area-inset-top)) 16px 16px;
  border-radius: 0;
  flex-shrink: 0;
}

.profile-account-card.is-fullscreen .profile-account-info-stack,
.profile-account-card.is-fullscreen .profile-account-edit-grid {
  padding: 0 16px;
}

.profile-account-card.is-fullscreen .profile-account-topbar {
  padding: max(12px, env(safe-area-inset-top)) 16px 0;
  margin-bottom: 8px;
}

.profile-account-topbar {
  display: flex;
  justify-content: flex-start;
  margin-bottom: 8px;
}

.profile-account-back-btn {
  display: inline-flex;
  border: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #f1f5f9;
  color: #475569;
  font-size: 1rem;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
  transition: all 180ms ease;
}

.profile-account-back-btn:hover {
  background: #e2e8f0;
  color: #1e293b;
  transform: translateY(-1px);
}

.profile-account-back-btn:active {
  transform: translateY(0);
}

.profile-account-hero {
  position: relative;
  margin-top: -24px;
  margin-bottom: 32px;
  padding: 10px 10px 8px;
  border-radius: 48px;
  background: linear-gradient(135deg, #e63b2a 0%, #c92e20 50%, #b6192a 100%);
  box-shadow: 0 20px 40px rgba(180, 25, 25, .28), 0 0 1px rgba(0, 0, 0, .1);
  scale: 0.81;
  transform-origin: top center;
}

.profile-account-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(255, 255, 255, .18);
  backdrop-filter: blur(8px);
}

.profile-account-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex: 1;
}

.profile-account-brand-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .32), rgba(255, 255, 255, .18));
  color: #fff;
  font-size: 1rem;
  box-shadow: 0 10px 20px rgba(15, 23, 42, .24), inset 0 1px 2px rgba(255, 255, 255, .32);
  flex-shrink: 0;
}

.profile-account-brand-copy {
  color: #fff;
  line-height: 1.02;
  min-width: 0;
}

.profile-account-brand-label {
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .9;
}

.profile-account-brand-name {
  margin-top: 2px;
  font-size: .8rem;
  font-weight: 900;
  letter-spacing: -.01em;
  line-height: 1.08;
  word-break: break-word;
}

.profile-account-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(0, 0, 0, .24), rgba(0, 0, 0, .12));
  color: #fff;
  font-size: .8rem;
  font-weight: 900;
  letter-spacing: .03em;
  box-shadow: inset 0 1px 2px rgba(255, 255, 255, .24), 0 6px 14px rgba(0, 0, 0, .18);
  flex-shrink: 0;
}

.profile-account-userframe {
  position: relative;
  display: grid;
  place-items: center;
  margin-top: 6px;
  margin-bottom: 14px;
}

.profile-account-avatar-shell {
  position: relative;
  display: grid;
  place-items: center;
  width: 110px;
  height: 110px;
  margin: 0 auto;
  border-radius: 50%;
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
  border: 5px solid rgba(255, 255, 255, .98);
  box-shadow: 0 16px 32px rgba(15, 23, 42, .2), 0 0 0 6px rgba(255, 255, 255, .3), inset 0 1px 3px rgba(255, 255, 255, .8);
  overflow: hidden;
}

.profile-account-avatar-shell::before {
  content: "";
  position: absolute;
  inset: -12px;
  border-radius: 50%;
  background: conic-gradient(from 180deg, rgba(255, 255, 255, .88), rgba(255, 255, 255, .3), rgba(255, 255, 255, .82), rgba(255, 255, 255, .88));
  z-index: 0;
}

.profile-account-avatar-shell img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profile-account-personal-data {
  position: relative;
  z-index: 1;
  text-align: center;
  color: #fff;
}

.profile-account-display-name {
  font-size: clamp(1.1rem, 3.5vw, 1.6rem);
  font-weight: 900;
  letter-spacing: -.02em;
  line-height: 1.1;
}

.profile-account-role {
  margin-top: 10px;
  color: rgba(255, 255, 255, .88);
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.profile-account-status-row {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 18px;
}

.profile-account-status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 154px;
  padding: 0 18px;
  border-radius: 999px;
  font-size: .96rem;
  font-weight: 900;
  letter-spacing: .02em;
}

.profile-account-status-pill.is-active {
  background: rgba(255, 255, 255, .18);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .35);
}

.profile-account-status-pill.is-offline {
  background: rgba(255, 255, 255, .08);
  color: rgba(255, 255, 255, .9);
  border: 1px solid rgba(255, 255, 255, .26);
}

.profile-account-info-stack {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.profile-account-info-row {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 32px;
  align-items: center;
  gap: 12px;
  padding: 18px 16px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 18px;
  background: rgba(255, 255, 255, .8);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
}

.profile-account-info-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: #fce7ea;
  color: #db2a3d;
  font-size: 1.1rem;
}

.profile-account-info-icon.success {
  background: #eafaf0;
  color: #1d9c5a;
}

.profile-account-info-text {
  min-width: 0;
  color: #111827;
}

.profile-account-info-text span {
  display: block;
  margin-bottom: 3px;
  color: #7b8798;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.profile-account-info-text strong {
  display: block;
  color: #111827;
  font-size: clamp(1rem, 2.5vw, 1.3rem);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -.02em;
}

.profile-account-info-text small {
  color: #64748b;
  font-size: .76rem;
  font-weight: 700;
}

.profile-account-more,
.profile-account-arrow {
  border: 0;
  background: #f1f5f9;
  color: #475569;
  border-radius: 10px;
  width: 28px;
  height: 28px;
  font-weight: 900;
  cursor: pointer;
}

.profile-account-origin-row {
  background: rgba(236, 253, 245, .9);
  border-color: rgba(34, 197, 94, .18);
}

.profile-account-origin-row .profile-account-info-text strong {
  color: #14532d;
}

.profile-account-edit-grid {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.profile-account-form-field {
  display: grid;
  gap: 8px;
  color: #374151;
  font-size: .8rem;
  font-weight: 700;
}

.profile-account-card input,
.profile-account-card textarea {
  width: 100%;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 14px;
  background: #fff;
  color: #111827;
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, .02);
}

.profile-account-card input:focus,
.profile-account-card textarea:focus {
  border-color: rgba(239, 68, 68, .45);
  box-shadow: 0 0 0 3px rgba(239, 68, 68, .08);
  outline: none;
}

#btn-save-account {
  border: 0;
  border-radius: 12px;
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
  color: #fff;
  font-weight: 800;
  padding: 10px 18px;
  cursor: pointer;
  box-shadow: 0 12px 24px rgba(239, 68, 68, .2);
}

#btn-save-account {
  transition: transform 180ms ease, box-shadow 180ms ease, opacity 180ms ease;
  box-shadow: 0 12px 24px rgba(239, 68, 68, .2);
}

#btn-save-account:hover,
#btn-save-account:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 14px 26px rgba(239, 68, 68, .24);
}

@media (max-width: 768px) {
  .stores-page { max-width: none; padding: 28px 24px 120px; }
}

@media (max-width: 520px) {
  .stores-intro h2 { font-size: 2rem; }
  .stores-intro > p { margin-bottom: 18px; font-size: 1rem; }
  .stores-view-button { min-height: 52px; }
  .stores-location-button { min-height: 64px; }
  .stores-map { height: 365px; }
  .stores-featured-card { margin: -2px -8px 14px; padding: 17px 15px; border-radius: 22px; }
  .stores-card-heading { grid-template-columns: 62px 1fr 34px; gap: 10px; }
  .stores-card-heading > img { width: 62px; height: 62px; }
  .stores-card-heading h3 { font-size: 1.23rem; }
  .stores-card-heading p, .stores-card-meta p { font-size: .9rem; }
  .stores-card-meta { margin: 7px 0 16px 72px; }
  .stores-card-actions { gap: 9px; }
  .stores-directions-button, .stores-select-button { min-height: 54px; font-size: .92rem; }
  .stores-compact-card { grid-template-columns: 46px 1fr auto 18px; padding: 12px 14px; }
  .stores-compact-card img { width: 46px; height: 46px; }
  .stores-compact-card > span { display: none; }
  .stores-compact-card strong { font-size: .95rem; }
  .stores-list-card { grid-template-columns: 58px 1fr 38px; padding: 14px; gap: 11px; }
  .stores-list-card > img { width: 58px; height: 58px; }
  .profile-my-store { grid-template-columns: 54px minmax(0, 1fr) 40px; gap: 10px; padding: 14px; }
  .profile-my-store-icon { width: 52px; height: 64px; }
  .profile-my-store > a { width: 40px; padding: 0; }
  .profile-my-store > a span { display: none; }
}

/* Modern professional shopping cart. */
body.cart-fullscreen-open {
  overflow: hidden;
}

body.cart-fullscreen-open .liquid-nav-wrap {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, 18px);
  transition: opacity 180ms ease, visibility 180ms ease, transform 240ms cubic-bezier(.16, 1, .3, 1);
}

.cart-sidebar {
  z-index: 1000;
  width: min(460px, 100%);
  height: 100dvh;
  border-left: 1px solid rgba(226, 232, 240, .9);
  background: #f7f9fc;
  box-shadow: -24px 0 60px rgba(15, 23, 42, .16);
  transition: transform 360ms cubic-bezier(.16, 1, .3, 1);
}

.cart-header {
  position: relative;
  z-index: 2;
  min-height: 94px;
  padding: 20px 22px;
  border-bottom: 1px solid #e7ebf0;
  background: rgba(255, 255, 255, .92);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  backdrop-filter: blur(18px) saturate(150%);
}

.cart-heading {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 13px;
}

.cart-heading-icon {
  display: flex;
  flex: 0 0 46px;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 15px;
  background: #fff0f3;
  color: #df1748;
  font-size: 18px;
  box-shadow: inset 0 0 0 1px rgba(223, 23, 72, .08);
}

.cart-heading-icon svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.cart-heading h4 {
  margin: 0;
  color: #111827;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -.035em;
}

.cart-heading p {
  margin: 3px 0 0;
  color: #718096;
  font-size: 11px;
  font-weight: 700;
}

.cart-header .close-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid #e1e6ed;
  border-radius: 14px;
  background: #fff;
  color: #172033;
  font-size: 17px;
  box-shadow: 0 6px 18px rgba(15, 23, 42, .06);
  cursor: pointer;
  transition: color 160ms ease, border-color 160ms ease, transform 140ms ease;
}

.cart-header .close-btn:hover {
  border-color: #f2b8c6;
  color: #d71948;
}

.cart-header .close-btn:active {
  transform: scale(.92);
}

.cart-items {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 12px;
  padding: 18px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(100, 116, 139, .28) transparent;
}

.cart-item {
  position: relative;
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  min-height: 112px;
  margin: 0;
  padding: 13px;
  border: 1px solid #e6ebf1;
  border-radius: 21px;
  background: linear-gradient(150deg, #fff 0%, #fff 76%, #fff9f5 100%);
  box-shadow: 0 9px 26px rgba(15, 23, 42, .055);
  animation: cartProductIn 360ms cubic-bezier(.16, 1, .3, 1) both;
}

.cart-item::before {
  content: "";
  position: absolute;
  top: 23%;
  bottom: 23%;
  left: 0;
  width: 3px;
  border-radius: 0 999px 999px 0;
  background: linear-gradient(#d91f4c, #f5a400);
}

.cart-item-image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 82px;
  height: 82px;
  border-radius: 17px;
  background: #f8fafc;
  box-shadow: inset 0 0 0 1px rgba(226, 232, 240, .72);
  overflow: hidden;
}

.cart-item .cart-item-image img {
  width: 100%;
  height: 100%;
  padding: 7px;
  border-radius: 0;
  object-fit: contain;
}

.cart-item-info {
  min-width: 0;
}

.cart-item-info strong {
  display: -webkit-box;
  overflow: hidden;
  color: #131b2a;
  font-size: 14px;
  font-weight: 850;
  line-height: 18px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.cart-item-info span {
  display: block;
  margin-top: 4px;
  color: #8a96a8;
  font-size: 10px;
  font-weight: 700;
}

.cart-item-info small {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-top: 5px;
  color: #0b6535;
  font-size: 12px;
  font-weight: 850;
}

.cart-item-info small b {
  font: inherit;
}

.cart-item-info small del {
  color: #a0aabd;
  font-size: 10px;
  font-weight: 700;
}

.cart-item-side {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  gap: 11px;
}

.cart-item-line-total {
  color: #0b552b;
  font-size: 15px;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.cart-quantity-control {
  display: grid;
  grid-template-columns: 32px 28px 32px;
  align-items: center;
  height: 36px;
  border: 1px solid #e5eaf0;
  border-radius: 13px;
  background: #f7f9fc;
  overflow: hidden;
}

.cart-quantity-control .qty {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 34px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #334155;
  font-size: 10px;
  cursor: pointer;
  transition: color 150ms ease, background 150ms ease, transform 120ms ease;
}

.cart-quantity-control .qty:hover {
  background: #fff0f3;
  color: #d71948;
}

.cart-quantity-control .qty:active {
  transform: scale(.86);
}

.cart-quantity-control span {
  color: #111827;
  font-size: 13px;
  font-weight: 900;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.cart-empty-state {
  display: flex;
  min-height: 100%;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 36px 24px;
  text-align: center;
}

.cart-empty-state > span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin-bottom: 16px;
  border-radius: 24px;
  background: #fff0f3;
  color: #df1748;
  font-size: 27px;
}

.cart-empty-state strong {
  color: #172033;
  font-size: 20px;
  font-weight: 900;
}

.cart-empty-state p {
  max-width: 250px;
  margin: 7px 0 0;
  color: #718096;
  font-size: 13px;
  line-height: 1.5;
}

.cart-checkout-view[hidden] {
  display: none;
}

.cart-sidebar.checkout-step-active .cart-items,
.cart-sidebar.checkout-step-active .cart-footer {
  display: none;
}

.cart-checkout-view {
  display: flex;
  flex: 1;
  min-height: 0;
  flex-direction: column;
  padding: 20px 20px max(24px, env(safe-area-inset-bottom));
  overflow-x: hidden;
  overflow-y: auto;
  background: #f7f9fc;
  animation: cartCheckoutStepIn 380ms cubic-bezier(.16, 1, .3, 1) both;
}

.cart-checkout-head {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  margin-bottom: 20px;
}

.cart-checkout-head > button {
  display: flex;
  flex: 0 0 42px;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid #e1e6ed;
  border-radius: 14px;
  background: #fff;
  color: #263247;
  box-shadow: 0 6px 18px rgba(15, 23, 42, .055);
  cursor: pointer;
}

.cart-checkout-head span {
  display: block;
  margin-bottom: 3px;
  color: #d34a35;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.cart-checkout-head h3 {
  margin: 0;
  color: #111827;
  font-size: 22px;
  font-weight: 950;
  letter-spacing: -.04em;
}

.cart-checkout-head p {
  margin: 4px 0 0;
  color: #718096;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.45;
}

.cart-checkout-form {
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid #e1e7ef;
  border-radius: 24px;
  background: linear-gradient(180deg, #fff 0%, #fcfdff 72%, #f8fbfa 100%);
  box-shadow: 0 18px 44px rgba(15, 23, 42, .075);
}

.cart-checkout-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.cart-checkout-form label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.cart-checkout-field {
  position: relative;
}

.cart-checkout-field-icon {
  position: absolute;
  z-index: 1;
  top: 39px;
  left: 15px;
  width: 18px;
  color: #94a3b8;
  font-size: 15px;
  text-align: center;
  pointer-events: none;
  transition: color 180ms ease, transform 180ms ease;
}

.cart-checkout-field:focus-within .cart-checkout-field-icon {
  color: #d91f4c;
  transform: scale(1.06);
}

.cart-checkout-form label > span {
  color: #405067;
  font-size: 10px;
  font-weight: 850;
}

.cart-checkout-form label > span small {
  color: #95a0b0;
  font-size: 9px;
  font-weight: 700;
}

.cart-checkout-form input,
.cart-checkout-form textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 48px;
  padding: 0 14px 0 43px;
  border: 1px solid #dfe5ec;
  border-radius: 14px;
  outline: 0;
  background: #fbfcfe;
  color: #172033;
  font-family: inherit;
  font-size: 16px;
  font-weight: 650;
  transition: border-color 160ms ease, background 160ms ease, box-shadow 180ms ease;
}

.cart-checkout-form textarea {
  min-height: 64px;
  padding-top: 9px;
  padding-bottom: 9px;
  line-height: 1.45;
  resize: vertical;
}

.checkout-address-tools {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
  padding-left: 2px;
}

.checkout-address-tools button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex: 0 0 auto;
  padding: 6px 9px;
  border: 1px solid #dbe4ef;
  border-radius: 9px;
  background: #f8fafc;
  color: #405067;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}

.checkout-address-tools button:hover,
.checkout-address-tools button:focus-visible {
  border-color: #d91f4c;
  color: #d91f4c;
}

.checkout-address-tools small {
  color: #718096;
  font-size: 9px;
  font-weight: 650;
  line-height: 1.35;
}

.checkout-address-tools small.is-verified { color: #16804b; }
.checkout-address-tools small.is-error { color: #b4233c; }

.cart-checkout-field-textarea { z-index: 3; }
.checkout-address-suggestions {
  position: absolute;
  z-index: 4;
  top: 100%;
  right: 0;
  left: 0;
  overflow: hidden;
  margin-top: 4px;
  border: 1px solid #dfe5ec;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 24px rgba(15, 23, 42, .13);
}
.checkout-address-suggestions button {
  display: block;
  width: 100%;
  padding: 10px 13px;
  border: 0;
  border-bottom: 1px solid #f1f4f8;
  background: #fff;
  color: #263247;
  font: inherit;
  font-size: 11px;
  font-weight: 650;
  text-align: left;
  cursor: pointer;
}
.checkout-address-suggestions button:last-child { border-bottom: 0; }
.checkout-address-suggestions button:hover,
.checkout-address-suggestions button:focus-visible { background: #f8fafc; color: #d91f4c; }

.cart-checkout-form input::placeholder,
.cart-checkout-form textarea::placeholder {
  color: #a0aabd;
  font-weight: 550;
}

.cart-checkout-form input:focus,
.cart-checkout-form textarea:focus {
  border-color: #d91f4c;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(217, 31, 76, .085);
}

.cart-checkout-security {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 9px 11px;
  border-radius: 13px;
  background: #f1f7f4;
  color: #27714b;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.35;
}

.cart-checkout-security i {
  font-size: 16px;
}

.cart-checkout-status {
  min-height: 17px;
  margin: -2px 0 0;
  color: #b4233c;
  font-size: 10px;
  font-weight: 750;
}

.cart-whatsapp-checkout {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 10px;
  min-height: 62px;
  padding: 10px 17px 10px 12px;
  border: 0;
  border-radius: 19px;
  background: linear-gradient(135deg, #18ad5c 0%, #08783b 100%);
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 900;
  box-shadow: 0 14px 30px rgba(8, 120, 59, .24);
  position: relative;
  overflow: hidden;
  isolation: isolate;
  cursor: pointer;
  transition: box-shadow 180ms ease, transform 150ms ease, opacity 150ms ease;
}

.cart-whatsapp-checkout .fa-whatsapp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 12px;
  background: rgba(255, 255, 255, .14);
  font-size: 20px;
}

.cart-whatsapp-checkout::before {
  content: "";
  position: absolute;
  inset: 1px;
  z-index: -1;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 18px;
  pointer-events: none;
}

.cart-whatsapp-checkout:hover:not(:disabled) {
  box-shadow: 0 18px 34px rgba(8, 120, 59, .29);
  filter: brightness(1.03);
  transform: translateY(-1px);
}

.cart-whatsapp-checkout:focus-visible {
  outline: 3px solid rgba(22, 163, 74, .24);
  outline-offset: 3px;
}

.cart-whatsapp-checkout:active:not(:disabled) {
  transform: scale(.98);
}

.cart-whatsapp-checkout:disabled {
  opacity: .62;
  cursor: wait;
}

@keyframes cartCheckoutStepIn {
  from { opacity: 0; transform: translateX(18px); }
  to { opacity: 1; transform: translateX(0); }
}

.cart-footer {
  position: relative;
  z-index: 3;
  padding: 16px 18px max(18px, env(safe-area-inset-bottom));
  border-top: 1px solid #e5eaf0;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 -16px 36px rgba(15, 23, 42, .07);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  backdrop-filter: blur(20px) saturate(150%);
}

.cart-pricing-breakdown {
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid #edf1f5;
}

.cart-pricing-breakdown > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #718096;
  font-size: 11px;
  font-weight: 750;
}

.cart-pricing-breakdown > div[hidden] {
  display: none;
}

.cart-pricing-breakdown strong {
  color: #526074;
  font-size: 12px;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}

.cart-pricing-breakdown .cart-savings-row {
  min-height: 34px;
  padding: 0 11px;
  border-radius: 12px;
  background: #ecfdf3;
  color: #08783e;
}

.cart-savings-row span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.cart-pricing-breakdown .cart-savings-row strong {
  color: #08783e;
  font-size: 14px;
  font-weight: 950;
}

.cart-total {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 13px;
}

.cart-total > span {
  color: #263247;
  font-size: 14px;
  font-weight: 850;
}

.cart-total small {
  display: block;
  margin-bottom: 2px;
  color: #8a96a8;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.cart-total strong {
  color: #0b552b;
  font-size: 27px;
  font-weight: 950;
  letter-spacing: -.04em;
  font-variant-numeric: tabular-nums;
}

.checkout-btn {
  display: grid;
  grid-template-columns: 22px 1fr 22px;
  align-items: center;
  min-height: 56px;
  padding: 0 18px;
  border: 0;
  border-radius: 17px;
  background: linear-gradient(135deg, #ffd84d 0%, #f5b700 58%, #e39a00 100%);
  color: #261b00;
  font-family: inherit;
  font-size: 14px;
  font-weight: 900;
  box-shadow: 0 12px 26px rgba(202, 139, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .52);
  cursor: pointer;
  transition: box-shadow 180ms ease, transform 150ms ease, opacity 160ms ease;
}

.checkout-btn:hover:not(:disabled) {
  background: linear-gradient(135deg, #ffe066 0%, #f8bd08 58%, #d99000 100%);
  box-shadow: 0 15px 31px rgba(190, 126, 0, .36), inset 0 1px 0 rgba(255, 255, 255, .58);
  transform: translateY(-1px);
}

.checkout-btn:active:not(:disabled) {
  transform: scale(.98);
}

.checkout-btn:disabled {
  background: #d7dde6;
  color: #8995a7;
  box-shadow: none;
  cursor: default;
}

@keyframes cartProductIn {
  from { opacity: 0; transform: translateY(10px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 767px) {
  .cart-sidebar {
    width: 100%;
    height: 100dvh;
    max-height: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .cart-sidebar::before {
    display: none !important;
    content: none !important;
  }

  .cart-header {
    min-height: 88px;
    padding: 24px 16px 14px;
    border-radius: 0;
  }

  .cart-heading-icon {
    flex-basis: 42px;
    width: 42px;
    height: 42px;
    border-radius: 14px;
  }

  .cart-items {
    padding: 14px;
  }

  .cart-item {
    grid-template-columns: 72px minmax(0, 1fr);
    min-height: 142px;
    padding: 12px;
  }

  .cart-item-image {
    width: 72px;
    height: 72px;
  }

  .cart-item-side {
    grid-column: 1 / -1;
    width: 100%;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding-top: 9px;
    border-top: 1px solid #edf1f5;
  }

  .cart-footer {
    padding: 14px 16px max(14px, env(safe-area-inset-bottom));
  }

  .cart-checkout-view {
    padding: 16px 14px max(20px, env(safe-area-inset-bottom));
  }

  .cart-checkout-form {
    padding: 15px;
    border-radius: 21px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cart-sidebar,
  .cart-item,
  .cart-header .close-btn,
  .cart-quantity-control .qty,
  .checkout-btn {
    animation: none;
    transition: none;
  }

  .cart-checkout-view,
  .cart-whatsapp-checkout {
    animation: none;
    transition: none;
  }
}

#profile-view .btn-add-round {
  width: 40px;
  height: 40px;
  background: linear-gradient(180deg, #fff1f2, #ffe2e5);
  box-shadow: inset 0 0 0 1px rgba(220, 38, 38, 0.08);
  transition: transform 150ms ease, background-color 150ms ease;
}

#profile-view .section-header-row h2 {
  color: #111827;
  font-weight: 760;
  letter-spacing: -0.03em;
}

#profile-view .profile-offers-animated-title {
  transform-origin: left center;
}

#profile-view .profile-offers-animated-title.is-changing {
  animation: profileOfferTitleOut 220ms ease both;
}

#profile-view .profile-offers-animated-title.is-entering {
  animation: profileOfferTitleIn 440ms cubic-bezier(.16, 1, .3, 1) both;
}

#profile-view .profile-offers-title-dots {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 52px;
  min-height: 24px;
  vertical-align: middle;
}

#profile-view .profile-offers-title-dots i {
  display: block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #db4437;
  animation: profileOfferTitleDotWave 1.15s ease-in-out infinite;
}

#profile-view .profile-offers-title-dots i:nth-child(2) {
  background: #f4b400;
  animation-delay: 130ms;
}

#profile-view .profile-offers-title-dots i:nth-child(3) {
  background: #f97316;
  animation-delay: 260ms;
}

@keyframes profileOfferTitleOut {
  to { opacity: 0; transform: translateY(-5px); filter: blur(2px); }
}

@keyframes profileOfferTitleIn {
  from { opacity: 0; transform: translateY(7px); filter: blur(2px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}

@keyframes profileOfferTitleDotWave {
  0%, 55%, 100% { transform: translateY(0); }
  25% { transform: translateY(-5px); }
}

#profile-view .action-card:active,
#profile-view .action-card-full:active,
#profile-view .menu-item:active,
#profile-view .btn-add-round:active {
  transform: scale(0.975);
}

@media (prefers-reduced-motion: reduce) {
  #profile-view .action-card,
  #profile-view .action-card-full,
  #profile-view .product-offer-item,
  #profile-view .menu-item,
  #profile-view .btn-add-round {
    transition: none;
  }

  #profile-view .profile-offers-animated-title,
  #profile-view .profile-offers-title-dots i {
    animation: none !important;
  }
}

/* Dedicated product search page. */
.search-page{width:100%;max-width:1040px;height:auto!important;min-height:calc(100vh - 90px);margin:0 auto;padding:56px 24px 130px!important;text-align:left!important}
.search-page>h2{margin:0;color:#111827;font-size:clamp(22px,3vw,30px);font-weight:900;letter-spacing:-0.035em}
.search-page>p{margin-bottom:24px!important;font-size:13px}
.search-page-panel{width:100%}
.search-page-field{position:relative;display:flex;align-items:center;width:100%;height:68px;padding:0 18px;border:1px solid rgba(148,163,184,0.22);border-radius:22px;background:rgba(255,255,255,0.86);box-shadow:0 14px 40px rgba(15,23,42,0.08),inset 0 1px 0 rgba(255,255,255,0.95);transition:border-color 240ms ease,box-shadow 320ms ease,transform 320ms cubic-bezier(0.16,1,0.3,1);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.search-page-field:focus-within{border-color:rgba(217,31,76,0.38);box-shadow:0 18px 48px rgba(15,23,42,0.1),0 0 0 4px rgba(217,31,76,0.09);transform:translateY(-2px)}
.search-page-icon{display:none}
.search-page-wave{position:relative;display:flex;flex:0 0 auto;align-items:center;justify-content:center;gap:5px;width:46px;height:34px;border:1px solid rgba(255,255,255,0.88);border-radius:13px;background:linear-gradient(145deg,rgba(255,255,255,0.92),rgba(241,245,249,0.68));box-shadow:0 7px 18px rgba(15,23,42,0.08),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(148,163,184,0.12);overflow:hidden}
.search-page-wave::before{content:"";position:absolute;inset:2px 8px auto;height:45%;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,0.92),transparent);pointer-events:none}
.search-page-wave-dot{position:relative;z-index:1;display:block;width:9px;height:9px;border:1px solid rgba(255,255,255,0.64);border-radius:50%;transform-origin:center;animation:searchWaveJump 3s cubic-bezier(0.16,1,0.3,1) infinite;box-shadow:inset 0 1px 1px rgba(255,255,255,0.72),0 3px 8px currentColor}
.search-page-wave-dot-red{color:rgba(217,31,76,0.34);background:linear-gradient(145deg,#ff5f7f,#c8103d)}
.search-page-wave-dot-yellow{color:rgba(244,196,48,0.4);background:linear-gradient(145deg,#ffe878,#e8ad08);animation-delay:130ms}
.search-page-wave-dot-orange{color:rgba(249,115,22,0.36);background:linear-gradient(145deg,#ffab5c,#e85b0b);animation-delay:260ms}
.search-page-field input{min-width:0;flex:1;height:100%;padding:0 14px;border:0;outline:0;background:transparent;color:#111827;font:700 17px/1 var(--font)}
.search-page-field input::placeholder{color:#9ca3af;font-weight:500}
.search-page-field input::-webkit-search-cancel-button{display:none}
.search-page-clear{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;border-radius:12px;background:#f1f5f9;color:#64748b;cursor:pointer;opacity:0;visibility:hidden;transform:scale(0.8);transition:opacity 180ms ease,visibility 180ms ease,transform 240ms cubic-bezier(0.16,1,0.3,1),background 180ms ease}
.search-page-clear.is-visible{opacity:1;visibility:visible;transform:scale(1)}
.search-page-clear:hover{background:#ffe8ee;color:#d91f4c}
.search-page-loader{display:none;width:18px;height:18px;margin-right:10px;border:2px solid rgba(217,31,76,0.18);border-top-color:#d91f4c;border-radius:50%;animation:searchLoaderSpin 650ms linear infinite}
.search-page-field.is-searching .search-page-loader{display:block}
.search-page-suggestions{display:flex;gap:9px;margin-top:16px;overflow-x:auto;padding:2px 1px 6px;scrollbar-width:none}
.search-page-suggestions::-webkit-scrollbar{display:none}
.search-page-suggestions button{flex:0 0 auto;padding:9px 14px;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#64748b;font:700 13px/1 var(--font);cursor:pointer;transition:color 180ms ease,border-color 180ms ease,background 180ms ease,transform 180ms ease}
.search-page-suggestions button:hover{color:#d91f4c;border-color:#ffc7d5;background:#fff5f7;transform:translateY(-1px)}
.search-page-status{min-height:22px;margin:24px 2px 14px;color:#64748b;font-size:14px;font-weight:700}
.search-page-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.search-result-card{position:relative;display:grid;grid-template-columns:82px minmax(0,1fr) 38px;align-items:center;gap:13px;min-height:112px;padding:14px;border:1px solid rgba(226,232,240,0.8);border-radius:20px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,0.05);animation:searchResultIn 420ms cubic-bezier(0.16,1,0.3,1) both;animation-delay:calc(var(--result-index)*30ms);transition:transform 220ms ease,box-shadow 220ms ease,border-color 220ms ease}
.search-result-card:hover{border-color:rgba(217,31,76,0.2);box-shadow:0 14px 34px rgba(15,23,42,0.09);transform:translateY(-3px)}
.search-result-card>img{width:82px;height:82px;border-radius:15px;background:#f8fafc;object-fit:contain}
.search-result-info{min-width:0;text-align:left}
.search-result-category{display:block;margin-bottom:4px;color:#d91f4c;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:0.06em}
.search-result-info h3{display:-webkit-box;margin:0 0 7px;overflow:hidden;color:#111827;font-size:14px;font-weight:800;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.search-result-info strong{color:#0b552b;font-size:15px}
.search-result-add{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;border-radius:12px;background:#d91f4c;color:#fff;cursor:pointer;box-shadow:0 6px 14px rgba(217,31,76,0.2);transition:transform 180ms ease,background 180ms ease}
.search-result-add:hover{background:#b5163d;transform:scale(1.07)}
.search-result-add:active{transform:scale(0.92)}
@keyframes searchLoaderSpin{to{transform:rotate(360deg)}}
@keyframes searchWaveJump{0%,8%,30%,100%{transform:translateY(0) scale(1);filter:saturate(1)}14%{transform:translateY(-8px) scale(1.14);filter:saturate(1.25)}21%{transform:translateY(1px) scale(0.92);filter:saturate(1)}}
@keyframes searchResultIn{from{opacity:0;transform:translateY(12px) scale(0.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:768px){.search-page{padding:34px 20px 120px!important}.search-page>h2{font-size:22px}.search-page>p{font-size:12px}.search-page-field{height:62px;border-radius:19px}.search-page-results{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.search-page-field,.search-page-icon,.search-page-wave-dot,.search-page-clear,.search-page-suggestions button,.search-result-card,.search-result-add{animation:none;transition:none}}

/* Flat, Google-inspired search dots. */
.search-page-wave{width:38px;height:32px;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.search-page-wave::before{display:none}
.search-page-wave-dot{width:8px;height:8px;border:0;box-shadow:none;filter:none;animation:googleSearchDotWave 5s ease-in-out infinite}
.search-page-wave-dot-red{color:#db4437;background:#db4437}
.search-page-wave-dot-yellow{color:#f4b400;background:#f4b400;animation-delay:140ms}
.search-page-wave-dot-orange{color:#f97316;background:#f97316;animation-delay:280ms}
@keyframes googleSearchDotWave{0%,7%,22%,100%{transform:translateY(0)}12%{transform:translateY(-5px)}17%{transform:translateY(0)}}

/* Clean Google-style treatment for the dedicated search field. */
.search-page-panel{max-width:760px;margin:0 auto}
.search-page-field{height:58px;padding:0 10px 0 16px;border:1px solid #dfe1e5;border-radius:999px;background:#fff;box-shadow:0 1px 2px rgba(60,64,67,0.08);-webkit-backdrop-filter:none;backdrop-filter:none;transform:none;transition:border-color 180ms ease,box-shadow 220ms ease,background 180ms ease}
.search-page-field:hover{border-color:transparent;box-shadow:0 1px 6px rgba(32,33,36,0.24)}
.search-page-field:focus-within{border-color:transparent;background:#fff;box-shadow:0 1px 6px rgba(32,33,36,0.28);transform:none}
.search-page-field input{padding:0 13px;color:#202124;font:400 16px/1.4 Arial,sans-serif}
.search-page-field input::placeholder{color:#70757a;font-weight:400;opacity:1}
.search-page-wave{margin-right:2px}
.search-page-clear{position:relative;width:38px;height:38px;border-radius:50%;background:transparent;color:#70757a}
.search-page-clear::before{content:"";position:absolute;left:-7px;top:5px;width:1px;height:28px;background:#dfe1e5;pointer-events:none}
.search-page-clear:hover{background:#f1f3f4;color:#202124}
.search-page-loader{margin-right:12px}
@media(max-width:768px){.search-page-panel{max-width:none}.search-page-field{height:54px;padding-left:13px}.search-page-field input{font-size:16px}}

/* Animated idle-to-active search identity. */
.search-page-field .search-page-icon{position:absolute;left:16px;z-index:2;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid transparent;border-radius:50%;color:#d91f4c;font-size:15px;opacity:0;pointer-events:none;transform:scale(0.72) rotate(-18deg);transition:opacity 220ms ease,transform 420ms cubic-bezier(0.16,1,0.3,1),box-shadow 300ms ease}
.search-page-field .search-page-wave{opacity:1;transform:scale(1);transition:opacity 180ms ease,transform 360ms cubic-bezier(0.16,1,0.3,1)}
.search-page-field:focus-within .search-page-wave{opacity:0;transform:scale(0.62) rotate(12deg)}
.search-page-field:focus-within .search-page-icon{opacity:1;transform:scale(1) rotate(0);animation:searchNeonFocus 1.8s cubic-bezier(0.16,1,0.3,1) 1 forwards}
@keyframes searchNeonFocus{0%{border-color:rgba(217,31,76,0);box-shadow:0 0 0 rgba(217,31,76,0)}28%{border-color:rgba(255,64,112,0.95);box-shadow:0 0 0 3px rgba(217,31,76,0.16),0 0 15px rgba(255,35,91,0.72)}62%{border-color:rgba(217,31,76,0.64);box-shadow:0 0 0 2px rgba(217,31,76,0.1),0 0 9px rgba(255,35,91,0.34)}100%{border-color:rgba(217,31,76,0.34);box-shadow:0 0 0 1px rgba(217,31,76,0.06),0 0 5px rgba(255,35,91,0.16)}}
@media(max-width:768px){.search-page-field .search-page-icon{left:13px}}
@media(prefers-reduced-motion:reduce){.search-page-field .search-page-icon,.search-page-field .search-page-wave{animation:none;transition:none}.search-page-field:focus-within .search-page-icon{border-color:rgba(217,31,76,0.34);box-shadow:0 0 0 1px rgba(217,31,76,0.06)}}

/* Focus glow travels across the complete search-bar contour. */
.search-page-field:focus-within{animation:searchBarNeonContour 2.2s cubic-bezier(0.16,1,0.3,1) 1 forwards}
.search-page-field:focus-within .search-page-icon{border-color:transparent;box-shadow:none;animation:searchIconReveal 420ms cubic-bezier(0.16,1,0.3,1) 1 both}
@keyframes searchBarNeonContour{0%{border-color:#dfe1e5;box-shadow:0 1px 6px rgba(32,33,36,0.2),0 0 0 0 rgba(217,31,76,0)}24%{border-color:rgba(255,48,101,0.95);box-shadow:0 3px 12px rgba(32,33,36,0.12),0 0 0 3px rgba(217,31,76,0.2),0 0 22px rgba(255,35,91,0.46)}58%{border-color:rgba(244,180,0,0.72);box-shadow:0 2px 9px rgba(32,33,36,0.12),0 0 0 2px rgba(249,115,22,0.14),0 0 14px rgba(249,115,22,0.22)}100%{border-color:rgba(217,31,76,0.38);box-shadow:0 1px 6px rgba(32,33,36,0.18),0 0 0 1px rgba(217,31,76,0.08),0 0 7px rgba(217,31,76,0.1)}}
@keyframes searchIconReveal{from{opacity:0;transform:scale(0.72) rotate(-18deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@media(prefers-reduced-motion:reduce){.search-page-field:focus-within{animation:none;border-color:rgba(217,31,76,0.38);box-shadow:0 1px 6px rgba(32,33,36,0.18),0 0 0 1px rgba(217,31,76,0.08)}.search-page-field:focus-within .search-page-icon{animation:none}}

/* Brand-color contour: brick red to golden orange. */
.search-page-field{border:2px solid transparent;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(90deg,#c84a36 0 50%,#f5a400 50% 100%) border-box}
.search-page-field:hover{border-color:transparent;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(90deg,#c84a36 0 50%,#f5a400 50% 100%) border-box}
.search-page-field:focus-within{border-color:transparent;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(90deg,#c84a36 0 50%,#f5a400 50% 100%) border-box;animation:searchBrandContourPulse 2.2s cubic-bezier(0.16,1,0.3,1) 1 forwards}
@keyframes searchBrandContourPulse{0%{box-shadow:0 1px 6px rgba(32,33,36,0.16),-8px 0 18px rgba(200,74,54,0),8px 0 18px rgba(245,164,0,0)}30%{box-shadow:0 3px 12px rgba(32,33,36,0.12),-7px 0 20px rgba(200,74,54,0.32),7px 0 20px rgba(245,164,0,0.3)}100%{box-shadow:0 1px 6px rgba(32,33,36,0.16),-3px 0 9px rgba(200,74,54,0.1),3px 0 9px rgba(245,164,0,0.09)}}
@media(prefers-reduced-motion:reduce){.search-page-field:focus-within{animation:none;box-shadow:0 1px 6px rgba(32,33,36,0.16)}}

/* Keep the brand contour exclusive to the active typing state. */
.search-page-field,.search-page-field:hover{border:1px solid #dfe1e5;background:#fff;box-shadow:0 1px 2px rgba(60,64,67,0.08)}
.search-page-field:hover{box-shadow:0 1px 6px rgba(32,33,36,0.2)}
.search-page-field:focus-within{border:2px solid transparent;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(90deg,#c84a36 0 50%,#f5a400 50% 100%) border-box;animation:searchBrandContourPulse 2.2s cubic-bezier(0.16,1,0.3,1) 1 forwards}
@media(prefers-reduced-motion:reduce){.search-page-field:focus-within{border:2px solid transparent;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(90deg,#c84a36 0 50%,#f5a400 50% 100%) border-box;animation:none}}

/* Animated neon sweep around the complete active contour. */
.search-page-field::after{content:"";position:absolute;z-index:3;inset:-2px;padding:2px;border-radius:inherit;background:linear-gradient(90deg,#c84a36,#f5a400,#c84a36,#f5a400);background-size:220% 100%;opacity:0;pointer-events:none;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;transition:opacity 180ms ease}
.search-page-field:focus-within{background:#fff;border-color:transparent;animation:searchBrandContourPulse 2.2s cubic-bezier(0.16,1,0.3,1) 1 forwards}
.search-page-field:focus-within::after{opacity:1;animation:searchContourNeonSweep 2.4s cubic-bezier(0.16,1,0.3,1) 1 forwards}
@keyframes searchContourNeonSweep{0%{opacity:0;background-position:100% 0;filter:drop-shadow(0 0 0 rgba(200,74,54,0))}18%{opacity:1;filter:drop-shadow(-2px 0 7px rgba(200,74,54,0.72)) drop-shadow(2px 0 7px rgba(245,164,0,0.66))}55%{background-position:25% 0;filter:drop-shadow(-2px 0 11px rgba(200,74,54,0.56)) drop-shadow(2px 0 11px rgba(245,164,0,0.52))}100%{opacity:1;background-position:0 0;filter:drop-shadow(-1px 0 4px rgba(200,74,54,0.24)) drop-shadow(1px 0 4px rgba(245,164,0,0.22))}}
@media(prefers-reduced-motion:reduce){.search-page-field:focus-within::after{animation:none;opacity:1;filter:none}}

/* Real most-searched products section. */
.most-searched-section{margin-top:44px;text-align:left}
.most-searched-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}
.most-searched-eyebrow{display:block;margin-bottom:4px;color:#c84a36;font-size:10px;font-weight:900;letter-spacing:0.12em;text-transform:uppercase}
.most-searched-heading h2{margin:0;color:#111827;font-size:24px;font-weight:900;letter-spacing:-0.035em}
.most-searched-live{display:inline-flex;align-items:center;gap:6px;color:#64748b;font-size:11px;font-weight:700}
.most-searched-live{display:none}
.most-searched-live>span{width:7px;height:7px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,0.1);animation:mostSearchedLive 2.4s ease-in-out infinite}
.most-searched-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.most-searched-card{position:relative;display:grid;grid-template-columns:28px 66px minmax(0,1fr);align-items:center;gap:11px;min-width:0;padding:12px;border:1px solid #e8eaed;border-radius:18px;background:#fff;text-align:left;cursor:pointer;box-shadow:0 3px 12px rgba(15,23,42,0.04);transition:border-color 180ms ease,box-shadow 220ms ease,transform 220ms cubic-bezier(0.16,1,0.3,1)}
.most-searched-card:hover{border-color:rgba(200,74,54,0.24);box-shadow:0 10px 24px rgba(15,23,42,0.08);transform:translateY(-2px)}
.most-searched-rank{align-self:start;padding-top:3px;color:#cbd5e1;font-size:11px;font-weight:900}
.most-searched-card:nth-child(-n+3) .most-searched-rank{color:#c84a36}
.most-searched-card>img{width:66px;height:66px;border-radius:14px;background:#f8fafc;object-fit:contain}
.most-searched-info{display:flex;min-width:0;flex-direction:column}
.most-searched-info small{margin-bottom:3px;color:#f59e0b;font-size:9px;font-weight:900;letter-spacing:0.06em;text-transform:uppercase}
.most-searched-info strong{overflow:hidden;color:#202124;font-size:13px;font-weight:800;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.most-searched-count{display:flex;align-items:center;gap:5px;margin-top:7px;color:#64748b;font-size:10px;font-weight:700}
.most-searched-count i{color:#16a34a;font-size:9px}
.most-searched-empty{grid-column:1/-1;padding:24px;border:1px dashed #dfe1e5;border-radius:18px;background:rgba(255,255,255,0.62);color:#64748b;font-size:13px;font-weight:700;text-align:center}
@keyframes mostSearchedLive{0%,100%{opacity:0.55;transform:scale(0.86)}50%{opacity:1;transform:scale(1)}}
@media(max-width:768px){.most-searched-section{margin-top:36px}.most-searched-heading h2{font-size:21px}.most-searched-products{grid-template-columns:1fr}.most-searched-card{grid-template-columns:26px 62px minmax(0,1fr)}.most-searched-card>img{width:62px;height:62px}}
@media(prefers-reduced-motion:reduce){.most-searched-live>span,.most-searched-card{animation:none;transition:none}}

/* Recommendations derived from shared user searches. */
.community-recommendations{margin-top:36px;padding:22px;border:1px solid rgba(226,232,240,0.82);border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,0.94),rgba(255,248,241,0.72));box-shadow:0 10px 30px rgba(15,23,42,0.05);text-align:left}
.community-recommendations-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.community-recommendations-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#c84a36,#f5a400);color:#fff;box-shadow:0 7px 16px rgba(200,74,54,0.18)}
.community-recommendations-eyebrow{display:block;margin-bottom:3px;color:#c84a36;font-size:9px;font-weight:900;letter-spacing:0.1em;text-transform:uppercase}
.community-recommendations-heading h2{margin:0;color:#111827;font-size:20px;font-weight:900;letter-spacing:-0.025em}
.community-recommendation-products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.community-recommendation-card{display:flex;min-width:0;flex-direction:column;align-items:flex-start;padding:12px;border:1px solid rgba(226,232,240,0.9);border-radius:18px;background:#fff;text-align:left;cursor:pointer;transition:border-color 180ms ease,box-shadow 220ms ease,transform 220ms cubic-bezier(0.16,1,0.3,1)}
.community-recommendation-card:hover{border-color:rgba(245,164,0,0.36);box-shadow:0 10px 22px rgba(15,23,42,0.08);transform:translateY(-2px)}
.community-recommendation-image{position:relative;display:block;width:100%;height:92px;margin-bottom:10px;border-radius:14px;background:#f8fafc;overflow:hidden}
.community-recommendation-image>img{width:100%;height:100%;object-fit:contain}
.community-recommendation-pulse{position:absolute;right:7px;bottom:7px;display:flex;align-items:center;justify-content:center;width:25px;height:25px;border:2px solid #fff;border-radius:50%;background:#f5a400;color:#fff;font-size:9px;box-shadow:0 4px 10px rgba(245,164,0,0.22)}
.community-recommendation-card>small{margin-bottom:4px;color:#c84a36;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:0.06em}
.community-recommendation-card>strong{display:-webkit-box;min-height:32px;overflow:hidden;color:#202124;font-size:13px;font-weight:800;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.community-recommendation-signal{margin-top:8px;color:#64748b;font-size:9px;font-weight:700}
.community-recommendations-empty{grid-column:1/-1;padding:22px;border:1px dashed #dfe1e5;border-radius:16px;color:#64748b;font-size:12px;font-weight:700;text-align:center}
@media(max-width:768px){.community-recommendations{margin-top:28px;padding:17px}.community-recommendations-heading h2{font-size:18px}.community-recommendation-products{display:flex;gap:11px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x mandatory;scrollbar-width:none}.community-recommendation-products::-webkit-scrollbar{display:none}.community-recommendation-card{flex:0 0 152px;scroll-snap-align:start}.community-recommendation-image{height:82px}}
@media(prefers-reduced-motion:reduce){.community-recommendation-card{transition:none}}

/* Recommendations promoted into the primary search flow. */
.search-inline-recommendations{margin-top:24px;text-align:left}
.search-inline-recommendations-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:12px}
.search-inline-recommendations-heading h2{margin:0;color:#202124;font-size:18px;font-weight:900;letter-spacing:-0.025em}
.search-inline-recommendations-heading>span{color:#64748b;font-size:10px;font-weight:700}
.community-recommendations{display:none}
.search-inline-recommendations .community-recommendation-products{grid-template-columns:repeat(3,minmax(0,1fr))}
.search-inline-recommendations .community-recommendation-card{padding:10px}
.search-inline-recommendations .community-recommendation-image{height:76px}
.search-inline-recommendations+.search-page-status{margin-top:18px}
@media(max-width:768px){.search-inline-recommendations{margin-top:20px}.search-inline-recommendations-heading{align-items:flex-start;flex-direction:column;gap:2px}.search-inline-recommendations-heading h2{font-size:17px}.search-inline-recommendations .community-recommendation-products{display:flex;grid-template-columns:none}.search-inline-recommendations .community-recommendation-card{flex-basis:142px}.search-inline-recommendations .community-recommendation-image{height:72px}}

/* Refined recommendation containers. */
.search-inline-recommendations .community-recommendation-products{gap:14px;padding:3px 2px 8px}
.search-inline-recommendations .community-recommendation-card{position:relative;isolation:isolate;min-height:205px;padding:12px;border:1px solid rgba(203,213,225,0.72);border-radius:22px;background:linear-gradient(160deg,#fff 0%,#fff 68%,#fffaf4 100%);box-shadow:0 7px 22px rgba(15,23,42,0.055),inset 0 1px 0 rgba(255,255,255,0.96);overflow:hidden}
.search-inline-recommendations .community-recommendation-card::before{content:"";position:absolute;z-index:-1;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#c84a36,#f5a400);opacity:0;transition:opacity 200ms ease}
.search-inline-recommendations .community-recommendation-card:hover::before,.search-inline-recommendations .community-recommendation-card:focus-visible::before{opacity:1}
.search-inline-recommendations .community-recommendation-card:hover{border-color:rgba(200,74,54,0.22);box-shadow:0 14px 30px rgba(15,23,42,0.09);transform:translateY(-3px)}
.search-inline-recommendations .community-recommendation-card:focus-visible{outline:0;border-color:rgba(200,74,54,0.36);box-shadow:0 0 0 3px rgba(200,74,54,0.1),0 12px 28px rgba(15,23,42,0.08)}
.search-inline-recommendations .community-recommendation-image{height:96px;margin-bottom:12px;border:1px solid rgba(241,245,249,0.94);border-radius:17px;background:linear-gradient(145deg,#f8fafc,#fff);overflow:hidden}
.search-inline-recommendations .community-recommendation-image>img{padding:7px;transition:transform 320ms cubic-bezier(0.16,1,0.3,1)}
.search-inline-recommendations .community-recommendation-card:hover .community-recommendation-image>img{transform:scale(1.045)}
.search-inline-recommendations .community-recommendation-pulse{right:8px;bottom:8px;width:27px;height:27px;border-width:2px;background:#f5a400;box-shadow:0 5px 12px rgba(245,164,0,0.24)}
.search-inline-recommendations .community-recommendation-card>small{display:inline-flex;width:auto;max-width:100%;margin-bottom:6px;padding:4px 7px;border-radius:999px;background:rgba(200,74,54,0.08);color:#c84a36;font-size:8px;line-height:1;white-space:nowrap}
.search-inline-recommendations .community-recommendation-card>strong{min-height:35px;color:#1f2937;font-size:14px;line-height:1.25}
.search-inline-recommendations .community-recommendation-signal{display:flex;align-items:center;min-height:26px;margin-top:auto;padding-top:9px;color:#64748b;font-size:9px;line-height:1.25;white-space:normal}
@media(max-width:768px){.search-inline-recommendations .community-recommendation-products{margin-right:-20px;padding-right:20px}.search-inline-recommendations .community-recommendation-card{flex:0 0 174px;min-height:215px}.search-inline-recommendations .community-recommendation-image{height:100px}}
@media(prefers-reduced-motion:reduce){.search-inline-recommendations .community-recommendation-card::before,.search-inline-recommendations .community-recommendation-image>img{transition:none}}

/* Reflow panels to prioritize live results while searching. */
.search-page-panel{display:flex;flex-direction:column}
.search-page-field{order:1}
.search-page-suggestions{order:2}
.search-inline-recommendations{order:3}
.search-page-status{order:4}
.search-page-results{order:5}
.search-page>h2,.search-page>p{overflow:hidden;max-height:70px;opacity:1;transform:translateY(0);transition:max-height 320ms cubic-bezier(0.16,1,0.3,1),margin 320ms cubic-bezier(0.16,1,0.3,1),opacity 180ms ease,transform 280ms ease}
.search-page.has-active-search>h2,.search-page.has-active-search>p{max-height:0;margin-top:0!important;margin-bottom:0!important;opacity:0;transform:translateY(-8px)}
.search-page.has-active-search .search-page-status{order:2;margin:18px 2px 12px}
.search-page.has-active-search .search-page-results{order:3;animation:activeSearchResultsIn 360ms cubic-bezier(0.16,1,0.3,1) both}
.search-page.has-active-search .search-page-suggestions{order:4;margin-top:24px}
.search-page.has-active-search .search-inline-recommendations{order:5;margin-top:22px;padding-top:20px;border-top:1px solid #e8eaed}
.search-page.has-active-search .search-inline-recommendations-heading h2{font-size:16px}
.search-page.has-active-search .community-recommendation-products{display:flex;grid-template-columns:none;gap:10px;overflow-x:auto;padding:2px 2px 9px;scroll-snap-type:x mandatory;scrollbar-width:none}
.search-page.has-active-search .community-recommendation-products::-webkit-scrollbar{display:none}
.search-page.has-active-search .community-recommendation-card{flex:0 0 154px;min-height:184px;padding:10px;scroll-snap-align:start}
.search-page.has-active-search .community-recommendation-image{height:76px;margin-bottom:9px}
.search-page.has-active-search .community-recommendation-card>strong{font-size:12px;min-height:30px}
.search-page.has-active-search .community-recommendation-signal{font-size:8px;padding-top:6px}
@keyframes activeSearchResultsIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:768px){.search-page.has-active-search{padding-top:18px!important}.search-page.has-active-search .search-page-field{position:sticky;top:8px;z-index:90}.search-page.has-active-search .search-page-results{grid-template-columns:1fr}.search-page.has-active-search .search-inline-recommendations{margin-right:-20px;padding-right:20px}.search-page.has-active-search .community-recommendation-card{flex-basis:146px}}
@media(prefers-reduced-motion:reduce){.search-page>h2,.search-page>p,.search-page.has-active-search .search-page-results{animation:none;transition:none}}

/* Polished staged reveal for live search results. */
.search-page-results .search-result-card{opacity:0;transform:translateY(16px) scale(0.975);filter:blur(2px);animation:none}
.search-page-results.is-revealing .search-result-card{animation:searchCardReveal 520ms cubic-bezier(0.16,1,0.3,1) both;animation-delay:var(--result-delay)}
.search-page-results .search-result-card>img{opacity:0;transform:scale(0.9)}
.search-page-results.is-revealing .search-result-card>img{animation:searchImageReveal 440ms cubic-bezier(0.16,1,0.3,1) both;animation-delay:calc(90ms + var(--result-delay))}
.search-page-results .search-result-info{opacity:0;transform:translateX(-5px)}
.search-page-results.is-revealing .search-result-info{animation:searchInfoReveal 400ms ease-out both;animation-delay:calc(80ms + var(--result-delay))}
.search-page-results .search-result-add{opacity:0;transform:scale(0.72)}
.search-page-results.is-revealing .search-result-add{animation:searchActionReveal 420ms cubic-bezier(0.34,1.56,0.64,1) both;animation-delay:calc(150ms + var(--result-delay))}
@keyframes searchCardReveal{from{opacity:0;transform:translateY(16px) scale(0.975);filter:blur(2px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes searchImageReveal{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}
@keyframes searchInfoReveal{from{opacity:0;transform:translateX(-5px)}to{opacity:1;transform:translateX(0)}}
@keyframes searchActionReveal{from{opacity:0;transform:scale(0.72)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.search-page-results .search-result-card,.search-page-results .search-result-card>img,.search-page-results .search-result-info,.search-page-results .search-result-add{opacity:1;transform:none;filter:none;animation:none}}

/* Faster, cleaner live-result containers. */
.search-page-results{gap:11px}
.search-page-results .search-result-card{grid-template-columns:72px minmax(0,1fr) 40px;min-height:98px;padding:12px 14px 12px 12px;border:1px solid rgba(226,232,240,0.9);border-radius:19px;background:linear-gradient(150deg,#fff 0%,#fff 78%,#fffaf6 100%);box-shadow:0 5px 16px rgba(15,23,42,0.045);overflow:hidden}
.search-page-results .search-result-card::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:3px;border-radius:0 999px 999px 0;background:linear-gradient(#c84a36,#f5a400);opacity:0;transform:scaleY(0.5);transition:opacity 180ms ease,transform 240ms cubic-bezier(0.16,1,0.3,1)}
.search-page-results .search-result-card:hover::before,.search-page-results .search-result-card:focus-within::before{opacity:1;transform:scaleY(1)}
.search-page-results .search-result-card:hover{border-color:rgba(200,74,54,0.2);box-shadow:0 10px 24px rgba(15,23,42,0.075);transform:translateY(-2px)}
.search-page-results .search-result-card>img{width:72px;height:72px;padding:5px;border:1px solid #f1f5f9;border-radius:14px;background:#f8fafc}
.search-page-results .search-result-category{margin-bottom:3px;font-size:9px;letter-spacing:0.07em}
.search-page-results .search-result-info h3{margin-bottom:5px;font-size:13px;line-height:1.22}
.search-page-results .search-result-info strong{font-size:14px}
.search-page-results .search-result-add{width:38px;height:38px;border-radius:13px;box-shadow:0 6px 13px rgba(217,31,76,0.17)}
.search-page-results.is-revealing .search-result-card{animation-duration:340ms;animation-delay:var(--result-delay)}
.search-page-results.is-revealing .search-result-card>img{animation-duration:290ms;animation-delay:calc(45ms + var(--result-delay))}
.search-page-results.is-revealing .search-result-info{animation-duration:280ms;animation-delay:calc(35ms + var(--result-delay))}
.search-page-results.is-revealing .search-result-add{animation-duration:300ms;animation-delay:calc(70ms + var(--result-delay))}
@media(min-width:769px){.search-page-results{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){.search-page-results .search-result-card{grid-template-columns:68px minmax(0,1fr) 38px;min-height:92px;padding:10px 12px 10px 10px}.search-page-results .search-result-card>img{width:68px;height:68px}.search-page-results .search-result-add{width:36px;height:36px}}
@media(prefers-reduced-motion:reduce){.search-page-results .search-result-card::before{transition:none}}

/* Expandable quantity stepper for search result cards. */
.search-page-results .search-result-card{grid-template-columns:72px minmax(0,1fr) auto}
.search-page-results .search-result-card.has-cart-item{border-color:rgba(200,74,54,0.26);background:linear-gradient(150deg,#fff 0%,#fff 70%,#fff7ef 100%);box-shadow:0 8px 20px rgba(200,74,54,0.07)}
.search-page-results .search-result-card.has-cart-item::before{opacity:1;transform:scaleY(1)}
.search-quantity-control{display:grid;grid-template-columns:34px 28px 34px;align-items:center;justify-content:end;width:96px;height:38px;padding:2px;border:1px solid rgba(217,31,76,0.18);border-radius:14px;background:#fff5f7;box-shadow:0 6px 15px rgba(217,31,76,0.1);overflow:hidden;transition:width 300ms cubic-bezier(0.16,1,0.3,1),background 200ms ease,box-shadow 200ms ease}
.search-quantity-control.is-empty{grid-template-columns:0 0 34px;width:38px;background:#d91f4c;box-shadow:0 7px 16px rgba(217,31,76,0.2)}
.search-quantity-button{display:flex;align-items:center;justify-content:center;width:34px;height:32px;padding:0;border:0;border-radius:11px;background:transparent;color:#d91f4c;font-size:12px;cursor:pointer;transition:background 160ms ease,color 160ms ease,transform 140ms ease,opacity 160ms ease}
.search-quantity-button:hover{background:rgba(217,31,76,0.1)}
.search-quantity-button:active{transform:scale(0.86)}
.search-quantity-button:focus-visible{outline:2px solid rgba(217,31,76,0.32);outline-offset:1px}
.search-quantity-minus:disabled{cursor:default;opacity:0;pointer-events:none}
.search-quantity-value{color:#202124;font-size:12px;font-weight:900;text-align:center;font-variant-numeric:tabular-nums;opacity:1;transition:opacity 160ms ease}
.search-quantity-control.is-empty .search-quantity-minus,.search-quantity-control.is-empty .search-quantity-value{opacity:0;visibility:hidden}
.search-quantity-control.is-empty .search-quantity-plus{color:#fff}
.search-quantity-control.is-empty .search-quantity-plus:hover{background:rgba(255,255,255,0.14)}
.search-page-results .search-quantity-control{opacity:0;transform:scale(0.78)}
.search-page-results.is-revealing .search-quantity-control{animation:searchActionReveal 300ms cubic-bezier(0.34,1.56,0.64,1) both;animation-delay:calc(70ms + var(--result-delay))}
@media(max-width:768px){.search-page-results .search-result-card{grid-template-columns:68px minmax(0,1fr) auto}.search-quantity-control{grid-template-columns:31px 24px 31px;width:88px;height:36px}.search-quantity-control.is-empty{grid-template-columns:0 0 31px;width:36px}.search-quantity-button{width:31px;height:30px}.search-quantity-value{font-size:11px}}
@media(prefers-reduced-motion:reduce){.search-quantity-control,.search-quantity-button,.search-quantity-value{transition:none}.search-page-results .search-quantity-control{opacity:1;transform:none;animation:none}}

/* Cart confirmation feedback after adding an item. */
#mobile-cart-btn.cart-item-added,#central-cart.cart-item-added{animation:cartAddedBounce 680ms cubic-bezier(0.16,1,0.3,1) both}
#mobile-cart-btn.cart-item-added>i,#central-cart.cart-item-added>i{animation:cartIconSwing 680ms cubic-bezier(0.16,1,0.3,1) both}
#mobile-cart-btn.cart-item-added .badge,#central-cart.cart-item-added .badge{animation:cartBadgePulse 620ms cubic-bezier(0.34,1.56,0.64,1) both}
@keyframes cartAddedBounce{0%,100%{transform:translateY(0) scale(1)}24%{transform:translateY(-5px) scale(1.08)}48%{transform:translateY(1px) scale(0.97)}72%{transform:translateY(-2px) scale(1.025)}}
@keyframes cartIconSwing{0%,100%{transform:rotate(0)}28%{transform:rotate(-12deg)}56%{transform:rotate(9deg)}78%{transform:rotate(-3deg)}}
@keyframes cartBadgePulse{0%{transform:scale(0.55);opacity:0.45}45%{transform:scale(1.35);opacity:1}100%{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){#mobile-cart-btn.cart-item-added,#central-cart.cart-item-added,#mobile-cart-btn.cart-item-added>i,#central-cart.cart-item-added>i,#mobile-cart-btn.cart-item-added .badge,#central-cart.cart-item-added .badge{animation:none}}

/* Persistent empty/full cart states with enhanced confirmation motion. */
#mobile-cart-btn,#central-cart{transition:color 240ms ease,background 240ms ease,border-color 240ms ease,box-shadow 280ms ease}
#mobile-cart-btn:not(.has-items),#central-cart:not(.has-items){color:#111827;background:#fff;border-color:#e5e7eb;box-shadow:0 2px 8px rgba(15,23,42,0.05)}
#mobile-cart-btn:not(.has-items)>i,#central-cart:not(.has-items)>i{color:#111827}
#mobile-cart-btn:not(.has-items) .badge,#central-cart:not(.has-items) .badge{display:none!important}
#mobile-cart-btn.has-items,#central-cart.has-items{color:#4a3200;background:linear-gradient(145deg,#ffd84d,#f4b400);border-color:#f4b400;box-shadow:0 7px 18px rgba(244,180,0,0.22),inset 0 1px 0 rgba(255,255,255,0.5)}
#mobile-cart-btn.has-items>i,#central-cart.has-items>i{color:#332300}
#mobile-cart-btn.has-items .badge,#central-cart.has-items .badge{background:#c84a36;color:#fff;border-color:#fff4c2;box-shadow:0 3px 8px rgba(200,74,54,0.25)}
#mobile-cart-btn.has-items.cart-item-added,#central-cart.has-items.cart-item-added{animation:cartAddedPremium 820ms cubic-bezier(0.16,1,0.3,1) both}
#mobile-cart-btn.has-items.cart-item-added::after,#central-cart.has-items.cart-item-added::after{content:"";position:absolute;inset:-5px;border:2px solid rgba(244,180,0,0.72);border-radius:inherit;pointer-events:none;animation:cartGoldenRing 760ms ease-out both}
#mobile-cart-btn.has-items.cart-item-added>i,#central-cart.has-items.cart-item-added>i{animation:cartIconPremium 760ms cubic-bezier(0.16,1,0.3,1) both}
@keyframes cartAddedPremium{0%,100%{transform:translateY(0) scale(1)}22%{transform:translateY(-7px) scale(1.1)}48%{transform:translateY(2px) scale(0.96)}70%{transform:translateY(-2px) scale(1.035)}}
@keyframes cartIconPremium{0%,100%{transform:rotate(0) translateX(0)}25%{transform:rotate(-14deg) translateX(-1px)}50%{transform:rotate(11deg) translateX(1px)}74%{transform:rotate(-4deg) translateX(0)}}
@keyframes cartGoldenRing{0%{opacity:0;transform:scale(0.74)}35%{opacity:1}100%{opacity:0;transform:scale(1.3)}}
@media(prefers-reduced-motion:reduce){#mobile-cart-btn,#central-cart{transition:none}#mobile-cart-btn.has-items.cart-item-added,#central-cart.has-items.cart-item-added,#mobile-cart-btn.has-items.cart-item-added::after,#central-cart.has-items.cart-item-added::after,#mobile-cart-btn.has-items.cart-item-added>i,#central-cart.has-items.cart-item-added>i{animation:none}}

/* Refined red cart state with a clear white-number badge. */
#mobile-cart-btn.has-items,#central-cart.has-items{color:#d91f4c;background:linear-gradient(145deg,#fff7f9,#ffe4eb);border:1px solid rgba(217,31,76,0.24);box-shadow:0 7px 18px rgba(217,31,76,0.13),inset 0 1px 0 rgba(255,255,255,0.88)}
#mobile-cart-btn.has-items>i,#central-cart.has-items>i{color:#d91f4c;filter:drop-shadow(0 2px 3px rgba(217,31,76,0.13))}
#mobile-cart-btn.has-items .badge,#central-cart.has-items .badge{display:flex!important;align-items:center;justify-content:center;top:-5px;right:-7px;min-width:23px;width:auto;height:23px;padding:0 6px;border:2px solid #fff;border-radius:9px;background:#d91f4c;color:#fff;font-size:11px;font-weight:900;line-height:1;box-shadow:0 5px 11px rgba(217,31,76,0.28);font-variant-numeric:tabular-nums}
#mobile-cart-btn.has-items.cart-item-added::after,#central-cart.has-items.cart-item-added::after{border-color:rgba(217,31,76,0.54);animation-name:cartRedRing}
#mobile-cart-btn.has-items.cart-item-added .badge,#central-cart.has-items.cart-item-added .badge{animation:cartRedBadgePulse 680ms cubic-bezier(0.34,1.56,0.64,1) both}
@keyframes cartRedRing{0%{opacity:0;transform:scale(0.74)}35%{opacity:1}100%{opacity:0;transform:scale(1.3)}}
@keyframes cartRedBadgePulse{0%{opacity:0.55;transform:translateY(3px) scale(0.55)}48%{opacity:1;transform:translateY(-2px) scale(1.32)}100%{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){#mobile-cart-btn.has-items.cart-item-added .badge,#central-cart.has-items.cart-item-added .badge{animation:none}}

/* Premium polish for the populated cart. */
#mobile-cart-btn.has-items,#central-cart.has-items{isolation:isolate;color:#b8143c;background:radial-gradient(circle at 30% 18%,rgba(255,255,255,0.98),transparent 38%),linear-gradient(145deg,#fffafb,#ffe9ef);border:1px solid rgba(217,31,76,0.22);box-shadow:0 10px 24px rgba(120,17,48,0.12),0 2px 6px rgba(15,23,42,0.05),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(217,31,76,0.08)}
#mobile-cart-btn.has-items::before,#central-cart.has-items::before{content:"";position:absolute;z-index:0;inset:3px;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,0.72),rgba(255,255,255,0));pointer-events:none}
#mobile-cart-btn.has-items>i,#central-cart.has-items>i{position:relative;z-index:1}
#mobile-cart-btn.has-items .badge,#central-cart.has-items .badge{z-index:2}
#mobile-cart-btn.has-items>i,#central-cart.has-items>i{color:#c91846;font-size:0.94em;filter:drop-shadow(0 2px 2px rgba(120,17,48,0.12));transition:color 200ms ease,transform 240ms cubic-bezier(0.16,1,0.3,1)}
#mobile-cart-btn.has-items:hover,#central-cart.has-items:hover{border-color:rgba(217,31,76,0.34);box-shadow:0 13px 28px rgba(120,17,48,0.15),0 3px 7px rgba(15,23,42,0.05),inset 0 1px 0 #fff}
#mobile-cart-btn.has-items .badge,#central-cart.has-items .badge{top:-4px;right:-6px;min-width:22px;height:22px;padding:0 6px;border:2px solid #fff;border-radius:8px;background:linear-gradient(145deg,#ef2958,#b90f39);font-size:10px;letter-spacing:-0.01em;box-shadow:0 6px 13px rgba(185,15,57,0.3),inset 0 1px 0 rgba(255,255,255,0.25)}
#mobile-cart-btn.has-items.cart-item-added,#central-cart.has-items.cart-item-added{animation:cartPremiumConfirm 720ms cubic-bezier(0.16,1,0.3,1) both}
#mobile-cart-btn.has-items.cart-item-added>i,#central-cart.has-items.cart-item-added>i{animation:cartPremiumIconConfirm 640ms cubic-bezier(0.16,1,0.3,1) both}
#mobile-cart-btn.has-items.cart-item-added .badge,#central-cart.has-items.cart-item-added .badge{animation:cartPremiumBadgeConfirm 620ms cubic-bezier(0.34,1.56,0.64,1) both}
@keyframes cartPremiumConfirm{0%,100%{transform:translateY(0) scale(1)}30%{transform:translateY(-4px) scale(1.055)}62%{transform:translateY(1px) scale(0.985)}}
@keyframes cartPremiumIconConfirm{0%,100%{transform:rotate(0)}35%{transform:rotate(-8deg)}68%{transform:rotate(5deg)}}
@keyframes cartPremiumBadgeConfirm{0%{opacity:0.45;transform:translateY(4px) scale(0.68)}52%{opacity:1;transform:translateY(-1px) scale(1.2)}100%{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){#mobile-cart-btn.has-items,#central-cart.has-items,#mobile-cart-btn.has-items>i,#central-cart.has-items>i{transition:none}#mobile-cart-btn.has-items.cart-item-added,#central-cart.has-items.cart-item-added,#mobile-cart-btn.has-items.cart-item-added>i,#central-cart.has-items.cart-item-added>i,#mobile-cart-btn.has-items.cart-item-added .badge,#central-cart.has-items.cart-item-added .badge{animation:none}}

/* iOS-style cart surface and notification badge. */
#mobile-cart-btn,#central-cart,#mobile-cart-btn.has-items,#central-cart.has-items{isolation:isolate;color:#111827;background:rgba(255,255,255,0.82);border:1px solid rgba(209,213,219,0.72);border-radius:50%;box-shadow:0 5px 14px rgba(15,23,42,0.09),inset 0 1px 0 rgba(255,255,255,0.96);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%)}
#mobile-cart-btn.has-items::before,#central-cart.has-items::before{display:none}
#mobile-cart-btn:not(.has-items)>i,#central-cart:not(.has-items)>i{color:#111827;filter:none}
#mobile-cart-btn.has-items>i,#central-cart.has-items>i{color:#ff2d55;font-size:1em;filter:none}
#mobile-cart-btn.has-items:hover,#central-cart.has-items:hover{border-color:rgba(209,213,219,0.86);background:rgba(255,255,255,0.92);box-shadow:0 7px 18px rgba(15,23,42,0.11),inset 0 1px 0 #fff}
#mobile-cart-btn.has-items .badge,#central-cart.has-items .badge{top:-4px;right:-5px;min-width:20px;width:auto;height:20px;padding:0 5px;border:2px solid #fff;border-radius:999px;background:#ff3b30;color:#fff;font:800 10px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;letter-spacing:-0.02em;box-shadow:0 3px 8px rgba(255,59,48,0.28)}
#mobile-cart-btn.has-items.cart-item-added,#central-cart.has-items.cart-item-added{animation:iosCartSpring 620ms cubic-bezier(0.34,1.56,0.64,1) both}
#mobile-cart-btn.has-items.cart-item-added::after,#central-cart.has-items.cart-item-added::after{display:none}
#mobile-cart-btn.has-items.cart-item-added>i,#central-cart.has-items.cart-item-added>i{animation:iosCartIconSpring 560ms cubic-bezier(0.34,1.56,0.64,1) both}
#mobile-cart-btn.has-items.cart-item-added .badge,#central-cart.has-items.cart-item-added .badge{animation:iosBadgePop 520ms cubic-bezier(0.34,1.56,0.64,1) both}
@keyframes iosCartSpring{0%,100%{transform:scale(1)}36%{transform:scale(1.12)}66%{transform:scale(0.97)}}
@keyframes iosCartIconSpring{0%,100%{transform:rotate(0)}38%{transform:rotate(-7deg) scale(1.08)}70%{transform:rotate(3deg)}}
@keyframes iosBadgePop{0%{opacity:0.35;transform:scale(0.45)}58%{opacity:1;transform:scale(1.24)}100%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){#mobile-cart-btn,#central-cart,#mobile-cart-btn.has-items,#central-cart.has-items{transition:none}#mobile-cart-btn.has-items.cart-item-added,#central-cart.has-items.cart-item-added,#mobile-cart-btn.has-items.cart-item-added>i,#central-cart.has-items.cart-item-added>i,#mobile-cart-btn.has-items.cart-item-added .badge,#central-cart.has-items.cart-item-added .badge{animation:none}}

/* Flat iOS cart variant without 3D depth. */
#mobile-cart-btn,#central-cart,#mobile-cart-btn.has-items,#central-cart.has-items{background:#fff;border:1px solid #dfe1e5;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
#mobile-cart-btn.has-items:hover,#central-cart.has-items:hover{background:#fff;border-color:#cbd5e1;box-shadow:none}
#mobile-cart-btn.has-items>i,#central-cart.has-items>i{filter:none}
#mobile-cart-btn.has-items .badge,#central-cart.has-items .badge{background:#ff3b30;box-shadow:none}
#mobile-cart-btn.has-items.cart-item-added,#central-cart.has-items.cart-item-added{animation:flatCartConfirm 360ms ease-out both}
#mobile-cart-btn.has-items.cart-item-added>i,#central-cart.has-items.cart-item-added>i{animation:none}
#mobile-cart-btn.has-items.cart-item-added .badge,#central-cart.has-items.cart-item-added .badge{animation:flatBadgeConfirm 360ms ease-out both}
@keyframes flatCartConfirm{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes flatBadgeConfirm{0%{opacity:0.5;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){#mobile-cart-btn.has-items.cart-item-added,#central-cart.has-items.cart-item-added,#mobile-cart-btn.has-items.cart-item-added .badge,#central-cart.has-items.cart-item-added .badge{animation:none}}

/* Exact cart-icon centering with the count floating above. */
#mobile-cart-btn,#central-cart{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;padding:0}
#mobile-cart-btn>i,#central-cart>i,#mobile-cart-btn.has-items>i,#central-cart.has-items>i{position:relative;inset:auto;margin:0;line-height:1;transform-origin:center}
#mobile-cart-btn.has-items .badge,#central-cart.has-items .badge{position:absolute;z-index:3;top:-7px;right:-6px;left:auto;bottom:auto;margin:0;transform-origin:center}

/* Flat iOS cart refined to match the compact reference. */
#mobile-cart-btn,#central-cart{width:46px;height:46px;flex-basis:46px;border:1.5px solid #dfe1e5;background:#fff;box-shadow:none}
#mobile-cart-btn.has-items,#central-cart.has-items{border-color:#dfe1e5;background:#fff;box-shadow:none}
#mobile-cart-btn.has-items>i,#central-cart.has-items>i{color:#ff375f;font-size:20px;filter:none}
#mobile-cart-btn.has-items .badge,#central-cart.has-items .badge{top:-7px;right:-7px;display:flex!important;align-items:center;justify-content:center;min-width:23px;width:23px;height:23px;padding:0;border:2px solid #fff;border-radius:50%;background:#ff3b30;color:#fff;font:900 11px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;box-shadow:none}
#mobile-cart-btn.has-items.cart-item-added,#central-cart.has-items.cart-item-added{animation:iosFlatCartAdd 560ms cubic-bezier(0.34,1.56,0.64,1) both}
#mobile-cart-btn.has-items.cart-item-added>i,#central-cart.has-items.cart-item-added>i{animation:iosFlatCartMove 520ms cubic-bezier(0.34,1.56,0.64,1) both}
#mobile-cart-btn.has-items.cart-item-added .badge,#central-cart.has-items.cart-item-added .badge{animation:iosFlatBadgeAdd 520ms cubic-bezier(0.34,1.56,0.64,1) both}
#mobile-cart-btn.has-items.cart-item-added::after,#central-cart.has-items.cart-item-added::after{display:block;content:"";position:absolute;inset:-1.5px;border:1.5px solid #ff375f;border-radius:50%;pointer-events:none;animation:iosFlatCartRing 540ms ease-out both}
@keyframes iosFlatCartAdd{0%,100%{transform:scale(1)}38%{transform:scale(1.09)}68%{transform:scale(0.98)}}
@keyframes iosFlatCartMove{0%,100%{transform:translateX(0) rotate(0)}32%{transform:translateX(-2px) rotate(-7deg)}62%{transform:translateX(2px) rotate(5deg)}}
@keyframes iosFlatBadgeAdd{0%{opacity:0;transform:translateY(4px) scale(0.45)}58%{opacity:1;transform:translateY(-1px) scale(1.22)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes iosFlatCartRing{0%{opacity:0.5;transform:scale(0.92)}100%{opacity:0;transform:scale(1.18)}}
@media(prefers-reduced-motion:reduce){#mobile-cart-btn.has-items.cart-item-added,#central-cart.has-items.cart-item-added,#mobile-cart-btn.has-items.cart-item-added>i,#central-cart.has-items.cart-item-added>i,#mobile-cart-btn.has-items.cart-item-added .badge,#central-cart.has-items.cart-item-added .badge,#mobile-cart-btn.has-items.cart-item-added::after,#central-cart.has-items.cart-item-added::after{animation:none}}

/* Flat iOS feedback when cart quantity decreases. */
#mobile-cart-btn.cart-item-removed,#central-cart.cart-item-removed{animation:iosFlatCartRemove 500ms cubic-bezier(0.16,1,0.3,1) both}
#mobile-cart-btn.cart-item-removed>i,#central-cart.cart-item-removed>i{animation:iosFlatCartMoveBack 460ms cubic-bezier(0.16,1,0.3,1) both}
#mobile-cart-btn.cart-item-removed .badge,#central-cart.cart-item-removed .badge{animation:iosFlatBadgeRemove 430ms cubic-bezier(0.16,1,0.3,1) both}
@keyframes iosFlatCartRemove{0%,100%{transform:scale(1)}34%{transform:scale(0.9)}68%{transform:scale(1.025)}}
@keyframes iosFlatCartMoveBack{0%,100%{transform:translateX(0) rotate(0)}38%{transform:translateX(-3px) rotate(-5deg)}72%{transform:translateX(1px) rotate(2deg)}}
@keyframes iosFlatBadgeRemove{0%{opacity:1;transform:scale(1)}42%{opacity:0.55;transform:scale(0.68)}100%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){#mobile-cart-btn.cart-item-removed,#central-cart.cart-item-removed,#mobile-cart-btn.cart-item-removed>i,#central-cart.cart-item-removed>i,#mobile-cart-btn.cart-item-removed .badge,#central-cart.cart-item-removed .badge{animation:none}}

/* Search suggestions powered by shared community activity. */
.search-page-suggestions button.is-community-suggestion{position:relative;max-width:190px;padding-left:28px;overflow:hidden;border-color:rgba(200,74,54,0.2);background:#fff;color:#374151;text-overflow:ellipsis;white-space:nowrap}
.search-page-suggestions button.is-community-suggestion::before{content:"";position:absolute;left:12px;top:50%;width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,#c84a36,#f5a400);transform:translateY(-50%)}
.search-page-suggestions button.is-community-suggestion:hover{border-color:rgba(200,74,54,0.38);background:#fff8f5;color:#c84a36}
@media(max-width:768px){.search-page-suggestions button.is-community-suggestion{max-width:160px}}

/* Product preview availability details. */
.search-result-card[role="button"]{cursor:pointer}
.search-result-card[role="button"]:focus-visible{outline:0;border-color:rgba(200,74,54,0.38);box-shadow:0 0 0 3px rgba(200,74,54,0.1),0 9px 22px rgba(15,23,42,0.07)}
.modal-availability{display:grid;gap:8px;margin:12px 0 14px;padding:11px;border:1px solid #e8eaed;border-radius:14px;background:#f8fafc}
.modal-stock-status,.modal-branch-availability{display:flex;align-items:flex-start;gap:8px;color:#64748b;font-size:12px;font-weight:700;line-height:1.35}
.modal-stock-status i,.modal-branch-availability i{width:15px;margin-top:1px;text-align:center}
.modal-stock-status.is-available{color:#15803d}
.modal-stock-status.is-out{color:#dc2626}
.modal-stock-status.is-unknown{color:#64748b}
.modal-branch-availability i{color:#c84a36}
#modal-add:disabled{cursor:not-allowed;background:#e5e7eb;color:#94a3b8;opacity:1}
@media(max-width:600px){.modal-availability{margin:10px 0 12px;padding:10px}.modal-stock-status,.modal-branch-availability{font-size:11px}}

/* Refined responsive product-detail experience. */
body.product-modal-open{overflow:hidden}
#product-modal{z-index:700;padding:20px;background:rgba(15,23,42,0.42);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
#product-modal:not(.full-image) .modal-card{position:relative;display:grid;grid-template-columns:minmax(280px,0.9fr) minmax(340px,1.1fr);gap:0;width:min(94vw,880px);max-width:880px;max-height:min(86vh,720px);border:1px solid rgba(255,255,255,0.82);border-radius:28px;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,0.24);overflow:hidden;transform:none}
#product-modal.show:not(.full-image) .modal-card{animation:productDetailOpen 360ms cubic-bezier(0.16,1,0.3,1) both}
#product-modal:not(.full-image) #modal-img{align-self:stretch;width:100%;height:100%;min-height:420px;max-height:none;padding:38px;border:0;border-right:1px solid #eef2f7;border-radius:0;background:linear-gradient(145deg,#f8fafc,#fff);object-fit:contain}
#product-modal:not(.full-image) .modal-body{display:flex;min-width:0;flex-direction:column;padding:30px;overflow-y:auto;overscroll-behavior:contain;text-align:left}
#product-modal:not(.full-image) .modal-close{position:absolute;z-index:5;top:16px;right:16px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid #e5e7eb;border-radius:50%;background:rgba(255,255,255,0.94);color:#111827;font-size:17px;box-shadow:none;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background 160ms ease,color 160ms ease,transform 160ms ease}
#product-modal:not(.full-image) .modal-close:hover{background:#f1f5f9;color:#d91f4c}
#product-modal:not(.full-image) .modal-close:active{transform:scale(0.92)}
#product-modal:not(.full-image) .modal-tags{margin:0 52px 12px 0;gap:6px}
#product-modal:not(.full-image) .modal-tag{padding:5px 9px;border-radius:999px;font-size:9px;letter-spacing:0.06em}
#product-modal:not(.full-image) #modal-title{margin:0 46px 9px 0;color:#111827;font-size:clamp(22px,2.4vw,30px);font-weight:900;line-height:1.12;letter-spacing:-0.035em}
#product-modal:not(.full-image) #modal-desc{margin:0 0 15px;color:#64748b;font-size:14px;line-height:1.55}
#product-modal:not(.full-image) .product-stats{display:flex;order:0;flex-wrap:wrap;gap:12px;margin:0 0 15px;padding:10px 12px;border:1px solid #eef2f7;border-radius:13px;background:#f8fafc;font-size:12px}
#product-modal:not(.full-image) .rating-widget{flex-wrap:wrap;gap:4px}
#product-modal:not(.full-image) .star-btn{font-size:14px}
#product-modal:not(.full-image) .modal-row{display:flex;align-items:baseline;gap:7px;margin:0 0 4px}
#product-modal:not(.full-image) #modal-price{color:#0b552b;font-size:27px;font-weight:900;letter-spacing:-0.035em}
#product-modal:not(.full-image) #modal-unit{color:#64748b;font-size:12px;font-weight:700}
#product-modal:not(.full-image) .modal-availability{margin:11px 0 16px;border-color:#e5e7eb;background:#fbfcfd}
#product-modal:not(.full-image) #modal-add{position:sticky;bottom:-1px;width:100%;min-height:48px;margin-top:auto;border:0;border-radius:14px;background:#c84a36;color:#fff;font-size:14px;font-weight:900;box-shadow:0 -8px 18px rgba(255,255,255,0.94);cursor:pointer;transition:background 180ms ease,transform 160ms ease}
#product-modal:not(.full-image) #modal-add:hover{background:#ad3828}
#product-modal:not(.full-image) #modal-add:active{transform:scale(0.985)}
#product-modal:not(.full-image) #modal-add:disabled{background:#e5e7eb;color:#94a3b8;box-shadow:0 -8px 18px rgba(255,255,255,0.94)}
@keyframes productDetailOpen{from{opacity:0;transform:translateY(14px) scale(0.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:767px){#product-modal{align-items:flex-end;padding:12px 8px 0}#product-modal:not(.full-image) .modal-card{display:flex;width:100%;max-width:560px;max-height:calc(100dvh - 14px);border-radius:26px 26px 0 0;box-shadow:0 -18px 52px rgba(15,23,42,0.2)}#product-modal:not(.full-image) .modal-card::before{content:"";position:absolute;z-index:6;top:8px;left:50%;width:34px;height:4px;border-radius:999px;background:#d1d5db;transform:translateX(-50%)}#product-modal:not(.full-image) #modal-img{flex:0 0 210px;width:100%;height:210px;min-height:210px;padding:28px 52px 18px;border:0;border-bottom:1px solid #eef2f7;background:#f8fafc}#product-modal:not(.full-image) .modal-body{flex:1;padding:20px 18px calc(14px + env(safe-area-inset-bottom))}#product-modal:not(.full-image) .modal-close{top:16px;right:14px;width:38px;height:38px}#product-modal:not(.full-image) #modal-title{margin-right:34px;font-size:22px}#product-modal:not(.full-image) #modal-desc{font-size:13px;line-height:1.48}#product-modal:not(.full-image) #modal-price{font-size:24px}#product-modal:not(.full-image) #modal-add{bottom:calc(-1px - env(safe-area-inset-bottom));min-height:50px}}
@media(max-width:390px){#product-modal:not(.full-image) #modal-img{flex-basis:176px;height:176px;min-height:176px;padding:24px 58px 14px}#product-modal:not(.full-image) .modal-body{padding-top:16px}#product-modal:not(.full-image) #modal-desc{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:4}}
@media(prefers-reduced-motion:reduce){#product-modal.show:not(.full-image) .modal-card{animation:none}#product-modal:not(.full-image) .modal-close,#product-modal:not(.full-image) #modal-add{transition:none}}

/* Adaptive product image gallery. */
#product-modal.full-image .modal-gallery-count,#product-modal.full-image .modal-gallery-nav,#product-modal.full-image .modal-gallery-thumbs{display:none!important}
.modal-gallery-count{position:absolute;z-index:4;top:18px;left:18px;padding:6px 9px;border:1px solid #e5e7eb;border-radius:999px;background:rgba(255,255,255,0.9);color:#475569;font-size:10px;font-weight:900;line-height:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.modal-gallery-nav{position:absolute;z-index:4;top:50%;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid #e5e7eb;border-radius:50%;background:rgba(255,255,255,0.92);color:#334155;font-size:12px;box-shadow:0 4px 12px rgba(15,23,42,0.08);cursor:pointer;transform:translateY(-50%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:color 160ms ease,background 160ms ease,transform 160ms ease}
.modal-gallery-nav:hover{background:#fff;color:#d91f4c}
.modal-gallery-nav:active{transform:translateY(-50%) scale(0.9)}
.modal-gallery-prev{left:16px}
.modal-gallery-next{left:calc(45% - 52px)}
.modal-gallery-thumbs{position:absolute;z-index:4;left:16px;bottom:18px;display:flex;width:calc(45% - 32px);gap:7px;padding:6px;overflow-x:auto;border:1px solid rgba(226,232,240,0.9);border-radius:15px;background:rgba(255,255,255,0.9);scrollbar-width:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.modal-gallery-thumbs::-webkit-scrollbar{display:none}
.modal-gallery-thumb{flex:0 0 44px;width:44px;height:44px;padding:3px;border:1px solid transparent;border-radius:10px;background:#f8fafc;cursor:pointer;transition:border-color 160ms ease,background 160ms ease,transform 160ms ease}
.modal-gallery-thumb>img{width:100%;height:100%;border-radius:7px;object-fit:contain}
.modal-gallery-thumb.active{border-color:#d91f4c;background:#fff}
.modal-gallery-thumb:active{transform:scale(0.92)}
#product-modal.has-product-gallery:not(.full-image) #modal-img{padding-bottom:88px;transition:opacity 160ms ease}
@media(max-width:767px){.modal-gallery-count{top:18px;left:14px}.modal-gallery-prev{left:14px;top:112px}.modal-gallery-next{left:auto;right:14px;top:112px}.modal-gallery-thumbs{left:50%;bottom:auto;top:158px;width:auto;max-width:calc(100% - 120px);padding:4px;transform:translateX(-50%)}.modal-gallery-thumb{flex-basis:38px;width:38px;height:38px}#product-modal.has-product-gallery:not(.full-image) #modal-img{padding-bottom:64px}}
@media(max-width:390px){.modal-gallery-prev,.modal-gallery-next{top:94px}.modal-gallery-thumbs{top:130px}.modal-gallery-thumb{flex-basis:34px;width:34px;height:34px}}
@media(prefers-reduced-motion:reduce){.modal-gallery-nav,.modal-gallery-thumb,#product-modal.has-product-gallery:not(.full-image) #modal-img{transition:none}}

/* Product-detail recommendations: incremental extension of the existing modal. */
.modal-recommendations{margin:20px 0 6px;padding-top:18px;border-top:1px solid #edf1f5}
.modal-recommendations[hidden]{display:none!important}
.modal-recommendations-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}
.modal-recommendations-kicker{display:block;margin-bottom:3px;color:#d34a35;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.modal-recommendations-heading h4{margin:0;color:#111827;font-size:17px;font-weight:900;line-height:1.15;letter-spacing:-.025em}
.modal-recommendations-count{flex:none;color:#94a3b8;font-size:10px;font-weight:800}
.modal-recommendations-heading h4{display:flex;align-items:center;gap:9px;min-height:21px}
#modal-recommendations-title-text{display:inline-block;transform-origin:left center}
#modal-recommendations-title-text.is-changing{animation:recommendationTitleChange 680ms cubic-bezier(.16,1,.3,1) both}
#modal-recommendations-title-text.is-searching{color:#111827;background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:currentColor;animation:recommendationSearchingColor 2.4s ease-in-out infinite}
.modal-recommendations-loader{position:relative;display:inline-flex;align-items:center;gap:5px;height:18px;padding:0 3px}
.modal-recommendations-loader[hidden]{display:none!important}
.modal-recommendations-loader::before{content:"";position:absolute;inset:1px -3px;border-radius:999px;background:linear-gradient(90deg,rgba(219,68,55,.08),rgba(244,180,0,.08),rgba(249,115,22,.08));opacity:.45;animation:recommendationAiBreathe 2.4s ease-in-out infinite}
.modal-recommendations-dot{position:relative;z-index:1;display:block;width:7px;height:7px;border-radius:50%;transform-origin:center bottom;animation:recommendationAiWave 1.65s cubic-bezier(.45,.05,.2,1) infinite}
.modal-recommendations-dot-red{background:#db4437}
.modal-recommendations-dot-yellow{background:#f4b400;animation-delay:150ms}
.modal-recommendations-dot-orange{background:#f97316;animation-delay:300ms}
.modal-recommendations-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.modal-recommendation-card{position:relative;display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;min-height:82px;padding:9px 38px 9px 8px;border:1px solid #e8edf3;border-radius:16px;background:linear-gradient(145deg,#fff,#fbfcfe);box-shadow:0 6px 18px rgba(15,23,42,.045);cursor:pointer;outline:none;transition:border-color 170ms ease,box-shadow 170ms ease,transform 170ms ease}
.modal-recommendation-card:hover,.modal-recommendation-card:focus-visible{border-color:#f1b7ad;box-shadow:0 9px 24px rgba(15,23,42,.08);transform:translateY(-2px)}
.modal-recommendation-card>img{width:54px;height:58px;padding:4px;border-radius:12px;background:#f8fafc;object-fit:contain}
.modal-recommendation-info{display:flex;min-width:0;flex-direction:column;padding-left:8px}
.modal-recommendation-category{margin-bottom:3px;color:#d34a35;font-size:8px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.modal-recommendation-info strong{display:-webkit-box;overflow:hidden;color:#172033;font-size:11px;font-weight:850;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.modal-recommendation-price{margin-top:5px;color:#0b6535;font-size:12px;font-weight:900}
.modal-recommendation-add{position:absolute;right:8px;bottom:9px;display:flex;align-items:center;justify-content:center;width:27px;height:27px;padding:0;border:0;border-radius:9px;background:#e11d48;color:#fff;font-size:10px;cursor:pointer;transition:background 160ms ease,transform 160ms ease}
.modal-recommendation-add:hover{background:#be123c}
.modal-recommendation-add:active{transform:scale(.9)}
.modal-recommendation-add:disabled{background:#e5e7eb;color:#94a3b8;cursor:not-allowed}
@media(max-width:767px){.modal-recommendations{margin-top:16px;padding-top:15px}.modal-recommendations-list{display:flex;gap:10px;padding:1px 1px 8px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}.modal-recommendations-list::-webkit-scrollbar{display:none}.modal-recommendation-card{flex:0 0 210px;scroll-snap-align:start}}
@media(max-width:390px){.modal-recommendation-card{flex-basis:196px}.modal-recommendations-heading h4{font-size:16px}}
@media(prefers-reduced-motion:reduce){.modal-recommendation-card,.modal-recommendation-add{transition:none}}

/* Premium product-modal cart control and intelligent recommendation rotation. */
#product-modal:not(.full-image) #modal-add{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(135deg,#e11d48 0%,#c9143d 58%,#b70d32 100%);box-shadow:0 10px 24px rgba(190,18,60,.22);letter-spacing:-.01em}
#product-modal:not(.full-image) #modal-add::before{content:"";position:absolute;inset:1px;border:1px solid rgba(255,255,255,.2);border-radius:13px;pointer-events:none}
#product-modal:not(.full-image) #modal-add:hover{background:linear-gradient(135deg,#ef244f,#c9143d);box-shadow:0 13px 28px rgba(190,18,60,.28);transform:translateY(-1px)}
#product-modal:not(.full-image) #modal-add[hidden]{display:none!important}
.modal-quantity-control{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;min-height:54px;border:1px solid rgba(225,29,72,.22);border-radius:16px;background:linear-gradient(135deg,#fff7f9,#fff);box-shadow:0 10px 24px rgba(190,18,60,.1);overflow:hidden}
.modal-quantity-control[hidden]{display:none!important}
.modal-quantity-button{display:flex;align-items:center;justify-content:center;width:100%;height:54px;padding:0;border:0;background:transparent;color:#d71948;font-size:15px;cursor:pointer;transition:background 160ms ease,transform 160ms ease}
.modal-quantity-button:hover{background:rgba(225,29,72,.08)}
.modal-quantity-button:active{transform:scale(.9)}
.modal-quantity-summary{display:flex;align-items:center;justify-content:center;gap:8px;height:34px;border-right:1px solid #f6cbd5;border-left:1px solid #f6cbd5}
.modal-quantity-summary span{color:#be123c;font-size:20px;font-weight:950;font-variant-numeric:tabular-nums}
.modal-quantity-summary small{color:#64748b;font-size:10px;font-weight:800}
.modal-recommendations.is-refreshing .modal-recommendations-heading{animation:recommendationHeadingIn 460ms cubic-bezier(.16,1,.3,1) both}
.modal-recommendations.is-refreshing .modal-recommendation-card{animation:recommendationCardIn 560ms cubic-bezier(.16,1,.3,1) both;will-change:opacity,transform,filter}
.modal-recommendations.is-refreshing .modal-recommendation-card:nth-child(2){animation-delay:70ms}
.modal-recommendations.is-refreshing .modal-recommendation-card:nth-child(3){animation-delay:140ms}
.modal-recommendations.is-refreshing .modal-recommendation-card:nth-child(4){animation-delay:210ms}
@keyframes recommendationHeadingIn{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes recommendationTitleChange{0%{opacity:0;filter:blur(3px);transform:translateY(7px)}55%{opacity:1;filter:blur(0);transform:translateY(-1px)}100%{opacity:1;filter:blur(0);transform:translateY(0)}}
@keyframes recommendationSearchingColor{0%,100%{color:#111827}42%{color:#c9363f}68%{color:#e56b18}}
@keyframes recommendationAiWave{0%,62%,100%{opacity:.72;transform:translateY(0) scale(1)}18%{opacity:1;transform:translateY(-6px) scale(1.08)}34%{opacity:.9;transform:translateY(1px) scale(.96)}46%{opacity:.78;transform:translateY(0) scale(1)}}
@keyframes recommendationAiBreathe{0%,100%{opacity:.22;transform:scaleX(.86)}50%{opacity:.58;transform:scaleX(1)}}
@keyframes recommendationCardIn{0%{opacity:0;filter:blur(4px);transform:translateY(10px)}55%{opacity:1;filter:blur(0);transform:translateY(-1px)}100%{opacity:1;filter:blur(0);transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.modal-recommendations.is-refreshing .modal-recommendations-heading,.modal-recommendations.is-refreshing .modal-recommendation-card,#modal-recommendations-title-text.is-changing,#modal-recommendations-title-text.is-searching,.modal-recommendations-dot,.modal-recommendations-loader::before{animation:none}.modal-quantity-button{transition:none}}

/* Premium information hierarchy inside the existing product modal. */
#product-modal:not(.full-image) #modal-title{order:0;margin-bottom:10px}
#product-modal:not(.full-image) .modal-row{order:1;margin:0 0 14px;padding-bottom:14px;border-bottom:1px solid #edf1f5}
#product-modal:not(.full-image) .modal-published-info-heading{display:flex;order:3;align-items:center;gap:10px;padding:13px 14px 10px;border:1px solid #e5eaf0;border-bottom:0;border-radius:18px 18px 0 0;background:linear-gradient(145deg,#fff,#f8fafc)}
.modal-published-info-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:#fff0f3;color:#d71948;font-size:12px}
.modal-published-info-heading>div{display:flex;flex-direction:column;gap:1px}
.modal-published-info-heading small{color:#94a3b8;font-size:7px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.modal-published-info-heading strong{color:#172033;font-size:13px;font-weight:900}
#product-modal:not(.full-image) #modal-desc{display:-webkit-box;order:4;margin:0 0 5px;padding:0 14px 12px;border:1px solid #e5eaf0;border-top:0;border-radius:0 0 18px 18px;background:#fbfcfd;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}
#product-modal:not(.full-image) #modal-desc.is-expanded{display:block;overflow:visible;-webkit-line-clamp:unset}
#product-modal:not(.full-image) .modal-desc-toggle{display:inline-flex;order:5;align-items:center;align-self:flex-start;gap:6px;margin:0 0 18px;padding:3px 2px;border:0;background:transparent;color:#d71948;font-size:10px;font-weight:900;cursor:pointer}
#product-modal:not(.full-image) .modal-desc-toggle[hidden]{display:none!important}
#product-modal:not(.full-image) .modal-desc-toggle i{font-size:8px;transition:transform 180ms ease}
#product-modal:not(.full-image) .modal-desc-toggle.is-expanded i{transform:rotate(180deg)}
#product-modal:not(.full-image) .modal-availability{order:2;gap:0;margin:0 0 18px;padding:0;border:1px solid #e5eaf0;border-radius:18px;background:linear-gradient(145deg,#fff,#f8fafc);box-shadow:0 10px 24px rgba(15,23,42,.065);overflow:hidden}
#product-modal:not(.full-image) .modal-availability-heading{display:none}
#product-modal:not(.full-image) .modal-recommendations{order:6;margin-top:0;margin-bottom:18px;padding-top:0;border-top:0}
#product-modal:not(.full-image) .modal-tags{order:7;margin:0 0 10px}
#product-modal:not(.full-image) .product-stats{order:8}
#product-modal:not(.full-image) #modal-add,#product-modal:not(.full-image) .modal-quantity-control{order:9}
.modal-availability-heading{display:flex;align-items:center;gap:10px;padding:13px 14px;border-bottom:1px solid #edf1f5;background:rgba(248,250,252,.76)}
.modal-availability-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:11px;background:#fff0f3;color:#d71948;font-size:13px}
.modal-availability-heading>div{display:flex;flex-direction:column;gap:1px}
.modal-availability-heading small{color:#94a3b8;font-size:8px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.modal-availability-heading strong{color:#172033;font-size:13px;font-weight:900}
#product-modal:not(.full-image) .modal-stock-status,#product-modal:not(.full-image) .modal-branch-availability{position:relative;align-items:center;min-height:52px;padding:17px 14px 8px 48px;color:#475569;font-size:11px}
#product-modal:not(.full-image) .modal-stock-status{border-bottom:1px solid #edf1f5}
#product-modal:not(.full-image) .modal-stock-status::before,#product-modal:not(.full-image) .modal-branch-availability::before{position:absolute;top:7px;left:48px;color:#94a3b8;font-size:7px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
#product-modal:not(.full-image) .modal-stock-status::before{content:"Stock"}
#product-modal:not(.full-image) .modal-branch-availability::before{content:"Sucursales disponibles"}
#product-modal:not(.full-image) .modal-stock-status>i,#product-modal:not(.full-image) .modal-branch-availability>i{position:absolute;left:14px;display:flex;align-items:center;justify-content:center;width:25px;height:25px;margin:0;border-radius:8px;background:#f1f5f9;color:#64748b}
#product-modal:not(.full-image) .modal-stock-status.is-available>i{background:#ecfdf3;color:#15803d}
#product-modal:not(.full-image) .modal-stock-status.is-out>i{background:#fef2f2;color:#dc2626}
#product-modal:not(.full-image) .modal-branch-availability>i{background:#fff4ed;color:#d34a35}
@media(max-width:767px){#product-modal:not(.full-image) .modal-row{margin-bottom:12px;padding-bottom:12px}.modal-availability-heading{padding:11px 12px}#product-modal:not(.full-image) .modal-stock-status,#product-modal:not(.full-image) .modal-branch-availability{min-height:49px;padding-left:45px}#product-modal:not(.full-image) .modal-stock-status::before,#product-modal:not(.full-image) .modal-branch-availability::before{left:45px}#product-modal:not(.full-image) .modal-stock-status>i,#product-modal:not(.full-image) .modal-branch-availability>i{left:12px}}
@media(prefers-reduced-motion:reduce){#product-modal:not(.full-image) .modal-desc-toggle i{transition:none}}

/* Premium quick rating beside product price. */
.modal-open-rating{display:grid;grid-template-columns:repeat(3,max-content);align-items:center;gap:12px;margin-left:10px;padding:2px;border:0;border-radius:0;background:transparent;color:#475569;cursor:pointer;transition:color 170ms ease,transform 170ms ease}
.modal-open-rating:hover{background:transparent;color:#f5b301}
.modal-open-rating:focus-visible{color:#f5b301;outline:1px dashed #f5b301;outline-offset:3px}
.modal-open-rating:active{transform:scale(.96)}
.modal-detail-stat{display:inline-flex;align-items:center;gap:4px;color:#475569;font-size:10px;line-height:1}
.modal-detail-stat .stat-icon{display:block;flex:0 0 15px;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.modal-detail-stat strong{color:#334155;font-size:10px;font-weight:900;font-variant-numeric:tabular-nums}
.modal-detail-cart .stat-icon{color:#e11d48}
.modal-detail-views .stat-icon{color:#f43f5e}
.modal-open-rating-score .stat-icon{color:#f5b301;fill:currentColor;stroke:none}
.modal-detail-actions{display:inline-flex;align-items:center;gap:5px;margin-left:auto}
.modal-detail-action{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid #e5eaf0;border-radius:10px;background:#fff;color:#64748b;cursor:pointer;transition:color 160ms ease,border-color 160ms ease,background 160ms ease,transform 160ms ease}
.modal-detail-action svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.modal-detail-action:hover,.modal-detail-action:focus-visible{border-color:#f3b5c4;background:#fff5f7;color:#d71948;outline:none}
.modal-detail-action:active{transform:scale(.9)}
.modal-detail-action:disabled{border-color:#e5e7eb;background:#f8fafc;color:#cbd5e1;cursor:not-allowed;opacity:.75}
.product-rating-dialog{position:fixed;z-index:820;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.42);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.product-rating-dialog[hidden]{display:none!important}
.product-rating-card{position:relative;width:min(92vw,390px);padding:28px 24px 25px;border:1px solid rgba(255,255,255,.85);border-radius:26px;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.24);text-align:center;animation:productRatingOpen 340ms cubic-bezier(.16,1,.3,1) both}
.product-rating-close{position:absolute;top:14px;right:14px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid #e5e7eb;border-radius:50%;background:#fff;color:#172033;cursor:pointer}
.product-rating-logo{display:block!important;width:160px!important;height:40px!important;margin:0 auto 17px;object-fit:contain!important}
.product-rating-kicker{display:block;margin-bottom:5px;color:#d34a35;font-size:9px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.product-rating-card h3{margin:0;color:#111827;font-size:24px;font-weight:950;letter-spacing:-.035em}
.product-rating-card p{margin:7px 0 20px;color:#64748b;font-size:13px;font-weight:700}
.product-rating-stars{display:flex;justify-content:center;gap:7px;margin-bottom:15px}
.product-rating-stars button{display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid #e5eaf0;border-radius:15px;background:#f8fafc;color:#cbd5e1;font-size:24px;cursor:pointer;transition:color 160ms ease,background 160ms ease,border-color 160ms ease,transform 160ms ease}
.product-rating-stars button:hover,.product-rating-stars button:focus-visible,.product-rating-stars button.is-selected{border-color:#f6c453;background:#fffbeb;color:#f5b301;outline:none}
.product-rating-stars button:active{transform:scale(.9)}
.product-rating-stars button:disabled{cursor:wait;opacity:.72}
.product-rating-feedback{display:block;min-height:18px;color:#64748b;font-size:11px;font-weight:800}
@keyframes productRatingOpen{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:390px){.modal-open-rating{gap:7px;margin-left:6px;padding:2px}.modal-detail-stat{gap:3px}.modal-detail-stat .stat-icon{flex-basis:13px;width:13px;height:13px}.modal-detail-stat strong{font-size:9px}.modal-detail-actions{gap:3px}.modal-detail-action{width:29px;height:29px;border-radius:9px}.product-rating-card{padding:25px 16px 22px}.product-rating-stars{gap:5px}.product-rating-stars button{width:43px;height:43px;border-radius:13px;font-size:21px}}
@media(prefers-reduced-motion:reduce){.modal-open-rating,.modal-detail-action,.product-rating-stars button{transition:none}.product-rating-card{animation:none}}

/* The price-row rating is now the primary product rating entry point. */
#product-modal:not(.full-image) .product-stats .rating-widget{display:none}
#product-modal:not(.full-image) .product-stats{display:none}

/* Premium desktop composition for the existing product-detail panel. */
@media(min-width:1024px){
  #product-modal{padding:32px;background:rgba(15,23,42,.38);-webkit-backdrop-filter:blur(16px) saturate(115%);backdrop-filter:blur(16px) saturate(115%)}
  #product-modal:not(.full-image) .modal-card{grid-template-columns:minmax(420px,.92fr) minmax(500px,1.08fr);width:min(92vw,1180px);max-width:1180px;max-height:min(88vh,800px);border:1px solid rgba(255,255,255,.92);border-radius:32px;background:#fff;box-shadow:0 34px 90px rgba(15,23,42,.28),0 2px 0 rgba(255,255,255,.9) inset}
  #product-modal:not(.full-image) #modal-img{min-height:620px;padding:64px 58px 110px;border-right:1px solid #e8edf3;background:radial-gradient(circle at 50% 42%,#fff 0 26%,#f8fafc 62%,#f1f5f9 100%)}
  #product-modal:not(.full-image) .modal-body{padding:42px 42px 34px;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
  #product-modal:not(.full-image) .modal-body::-webkit-scrollbar{width:7px}
  #product-modal:not(.full-image) .modal-body::-webkit-scrollbar-track{background:transparent}
  #product-modal:not(.full-image) .modal-body::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:#cbd5e1;background-clip:padding-box}
  #product-modal:not(.full-image) .modal-close{top:22px;right:22px;width:44px;height:44px;border-color:#e2e8f0;background:rgba(255,255,255,.88);font-size:18px;box-shadow:0 8px 22px rgba(15,23,42,.08)}
  #product-modal:not(.full-image) #modal-title{max-width:calc(100% - 52px);margin-bottom:14px;font-size:clamp(29px,2.1vw,36px);line-height:1.08}
  #product-modal:not(.full-image) .modal-row{min-height:62px;margin-bottom:20px;padding-bottom:18px}
  #product-modal:not(.full-image) #modal-price{font-size:32px}
  #product-modal:not(.full-image) #modal-unit{font-size:13px}
  .modal-open-rating{margin-left:14px}
  .modal-open-rating-stars{gap:4px;font-size:14px}
  .modal-open-rating-score strong{font-size:11px}
  #product-modal:not(.full-image) .modal-published-info-heading{padding:15px 17px 12px;border-color:#e2e8f0;border-radius:20px 20px 0 0;background:linear-gradient(135deg,#fff,#f8fafc)}
  .modal-published-info-icon{width:36px;height:36px;border-radius:12px;font-size:13px}
  .modal-published-info-heading small{font-size:8px}
  .modal-published-info-heading strong{font-size:15px}
  #product-modal:not(.full-image) #modal-desc{padding:2px 17px 11px;border-color:#e2e8f0;font-size:14px;line-height:1.58}
  #product-modal:not(.full-image) .modal-desc-toggle{padding:4px 17px 12px;border-color:#e2e8f0;font-size:11px}
  #product-modal:not(.full-image) .modal-availability{margin-bottom:22px;border-color:#e2e8f0;border-radius:20px;box-shadow:0 14px 30px rgba(15,23,42,.07)}
  #product-modal:not(.full-image) .modal-stock-status,#product-modal:not(.full-image) .modal-branch-availability{min-height:58px;padding:19px 17px 9px 54px;font-size:12px}
  #product-modal:not(.full-image) .modal-stock-status::before,#product-modal:not(.full-image) .modal-branch-availability::before{top:8px;left:54px;font-size:8px}
  #product-modal:not(.full-image) .modal-stock-status>i,#product-modal:not(.full-image) .modal-branch-availability>i{left:17px;width:28px;height:28px;border-radius:9px}
  #product-modal:not(.full-image) #modal-add,#product-modal:not(.full-image) .modal-quantity-control{order:6;flex:none;margin:0 0 24px}
  #product-modal:not(.full-image) #modal-add:not([hidden]){display:flex;align-items:center;justify-content:center}
  #product-modal:not(.full-image) .modal-quantity-control:not([hidden]){display:grid}
  #product-modal:not(.full-image) #modal-add.is-visible{display:flex!important;visibility:visible!important;opacity:1!important}
  #product-modal:not(.full-image) .modal-quantity-control.is-visible{display:grid!important;visibility:visible!important;opacity:1!important}
  #product-modal:not(.full-image) .modal-recommendations{order:7;margin-bottom:22px}
  #product-modal:not(.full-image) .modal-tags{order:8}
  #product-modal:not(.full-image) .product-stats{order:9}
  .modal-recommendations-heading{margin-bottom:14px}
  .modal-recommendations-heading h4{font-size:19px}
  .modal-recommendations-list{gap:11px}
  .modal-recommendation-card{grid-template-columns:64px minmax(0,1fr);min-height:94px;padding:10px 42px 10px 9px;border-radius:18px;box-shadow:0 9px 24px rgba(15,23,42,.055)}
  .modal-recommendation-card>img{width:60px;height:66px;border-radius:14px}
  .modal-recommendation-info strong{font-size:12px}
  .modal-recommendation-price{font-size:13px}
  .modal-recommendation-add{right:10px;bottom:11px;width:30px;height:30px;border-radius:10px}
  #product-modal:not(.full-image) #modal-add{min-height:54px;border-radius:16px;font-size:15px}
  .modal-gallery-count{top:24px;left:24px;padding:7px 10px}
  .modal-gallery-prev{left:24px}
  .modal-gallery-next{left:calc(46% - 60px)}
  .modal-gallery-thumbs{left:24px;bottom:24px;width:calc(46% - 48px);padding:8px;border-radius:18px;box-shadow:0 10px 28px rgba(15,23,42,.08)}
  .modal-gallery-thumb{flex-basis:52px;width:52px;height:52px;border-radius:12px}
}

/* Uniform premium product cards across catalog sections. */
.products-grid{align-items:stretch}
.products-grid .product-card{box-sizing:border-box;height:372px;min-height:372px;max-height:372px;padding:18px;border:1px solid #edf1f5;border-radius:24px;background:linear-gradient(155deg,#fff 0%,#fff 76%,#fffaf8 100%);box-shadow:0 10px 28px rgba(15,23,42,.06);overflow:hidden;justify-content:flex-start;transition:border-color 180ms ease,box-shadow 180ms ease,transform 180ms ease}
.products-grid .product-card:hover{border-color:#f1d0c8;box-shadow:0 16px 34px rgba(15,23,42,.09);transform:translateY(-3px)}
.products-grid .product-existencia{flex:0 0 18px;height:18px;margin:0 0 7px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px!important;line-height:18px}
.products-grid .product-title{display:-webkit-box!important;flex:0 0 38px;height:38px;min-height:38px;max-height:38px;margin:0 0 5px!important;overflow:hidden!important;color:#111827!important;font-size:15px!important;font-weight:850!important;line-height:19px!important;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.products-grid .product-price{flex:0 0 20px;height:20px;margin:0!important;color:#64748b!important;font-size:13px!important;font-weight:750!important;line-height:20px}
.products-grid .product-sucursales{flex:0 0 18px;height:18px;margin:3px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.products-grid .product-image-frame{display:flex;flex:0 0 132px;align-items:center;justify-content:center;width:100%;height:132px;margin:9px 0!important;border-radius:18px;background:#f8fafc;overflow:hidden}
.products-grid .product-image-frame>img{width:100%!important;height:120px!important;margin:0!important;padding:7px;object-fit:contain!important}
.products-grid .product-card>div:last-child{display:flex;min-height:77px;flex:1;flex-direction:column;justify-content:flex-end;margin-top:0!important}
.products-grid .product-stats-card{display:grid;height:24px;min-height:24px;margin:0 0 9px!important;grid-template-columns:repeat(3,max-content);align-items:center;justify-content:space-between;gap:0;overflow:hidden}
.products-grid .stat-badge{display:inline-flex;max-width:100%;align-items:center;gap:5px;padding:0;border:0;border-radius:0;background:transparent;overflow:hidden;line-height:1;text-overflow:ellipsis;white-space:nowrap}
.products-grid .stat-icon{display:block;flex:0 0 16px;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.products-grid .stat-badge-cart,.products-grid .stat-badge-views,.products-grid .stat-badge-rating{color:#475569;font-weight:800}
.products-grid .stat-badge-cart .stat-icon{color:#e11d48}
.products-grid .stat-badge-views .stat-icon{color:#f43f5e}
.products-grid .stat-badge-rating .stat-icon{color:#f5b301}
.products-grid .stat-icon-star{fill:currentColor;stroke:none}
.products-grid .stat-badge-rating span{color:#475569;font-weight:850;font-variant-numeric:tabular-nums}
.products-grid .product-bottom-row{display:flex!important;flex:0 0 34px;align-items:center!important;justify-content:space-between!important;width:100%;min-width:0;gap:8px}
.products-grid .card-qty-control{display:grid!important;grid-template-columns:28px 22px 28px;flex:0 0 78px;height:32px;border:1px solid #edf1f5;border-radius:12px!important;background:#f8fafc!important;overflow:hidden}
.products-grid .card-qty-control button{width:28px!important;height:32px!important;padding:0;border:0;background:transparent;color:#334155;font-size:14px;cursor:pointer}
.products-grid .card-qty-control button:disabled{color:#b8c0cc;cursor:default;opacity:.7}
.products-grid .card-qty-control .c-val{display:flex;width:22px!important;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
.products-grid .btn-card-add{position:static!important;display:flex!important;min-width:0;width:auto!important;height:34px!important;flex:1 1 auto;align-items:center;justify-content:center;gap:6px;padding:0 13px!important;border:0!important;border-radius:12px!important;background:linear-gradient(135deg,#e11d48,#c8103d)!important;color:#fff!important;box-shadow:0 7px 16px rgba(200,16,61,.22);white-space:nowrap;transition:background 170ms ease,box-shadow 170ms ease,transform 150ms ease}
.products-grid .btn-card-add:hover{background:linear-gradient(135deg,#ef244f,#b90d37)!important;box-shadow:0 9px 20px rgba(200,16,61,.28);transform:translateY(-1px)}
.products-grid .btn-card-add:active{transform:scale(.96)}
.products-grid .btn-card-add i,.products-grid .btn-card-add span{display:inline!important;color:#fff!important;font-size:12px!important;font-weight:850!important}
@media(max-width:767px){.products-grid .product-card{height:342px;min-height:342px;max-height:342px;padding:14px;border-radius:20px}.products-grid .product-image-frame{flex-basis:112px;height:112px}.products-grid .product-image-frame>img{height:104px!important}.products-grid .btn-card-add{flex:0 0 36px;width:36px!important;padding:0!important}.products-grid .btn-card-add span{display:none!important}.products-grid .product-card>div:last-child{min-height:70px}}
@media(max-width:767px){.products-grid .product-stats-card{font-size:10px!important}.products-grid .stat-badge{gap:3px}.products-grid .stat-icon{flex-basis:14px;width:14px;height:14px}}
@media(prefers-reduced-motion:reduce){.products-grid .product-card,.products-grid .btn-card-add{transition:none}}

/* Full category view opened from "Ver todo". */
body.category-full-view{background:#f8fafc}
body.category-full-view #promo-carousel,body.category-full-view #categories-row{display:none!important}
body.category-full-view .content{padding-top:0}
body.category-full-view #products-container{min-height:100vh;padding:22px clamp(18px,4vw,54px) 130px}
body.category-full-view #products-container>.section{max-width:1320px;margin:0 auto 32px;padding:0}
body.category-full-view #products-container>.section:last-child{margin-bottom:0}
body.category-full-view .category-full-global-head{max-width:1320px;margin:0 auto 24px}
body.category-full-view .category-full-head{position:sticky;z-index:25;top:0;display:grid;grid-template-columns:48px minmax(180px,1fr) minmax(280px,380px);align-items:center;gap:14px;margin:0 0 24px;padding:18px 0 16px;background:rgba(248,250,252,.92);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.category-full-back{display:flex;align-items:center;justify-content:center;width:46px;height:46px;padding:0;border:1px solid #e2e8f0;border-radius:15px;background:#fff;color:#172033;box-shadow:0 6px 18px rgba(15,23,42,.07);cursor:pointer;transition:border-color 170ms ease,color 170ms ease,transform 150ms ease}
.category-full-back svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.category-full-back:hover{border-color:#f1b7c5;color:#d71948}
.category-full-back:active{transform:scale(.94)}
.category-full-title{min-width:0}
.category-full-title>span{display:block;margin-bottom:2px;color:#d34a35;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.category-full-title h3{margin:0;color:#111827;font-size:clamp(25px,3vw,38px);font-weight:950;line-height:1.05;letter-spacing:-.04em}
.category-full-title small{display:block;margin-top:4px;color:#64748b;font-size:11px;font-weight:750}
.category-full-title small.is-updating{animation:categoryCountUpdate 280ms cubic-bezier(.2,.8,.2,1)}
.category-full-search{position:relative;display:flex;align-items:center;min-width:0;height:58px;padding:0 10px 0 16px;border:1px solid #dfe1e5;border-radius:999px;background:#fff;box-shadow:0 1px 2px rgba(60,64,67,.08);transition:border-color 180ms ease,box-shadow 220ms ease,background 180ms ease}
.category-full-search:hover{box-shadow:0 1px 6px rgba(32,33,36,.2)}
.category-full-search::after{content:"";position:absolute;z-index:3;inset:-2px;padding:2px;border-radius:inherit;background:linear-gradient(90deg,#c84a36,#f5a400,#c84a36,#f5a400);background-size:220% 100%;opacity:0;pointer-events:none;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;transition:opacity 180ms ease}
.category-full-search:focus-within{border:2px solid transparent;background:#fff;box-shadow:0 1px 6px rgba(32,33,36,.18);animation:searchBrandContourPulse 2.2s cubic-bezier(.16,1,.3,1) 1 forwards}
.category-full-search:focus-within::after{opacity:1;animation:searchContourNeonSweep 2.4s cubic-bezier(.16,1,.3,1) 1 forwards}
.category-full-search-icon{position:absolute;left:16px;z-index:4;flex:0 0 21px;width:21px;height:21px;fill:none;stroke:#d91f4c;stroke-width:2;stroke-linecap:round;opacity:0;pointer-events:none;transform:scale(.72) rotate(-18deg);transition:opacity 180ms ease,transform 360ms cubic-bezier(.16,1,.3,1)}
.category-full-search-wave{position:relative;z-index:4;flex:0 0 38px;margin-right:2px;opacity:1;transform:scale(1);transition:opacity 180ms ease,transform 360ms cubic-bezier(.16,1,.3,1)}
.category-full-search:focus-within .category-full-search-wave{opacity:0;transform:scale(.62) rotate(12deg)}
.category-full-search:focus-within .category-full-search-icon{opacity:1;transform:scale(1) rotate(0);animation:searchIconReveal 420ms cubic-bezier(.16,1,.3,1) 1 both}
.category-full-search input{position:relative;z-index:4;min-width:0;width:100%;height:100%;padding:0 13px;border:0;outline:0;background:transparent;color:#202124;font-family:Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.4;-webkit-appearance:none;appearance:none}
.category-full-search input::placeholder{color:#8b96a8;font-weight:650}
.category-full-search input::-webkit-search-cancel-button{display:none}
.category-full-search button{position:relative;z-index:4;display:flex;flex:0 0 38px;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:transparent;color:#70757a;cursor:pointer;transition:background 160ms ease,color 160ms ease,transform 150ms ease}
.category-full-search button:hover{background:#fff0f3;color:#d71948}
.category-full-search button:active{transform:scale(.92)}
.category-full-search button[hidden]{display:none}
.category-full-search button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
body.category-full-view .products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-items:stretch;gap:20px;margin:0;padding:0;overflow:visible}
body.category-full-view .products-grid .product-card{width:100%;min-width:0;max-width:none;scroll-snap-align:none}
body.category-full-view .products-grid .product-card[hidden]{display:none!important}
body.category-full-view .products-grid .product-card.category-search-result-in{animation:categoryResultIn 360ms cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--category-result-order,0) * 28ms)}
.category-full-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:190px;padding:30px;border:1px dashed #d8dee8;border-radius:24px;background:#fff;text-align:center}
.category-full-empty[hidden]{display:none}
.category-full-empty strong{color:#172033;font-size:20px;font-weight:900}
.category-full-empty span{margin-top:7px;color:#718096;font-size:14px;font-weight:600}
@keyframes categoryResultIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes categoryCountUpdate{0%{opacity:.45;transform:translateY(3px)}100%{opacity:1;transform:translateY(0)}}
@media(max-width:767px){body.category-full-view #products-container{padding:10px 14px 120px}body.category-full-view .category-full-head{grid-template-columns:42px 1fr;grid-template-areas:"back title" "search search";gap:11px;margin-bottom:16px;padding:12px 0}.category-full-back{grid-area:back;width:40px;height:40px;border-radius:13px}.category-full-title{grid-area:title}.category-full-title h3{font-size:24px}.category-full-search{grid-area:search;height:54px}.category-full-search-icon{left:13px}body.category-full-view .products-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}
@media(max-width:350px){body.category-full-view .products-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.category-full-back,.category-full-search,.category-full-search button,.category-full-search-icon,.category-full-search-wave{transition:none}.category-full-search:focus-within,.category-full-search:focus-within::after,.category-full-search:focus-within .category-full-search-icon,.category-full-title small.is-updating,body.category-full-view .products-grid .product-card.category-search-result-in{animation:none}}

/* Compact receipt modal: size-only refinement. */
.receipt-shell {
  width: min(100%, 400px);
  padding: 22px 16px 20px;
}

.receipt-back-btn,
.receipt-more-btn {
  width: 42px;
  height: 42px;
}

.receipt-title {
  font-size: clamp(1.8rem, 7vw, 2.3rem);
}

.receipt-subtitle {
  margin-bottom: 10px;
  font-size: 0.78rem;
}

.receipt-card {
  padding: 13px 13px 9px;
}

.receipt-brand-row {
  margin-bottom: 9px;
  padding-bottom: 9px;
}

.receipt-badge {
  width: 50px;
  height: 50px;
}

.receipt-badge img {
  width: 42px;
  height: 42px;
}

.receipt-info-grid {
  min-height: 52px;
  padding: 6px 0 7px;
}

.receipt-code-block {
  margin-top: 9px;
  padding: 9px 0 6px;
}

.barcode {
  height: 46px;
}

.receipt-save-btn {
  height: 43px;
  margin-top: 10px;
}

@media (max-width: 420px) {
  .receipt-shell {
    width: min(calc(100% - 10px), 380px);
    padding: 18px 12px 17px;
  }
}

/* Extra-compact receipt sizing. */
.receipt-shell {
  width: min(calc(100% - 12px), 350px);
  padding: 17px 13px 15px;
}

.receipt-header-bar {
  margin-bottom: 4px;
}

.receipt-back-btn,
.receipt-more-btn {
  width: 36px;
  height: 36px;
  border-radius: 11px;
  font-size: 20px;
}

.receipt-title {
  font-size: clamp(1.55rem, 6vw, 1.95rem);
}

.receipt-subtitle {
  margin: 2px 0 8px;
  font-size: 0.68rem;
}

.receipt-card {
  border-radius: 16px;
  padding: 10px 11px 7px;
}

.receipt-brand-row {
  gap: 9px;
  margin-bottom: 6px;
  padding-bottom: 7px;
}

.receipt-badge {
  width: 42px;
  height: 42px;
  border-radius: 12px;
}

.receipt-badge img {
  width: 35px;
  height: 35px;
}

.receipt-brand-name {
  font-size: 0.88rem;
}

.receipt-divider {
  margin: 6px 0 7px;
}

.receipt-info-grid {
  min-height: 44px;
  gap: 4px 8px;
  padding: 4px 0 5px;
}

.receipt-meta-label {
  gap: 5px;
  font-size: 0.63rem;
}

.receipt-meta-label i {
  width: 14px;
  font-size: 0.78rem;
}

.receipt-meta-value {
  font-size: 0.78rem;
}

.receipt-meta-value.amount {
  font-size: 0.98rem;
}

.receipt-code-block {
  margin-top: 6px;
  padding: 7px 0 4px;
}

.receipt-code-block p {
  margin-bottom: 7px;
  font-size: 0.61rem;
}

.barcode {
  height: 38px;
  margin: 5px 0 6px;
}

.receipt-code {
  font-size: 0.78rem;
}

.receipt-save-btn {
  height: 38px;
  margin-top: 8px;
  border-radius: 11px;
  font-size: 0.82rem;
}

/* Native-style Liquid Glass bottom navigation. */
.modern-sidebar,
.sidebar-overlay,
.side-menu,
.side-overlay,
#menu-btn,
#mobile-menu-btn {
  display: none !important;
}

.liquid-nav-wrap {
  display: block;
  position: fixed;
  left: 50%;
  bottom: max(14px, env(safe-area-inset-bottom));
  width: min(calc(100% - 48px), 340px);
  transform: translateX(-50%);
  z-index: 420;
  pointer-events: none;
  view-transition-name: none;
}

.liquid-nav-wrap .bottom-nav-mobile {
  display: block;
  position: static;
  width: 100%;
  min-width: 0;
  transform: none;
  pointer-events: auto;
}

.liquid-nav-wrap .bottom-nav-pill {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: center;
  gap: 3px;
  min-height: 52px;
  padding: 4px 6px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.92);
  border-radius: 999px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(245, 247, 251, 0.88));
  box-shadow:
    0 12px 30px rgba(15, 23, 42, 0.12),
    0 3px 8px rgba(15, 23, 42, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.95),
    inset 0 -1px 0 rgba(148, 163, 184, 0.12);
  -webkit-backdrop-filter: blur(16px) saturate(150%);
  backdrop-filter: blur(16px) saturate(150%);
}

.liquid-nav-wrap .bottom-nav-pill::before {
  content: "";
  position: absolute;
  inset: 1px 12% auto;
  height: 38%;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.72), transparent);
  opacity: 0.7;
  pointer-events: none;
}

.liquid-nav-wrap .nav-item,
.liquid-nav-wrap .nav-item.active {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 42px;
  padding: 0;
  border-radius: 999px;
  color: #7a879d;
  background: transparent;
  font-size: 17px;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  outline: none;
  will-change: transform;
  transition:
    color 110ms ease,
    transform 110ms cubic-bezier(0.16, 1, 0.3, 1),
    background 110ms ease,
    box-shadow 110ms ease;
}

.liquid-nav-wrap .nav-item.active {
  color: #d91f4c;
  background: linear-gradient(145deg, rgba(255, 247, 249, 0.98), rgba(255, 226, 234, 0.88));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.95),
    0 4px 12px rgba(217, 31, 76, 0.14);
  font-size: 13px;
  font-weight: 800;
  animation: liquidNavSelection 140ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.liquid-nav-wrap .nav-pill-active {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  line-height: 1;
}

.liquid-nav-wrap .nav-pill-active i {
  font-size: 15px;
}

.liquid-nav-wrap .nav-pill-active span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: -0.01em;
}

.liquid-nav-wrap .nav-item:not(.active):hover {
  color: #d91f4c;
  background: rgba(255, 255, 255, 0.65);
}

.liquid-nav-wrap .nav-item:focus-visible {
  color: #d91f4c;
  box-shadow: 0 0 0 3px rgba(217, 31, 76, 0.2);
}

.liquid-nav-wrap .nav-item:active {
  transform: scale(0.92);
  transition-duration: 60ms;
}

.liquid-nav-wrap .nav-item.is-navigating {
  color: #d91f4c;
}

@keyframes liquidNavSelection {
  from {
    opacity: 0.8;
    transform: scale(0.93);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@view-transition {
  navigation: auto;
}

::view-transition-group(root) {
  animation-duration: 120ms;
  animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}

::view-transition-old(root) {
  animation: liquidPageOut 80ms ease both;
}

::view-transition-new(root) {
  animation: liquidPageIn 120ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

::view-transition-group(liquid-bottom-navigation) {
  animation: none;
}

@keyframes liquidPageOut {
  to {
    opacity: 0;
    transform: translateY(-3px);
  }
}

@keyframes liquidPageIn {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
}

.app {
  padding-bottom: calc(102px + env(safe-area-inset-bottom));
}

@media (max-width: 420px) {
  .liquid-nav-wrap {
    bottom: max(10px, env(safe-area-inset-bottom));
    width: min(calc(100% - 36px), 324px);
  }

  .liquid-nav-wrap .bottom-nav-pill {
    min-height: 48px;
    padding: 3px 5px;
    border-radius: 999px;
    gap: 2px;
  }

  .liquid-nav-wrap .nav-item,
  .liquid-nav-wrap .nav-item.active {
    height: 38px;
    border-radius: 999px;
  }

  .liquid-nav-wrap .nav-pill-active i {
    font-size: 14px;
  }

  .liquid-nav-wrap .nav-pill-active span {
    font-size: 9.5px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .liquid-nav-wrap .nav-item {
    transition: none;
    animation: none;
  }

  ::view-transition-group(root),
  ::view-transition-old(root),
  ::view-transition-new(root),
  ::view-transition-group(liquid-bottom-navigation) {
    animation-duration: 1ms;
  }
}

/* Final stores map presentation override; scoped to the stores view. */
.stores-page .stores-map {
  isolation: isolate;
  height: clamp(360px, 50vw, 510px);
  margin: 12px 0 0;
  overflow: hidden;
  border: 6px solid #fff;
  border-radius: 30px;
  background: #ecefed;
  box-shadow: 0 20px 50px rgba(15, 23, 42, .12), 0 3px 10px rgba(15, 23, 42, .06);
}

.stores-page .stores-map iframe {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: .78;
  filter: grayscale(1) saturate(0) contrast(.75) brightness(1.16);
  transform: none;
}

.stores-page .stores-map::after {
  z-index: 1;
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .04), inset 0 -80px 90px -100px rgba(15, 23, 42, .28);
}

.stores-page .stores-map-center {
  right: 14px;
  bottom: 14px;
  z-index: 6;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255, 255, 255, .9);
  color: #111827;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .12);
}

.stores-page .stores-featured-card {
  margin: 26px 0 18px;
  border-radius: 26px;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .12);
}

@media (max-width: 520px) {
  .stores-page .stores-map {
    height: 390px;
    margin-top: 10px;
    border-width: 4px;
    border-radius: 25px;
  }

  .stores-page .stores-featured-card {
    margin: 24px 0 15px;
  }
}

@media (min-width: 1000px) {
  .stores-page .stores-map {
    height: 640px;
  }

  .stores-page .stores-featured-card {
    margin: 20px 0 0;
  }
}

@media (min-width: 1440px) {
  .stores-page .stores-map {
    height: 690px;
  }
}

/* Keep the real map wide enough before enabling the desktop split layout. */
@media (min-width: 1000px) and (max-width: 1179px) {
  .stores-page .stores-map-view:not([hidden]) {
    display: block;
    margin-top: 18px;
  }

  .stores-page .stores-map {
    width: 100%;
    height: 540px;
  }

  .stores-page .stores-featured-card {
    margin: 28px 0 18px;
  }

  .stores-page .stores-compact-card {
    margin-top: 0;
  }
}

/* Final active-search motion; scoped to the writable search page field. */
.search-page .search-page-field {
  transform-origin: center;
  transition: box-shadow 260ms ease, transform 360ms cubic-bezier(.16, 1, .3, 1), background 220ms ease;
}

.search-page .search-page-field:focus-within {
  background: #fff;
  animation: searchActiveSettle 620ms cubic-bezier(.16, 1, .3, 1) both;
}

.search-page .search-page-field:focus-within::after {
  opacity: 1;
  background: linear-gradient(105deg, #c84a36, #e02d57 32%, #f5a400 68%, #c84a36);
  background-size: 260% 100%;
  animation: searchActiveContour 1.15s cubic-bezier(.16, 1, .3, 1) both;
}

.search-page .search-page-field input {
  transition: transform 360ms cubic-bezier(.16, 1, .3, 1), color 180ms ease;
}

.search-page .search-page-field:focus-within input {
  color: #111827;
  transform: translateX(2px);
}

.search-page .search-page-field:focus-within .search-page-icon {
  animation: searchActiveIcon 520ms cubic-bezier(.16, 1, .3, 1) both;
}

@keyframes searchActiveSettle {
  0% { transform: translateY(0) scale(1); box-shadow: 0 1px 6px rgba(32, 33, 36, .16); }
  48% { transform: translateY(-3px) scale(1.012); box-shadow: 0 12px 30px rgba(15, 23, 42, .12), 0 0 0 5px rgba(217, 31, 76, .08); }
  100% { transform: translateY(-2px) scale(1.004); box-shadow: 0 8px 22px rgba(15, 23, 42, .1), 0 0 0 3px rgba(217, 31, 76, .06); }
}

@keyframes searchActiveContour {
  0% { opacity: 0; background-position: 100% 0; filter: drop-shadow(0 0 0 rgba(217, 31, 76, 0)); }
  42% { opacity: 1; filter: drop-shadow(-2px 0 8px rgba(200, 74, 54, .38)) drop-shadow(2px 0 8px rgba(245, 164, 0, .34)); }
  100% { opacity: 1; background-position: 0 0; filter: drop-shadow(-1px 0 3px rgba(200, 74, 54, .18)) drop-shadow(1px 0 3px rgba(245, 164, 0, .16)); }
}

@keyframes searchActiveIcon {
  0% { opacity: 0; transform: scale(.62) rotate(-22deg); }
  62% { opacity: 1; transform: scale(1.1) rotate(4deg); }
  100% { opacity: 1; transform: scale(1) rotate(0); }
}

@media (prefers-reduced-motion: reduce) {
  #smart-appbar-greeting,
  #desktop-smart-appbar-greeting,
  .search-page .search-page-field,
  .search-page .search-page-field:focus-within,
  .search-page .search-page-field:focus-within::after,
  .search-page .search-page-field:focus-within .search-page-icon,
  .search-page .search-page-field input {
    animation: none;
    transition: none;
    transform: none;
    filter: none;
  }
}

/* Final responsive catalog grid: more products per row as viewport space grows. */
#products-container .products-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  gap: 18px;
  margin: 0;
  padding: 0 0 30px;
  overflow: visible;
  scroll-snap-type: none;
}

#products-container .products-grid .product-card {
  width: 100%;
  min-width: 0;
  max-width: none;
  flex: none;
  scroll-snap-align: none;
}

@media (min-width: 520px) and (max-width: 767px) {
  #products-container .products-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
}

@media (min-width: 768px) and (max-width: 1199px) {
  #products-container .products-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
  }
}

@media (min-width: 1200px) {
  #products-container .products-grid {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: clamp(20px, 1.7vw, 28px);
  }
}

/* Compact mobile catalog: three complete product cards per category row. */
@media (max-width: 767px) {
  #products-container .section {
    padding-right: 12px;
    padding-left: 12px;
  }

  #products-container .products-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  #products-container .products-grid .product-card,
  body.category-full-view #products-container .products-grid .product-card {
    width: 100%;
    height: 340px;
    min-height: 340px;
    max-height: 340px;
    padding: 8px;
    border-radius: 17px;
  }

  #products-container .products-grid .product-card .hot-badge {
    top: 13px;
    left: 13px;
    padding: 4px 7px;
    border-width: 1px;
    font-size: 8px;
  }

  #products-container .products-grid .product-image-frame,
  body.category-full-view #products-container .products-grid .product-image-frame {
    flex-basis: 104px;
    height: 104px;
    margin-bottom: 7px !important;
    border-radius: 13px;
  }

  #products-container .products-grid .product-image-frame > img,
  body.category-full-view #products-container .products-grid .product-image-frame > img {
    width: 100% !important;
    height: 98px !important;
    padding: 6px !important;
  }

  #products-container .products-grid .product-card-actions {
    margin-bottom: 7px !important;
  }

  #products-container .products-grid .product-stats-card {
    height: 30px;
    min-height: 30px;
    margin-bottom: 6px !important;
    padding: 0 4px;
    border-radius: 10px;
    font-size: 8px !important;
  }

  #products-container .products-grid .stat-badge {
    gap: 2px;
    font-size: 8px;
  }

  #products-container .products-grid .stat-icon {
    flex-basis: 10px;
    width: 10px;
    height: 10px;
  }

  #products-container .products-grid .product-bottom-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 27px;
    flex-basis: 31px;
    height: 31px;
    gap: 3px;
  }

  #products-container .products-grid .card-qty-control {
    grid-template-columns: minmax(11px, 1fr) 18px minmax(11px, 1fr);
    width: 100%;
    height: 30px;
    border-radius: 10px !important;
  }

  #products-container .products-grid .card-qty-control button {
    width: 100% !important;
    height: 30px !important;
    font-size: 12px;
  }

  #products-container .products-grid .card-qty-control .c-val {
    width: 18px !important;
    font-size: 11px !important;
  }

  #products-container .products-grid .btn-card-add {
    width: 27px !important;
    height: 31px !important;
    flex-basis: 27px;
    border-radius: 10px !important;
    box-shadow: 0 6px 13px rgba(224, 0, 59, .2);
  }

  #products-container .products-grid .btn-card-add i {
    font-size: 11px !important;
  }

  #products-container .products-grid .product-title,
  body.category-full-view #products-container .products-grid .product-title {
    min-height: 31px;
    max-height: 31px;
    margin-bottom: 4px !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
  }

  #products-container .products-grid .product-price {
    margin-bottom: 4px !important;
    font-size: 15px !important;
  }

  #products-container .products-grid .product-existencia {
    max-width: 100%;
    padding: 0 !important;
    gap: 4px !important;
  }

  #products-container .products-grid .product-existencia .stock-pill,
  #products-container .products-grid .product-existencia .unit-pill {
    padding: 4px 8px;
    font-size: 10px !important;
    gap: 4px;
  }

  #products-container .products-grid .product-existencia .stock-pill i,
  #products-container .products-grid .product-existencia .unit-pill i {
    font-size: 10px;
  }

  #products-container .products-grid .product-sucursales {
    margin-top: 4px;
    font-size: 8px;
  }
}

/* Per-product cart quantity badge. */
#products-container .products-grid .btn-card-add {
  position: relative !important;
  overflow: visible !important;
}

#products-container .products-grid .product-cart-quantity {
  position: absolute;
  z-index: 4;
  top: -11px;
  right: -11px;
  display: inline-flex;
  min-width: 27px;
  height: 27px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
  border: 3px solid #fff;
  border-radius: 999px;
  background: linear-gradient(135deg, #ff315c, #e0003b);
  color: #fff;
  box-shadow: 0 7px 17px rgba(224, 0, 59, .3);
  font-size: 11px;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

#products-container .products-grid .product-cart-quantity[hidden] {
  display: none !important;
}

#products-container .products-grid .product-cart-quantity.is-updating {
  animation: productCartQuantityPop 430ms cubic-bezier(.16, 1, .3, 1) both;
}

@keyframes productCartQuantityPop {
  0% { opacity: .3; transform: scale(.55) translateY(3px); }
  58% { opacity: 1; transform: scale(1.18) translateY(-1px); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}

@media (max-width: 767px) {
  #products-container .products-grid .product-cart-quantity {
    top: -7px;
    right: -7px;
    min-width: 19px;
    height: 19px;
    padding: 0 4px;
    border-width: 2px;
    font-size: 8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #products-container .products-grid .product-cart-quantity.is-updating {
    animation: none;
  }
}

/* Product statistics without an enclosing capsule. */
#products-container .products-grid .product-stats-card {
  padding-right: 2px;
  padding-left: 2px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

/* Final product-card proportions and action alignment. */
#products-container .products-grid .product-card,
body.category-full-view #products-container .products-grid .product-card {
  height: auto;
  min-height: 0;
  max-height: none;
}

#products-container .products-grid .product-image-frame,
body.category-full-view #products-container .products-grid .product-image-frame {
  flex-basis: 180px;
  height: 180px;
  margin-bottom: 12px !important;
}

#products-container .products-grid .product-image-frame > img,
body.category-full-view #products-container .products-grid .product-image-frame > img {
  height: 166px !important;
}

#products-container .products-grid .product-card-actions {
  min-height: 0 !important;
  margin-bottom: 12px !important;
}

#products-container .products-grid .product-stats-card {
  height: 32px;
  min-height: 32px;
  margin-bottom: 7px !important;
}

#products-container .products-grid .product-bottom-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 48px;
  width: 100%;
  height: 42px;
  min-height: 42px;
  flex-basis: 42px;
  align-items: center !important;
  gap: 8px;
}

#products-container .products-grid .card-qty-control {
  grid-template-columns: minmax(30px, 1fr) 32px minmax(30px, 1fr);
  width: 100%;
  height: 40px;
  min-width: 0;
}

#products-container .products-grid .card-qty-control button {
  width: 100% !important;
  height: 40px !important;
}

#products-container .products-grid .card-qty-control .c-val {
  width: 32px !important;
}

#products-container .products-grid .btn-card-add {
  position: relative !important;
  width: 48px !important;
  height: 42px !important;
  min-width: 48px;
  flex-basis: 48px;
  align-self: center;
  margin: 0 !important;
  border-radius: 14px !important;
}

@media (max-width: 767px) {
  #products-container .products-grid .product-card,
  body.category-full-view #products-container .products-grid .product-card {
    height: auto;
    min-height: 0;
    max-height: none;
  }

  #products-container .products-grid .product-image-frame,
  body.category-full-view #products-container .products-grid .product-image-frame {
    flex-basis: 104px;
    height: 104px;
    margin-bottom: 7px !important;
  }

  #products-container .products-grid .product-image-frame > img,
  body.category-full-view #products-container .products-grid .product-image-frame > img {
    height: 98px !important;
  }

  #products-container .products-grid .product-card-actions {
    margin-bottom: 7px !important;
  }

  #products-container .products-grid .product-stats-card {
    height: 27px;
    min-height: 27px;
    margin-bottom: 5px !important;
  }

  #products-container .products-grid .product-bottom-row {
    grid-template-columns: minmax(0, 1fr) 27px;
    height: 31px;
    min-height: 31px;
    flex-basis: 31px;
    gap: 3px;
  }

  #products-container .products-grid .card-qty-control {
    grid-template-columns: minmax(11px, 1fr) 18px minmax(11px, 1fr);
    height: 30px;
  }

  #products-container .products-grid .card-qty-control button {
    height: 30px !important;
  }

  #products-container .products-grid .card-qty-control .c-val {
    width: 18px !important;
  }

  #products-container .products-grid .btn-card-add {
    width: 27px !important;
    height: 31px !important;
    min-width: 27px;
    flex-basis: 27px;
    border-radius: 10px !important;
  }
}

/* Fluid product list: column count is calculated from available width. */
#products-container .products-grid,
body.category-full-view #products-container .products-grid {
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
}

@media (max-width: 767px) {
  #products-container .products-grid,
  body.category-full-view #products-container .products-grid {
    grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
  }
}

@media (min-width: 1400px) {
  #products-container .products-grid,
  body.category-full-view #products-container .products-grid {
    grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  }
}

/* Keep the product cart action centered and aligned with the quantity selector. */
#products-container .products-grid .product-bottom-row {
  grid-template-columns: minmax(0, 1.15fr) minmax(54px, .85fr);
  height: 44px;
  min-height: 44px;
  flex-basis: 44px;
  align-items: stretch !important;
}

#products-container .products-grid .card-qty-control {
  height: 44px;
  align-self: stretch;
}

#products-container .products-grid .card-qty-control button {
  height: 44px !important;
}

#products-container .products-grid .btn-card-add {
  position: relative !important;
  inset: auto !important;
  display: grid !important;
  width: 100% !important;
  height: 44px !important;
  min-width: 0;
  flex-basis: auto;
  place-items: center;
  align-self: stretch;
  margin: 0 !important;
  padding: 0 !important;
  transform: none;
}

#products-container .products-grid .btn-card-add:hover {
  transform: none;
}

#products-container .products-grid .btn-card-add > i {
  grid-area: 1 / 1;
  margin: 0 !important;
  line-height: 1;
}

@media (max-width: 767px) {
  #products-container .products-grid .product-bottom-row {
    grid-template-columns: minmax(0, 1fr) 29px;
    height: 32px;
    min-height: 32px;
    flex-basis: 32px;
    align-items: stretch !important;
  }

  #products-container .products-grid .card-qty-control,
  #products-container .products-grid .card-qty-control button {
    height: 32px !important;
  }

  #products-container .products-grid .btn-card-add {
    width: 29px !important;
    height: 32px !important;
    min-width: 29px;
    border-radius: 10px !important;
  }
}

/* Site-wide responsive foundation; additive overrides for all shared views. */
html {
  width: 100%;
  min-width: 0;
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body,
.app {
  width: 100%;
  min-width: 0;
  max-width: none;
}

body {
  overflow-x: clip;
}

.app {
  margin: 0 auto;
  overflow-x: clip;
}

img,
svg,
video,
canvas,
iframe {
  max-width: 100%;
}

input,
select,
textarea,
button {
  min-width: 0;
  font: inherit;
}

.content {
  width: 100%;
  max-width: 1600px;
  min-width: 0;
  margin-right: auto;
  margin-left: auto;
}

main.content[style*="height: 100vh"] {
  height: auto !important;
  min-height: calc(100dvh - 90px);
}

.insta-header {
  width: 100%;
  min-width: 0;
  padding-right: clamp(16px, 2.4vw, 36px);
  padding-left: clamp(16px, 2.4vw, 36px);
}

.header-left,
.header-center,
.header-right,
.brand,
.desktop-smart-appbar {
  min-width: 0;
}

.header-center {
  flex: 1 1 340px;
}

.search-bar-wrap {
  width: min(100%, 800px);
}

.search-bar-wrap input {
  width: 100%;
  min-width: 0;
}

.mobile-header {
  width: 100%;
  min-width: 0;
}

.mobile-header-left,
.mobile-header-left > div:last-child {
  min-width: 0;
}

.mobile-header .greeting-small,
.mobile-header .brand-title {
  max-width: min(54vw, 330px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.carousel,
.categories,
#products-container,
#products-container > .section {
  width: 100%;
  min-width: 0;
}

.carousel img {
  max-width: none;
}

.categories {
  overscroll-behavior-inline: contain;
}

.section-head {
  min-width: 0;
  gap: 16px;
}

.section-head h3 {
  min-width: 0;
  overflow-wrap: anywhere;
}

.section-head .view-all {
  flex: 0 0 auto;
}

.search-page {
  width: 100%;
  max-width: 1240px;
  min-height: calc(100dvh - 90px);
  padding: clamp(28px, 5vw, 64px) clamp(16px, 4vw, 48px) 140px !important;
}

.search-page-panel,
.most-searched-section,
.community-recommendations {
  width: 100%;
  min-width: 0;
}

.search-page-panel {
  max-width: 900px;
}

.search-page-results {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
}

.most-searched-products {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr));
}

.community-recommendation-products,
.search-inline-recommendations .community-recommendation-products {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
}

.search-result-card,
.most-searched-card,
.community-recommendation-card {
  min-width: 0;
}

.search-result-info,
.most-searched-info,
.community-recommendation-info {
  min-width: 0;
}

.stores-page {
  width: 100%;
  max-width: 1380px;
  min-width: 0;
  padding-right: clamp(16px, 3vw, 40px);
  padding-left: clamp(16px, 3vw, 40px);
}

.stores-intro,
.stores-map-view,
.stores-list-view,
.stores-map,
.stores-featured-card,
.stores-other-locations {
  min-width: 0;
}

.stores-other-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
}

.stores-list-view:not([hidden]) {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 390px), 1fr));
}

.stores-card-heading > div,
.stores-list-card > div,
.stores-compact-card > strong,
.stores-compact-card > small {
  min-width: 0;
  overflow-wrap: anywhere;
}

.profile-content {
  width: 100%;
  max-width: 1280px;
  min-width: 0;
  margin: 0 auto;
  padding-bottom: 130px;
}

#auth-view,
#profile-view {
  width: 100%;
  min-width: 0;
}

#auth-landing,
#login-form-container,
#register-form-container {
  width: min(100%, 440px);
}

#profile-view {
  max-width: 1100px;
  margin-right: auto;
  margin-left: auto;
}

#profile-view .profile-red-header,
#profile-view .profile-my-store,
#profile-view .action-card-grid,
#profile-view .action-card-full,
#profile-view .section-header-row,
#profile-view .product-offer-list {
  margin-right: clamp(16px, 3vw, 32px);
  margin-left: clamp(16px, 3vw, 32px);
}

#profile-view .action-card-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
}

#profile-view .profile-header-top > div,
#profile-view .action-card-content,
#profile-view .product-offer-info,
#profile-view .profile-my-store-content {
  min-width: 0;
}

#profile-view .profile-title,
#profile-view .action-card-content h3,
#profile-view .action-card-content p,
#profile-view .product-offer-title {
  overflow-wrap: anywhere;
}

.product-offer-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr));
}

.profile-sections {
  width: 100%;
  max-width: 720px;
  padding-right: clamp(16px, 3vw, 32px);
  padding-left: clamp(16px, 3vw, 32px);
}

.cart-sidebar {
  width: min(100%, 430px);
  height: 100dvh;
  max-height: 100dvh;
}

.cart-header,
.cart-items,
.cart-footer,
.cart-checkout-view {
  min-width: 0;
}

.cart-item,
.cart-item-info,
.cart-item-side {
  min-width: 0;
}

.modal,
.search-modal,
.receipt-modal {
  width: 100%;
  max-width: 100vw;
}

.modal-card,
.search-card,
.receipt-shell,
.product-rating-card {
  max-width: calc(100vw - 24px);
}

#product-modal:not(.full-image) .modal-card {
  width: min(94vw, 1180px);
  max-height: min(88dvh, 800px);
}

.liquid-nav-wrap {
  width: min(calc(100% - 48px), 340px);
}

.site-legal-footer {
  width: 100%;
  padding-right: clamp(16px, 4vw, 48px);
  padding-left: clamp(16px, 4vw, 48px);
}

@media (min-width: 769px) and (max-width: 1100px) {
  .insta-header {
    gap: 12px;
  }

  .header-left {
    gap: 10px;
  }

  .brand-text {
    display: none;
  }

  .desktop-smart-appbar {
    min-width: 0;
    max-width: 200px;
    padding-left: 10px;
  }

  .desktop-brand-message,
  .desktop-smart-greeting {
    max-width: 180px;
  }

  .header-right .btn:not(.btn-cart) {
    display: none;
  }

  .content {
    width: 100%;
    max-width: 100%;
    margin-right: auto;
    margin-left: auto;
  }
}

@media (min-width: 1200px) {
  .content:not(.search-page):not(.stores-page):not(.profile-content) {
    padding-right: clamp(32px, 4vw, 72px);
    padding-left: clamp(32px, 4vw, 72px);
  }

  #profile-view .profile-red-header {
    padding: 30px;
  }

  #profile-view .profile-header-top {
    gap: 20px;
  }

  #profile-view .profile-avatar {
    width: 88px;
    height: 88px;
  }
}

@media (max-width: 768px) {
  .app {
    padding-bottom: calc(92px + env(safe-area-inset-bottom));
  }

  .mobile-header {
    position: sticky;
    z-index: 110;
    top: 0;
    gap: 10px;
    padding: max(14px, env(safe-area-inset-top)) clamp(12px, 4vw, 20px) 12px;
    background: rgba(249, 250, 251, .94);
    -webkit-backdrop-filter: blur(18px) saturate(150%);
    backdrop-filter: blur(18px) saturate(150%);
  }

  .mobile-header-right {
    flex: 0 0 auto;
    gap: 8px;
  }

  .mobile-header .icon-circle {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
  }

  .content:not(.search-page):not(.stores-page):not(.profile-content) {
    width: 100%;
    padding-right: clamp(12px, 3.5vw, 20px);
    padding-left: clamp(12px, 3.5vw, 20px);
  }

  #products-container .section {
    padding-right: 0;
    padding-left: 0;
  }

  .section-head {
    align-items: center;
    margin-bottom: 14px;
  }

  .section-head h3 {
    font-size: clamp(20px, 6vw, 25px);
  }

  .search-page {
    padding: 24px clamp(14px, 4vw, 20px) 122px !important;
  }

  .search-page-results,
  .most-searched-products {
    grid-template-columns: minmax(0, 1fr);
  }

  .stores-page {
    padding: 24px clamp(14px, 4vw, 22px) 122px;
  }

  .stores-map {
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }

  .stores-other-grid,
  .stores-list-view:not([hidden]) {
    grid-template-columns: minmax(0, 1fr);
  }

  .profile-content {
    padding-bottom: 120px;
  }

  #auth-view {
    padding: 48px clamp(16px, 5vw, 24px) 110px !important;
  }

  #profile-view .profile-red-header,
  #profile-view .profile-my-store,
  #profile-view .action-card-grid,
  #profile-view .action-card-full,
  #profile-view .section-header-row,
  #profile-view .product-offer-list {
    margin-right: clamp(12px, 4vw, 20px);
    margin-left: clamp(12px, 4vw, 20px);
  }

  #profile-view .profile-red-header {
    padding: 20px 16px 17px;
    border-radius: 24px;
  }

  #profile-view .profile-title {
    font-size: clamp(19px, 6vw, 24px);
  }

  #profile-view .profile-stat-val {
    gap: 4px;
    font-size: clamp(14px, 4.4vw, 20px);
  }

  #profile-view .profile-stat-lbl {
    font-size: clamp(9px, 3vw, 12px);
  }

  #profile-view .action-card-grid,
  #profile-view .product-offer-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .cart-sidebar {
    width: 100%;
    max-width: 100%;
  }

  .liquid-nav-wrap {
    width: min(calc(100% - 36px), 324px);
  }

  #product-modal:not(.full-image) .modal-card {
    width: 100%;
    max-width: min(100%, 560px);
    max-height: calc(100dvh - 10px);
  }
}

@media (max-width: 430px) {
  .mobile-header-left {
    gap: 8px !important;
  }

  .mobile-header .greeting-small,
  .mobile-header .brand-title {
    max-width: 48vw;
  }

  .mobile-header .brand-title {
    font-size: clamp(17px, 5.4vw, 21px) !important;
  }

  .stores-location-button {
    grid-template-columns: 24px minmax(0, 1fr) 40px;
    padding-right: 10px;
    padding-left: 14px;
  }

  .stores-location-copy small {
    max-width: 100%;
  }

  .stores-card-heading {
    grid-template-columns: 54px minmax(0, 1fr) 30px;
  }

  .stores-card-heading > img {
    width: 54px;
    height: 54px;
  }

  .stores-card-meta {
    margin-left: 64px;
  }

  .stores-card-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  .profile-my-store {
    grid-template-columns: 48px minmax(0, 1fr) 38px;
  }

  #profile-view .profile-avatar {
    width: 64px;
    height: 64px;
  }

  #profile-view .badge-premium {
    padding: 4px 8px;
    font-size: 10px;
  }

  .product-offer-item {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    gap: 10px;
  }

  .product-offer-img {
    width: 64px;
    height: 64px;
  }

  .social-auth-grid,
  .cart-checkout-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .receipt-shell,
  .search-card,
  .product-rating-card {
    max-width: calc(100vw - 16px);
  }
}

@media (max-width: 350px) {
  .mobile-header .icon-circle {
    flex-basis: 38px;
    width: 38px;
    height: 38px;
  }

  .mobile-header-right {
    gap: 5px;
  }

  .mobile-header .greeting-small,
  .mobile-header .brand-title {
    max-width: 44vw;
  }

  .liquid-nav-wrap .bottom-nav-pill {
    gap: 1px;
    padding: 6px;
  }

  .liquid-nav-wrap .nav-item,
  .liquid-nav-wrap .nav-item.active {
    height: 44px;
  }
}

/* Interactive store search: real typing, quick filtering and a compact location action. */
.stores-page .stores-search-field {
  align-items: center;
  cursor: text;
  overflow: visible;
  padding: 0 9px 0 16px;
  transform-origin: center;
  transition:
    border-color 180ms ease,
    box-shadow 260ms ease,
    transform 300ms cubic-bezier(.16, 1, .3, 1);
}

.stores-page .stores-search-field:focus-within {
  transform: translateY(-2px) scale(1.004);
}

.stores-search-field > input {
  min-width: 0;
  flex: 1 1 auto;
  height: 100%;
  padding: 0 10px;
  border: 0;
  outline: 0;
  background: transparent;
  color: #111827;
  font: 650 15px/1.25 var(--font);
}

.stores-search-field > input::placeholder {
  color: #7b8494;
  font-weight: 500;
  opacity: 1;
}

.stores-search-field .stores-search-clear {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  margin-right: 3px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: #f3f4f6;
  color: #667085;
  cursor: pointer;
  transition: background 160ms ease, color 160ms ease, transform 220ms cubic-bezier(.16, 1, .3, 1);
}

.stores-search-field .stores-search-clear[hidden],
.stores-list-card[hidden] {
  display: none;
}

.stores-search-field .stores-search-clear:hover,
.stores-search-field .stores-search-clear:focus-visible {
  background: #ffe8ee;
  color: #d71948;
  outline: none;
  transform: scale(1.07);
}

.stores-search-field .stores-location-action {
  padding: 0;
  border: 1px solid #eceff2;
  cursor: pointer;
}

.stores-search-field:focus-within .stores-location-action {
  background: #fff0f4;
  color: #d71948;
  transform: scale(1.04);
}

.stores-search-field.is-locating .stores-location-action {
  color: #fff;
  background: #d71948;
}

.stores-list-view:not([hidden]) .stores-list-card:not([hidden]) {
  animation-duration: 300ms;
}

.stores-list-view:not([hidden]) .stores-list-card--coming-soon {
  animation-delay: 120ms;
}

.stores-list-card--coming-soon {
  border-color: rgba(245, 164, 0, .24);
  background: linear-gradient(135deg, #fff 0%, #fffdf6 100%);
}

.stores-list-card--coming-soon:hover {
  border-color: rgba(245, 164, 0, .48);
}

.stores-list-coming-badge {
  display: inline-flex;
  width: fit-content;
  padding: 5px 9px;
  border-radius: 999px;
  background: #111827;
  color: #fff;
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .035em;
  line-height: 1;
  text-transform: uppercase;
}

.stores-list-coming-icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 50%;
  background: #fff7dc;
  color: #d88c00;
}

/* Faster page handoff plus a short, tactile bottom-navigation response. */
.liquid-nav-wrap .bottom-nav-pill::after {
  content: "";
  position: absolute;
  z-index: 3;
  right: 12%;
  bottom: 0;
  left: 12%;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, #c84a36, #d91f4c 48%, #f5a400);
  opacity: 0;
  pointer-events: none;
  transform: scaleX(.12);
}

.liquid-nav-wrap.is-page-navigating .bottom-nav-pill::after {
  display: none;
}

.liquid-nav-wrap .nav-item.is-navigating {
  transform: scale(0.96);
  transition-duration: 60ms;
}

@keyframes bottomNavQuickProgress {
  0% { opacity: 0; transform: scaleX(.12); }
  28% { opacity: 1; }
  100% { opacity: 1; transform: scaleX(1); }
}

@keyframes bottomNavQuickTap {
  0% { transform: scale(1); }
  42% { transform: scale(.88); }
  100% { transform: scale(.96); }
}

::view-transition-group(root) {
  animation-duration: 190ms;
}

::view-transition-old(root) {
  animation-duration: 130ms;
}

::view-transition-new(root) {
  animation-duration: 210ms;
}

@media (max-width: 520px) {
  .stores-search-field > input {
    padding-right: 5px;
    font-size: 14px;
  }

  .stores-search-field .stores-search-clear {
    flex-basis: 30px;
    width: 30px;
    height: 30px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .stores-page .stores-search-field,
  .stores-search-field .stores-search-clear,
  .liquid-nav-wrap .nav-item.is-navigating,
  .liquid-nav-wrap.is-page-navigating .bottom-nav-pill::after {
    animation: none;
    transition: none;
  }
}

@media (orientation: landscape) and (max-height: 560px) {
  .cart-sidebar,
  #product-modal:not(.full-image) .modal-card,
  .receipt-shell {
    max-height: 100dvh;
  }

  .liquid-nav-wrap {
    bottom: 6px;
  }

  .liquid-nav-wrap .bottom-nav-pill {
    min-height: 56px;
  }
}

/* Subtle feedback when the shared cart-presence count changes. */
[data-product-cart-users-count].is-live-updating {
  display: inline-block;
  animation: sharedCartCountUpdate 480ms cubic-bezier(.16, 1, .3, 1) both;
}

@keyframes sharedCartCountUpdate {
  0% { color: #e11d48; transform: translateY(2px) scale(.72); }
  58% { color: #e11d48; transform: translateY(-1px) scale(1.16); }
  100% { color: inherit; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  [data-product-cart-users-count].is-live-updating {
    animation: none;
  }
}

/* Unified cart notification bubbles for appbar and product cards. */
#mobile-cart-btn,
#central-cart,
#products-container .products-grid .btn-card-add {
  overflow: visible !important;
}

#mobile-cart-btn.has-items .badge,
#central-cart.has-items .badge,
#products-container .products-grid .product-cart-quantity {
  display: inline-flex !important;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  border: 3px solid #fff;
  border-radius: 999px;
  background: linear-gradient(145deg, #ff315c, #ed174c);
  color: #fff;
  box-shadow: 0 8px 18px rgba(225, 0, 59, .32), inset 0 1px 0 rgba(255, 255, 255, .32);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", sans-serif;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

#mobile-cart-btn.has-items .badge,
#central-cart.has-items .badge {
  top: -11px;
  right: -10px;
  min-width: 30px;
  width: auto;
  height: 30px;
  padding: 0 7px;
  font-size: 13px;
}

#products-container .products-grid .product-cart-quantity {
  top: -10px;
  right: -9px;
  min-width: 26px;
  height: 26px;
  padding: 0 6px;
  font-size: 11px;
}

#mobile-cart-btn.has-items.cart-item-added .badge,
#central-cart.has-items.cart-item-added .badge,
#products-container .products-grid .product-cart-quantity.is-updating {
  animation: cartNotificationBubblePop 520ms cubic-bezier(.34, 1.56, .64, 1) both;
}

@keyframes cartNotificationBubblePop {
  0% { opacity: 0; transform: translateY(4px) scale(.45); }
  58% { opacity: 1; transform: translateY(-2px) scale(1.18); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 767px) {
  #mobile-cart-btn.has-items .badge {
    top: -9px;
    right: -8px;
    min-width: 27px;
    height: 27px;
    padding: 0 6px;
    font-size: 12px;
  }

  #products-container .products-grid .product-cart-quantity {
    top: -8px;
    right: -7px;
    min-width: 22px;
    height: 22px;
    padding: 0 4px;
    border-width: 2px;
    font-size: 9px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #mobile-cart-btn.has-items.cart-item-added .badge,
  #central-cart.has-items.cart-item-added .badge,
  #products-container .products-grid .product-cart-quantity.is-updating {
    animation: none;
  }
}

/* Center the promotional banner consistently at every viewport width. */
#promo-carousel.carousel {
  width: 100%;
  max-width: 880px;
  aspect-ratio: 16 / 9;
  margin: clamp(12px, 2vw, 20px) auto clamp(20px, 3vw, 30px);
  align-self: center;
  overflow: hidden;
  border-radius: 20px;
}

#promo-carousel .slide {
  background-position: center center;
  background-repeat: no-repeat;
}

#promo-carousel .dots {
  right: auto;
  left: 50%;
  transform: translateX(-50%);
}

@media (max-width: 768px) {
  #promo-carousel.carousel {
    max-width: 100%;
    margin: 12px auto 20px;
    border-radius: 12px;
  }
}

/* One responsive horizontal product row per category on the catalog home. */
body:not(.category-full-view) #products-container .products-grid {
  display: flex;
  width: 100%;
  max-width: 100%;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 8px;
  margin: 0;
  padding: 4px 2px 24px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 2px;
  scrollbar-width: none;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

body:not(.category-full-view) #products-container .products-grid::-webkit-scrollbar {
  display: none;
}

body:not(.category-full-view) #products-container .products-grid .product-card {
  width: calc((100% - 16px) / 3);
  min-width: calc((100% - 16px) / 3);
  max-width: calc((100% - 16px) / 3);
  flex: 0 0 calc((100% - 16px) / 3);
  scroll-snap-align: start;
  scroll-snap-stop: normal;
}

@media (min-width: 768px) {
  body:not(.category-full-view) #products-container .products-grid {
    gap: 18px;
    scrollbar-width: thin;
    scrollbar-color: rgba(100, 116, 139, .28) transparent;
  }

  body:not(.category-full-view) #products-container .products-grid::-webkit-scrollbar {
    display: block;
    height: 6px;
  }

  body:not(.category-full-view) #products-container .products-grid::-webkit-scrollbar-track {
    background: transparent;
  }

  body:not(.category-full-view) #products-container .products-grid::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(100, 116, 139, .28);
  }

  body:not(.category-full-view) #products-container .products-grid .product-card {
    width: calc((100% - 36px) / 3);
    min-width: calc((100% - 36px) / 3);
    max-width: calc((100% - 36px) / 3);
    flex-basis: calc((100% - 36px) / 3);
  }
}

@media (min-width: 1100px) {
  body:not(.category-full-view) #products-container .products-grid {
    gap: 20px;
  }

  body:not(.category-full-view) #products-container .products-grid .product-card {
    width: calc((100% - 60px) / 4);
    min-width: calc((100% - 60px) / 4);
    max-width: calc((100% - 60px) / 4);
    flex-basis: calc((100% - 60px) / 4);
  }
}

@media (min-width: 1450px) {
  body:not(.category-full-view) #products-container .products-grid {
    gap: 22px;
  }

  body:not(.category-full-view) #products-container .products-grid .product-card {
    width: calc((100% - 88px) / 5);
    min-width: calc((100% - 88px) / 5);
    max-width: calc((100% - 88px) / 5);
    flex-basis: calc((100% - 88px) / 5);
  }
}

@media (min-width: 1800px) {
  body:not(.category-full-view) #products-container .products-grid {
    gap: 24px;
  }

  body:not(.category-full-view) #products-container .products-grid .product-card {
    width: calc((100% - 120px) / 6);
    min-width: calc((100% - 120px) / 6);
    max-width: calc((100% - 120px) / 6);
    flex-basis: calc((100% - 120px) / 6);
  }
}

/* Premium centered construction notice, reusing the existing shared modal. */
body.construction-modal-open {
  overflow: hidden;
}

#construction-modal {
  z-index: 2000;
  box-sizing: border-box;
  padding: clamp(16px, 4vw, 36px);
  background: rgba(15, 23, 42, .54);
  -webkit-backdrop-filter: blur(12px) saturate(115%);
  backdrop-filter: blur(12px) saturate(115%);
}

#construction-modal.show {
  display: flex;
  animation: constructionBackdropIn 360ms ease-out both;
}

#construction-modal.is-closing {
  animation: constructionBackdropOut 260ms ease-in both;
}

#construction-modal .construction-modal-card {
  position: relative;
  width: min(100%, 440px) !important;
  max-width: 440px !important;
  max-height: calc(100dvh - 32px);
  box-sizing: border-box;
  gap: 0;
  padding: clamp(28px, 5vw, 42px) clamp(22px, 5vw, 38px) clamp(24px, 4vw, 34px) !important;
  border: 1px solid rgba(255, 255, 255, .92) !important;
  border-radius: clamp(24px, 5vw, 34px) !important;
  background:
    radial-gradient(circle at 50% 8%, rgba(255, 215, 70, .18), transparent 38%),
    rgba(255, 255, 255, .97) !important;
  box-shadow: 0 32px 90px rgba(15, 23, 42, .3), inset 0 1px 0 #fff;
  overflow: hidden;
}

#construction-modal.show .construction-modal-card {
  animation: constructionCardIn 620ms cubic-bezier(.16, 1, .3, 1) both;
}

#construction-modal.is-closing .construction-modal-card {
  animation: constructionCardOut 240ms ease-in both;
}

#construction-modal .construction-modal-card::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 6px;
  background: linear-gradient(90deg, #b91c1c, #e11d48 42%, #fbbf24 42%, #f59e0b);
}

#construction-modal .construction-modal-kicker {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0 auto 16px;
  padding: 7px 12px;
  border: 1px solid rgba(245, 158, 11, .2);
  border-radius: 999px;
  background: rgba(255, 247, 214, .9);
  color: #9a5b05;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}

#construction-modal .construction-modal-logo {
  width: 150px !important;
  height: 105px !important;
  margin: 0 auto 18px !important;
  filter: drop-shadow(0 12px 14px rgba(112, 68, 15, .15));
  object-fit: contain !important;
}

#construction-modal #construction-modal-title {
  margin: 0 0 12px !important;
  color: #111827 !important;
  font-size: clamp(23px, 5vw, 30px) !important;
  font-weight: 950 !important;
  line-height: 1.12 !important;
  letter-spacing: -.035em;
}

#construction-modal #construction-modal-description {
  margin: 0 0 26px !important;
  color: #64748b !important;
  font-size: clamp(13px, 3vw, 15px) !important;
  line-height: 1.65 !important;
}

#construction-modal .construction-modal-confirm {
  position: relative;
  display: inline-flex;
  width: 100% !important;
  min-height: 54px;
  height: 54px !important;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid #e5a400 !important;
  border-radius: 16px !important;
  background: linear-gradient(135deg, #ffe16a 0%, #ffc928 48%, #f5ad00 100%) !important;
  color: #4b3100 !important;
  box-shadow: 0 13px 26px rgba(245, 158, 11, .3), inset 0 1px 0 rgba(255, 255, 255, .72);
  overflow: hidden;
  cursor: pointer;
  font-size: 16px !important;
  font-weight: 950 !important;
  letter-spacing: -.01em;
  transition: transform 170ms ease, box-shadow 170ms ease, filter 170ms ease;
}

#construction-modal .construction-modal-confirm::after {
  content: "";
  position: absolute;
  top: -45%;
  bottom: -45%;
  left: -40%;
  width: 32%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .72), transparent);
  transform: skewX(-20deg);
  animation: constructionButtonShine 2.8s ease-in-out 900ms infinite;
}

#construction-modal .construction-modal-confirm:hover {
  filter: saturate(1.08) brightness(1.02);
  box-shadow: 0 16px 32px rgba(245, 158, 11, .38), inset 0 1px 0 rgba(255, 255, 255, .8);
  transform: translateY(-2px);
}

#construction-modal .construction-modal-confirm:active {
  box-shadow: 0 8px 18px rgba(245, 158, 11, .28);
  transform: translateY(0) scale(.985);
}

#construction-modal .construction-modal-confirm:focus-visible {
  outline: 4px solid rgba(225, 29, 72, .2);
  outline-offset: 4px;
}

@keyframes constructionBackdropIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes constructionBackdropOut {
  from { opacity: 1; }
  to { opacity: 0; }
}

@keyframes constructionCardIn {
  0% { opacity: 0; transform: translateY(26px) scale(.9); }
  58% { opacity: 1; transform: translateY(-5px) scale(1.015); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes constructionCardOut {
  from { opacity: 1; transform: translateY(0) scale(1); }
  to { opacity: 0; transform: translateY(14px) scale(.96); }
}

@keyframes constructionButtonShine {
  0%, 42% { left: -40%; }
  68%, 100% { left: 125%; }
}

@media (max-width: 420px) {
  #construction-modal .construction-modal-card {
    padding: 28px 20px 22px !important;
  }

  #construction-modal .construction-modal-logo {
    width: 128px !important;
    height: 90px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  #construction-modal.show,
  #construction-modal.is-closing,
  #construction-modal.show .construction-modal-card,
  #construction-modal.is-closing .construction-modal-card,
  #construction-modal .construction-modal-confirm::after {
    animation: none;
  }
}

/* Smart home recommendations ranked from real recent searches. */
#products-container .section--recommended {
  position: relative;
  margin-top: clamp(14px, 3vw, 30px);
  padding: clamp(22px, 3vw, 34px) clamp(12px, 2.5vw, 28px) clamp(8px, 1.5vw, 18px);
  border: 1px solid rgba(245, 158, 11, .17);
  border-radius: clamp(22px, 3vw, 32px);
  background:
    radial-gradient(circle at 8% 0%, rgba(255, 218, 74, .14), transparent 30%),
    linear-gradient(145deg, rgba(255, 253, 245, .96), rgba(255, 255, 255, .98));
  box-shadow: 0 18px 42px rgba(120, 75, 10, .06);
  overflow: hidden;
}

#products-container .section--recommended::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 4px;
  background: linear-gradient(90deg, #e11d48, #f5b301 52%, #f59e0b);
}

#products-container .section--recommended .section-head {
  align-items: flex-end;
}

#products-container .recommended-section-title {
  min-width: 0;
}

#products-container .recommended-section-title > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 5px;
  color: #a16207;
  font-size: clamp(9px, 1.5vw, 11px);
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}

#products-container .recommended-section-title > span i {
  color: #f5b301;
  filter: drop-shadow(0 3px 5px rgba(245, 179, 1, .25));
  animation: recommendedSignalPulse 1.9s ease-in-out infinite;
}

#products-container .section--recommended .product-card {
  border-color: rgba(245, 158, 11, .15);
  box-shadow: 0 12px 30px rgba(120, 75, 10, .07);
}

#products-container .recommended-section-empty {
  display: flex;
  width: 100%;
  min-height: 112px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 20px;
  border: 1px dashed rgba(161, 98, 7, .24);
  border-radius: 20px;
  background: rgba(255, 255, 255, .72);
  color: #64748b;
  text-align: left;
}

#products-container .recommended-section-empty > i {
  display: grid;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  place-items: center;
  border-radius: 14px;
  background: #fff7d6;
  color: #d49300;
}

#products-container .recommended-section-empty div {
  display: grid;
  gap: 3px;
}

#products-container .recommended-section-empty strong {
  color: #334155;
  font-size: 14px;
}

#products-container .recommended-section-empty span {
  font-size: 12px;
  line-height: 1.45;
}

@keyframes recommendedSignalPulse {
  0%, 100% { opacity: .72; transform: scale(.92); }
  50% { opacity: 1; transform: scale(1.1); }
}

@media (max-width: 767px) {
  #products-container .section--recommended {
    width: calc(100% + 8px);
    margin-right: -4px;
    margin-left: -4px;
    padding: 22px 8px 6px;
    border-radius: 22px;
  }

  #products-container .recommended-section-title > span {
    max-width: 62vw;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

@media (prefers-reduced-motion: reduce) {
  #products-container .recommended-section-title > span i {
    animation: none;
  }
}

/* Present Recomendados with the same visual structure as every category. */
#products-container .section--recommended {
  position: static;
  width: 100%;
  margin: 0;
  padding: 32px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

#products-container .section--recommended::before,
#products-container .recommended-section-title > span {
  display: none;
}

#products-container .section--recommended .section-head {
  align-items: flex-end;
}

#products-container .section--recommended .product-card {
  border-color: rgba(226, 232, 240, .82);
  box-shadow: 0 18px 44px rgba(15, 23, 42, .075);
}

@media (max-width: 767px) {
  #products-container .section--recommended {
    width: 100%;
    margin-right: 0;
    margin-left: 0;
    padding: 32px 0;
    border-radius: 0;
  }
}

/* Modern barcode scanner icon replacing the appbar notification bell. */
.mobile-header .icon-circle.scanner {
  border-color: rgba(226, 232, 240, .92);
  background: linear-gradient(145deg, #fff, #f8fafc);
  color: #111827;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .08), inset 0 1px 0 #fff;
  overflow: hidden;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 160ms ease;
}

.mobile-header .icon-circle.scanner:hover {
  border-color: rgba(225, 29, 72, .2);
  box-shadow: 0 10px 26px rgba(15, 23, 42, .11), 0 0 0 4px rgba(225, 29, 72, .05);
  transform: translateY(-1px);
}

.mobile-header .icon-circle.scanner:active {
  transform: scale(.94);
}

.mobile-header .scanner .badge {
  display: none !important;
}

.mobile-header .appbar-scan-icon {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mobile-header .appbar-scan-bars {
  stroke-width: 1.45;
}

.mobile-header .appbar-scan-beam {
  stroke: #e11d48;
  stroke-width: 1.7;
  filter: drop-shadow(0 0 3px rgba(225, 29, 72, .46));
  transform-origin: center;
  animation: appbarBarcodeScan 2s cubic-bezier(.45, 0, .55, 1) infinite;
}

@keyframes appbarBarcodeScan {
  0%, 100% { opacity: .45; transform: translateY(-3px); }
  50% { opacity: 1; transform: translateY(3px); }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-header .appbar-scan-beam {
    animation: none;
  }
}

/* Keep the shared legal footer after all dynamic search content. */
.app > .search-page,
.search-page {
  height: auto !important;
  min-height: auto !important;
  overflow: visible !important;
  padding-bottom: 32px !important;
}

.site-legal-footer,
.search-page ~ .site-legal-footer,
.coupons-page ~ .site-legal-footer {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  box-sizing: border-box !important;
  clear: both !important;
  margin: 48px auto 0 !important;
  padding: 24px 20px calc(120px + env(safe-area-inset-bottom)) !important;
  background: transparent !important;
  line-height: 1.25 !important;
  gap: 3px !important;
  flex: 0 0 auto !important;
  flex-shrink: 0 !important;
}

/* Ensure footer NEVER displays above or inside any product modal or cart */
#product-modal {
  z-index: 9999 !important;
}

body.product-modal-open .site-legal-footer,
body.modal-open .site-legal-footer,
body.cart-open .site-legal-footer,
body.cart-fullscreen-open .site-legal-footer,
body.signup-modal-open .site-legal-footer {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: -1 !important;
}

.site-legal-footer::before {
  width: min(100%, 260px);
  margin-bottom: 9px;
}

.site-legal-footer strong {
  font-size: 13px;
  line-height: 1.25;
}

.site-legal-footer a {
  color: #64748b;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .025em;
  line-height: 1.3;
  text-decoration: none;
  transition: color 160ms ease, transform 160ms ease;
}

.site-legal-footer a:hover {
  color: #c24a30;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.site-legal-footer a:focus-visible {
  border-radius: 5px;
  outline: 3px solid rgba(194, 74, 48, .18);
  outline-offset: 4px;
}

/* Reveal the shared bottom navigation according to vertical scroll direction. */
.liquid-nav-wrap {
  opacity: 1;
  visibility: visible;
  will-change: transform, opacity;
  transition:
    transform 420ms cubic-bezier(.16, 1, .3, 1),
    opacity 220ms ease,
    visibility 0s linear 0s;
}

.liquid-nav-wrap.is-scroll-hidden {
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, calc(100% + 42px));
  transition:
    transform 300ms cubic-bezier(.4, 0, 1, 1),
    opacity 190ms ease,
    visibility 0s linear 300ms;
}

.liquid-nav-wrap.is-scroll-hidden .bottom-nav-mobile {
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .liquid-nav-wrap,
  .liquid-nav-wrap.is-scroll-hidden {
    transition: none;
  }
}

/* Static replacement for the appbar scanner graphic. */
.mobile-header .appbar-barcode-icon {
  display: block;
  color: #111827;
  font-size: 22px;
  line-height: 1;
  animation: none;
  transform: none;
}

.mobile-header .icon-circle.scanner:hover {
  transform: none;
}

.mobile-header .appbar-scan-beam {
  animation: none;
}

/* Coupons page category, added without changing the shared page structure. */
.coupons-page {
  height: auto !important;
  min-height: 100dvh;
  padding: clamp(20px, 3vw, 34px) clamp(18px, 4vw, 40px) 138px !important;
  text-align: left !important;
}

.coupons-page > h2 {
  margin: 0;
  color: #111827;
  font-size: clamp(1rem, 2.2vw, 1.3rem);
  font-weight: 800;
  letter-spacing: -.025em;
}

.coupons-page > p {
  display: none;
}

.coupons-category {
  width: min(100%, 940px);
  margin: 22px auto 0;
}

.coupons-category-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
  padding: 0 2px 18px;
}

.coupons-category-icon {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 17px;
  background: linear-gradient(145deg, #fff1f5, #ffe2ea);
  color: #d91f4c;
  font-size: 1.25rem;
  box-shadow: inset 0 1px 0 #fff, 0 8px 20px rgba(217, 31, 76, .12);
}

.coupons-category-kicker {
  display: block;
  margin-bottom: 3px;
  color: #c24a30;
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.coupons-category-heading h2 {
  margin: 0;
  color: #111827;
  font-size: clamp(1.55rem, 4vw, 2.35rem);
  font-weight: 900;
  letter-spacing: -.035em;
}

.coupons-category-count {
  flex: none;
  color: #c24a30;
  font-size: .82rem;
  font-weight: 900;
}

.coupons-card-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  gap: 16px;
}

.coupon-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 1px solid #e5eaf0;
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, .07);
  transition: border-color 180ms ease, box-shadow 240ms ease, transform 260ms cubic-bezier(.16, 1, .3, 1);
}

.coupon-card:hover {
  border-color: rgba(217, 31, 76, .24);
  box-shadow: 0 18px 38px rgba(15, 23, 42, .11);
  transform: translateY(-4px);
}

.coupon-card-offer {
  position: relative;
  display: grid;
  min-height: 148px;
  place-items: center;
  align-content: center;
  gap: 9px;
  overflow: hidden;
  color: #fff;
}

.coupon-card-offer::after {
  content: "";
  position: absolute;
  right: -28px;
  bottom: -50px;
  width: 130px;
  height: 130px;
  border: 24px solid rgba(255, 255, 255, .12);
  border-radius: 50%;
}

.coupon-card-offer--red { background: linear-gradient(145deg, #ed174c, #b81236); }
.coupon-card-offer--gold { background: linear-gradient(145deg, #f6b517, #de7e00); }
.coupon-card-offer--orange { background: linear-gradient(145deg, #f97316, #d94b0b); }

.coupon-card-offer > i {
  font-size: 1.65rem;
}

.coupon-card-offer > strong {
  position: relative;
  z-index: 1;
  font-size: clamp(1.65rem, 4vw, 2.25rem);
  font-weight: 900;
  letter-spacing: -.04em;
}

.coupon-card-preview {
  position: absolute;
  top: 13px;
  left: 13px;
  padding: 5px 8px;
  border: 1px solid rgba(255, 255, 255, .42);
  border-radius: 999px;
  background: rgba(255, 255, 255, .18);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.coupon-card-body {
  padding: 18px;
}

.coupon-card-body > span {
  color: #d91f4c;
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.coupon-card-body h3 {
  margin: 6px 0 5px;
  color: #111827;
  font-size: 1.08rem;
  font-weight: 900;
  letter-spacing: -.025em;
}

.coupon-card-body p {
  min-height: 38px;
  margin: 0;
  color: #64748b;
  font-size: .78rem;
  line-height: 1.45;
}

.coupon-card-code {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 16px;
  padding: 11px 12px;
  border: 1px dashed #d9dee6;
  border-radius: 14px;
  background: #f8fafc;
}

.coupon-card-code small {
  color: #94a3b8;
  font-size: .62rem;
  font-weight: 800;
  text-transform: uppercase;
}

.coupon-card-code strong {
  color: #111827;
  font-size: .78rem;
  letter-spacing: .06em;
}

.coupons-category-status {
  padding: 7px 11px;
  border-radius: 999px;
  background: #fff7dc;
  color: #a96500;
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.coupons-empty-state {
  display: grid;
  min-height: 210px;
  place-items: center;
  align-content: center;
  gap: 8px;
  padding: 28px;
  border: 1px dashed rgba(217, 31, 76, .25);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(255, 247, 249, .9));
  box-shadow: 0 16px 40px rgba(15, 23, 42, .06);
  text-align: center;
}

.coupons-empty-state > i {
  color: #d91f4c;
  font-size: 2rem;
}

.coupons-empty-state strong {
  color: #111827;
  font-size: 1rem;
}

.coupons-empty-state p {
  max-width: 420px;
  margin: 0;
  color: #64748b;
  font-size: .86rem;
  line-height: 1.5;
}

@media (max-width: 520px) {
  .coupons-category-heading {
    align-items: baseline;
  }

  .coupons-card-list {
    display: flex;
    margin-right: -18px;
    padding: 2px 18px 12px 0;
    gap: 13px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .coupons-card-list::-webkit-scrollbar {
    display: none;
  }

  .coupon-card {
    flex: 0 0 min(78vw, 270px);
    border-radius: 23px;
    scroll-snap-align: start;
  }

  .coupon-card-offer {
    min-height: 132px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .coupon-card {
    transition: none;
  }
}

.coupon-products-section {
  width: min(100%, 940px);
  margin: 42px auto 0;
}

.coupon-products-heading {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 0 2px 12px;
}

.coupon-products-heading-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: 100%;
  min-width: 0;
}

.coupon-products-heading h2 {
  margin: 0;
  color: #111827;
  font-size: clamp(1.35rem, 2vw, 2.2rem);
  font-weight: 950;
  letter-spacing: -.05em;
  line-height: 1;
  white-space: nowrap;
}

.coupon-products-heading-meta {
  display: none;
}

.coupon-products-heading-meta span::before {
  content: none;
}

.coupon-offers-view-all {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #d9493c;
  font-size: clamp(1.05rem, 1.5vw, 1.6rem);
  font-weight: 900;
  letter-spacing: -.03em;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 160ms ease, transform 160ms ease;
}

.coupon-offers-view-all:hover,
.coupon-offers-view-all:focus-visible {
  opacity: .8;
  transform: translateY(-1px);
  outline: none;
}

.coupon-offers-view-all i {
  font-size: .85em;
}

.coupon-products-list {
  --coupon-visible: 2;
  --coupon-gap: clamp(12px, 1.8vw, 18px);
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - (var(--coupon-gap) * (var(--coupon-visible) - 1))) / var(--coupon-visible));
  align-items: stretch;
  gap: var(--coupon-gap);
  padding: 4px 0 14px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
  overscroll-behavior-x: contain;
}

@media (min-width: 700px) {
  .coupon-products-list {
    --coupon-visible: 3;
    --coupon-gap: clamp(14px, 2vw, 20px);
  }
}

@media (min-width: 1024px) {
  .coupon-products-list {
    --coupon-visible: 4;
    --coupon-gap: clamp(16px, 2vw, 22px);
  }
}

@media (min-width: 1440px) {
  .coupon-products-list {
    --coupon-visible: 5;
  }
}

.coupon-products-section.is-fullscreen {
  position: fixed;
  z-index: 1200;
  inset: 0;
  display: block;
  width: 100%;
  height: 100dvh;
  margin: 0;
  padding: max(22px, env(safe-area-inset-top)) clamp(18px, 4vw, 54px) max(34px, env(safe-area-inset-bottom));
  overflow-x: hidden;
  overflow-y: auto;
  background: #f7f9fc;
  animation: couponOffersFullscreenIn 340ms cubic-bezier(.16, 1, .3, 1) both;
}

.coupon-products-section.is-fullscreen .coupon-products-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
  padding: 0;
}

.coupon-products-section.is-fullscreen .coupon-products-heading h2 {
  font-size: clamp(1.45rem, 2vw, 2.1rem);
  line-height: 1;
  white-space: nowrap;
}

.coupon-products-section.is-fullscreen .coupon-products-heading-meta {
  margin-left: 0;
}

.coupon-products-section.is-fullscreen .coupon-products-heading-meta span {
  font-size: 1.18rem;
}

.coupon-products-section.is-fullscreen .coupon-products-list {
  display: grid;
  grid-auto-flow: row;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-columns: unset;
  align-content: start;
  gap: 18px;
  width: min(100%, 1100px);
  min-height: 100%;
  margin: 0 auto;
  overflow: visible;
  scroll-snap-type: none;
}

.coupon-products-list.is-fullscreen {
  display: grid;
  grid-auto-flow: row;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-columns: unset;
  overflow: visible;
  scroll-snap-type: none;
}

@media (max-width: 740px) {
  .coupon-products-section.is-fullscreen .coupon-products-list,
  .coupon-products-list.is-fullscreen {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.coupon-products-list.is-fullscreen .coupon-product-card {
  flex: none;
  width: 100%;
}

.coupon-products-list.is-fullscreen .coupon-offers-fullscreen-head {
  position: sticky;
  z-index: 5;
  top: calc(0px - max(22px, env(safe-area-inset-top)));
  display: flex;
  flex-direction: column;
  grid-column: 1 / -1;
  align-items: flex-start;
  gap: 14px;
  margin: calc(0px - max(22px, env(safe-area-inset-top))) 0 20px;
  padding: max(22px, env(safe-area-inset-top)) 0 8px;
  background: rgba(247, 249, 252, .92);
  backdrop-filter: blur(18px) saturate(150%);
}

.coupon-products-list.is-fullscreen .coupon-offers-fullscreen-title {
  width: 100%;
  min-width: 0;
}

.coupon-products-list.is-fullscreen .coupon-offers-fullscreen-title h3 {
  margin: 0;
  color: #111827;
  font-size: clamp(2rem, 2.8vw, 3rem);
  font-weight: 950;
  letter-spacing: -.05em;
  line-height: 1;
  white-space: nowrap;
}

.coupon-products-list.is-fullscreen .coupon-offers-fullscreen-search {
  width: min(100%, 560px);
  margin: 0 auto;
}

.coupon-products-list.is-fullscreen .coupon-offers-fullscreen-search .category-full-search {
  width: 100%;
  max-width: none;
  height: 58px;
  border-radius: 999px;
  box-shadow: 0 8px 22px rgba(31, 41, 55, .08);
  transition: box-shadow 220ms ease, transform 220ms ease, border-color 220ms ease;
}

.coupon-products-list.is-fullscreen .coupon-offers-fullscreen-search .category-full-search:focus-within {
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(217, 31, 76, .12), 0 0 0 3px rgba(217, 31, 76, .08);
}

.coupon-products-list.is-fullscreen .coupon-product-card[hidden],
.coupon-products-list.is-fullscreen .coupon-products-empty[hidden] {
  display: none !important;
}

.coupon-products-list.is-fullscreen .coupon-products-empty {
  grid-column: 1 / -1;
}

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

.coupon-product-card {
  width: 100%;
  min-width: 0;
  overflow: hidden;
  border: 1px solid #e5eaf0;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .065);
  cursor: pointer;
  outline: none;
  transition: border-color 180ms ease, box-shadow 240ms ease, transform 260ms cubic-bezier(.16, 1, .3, 1);
}

.coupon-product-card:hover,
.coupon-product-card:focus-visible {
  border-color: rgba(217, 31, 76, .28);
  box-shadow: 0 17px 36px rgba(15, 23, 42, .11);
  transform: translateY(-4px);
}

.coupon-product-card:focus-visible {
  box-shadow: 0 0 0 3px rgba(217, 31, 76, .12), 0 17px 36px rgba(15, 23, 42, .1);
}

.coupon-product-image {
  position: relative;
  display: grid;
  height: 180px;
  margin: 12px;
  place-items: center;
  overflow: hidden;
  border-radius: 19px;
  background: linear-gradient(145deg, #fff8f9, #f8fafc);
}

.coupon-product-image > span {
  position: absolute;
  z-index: 1;
  top: 10px;
  left: 10px;
  padding: 6px 10px;
  border-radius: 999px;
  background: #d91f4c;
  color: #fff;
  font-size: .64rem;
  font-weight: 900;
  text-transform: uppercase;
  box-shadow: 0 6px 14px rgba(217, 31, 76, .2);
}

.coupon-product-timer {
  position: absolute;
  z-index: 2;
  right: 10px;
  top: 10px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  padding: 4px 6px;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 10px;
  background: rgba(221, 28, 58, .92);
  box-shadow: 0 8px 18px rgba(217, 31, 76, .22);
  color: #fff;
  text-align: center;
}

.coupon-product-timer small {
  font-size: .34rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  opacity: .9;
}

.coupon-product-timer strong {
  font-size: .48rem;
  font-weight: 900;
  letter-spacing: .04em;
  line-height: 1.05;
}

.coupon-product-image img {
  width: 84%;
  height: 84%;
  object-fit: contain;
  transition: transform 300ms cubic-bezier(.16, 1, .3, 1);
}

.coupon-product-card:hover .coupon-product-image img {
  transform: scale(1.045);
}

.coupon-product-body {
  padding: 3px 16px 17px;
}

.coupon-product-body > small {
  color: #d91f4c;
  font-size: .63rem;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.coupon-product-body h3 {
  min-height: 42px;
  margin: 6px 0 13px;
  overflow: hidden;
  color: #111827;
  font-size: .94rem;
  font-weight: 900;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.coupon-product-price {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.coupon-product-price > strong {
  color: #111827;
  font-size: 1.25rem;
  font-weight: 900;
}

.coupon-product-price button {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 0;
  border-radius: 15px;
  background: #ed174c;
  color: #fff;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(237, 23, 76, .22);
  transition: background 160ms ease, transform 180ms ease;
}

.coupon-product-price button:hover,
.coupon-product-price button:focus-visible {
  background: #c8103d;
  outline: none;
  transform: scale(1.06);
}

.coupon-products-loading,
.coupon-products-empty {
  grid-column: 1 / -1;
  margin: 0;
  padding: 26px;
  border: 1px dashed #d9dee6;
  border-radius: 22px;
  color: #64748b;
  background: #fff;
  font-size: .82rem;
  font-weight: 800;
  text-align: center;
}

@media (max-width: 520px) {
  .coupon-products-section {
    margin-top: 34px;
  }

  .coupon-products-list {
    display: flex;
    flex-flow: row nowrap;
    margin-right: 0;
    padding: 2px 0 12px;
    gap: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
    overscroll-behavior-x: contain;
  }

  .coupon-products-list::-webkit-scrollbar {
    display: none;
  }

  .coupon-product-card {
    flex: 0 0 min(76vw, 260px);
    min-width: 0;
    max-width: 100%;
    scroll-snap-align: start;
  }

  .coupon-product-image {
    height: 120px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .coupon-product-card,
  .coupon-product-image img,
  .coupon-product-price button {
    transition: none;
  }
}

/* Match coupon offers to the shared compact product-panel behavior. */
.coupon-products-list {
  --coupon-visible: 2;
  --coupon-gap: clamp(9px, 1.6vw, 16px);
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - (var(--coupon-gap) * (var(--coupon-visible) - 1))) / var(--coupon-visible));
  gap: var(--coupon-gap);
}

.coupon-product-card {
  display: flex;
  width: 100%;
  min-height: 0;
  flex-direction: column;
}

.coupon-product-image {
  height: clamp(128px, 18vw, 180px);
  margin: clamp(7px, 1.2vw, 12px);
}

.coupon-product-body {
  display: flex;
  min-height: 0;
  flex: 1;
  flex-direction: column;
  padding: 2px clamp(9px, 1.5vw, 16px) clamp(11px, 1.6vw, 17px);
}

.coupon-product-stats {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 11px;
  color: #526078;
  font-size: .68rem;
  font-weight: 800;
}

.coupon-product-stats > span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}

.coupon-product-stats > span:nth-child(1) i,
.coupon-product-stats > span:nth-child(2) i {
  color: #ed174c;
}

.coupon-product-stats > span:nth-child(3) i {
  color: #f5ad00;
}

.coupon-product-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px;
  align-items: center;
  gap: 8px;
  margin-bottom: 13px;
}

.coupon-product-quantity {
  display: grid;
  grid-template-columns: 34px minmax(22px, 1fr) 34px;
  align-items: center;
  min-width: 0;
  height: 44px;
  overflow: hidden;
  border: 1px solid #e7ebf0;
  border-radius: 15px;
  background: #f8fafc;
}

.coupon-product-quantity button {
  height: 100%;
  border: 0;
  background: transparent;
  color: #4b5563;
  cursor: pointer;
  font-size: 1rem;
  font-weight: 900;
}

.coupon-product-quantity button:disabled {
  cursor: default;
  opacity: .42;
}

.coupon-product-quantity .c-val {
  color: #111827;
  font-size: .9rem;
  font-weight: 900;
  text-align: center;
}

.coupon-product-cart {
  position: relative;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 0;
  border-radius: 15px;
  background: #ed174c;
  color: #fff;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(237, 23, 76, .22);
}

.coupon-product-cart .product-cart-quantity {
  position: absolute;
  top: -8px;
  right: -7px;
  display: grid;
  min-width: 22px;
  height: 22px;
  padding: 0 5px;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #ff2858;
  color: #fff;
  font-size: .62rem;
  font-weight: 900;
}

.coupon-product-cart .product-cart-quantity[hidden] {
  display: none;
}

.coupon-product-price {
  align-items: flex-end;
  margin-top: auto;
  flex-wrap: wrap;
}

.coupon-product-price > span {
  padding: 5px 8px;
  border-radius: 999px;
  background: #edf9f0;
  color: #07963f;
  font-size: .64rem;
  font-weight: 900;
}

@media (min-width: 700px) {
  .coupon-products-list {
    --coupon-visible: 3;
    --coupon-gap: clamp(12px, 1.8vw, 18px);
  }
}

@media (min-width: 1024px) {
  .coupon-products-list {
    --coupon-visible: 4;
    --coupon-gap: clamp(16px, 2vw, 22px);
  }
}

@media (min-width: 1440px) {
  .coupon-products-list {
    --coupon-visible: 5;
  }
}

@media (max-width: 520px) {
  .coupon-products-list {
    display: flex;
    flex-flow: row nowrap;
    margin-right: 0;
    padding: 0 0 8px;
    gap: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
    overscroll-behavior-x: contain;
  }

  .coupon-product-card {
    flex: 0 0 min(76vw, 260px);
    min-width: 0;
    border-radius: 17px;
  }

  .coupon-product-image {
    height: 104px;
    margin: 6px;
    border-radius: 13px;
  }

  .coupon-product-image > span {
    top: 6px;
    left: 6px;
    padding: 4px 6px;
    font-size: .48rem;
  }

  .coupon-product-body {
    padding: 1px 7px 9px;
  }

  .coupon-product-stats {
    gap: 3px;
    margin-bottom: 7px;
    font-size: .52rem;
  }

  .coupon-product-stats > span {
    gap: 2px;
  }

  .coupon-product-actions {
    grid-template-columns: minmax(0, 1fr) 34px;
    gap: 5px;
    margin-bottom: 9px;
  }

  .coupon-product-quantity {
    grid-template-columns: 24px minmax(18px, 1fr) 24px;
    height: 34px;
    border-radius: 11px;
  }

  .coupon-product-quantity .c-val {
    font-size: .72rem;
  }

  .coupon-product-cart {
    width: 34px;
    height: 34px;
    border-radius: 11px;
    font-size: .72rem;
  }

  .coupon-product-cart .product-cart-quantity {
    top: -7px;
    right: -6px;
    min-width: 19px;
    height: 19px;
    font-size: .52rem;
  }

  .coupon-product-body > small {
    font-size: .5rem;
  }

  .coupon-product-body h3 {
    min-height: 32px;
    margin: 4px 0 8px;
    font-size: .68rem;
    line-height: 1.2;
  }

  .coupon-product-price {
    display: grid;
    align-items: start;
    justify-content: stretch;
    gap: 5px;
  }

  .coupon-product-price > strong {
    font-size: .94rem;
  }

  .coupon-product-price > span {
    width: fit-content;
    max-width: 100%;
    padding: 4px 6px;
    overflow: hidden;
    font-size: .5rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* Keep the shared footer in normal flow after dynamically rendered coupon offers. */
.app > .coupons-page {
  position: relative;
  z-index: 0;
  display: flow-root;
  flex: 0 0 auto;
  height: max-content !important;
  min-height: calc(100dvh - 90px);
  overflow: visible;
}

.coupons-page .coupon-products-section,
.coupons-page .coupon-products-list {
  position: relative;
  z-index: 0;
  height: auto;
  overflow-y: visible;
}

.coupons-page ~ .site-legal-footer {
  position: relative !important;
  z-index: 1;
  inset: auto !important;
  clear: both;
  flex: 0 0 auto;
  margin: 34px 0 0 !important;
  transform: none !important;
}

@media (max-width: 520px) {
  .coupons-page ~ .site-legal-footer {
    margin-top: 26px !important;
  }
}

/* Original PNG asset used by the appbar barcode reader button. */
.mobile-header .appbar-barcode-image {
  display: block;
  width: 36px;
  height: 36px;
  margin: 0;
  border-radius: 10px;
  object-fit: contain;
  object-position: center;
  pointer-events: none;
}

/* Match the mobile cart control to the barcode reader dimensions. */
.mobile-header #mobile-cart-btn,
.mobile-header #barcode-scanner-btn {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
}

.mobile-header #mobile-cart-btn > i,
.mobile-header #mobile-cart-btn.has-items > i {
  font-size: 20px;
}

@media (max-width: 350px) {
  .mobile-header #mobile-cart-btn,
  .mobile-header #barcode-scanner-btn {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }

  .mobile-header .appbar-barcode-image {
    width: 32px;
    height: 32px;
  }
}

/* Profile Page Appbar */
.profile-appbar {
  display: none;
  align-items: center;
  justify-content: space-between;
  padding: 12px 24px;
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 100;
  gap: 16px;
  border-bottom: 1px solid #e5e7eb;
}

.profile-appbar-back {
  background: transparent;
  border: none;
  color: #0f172a;
  font-size: 20px;
  cursor: pointer;
  padding: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  transition: color 180ms ease;
}

.profile-appbar-back:hover {
  color: #c24a30;
}

.profile-appbar-title {
  flex: 1;
  font-size: 18px;
  font-weight: 800;
  color: #0f172a;
  text-align: left;
  margin: 0;
}

/* Checkout compacto y uniforme. */
.cart-checkout-view {
  padding: 24px 24px max(24px, env(safe-area-inset-bottom));
  background: linear-gradient(180deg, #f5f7fb 0%, #eef3f8 100%);
}

.cart-checkout-head {
  align-items: center;
  gap: 14px;
  margin: 0 0 18px;
  padding: 0 2px 17px;
  border-bottom: 1px solid #e2e8f0;
}

.cart-checkout-head > button {
  flex-basis: 46px;
  width: 46px;
  height: 46px;
  border-radius: 15px;
  color: #172033;
  box-shadow: 0 8px 20px rgba(15, 23, 42, .07);
}

.cart-checkout-head span {
  margin-bottom: 4px;
  color: #c84a35;
  font-size: 10px;
  letter-spacing: .12em;
}

.cart-checkout-head h3 {
  font-size: 26px;
  line-height: 1.05;
}

.cart-checkout-head p {
  margin-top: 6px;
  font-size: 12px;
}

.cart-checkout-form {
  gap: 16px;
  padding: 20px;
  border: 1px solid rgba(215, 224, 235, .95);
  border-radius: 26px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 18px 42px rgba(28, 48, 78, .09);
}

.cart-checkout-grid { gap: 14px; }

.cart-checkout-form label > span {
  font-size: 11px;
  letter-spacing: .01em;
}

.cart-checkout-form input,
.cart-checkout-form textarea {
  min-height: 52px;
  height: 52px;
  border-color: #d8e1ec;
  border-radius: 16px;
  background: #f9fbfd;
  font-size: 15px;
  font-weight: 700;
}

.cart-checkout-form textarea {
  height: 52px;
  min-height: 52px;
  padding-top: 0;
  padding-bottom: 0;
  resize: none;
  line-height: 52px;
  white-space: nowrap;
  overflow: hidden;
}

.cart-checkout-field-textarea { display: block !important; }

.cart-checkout-field-textarea > span {
  display: block;
  margin-bottom: 6px;
}

.cart-checkout-field-textarea .cart-checkout-field-icon { top: 39px; }

.checkout-address-tools {
  position: absolute;
  right: 9px;
  bottom: 7px;
  left: 9px;
  z-index: 2;
  justify-content: space-between;
  gap: 6px;
  margin: 0;
  padding: 0;
  pointer-events: none;
}

.checkout-address-tools button {
  min-height: 30px;
  padding: 4px 8px;
  border-radius: 9px;
  background: rgba(255, 255, 255, .9);
  font-size: 9px;
  pointer-events: auto;
}

.checkout-address-tools small {
  max-width: calc(100% - 135px);
  overflow: hidden;
  color: #6b7b91;
  font-size: 8px;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cart-checkout-security {
  min-height: 40px;
  padding: 8px 11px;
  border: 1px solid #dcefe4;
  border-radius: 14px;
  font-size: 10px;
}

.cart-whatsapp-checkout {
  min-height: 58px;
  border-radius: 17px;
  font-size: 13px;
  box-shadow: 0 12px 25px rgba(8, 120, 59, .2);
}

@media (max-width: 767px) {
  .cart-checkout-view { padding: 18px 14px max(20px, env(safe-area-inset-bottom)); }
  .cart-checkout-head { margin-bottom: 14px; padding-bottom: 14px; }
  .cart-checkout-head > button { flex-basis: 42px; width: 42px; height: 42px; }
  .cart-checkout-head h3 { font-size: 22px; }
  .cart-checkout-head p { font-size: 11px; }
  .cart-checkout-form { gap: 14px; padding: 15px; border-radius: 21px; }
  .cart-checkout-form input,
  .cart-checkout-form textarea { height: 50px; min-height: 50px; }
  .cart-checkout-form textarea { line-height: 50px; }
  .checkout-address-tools { bottom: 6px; }
}

/* Acabado premium para la sección de entrega. */
.cart-checkout-view {
  position: relative;
  isolation: isolate;
}

.cart-checkout-view::before {
  position: absolute;
  z-index: -1;
  top: 0;
  right: 0;
  left: 0;
  height: 150px;
  background: radial-gradient(circle at 82% 0%, rgba(217, 31, 76, .08), transparent 48%), linear-gradient(180deg, rgba(255, 255, 255, .85), transparent);
  content: "";
  pointer-events: none;
}

.cart-checkout-head > div { min-width: 0; }

.cart-checkout-head h3 {
  letter-spacing: -.055em;
  text-wrap: balance;
}

.cart-checkout-form label > span {
  color: #34445d;
  font-size: 11px;
  font-weight: 900;
}

.cart-checkout-form input,
.cart-checkout-form textarea {
  box-shadow: inset 0 1px 1px rgba(15, 23, 42, .025);
}

.cart-checkout-form input:focus,
.cart-checkout-form textarea:focus {
  border-color: #d91f4c;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(217, 31, 76, .09), 0 8px 18px rgba(15, 23, 42, .045);
}

.cart-checkout-field-textarea textarea {
  padding-right: 14px;
  text-overflow: ellipsis;
}

.cart-checkout-security {
  background: linear-gradient(100deg, #eff9f3, #f7fbf8);
  color: #206c46;
}

.cart-checkout-security i { color: #16804b; }

.cart-whatsapp-checkout span {
  letter-spacing: -.015em;
}

@media (max-width: 767px) {
  .cart-checkout-view::before { height: 120px; }
  .cart-checkout-head h3 { letter-spacing: -.045em; }
}

/* Modal de producto: foto limpia y disponibilidad dentro de la descripción. */
#product-modal.has-product-gallery:not(.full-image) #modal-img {
  padding-bottom: 24px;
}

#product-modal:not(.full-image) #modal-desc {
  white-space: pre-line;
}

@media (max-width: 767px) {
  #product-modal.has-product-gallery:not(.full-image) #modal-img {
    padding-bottom: 18px;
  }
}

/* Mensaje del appbar en modo texto compacto. */
.desktop-smart-greeting,
.desktop-smart-greeting.is-exchange-message {
  font-size: 7px !important;
  line-height: 1.2;
}

.mobile-header-left h1.brand-title,
.mobile-header-left h1.brand-title.is-exchange-message {
  font-size: clamp(9px, 2.7vw, 11px) !important;
  line-height: 1.2;
}

/* Indicador de IA en appbar: animación suave idéntica a los 3 puntitos de la barra de búsqueda */
.appbar-ai-wave {
  gap: 8px;
  filter: none;
  contain: layout paint;
}

.appbar-ai-wave i {
  display: inline-block;
  flex: 0 0 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: 0;
  box-shadow: none;
  filter: none;
  background: #db4437;
  color: #db4437;
  animation: appbarGoogleDotWave 1.6s ease-in-out infinite;
  will-change: transform;
}

.appbar-ai-wave i:nth-child(2) {
  background: #f4b400;
  color: #f4b400;
  animation-delay: 150ms;
}

.appbar-ai-wave i:nth-child(3) {
  background: #f97316;
  color: #f97316;
  animation-delay: 300ms;
}

@keyframes appbarGoogleDotWave {
  0%, 10%, 28%, 100% {
    transform: translateY(0);
  }
  16% {
    transform: translateY(-6px);
  }
  22% {
    transform: translateY(0.5px);
  }
  25% {
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .appbar-ai-wave i,
  .appbar-ai-wave i:nth-child(2),
  .appbar-ai-wave i:nth-child(3) {
    animation: none;
    transform: none;
  }
}


/* ============================================================
   TEXTO APPBAR EN COLOR NEGRO SÓLIDO SIN OPACIDAD
   ============================================================ */
.mobile-header-left span.greeting-small,
.mobile-header-left #appbar-brand-message,
.desktop-brand-message,
.mobile-header-left h1.brand-title:not(.is-exchange-message):not(.is-install-message):not(.is-appbar-offer):not(.is-register-cta),
.desktop-smart-greeting:not(.is-exchange-message):not(.is-install-message):not(.is-appbar-offer):not(.is-register-cta),
.mobile-header-left h1.brand-title.is-appbar-recommendation,
.desktop-smart-greeting.is-appbar-recommendation {
  color: #000000 !important;
  opacity: 1 !important;
}

.mobile-header-left span.greeting-small,
.mobile-header-left #appbar-brand-message,
.desktop-brand-message {
  font-weight: 700;
  color: #000000 !important;
  opacity: 1 !important;
}

.mobile-header-left #appbar-brand-message.is-changing,
.desktop-brand-message.is-changing {
  opacity: 0 !important;
}

/* ============================================================
   ESCÁNER UPC CON CÁMARA
   ============================================================ */
body.upc-scanner-active {
  overflow: hidden !important;
}

.upc-camera-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 99999;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.88);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 16px;
  animation: upcModalFadeIn 220ms ease;
}

.upc-camera-modal.is-open {
  display: flex;
}

@keyframes upcModalFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.upc-camera-backdrop {
  position: absolute;
  inset: 0;
  cursor: pointer;
}

.upc-camera-container {
  position: relative;
  width: 100%;
  max-width: 440px;
  background: #0f172a;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(255, 255, 255, 0.1);
  display: flex;
  flex-direction: column;
  z-index: 2;
}

.upc-camera-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  background: rgba(15, 23, 42, 0.95);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.upc-camera-header-left {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.upc-camera-pill {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: #f43f5e;
}

.upc-camera-title {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  color: #ffffff;
  letter-spacing: -0.3px;
}

.upc-camera-controls {
  display: flex;
  align-items: center;
  gap: 10px;
}

.upc-camera-btn-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  cursor: pointer;
  transition: all 180ms ease;
}

.upc-camera-btn-icon:hover {
  background: rgba(255, 255, 255, 0.18);
  transform: scale(1.05);
}

.upc-camera-btn-icon.is-active {
  background: #facc15;
  color: #0f172a;
  border-color: #facc15;
}

.upc-camera-viewport-wrap {
  position: relative;
  width: 100%;
  height: 380px;
  background: #000000;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.upc-camera-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.upc-camera-overlay-frame {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  background: radial-gradient(circle, transparent 45%, rgba(0, 0, 0, 0.65) 90%);
}

.upc-camera-guide-box {
  position: relative;
  width: 280px;
  height: 180px;
  border: 1.5px dashed rgba(255, 255, 255, 0.35);
  border-radius: 18px;
  box-shadow: 0 0 0 4000px rgba(0, 0, 0, 0.4);
  transition: all 250ms ease;
  overflow: hidden;
}

.upc-camera-guide-box.is-detected {
  border-color: #22c55e !important;
  box-shadow: 0 0 0 4000px rgba(0, 0, 0, 0.4), 0 0 30px rgba(34, 197, 94, 0.8) !important;
}

.upc-camera-guide-box.is-detected .upc-corner {
  border-color: #22c55e !important;
}

.upc-camera-guide-box.is-detected .upc-scanner-laser {
  background: #22c55e;
  box-shadow: 0 0 16px #22c55e;
}

.upc-corner {
  position: absolute;
  width: 22px;
  height: 22px;
  border-color: #f43f5e;
  border-style: solid;
  pointer-events: none;
}

.corner-tl { top: -2px; left: -2px; border-width: 3.5px 0 0 3.5px; border-top-left-radius: 14px; }
.corner-tr { top: -2px; right: -2px; border-width: 3.5px 3.5px 0 0; border-top-right-radius: 14px; }
.corner-bl { bottom: -2px; left: -2px; border-width: 0 0 3.5px 3.5px; border-bottom-left-radius: 14px; }
.corner-br { bottom: -2px; right: -2px; border-width: 0 3.5px 3.5px 0; border-bottom-right-radius: 14px; }

.upc-scanner-laser {
  position: absolute;
  left: 6px;
  right: 6px;
  height: 2.5px;
  background: linear-gradient(90deg, rgba(244,63,94,0) 0%, #f43f5e 50%, rgba(244,63,94,0) 100%);
  box-shadow: 0 0 14px #f43f5e;
  animation: upcLaserScan 2s ease-in-out infinite alternate;
}

@keyframes upcLaserScan {
  0% { top: 8px; }
  100% { top: calc(100% - 10px); }
}

.upc-scanner-status-text {
  margin-top: 18px;
  padding: 6px 14px;
  background: rgba(15, 23, 42, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  color: #f8fafc;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.2px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.upc-camera-footer {
  padding: 16px 20px 20px;
  background: #0f172a;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.upc-camera-hint {
  margin: 0;
  text-align: center;
  font-size: 12px;
  color: #94a3b8;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.upc-camera-hint i {
  color: #f43f5e;
}

.upc-camera-footer-actions {
  display: flex;
  justify-content: center;
}

.upc-camera-upload-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 18px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 12px;
  color: #f8fafc;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 180ms ease;
}

.upc-camera-upload-btn:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.25);
}


/* ============================================================
   ANIMACIÓN IA: 3 PUNTITOS PENSANDO -> LÍNEA MITAD ROJO MITAD NARANJA
   ============================================================ */

/* 1. Tres puntitos estilo IA cuando piensa */
.appbar-ai-wave {
  position: absolute;
  z-index: 12;
  top: 100%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0);
  opacity: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  pointer-events: none;
  transition: transform 260ms cubic-bezier(0.16, 1, 0.3, 1), opacity 200ms ease;
}

.appbar-ai-wave i {
  display: inline-block;
  flex: 0 0 7.5px;
  width: 7.5px;
  height: 7.5px;
  border-radius: 50%;
  animation: appbarAiThinkingWave 1.15s ease-in-out infinite;
  will-change: transform, opacity;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
}

.appbar-ai-wave i:nth-child(1) {
  background: #e11d48;
  color: #e11d48;
  box-shadow: 0 0 8px rgba(225, 29, 72, 0.55);
  animation-delay: 0ms;
}

.appbar-ai-wave i:nth-child(2) {
  background: #f97316;
  color: #f97316;
  box-shadow: 0 0 8px rgba(249, 115, 22, 0.55);
  animation-delay: 160ms;
}

.appbar-ai-wave i:nth-child(3) {
  background: #f59e0b;
  color: #f59e0b;
  box-shadow: 0 0 8px rgba(245, 158, 11, 0.55);
  animation-delay: 320ms;
}

@keyframes appbarAiThinkingWave {
  0%, 100% {
    transform: translateY(0) scale(0.85);
    opacity: 0.45;
  }
  50% {
    transform: translateY(-5.5px) scale(1.18);
    opacity: 1;
  }
}

/* Estado Pensando: los 3 puntitos se activan con suavidad */
.insta-header.is-ai-thinking-line .appbar-ai-wave,
.mobile-header.is-ai-thinking-line .appbar-ai-wave {
  opacity: 1 !important;
  transform: translate(-50%, -50%) scale(1) !important;
}

.insta-header.is-ai-thinking-line::after,
.mobile-header.is-ai-thinking-line::after {
  opacity: 0 !important;
  transform: scaleX(0) !important;
}

/* Estado Revelado: Al terminar de pensar los 3 puntitos se convierten en la línea */
.insta-header.is-ai-revealing-line .appbar-ai-wave,
.mobile-header.is-ai-revealing-line .appbar-ai-wave {
  opacity: 0 !important;
  transform: translate(-50%, -50%) scale(0) !important;
  transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1), opacity 180ms ease !important;
}

/* La línea mitad rojo mitad naranja aparece desde el centro y cubre izquierda y derecha */
.insta-header.is-ai-revealing-line::after,
.mobile-header.is-ai-revealing-line::after {
  opacity: 1 !important;
  height: 3px !important;
  background: linear-gradient(90deg, #e11d48 0 50%, #f97316 50% 100%) !important;
  background-size: 100% 100% !important;
  background-position: 0 0 !important;
  transform-origin: 50% 50% !important;
  animation: appbarLineRevealCenterToBothSides 750ms cubic-bezier(0.16, 1, 0.3, 1) both !important;
  border-radius: 999px !important;
  z-index: 10 !important;
}

@keyframes appbarLineRevealCenterToBothSides {
  0% {
    opacity: 0;
    transform: scaleX(0);
  }
  25% {
    opacity: 1;
  }
  80% {
    opacity: 1;
    transform: scaleX(1);
  }
  100% {
    opacity: 1;
    transform: scaleX(1);
  }
}

/* Línea base en reposo: mitad rojo, mitad naranja con origen al centro */
.insta-header::after,
.mobile-header::after {
  background: linear-gradient(90deg, #e11d48 0 50%, #f97316 50% 100%) !important;
  transform-origin: 50% 50% !important;
  transition: transform 300ms ease, opacity 250ms ease !important;
}

/* 2. Textos del appbar: siempre en la línea de abajo, si no alcanza termina en ... */
.mobile-header-left h1.brand-title,
.desktop-smart-greeting {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  max-width: min(54vw, 320px) !important;
  display: block !important;
  will-change: transform, opacity, filter;
  transition: opacity 380ms cubic-bezier(0.16, 1, 0.3, 1),
              transform 420ms cubic-bezier(0.16, 1, 0.3, 1),
              filter 300ms cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.mobile-header-left #appbar-brand-message,
.desktop-brand-message {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  max-width: min(54vw, 320px) !important;
  display: block !important;
  will-change: transform, opacity, filter;
  transition: opacity 360ms cubic-bezier(0.16, 1, 0.3, 1),
              transform 400ms cubic-bezier(0.16, 1, 0.3, 1),
              filter 300ms cubic-bezier(0.16, 1, 0.3, 1) !important;
}

/* Salida suave al cambiar */
.mobile-header-left #appbar-brand-message.is-changing,
.desktop-brand-message.is-changing {
  opacity: 0 !important;
  transform: translateX(12px) !important;
  filter: blur(2px) !important;
  transition: opacity 180ms cubic-bezier(0.4, 0, 1, 1),
              transform 180ms cubic-bezier(0.4, 0, 1, 1),
              filter 180ms ease !important;
}

.mobile-header-left h1.brand-title.is-changing,
.desktop-smart-greeting.is-changing {
  opacity: 0 !important;
  transform: translateX(14px) !important;
  filter: blur(2.5px) !important;
  transition: opacity 190ms cubic-bezier(0.4, 0, 1, 1),
              transform 190ms cubic-bezier(0.4, 0, 1, 1),
              filter 190ms ease !important;
}

/* Revelado fluido */
@keyframes smartAppbarFluidReveal {
  0% {
    opacity: 0;
    transform: translateX(-18px) scale(0.98);
    filter: blur(3px);
  }
  40% {
    opacity: 0.85;
    filter: blur(0.8px);
  }
  100% {
    opacity: 1;
    transform: translateX(0) scale(1);
    filter: blur(0);
  }
}

.mobile-header-left h1.brand-title.is-appbar-revealing,
.desktop-smart-greeting.is-appbar-revealing {
  will-change: transform, opacity, filter;
  animation: smartAppbarFluidReveal 640ms cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
}

@media (prefers-reduced-motion: reduce) {
  .mobile-header-left #appbar-brand-message,
  .desktop-brand-message,
  .mobile-header-left h1.brand-title,
  .desktop-smart-greeting,
  .mobile-header-left h1.brand-title.is-appbar-revealing,
  .desktop-smart-greeting.is-appbar-revealing,
  .appbar-ai-wave i,
  .insta-header.is-ai-revealing-line::after,
  .mobile-header.is-ai-revealing-line::after {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    filter: none !important;
  }
}


/* =========================================================
   iOS — Evitar auto-zoom al enfocar campos del checkout
   Cambio incremental / no destructivo
   ========================================================= */
@supports (-webkit-touch-callout: none) {
  input,
  textarea,
  select,
  .cart-checkout-form input,
  .cart-checkout-form textarea,
  .cart-checkout-form select,
  .checkout input,
  .checkout textarea,
  .checkout select,
  .checkout-form input,
  .checkout-form textarea,
  .checkout-form select {
    font-size: 16px !important;
  }
}

/* =========================================================
   CHECKOUT — Ocultar encabezado "Mi carrito"
   Solo durante el paso de finalizar compra.
   Cambio incremental y no destructivo.
   ========================================================= */

.cart-sidebar.checkout-step-active .cart-header {
    display: none !important;
}

/* ==========================================================================
   NATIVE PICK UP MOBILE ORDER SCREEN (EXACT MOCKUP DESIGN) & ORDER STATUS VIEW
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@700&display=swap');

.cart-pickup-spot-view {
  position: absolute;
  inset: 0;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 100vh;
  min-height: 100dvh;
  background: transparent;
  z-index: 50;
  display: flex;
  flex-direction: column;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: none !important;
  overscroll-behavior-y: contain !important;
  touch-action: pan-y !important;
}

.cart-pickup-spot-view[hidden] {
  display: none !important;
}

.cart-order-status-view {
  position: absolute;
  inset: 0;
  background: #f8fafc;
  z-index: 55;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.cart-order-status-view[hidden] {
  display: none !important;
}

/* Visibility controls inside cart sidebar */
.cart-sidebar.pickup-spot-step-active .cart-header,
.cart-sidebar.pickup-spot-step-active .cart-items,
.cart-sidebar.pickup-spot-step-active .cart-footer,
.cart-sidebar.pickup-spot-step-active .cart-checkout-view {
  display: none !important;
}

.cart-sidebar.pickup-spot-step-active .cart-pickup-spot-view {
  display: flex !important;
  background: transparent !important;
}

/* Fullscreen mode when Pick Up or Order Status is active — 100% dynamic native web app */
.cart-sidebar.pickup-spot-step-active,
.cart-sidebar.order-status-step-active {
  position: fixed !important;
  inset: 0 !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  height: 100dvh !important;
  max-height: 100dvh !important;
  border-radius: 0 !important;
  border: none !important;
  box-shadow: none !important;
  transform: none !important;
  background: #ff6a00 !important;
  z-index: 99999 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  overflow-y: hidden !important;
  overscroll-behavior-x: none !important;
  overscroll-behavior-y: none !important;
  touch-action: pan-y !important;
}

@media (max-width: 768px) {
  .cart-sidebar.pickup-spot-step-active,
  .cart-sidebar.order-status-step-active {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
    border: none !important;
    box-shadow: none !important;
    transform: none !important;
    background: #ff6a00 !important;
    z-index: 99999 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    overflow-y: hidden !important;
    overscroll-behavior-x: none !important;
    touch-action: pan-y !important;
  }
}

/* Remove drag-handle pseudo-element on fullscreen mode */
.cart-sidebar.pickup-spot-step-active::before,
.cart-sidebar.order-status-step-active::before {
  display: none !important;
}

.cart-sidebar.order-status-step-active .cart-header,
.cart-sidebar.order-status-step-active .cart-items,
.cart-sidebar.order-status-step-active .cart-footer,
.cart-sidebar.order-status-step-active .cart-checkout-view,
.cart-sidebar.order-status-step-active .cart-pickup-spot-view {
  display: none !important;
}

.cart-sidebar.order-status-step-active .cart-order-status-view {
  display: flex !important;
}

/* HEADER WAVE - MOBILE ORDER FULLSCREEN HEADER */
.mobile-order-header,
.pickup-mobile-header-wave {
  position: relative;
  width: 100%;
  background: linear-gradient(180deg, #ff6a00 0%, #f55a00 100%);
  padding-top: env(safe-area-inset-top);
  box-sizing: border-box;
}

.mobile-order-header::before,
.pickup-mobile-header-wave::before {
  content: "";
  position: absolute;
  top: calc(env(safe-area-inset-top) * -1);
  left: 0;
  right: 0;
  height: env(safe-area-inset-top);
  background: #ff6a00;
}

.mobile-order-header-inner,
.pickup-mobile-header-top {
  min-height: 92px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px 18px;
}

.pickup-mobile-back-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.25);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 15px;
  transition: all 0.2s ease;
  backdrop-filter: blur(4px);
}

.pickup-mobile-back-btn:hover {
  background: rgba(255, 255, 255, 0.4);
  transform: scale(1.05);
}

.pickup-mobile-logo-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}

.pickup-mobile-logo {
  height: 58px;
  width: auto;
  max-width: 155px;
  object-fit: contain;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.16));
}

.pickup-mobile-slogan {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  color: #ffffff;
  font-family: 'Caveat', 'Dancing Script', 'Outfit', cursive, sans-serif;
  font-size: 27px;
  font-weight: 800;
  line-height: 1.05;
  transform: rotate(-4deg);
  text-shadow: 0 2px 5px rgba(0, 0, 0, 0.22);
  position: relative;
  user-select: none;
  white-space: nowrap;
}

.pickup-mobile-slogan-text {
  display: block;
  letter-spacing: -0.5px;
}

.pickup-mobile-slogan-line {
  width: 100%;
  max-width: 130px;
  height: 3.5px;
  background: #facc15;
  border-radius: 2px;
  margin-top: 2px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.18);
}

.pickup-mobile-wave-svg {
  width: 100%;
  margin-left: 0;
  margin-bottom: -2px;
  line-height: 0;
  position: relative;
  z-index: 1;
  overflow: hidden;
}

.pickup-mobile-wave-svg svg {
  display: block;
  width: 100%;
  height: 48px;
}

/* CONTENT */
.mobile-order-content,
.pickup-mobile-content {
  flex: 1;
  background: #f8f8f8;
  padding: 14px 16px 16px 16px;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

.pickup-mobile-title {
  font-size: 26px;
  font-weight: 900;
  color: #0f172a;
  text-align: center;
  margin: 6px 0 3px 0;
  letter-spacing: -0.4px;
}

.pickup-mobile-subtitle {
  font-size: 15px;
  font-weight: 600;
  color: #475569;
  text-align: center;
  margin: 0 0 18px 0;
}

/* SPOTS GRID */
.pickup-spots-container {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 12px;
}

.pickup-spots-grid-top {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.pickup-spots-grid-bottom {
  display: flex;
  justify-content: center;
  gap: 10px;
}

.pickup-spots-grid-bottom .pickup-spot-card {
  width: calc((100% - 20px) / 3);
}

.pickup-spot-card {
  background: #ffffff;
  border-radius: 18px;
  padding: 6px 6px 10px 6px;
  border: 1.8px solid #fed7aa;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
  cursor: pointer;
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  user-select: none;
  box-sizing: border-box;
}

.pickup-spot-card:hover {
  transform: translateY(-2px);
  border-color: #f97316;
}

.pickup-card-img-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 3/4;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 8px;
  background: #fff7ed;
}

.pickup-spot-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.pickup-card-selector {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  padding: 4px 6px;
  border-radius: 16px;
  transition: all 0.2s ease;
  box-sizing: border-box;
}

.pickup-radio-circle {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1.8px solid #94a3b8;
  background: #ffffff;
  display: inline-block;
  flex-shrink: 0;
  transition: all 0.2s;
}

.pickup-selector-text {
  font-size: 12px;
  font-weight: 600;
  color: #475569;
  letter-spacing: -0.2px;
}

/* SELECTED STATE (MATCHES IMAGE 2 SPOT 1) */
.pickup-spot-card.is-selected {
  border: 2.5px solid #facc15 !important;
  box-shadow: 0 0 0 3px rgba(250, 204, 21, 0.35), 0 8px 24px rgba(234, 88, 12, 0.16) !important;
  transform: translateY(-2px);
}

.pickup-spot-card.is-selected .pickup-card-selector {
  background: #ea580c;
  color: #ffffff;
  border-radius: 20px;
  padding: 4px 8px;
  box-shadow: 0 2px 8px rgba(234, 88, 12, 0.3);
}

.pickup-spot-card.is-selected .pickup-radio-circle {
  background: #ffffff;
  border-color: #ffffff;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pickup-spot-card.is-selected .pickup-radio-circle::after {
  content: '✓';
  color: #ea580c;
  font-size: 10px;
  font-weight: 900;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.pickup-spot-card.is-selected .pickup-selector-text {
  color: #ffffff;
  font-weight: 700;
  font-size: 11px;
}

/* OCCUPIED STATE */
.pickup-spot-card.is-occupied {
  opacity: 0.55;
  filter: grayscale(1);
  cursor: not-allowed;
  pointer-events: none;
  border-color: #cbd5e1;
}

.pickup-spot-occupied-overlay {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.pickup-spot-occupied-pill {
  background: #dc2626;
  color: #ffffff;
  font-size: 11px;
  font-weight: 800;
  padding: 4px 8px;
  border-radius: 6px;
  letter-spacing: 0.05em;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.25);
}

.pickup-spot-alert-msg {
  min-height: 20px;
  font-size: 13px;
  text-align: center;
  margin: 6px 0;
  font-weight: 700;
  color: #ef4444;
}

.pickup-mobile-footer {
  padding: 14px 16px max(18px, env(safe-area-inset-bottom)) 16px;
  background: #ffffff;
  border-top: 1px solid #f1f5f9;
  position: sticky;
  bottom: 0;
  z-index: 10;
  box-sizing: border-box;
}

.pickup-mobile-confirm-btn {
  width: 100%;
  height: 52px;
  border-radius: 16px;
  background: linear-gradient(135deg, #ea580c 0%, #f97316 100%);
  color: #ffffff;
  font-size: 17px;
  font-weight: 800;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(234, 88, 12, 0.35);
  transition: all 0.2s ease;
}

.pickup-mobile-confirm-btn:not(:disabled):hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 28px rgba(234, 88, 12, 0.45);
}

.pickup-mobile-confirm-btn:disabled {
  opacity: 0.55;
  filter: grayscale(0.5);
  cursor: not-allowed;
  box-shadow: none;
}

/* SCREEN 4: ORDER STATUS SCREEN */
.order-status-header {
  background: linear-gradient(135deg, #ea580c 0%, #f97316 100%);
  color: #ffffff;
  padding: max(20px, env(safe-area-inset-top)) 20px 24px 20px;
  border-radius: 0 0 24px 24px;
  text-align: center;
  position: relative;
  box-shadow: 0 4px 20px rgba(234, 88, 12, 0.25);
  box-sizing: border-box;
}

.order-status-header-close {
  position: absolute;
  top: max(16px, env(safe-area-inset-top));
  right: 16px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.25);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 16px;
  transition: all 0.2s ease;
  backdrop-filter: blur(4px);
  z-index: 10;
}

.order-status-header-close:hover {
  background: rgba(255, 255, 255, 0.4);
  transform: scale(1.05);
}

.order-status-icon-badge {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 10px auto;
  font-size: 26px;
  color: #ffffff;
}

.order-status-title {
  font-size: 20px;
  font-weight: 800;
  margin: 0 0 4px 0;
  color: #ffffff;
}

.order-status-id-line {
  font-size: 14px;
  color: #ffedd5;
  margin: 0 0 4px 0;
}

.order-status-id-line strong {
  color: #ffffff;
  font-size: 15px;
}

.order-status-store-line {
  font-size: 12px;
  color: #a7f3d0;
  margin: 0;
}

.order-status-body {
  padding: 16px 16px max(24px, env(safe-area-inset-bottom)) 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  box-sizing: border-box;
}

.order-status-spot-card {
  background: #ffffff;
  border-radius: 18px;
  border: 2px solid #fed7aa;
  padding: 14px;
  display: flex;
  align-items: center;
  gap: 14px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
}

.order-status-spot-img-box {
  width: 60px;
  height: 80px;
  border-radius: 10px;
  overflow: hidden;
  flex-shrink: 0;
  background: #fff7ed;
  border: 1px solid #ffedd5;
}

.order-status-spot-img-box img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.order-status-spot-details {
  flex: 1;
}

.order-status-spot-tag {
  font-size: 11px;
  font-weight: 700;
  color: #c2410c;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.order-status-spot-title {
  font-size: 20px;
  font-weight: 900;
  color: #9a3412;
  margin: 2px 0;
}

.order-status-spot-tip {
  font-size: 12px;
  color: #64748b;
  line-height: 1.35;
  margin: 0;
}

.order-status-timer-card {
  background: #ffffff;
  border-radius: 18px;
  padding: 16px;
  border: 1px solid #e2e8f0;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
}

.order-status-timer-label {
  font-size: 13px;
  color: #64748b;
  font-weight: 600;
  margin-bottom: 6px;
}

.order-status-countdown-digits {
  font-size: 40px;
  font-weight: 900;
  font-family: monospace, system-ui;
  color: #0f172a;
  letter-spacing: -1px;
  line-height: 1;
  margin-bottom: 12px;
}

.order-status-progress-track {
  height: 8px;
  border-radius: 4px;
  background: #e2e8f0;
  overflow: hidden;
}

.order-status-progress-bar {
  height: 100%;
  background: linear-gradient(90deg, #ea580c 0%, #f97316 100%);
  border-radius: 4px;
  transition: width 1s linear;
}

.order-status-notice-card {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 14px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.order-status-notice-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #2563eb;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  flex-shrink: 0;
}

.order-status-notice-content {
  font-size: 12.5px;
  color: #1e40af;
  line-height: 1.4;
}

.order-status-arrived-btn {
  width: 100%;
  height: 52px;
  border-radius: 16px;
  background: linear-gradient(135deg, #ea580c 0%, #f97316 100%);
  color: #ffffff;
  font-size: 15px;
  font-weight: 800;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(234, 88, 12, 0.35);
  transition: all 0.25s ease;
}

.order-status-arrived-btn:not(:disabled):hover {
  transform: translateY(-1px);
}

.order-status-arrived-feedback {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 14px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  color: #166534;
  font-size: 12px;
}

.order-status-secondary-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 4px;
}

.order-status-whatsapp-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 16px;
  border-radius: 14px;
  background: #25d366;
  color: #ffffff;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(37, 211, 102, 0.25);
  transition: all 0.2s ease;
}

.order-status-whatsapp-btn:hover {
  background: #20ba5a;
  transform: translateY(-1px);
}

.order-status-continue-btn {
  padding: 11px 14px;
  border-radius: 12px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #475569;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.order-status-continue-btn:hover {
  background: #f8fafc;
  color: #0f172a;
}


/* ============================================================
   CARRUSEL HORIZONTAL NATIVO DE CATEGORÍAS (TODAS LAS CATEGORÍAS)
   ============================================================ */
.categories-scroll {
  display: flex !important;
  gap: 18px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 8px 22px 16px !important;
  scroll-snap-type: x proximity !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  margin-top: 14px !important;
}

.categories-scroll::-webkit-scrollbar {
  display: none !important;
}

.category-card {
  flex: 0 0 110px !important;
  min-width: 110px !important;
  max-width: 110px !important;
  scroll-snap-align: start !important;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  text-align: center !important;
  cursor: pointer !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  user-select: none !important;
  transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}

.category-card:active {
  transform: scale(0.93) !important;
}

.category-card img {
  width: 72px !important;
  height: 72px !important;
  border-radius: 20px !important;
  object-fit: contain !important;
  margin: 0 auto 8px !important;
  display: block !important;
  background: #ffffff !important;
  border: 1px solid rgba(0, 0, 0, 0.05) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04) !important;
  padding: 10px !important;
}

.category-card span {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  color: #111827 !important;
  text-align: center !important;
  max-width: 105px !important;
  word-break: break-word !important;
}

@media (max-width: 430px) {
  .categories-scroll {
    gap: 12px !important;
    padding: 8px 16px 14px !important;
  }
  .category-card {
    flex: 0 0 82px !important;
    min-width: 82px !important;
    max-width: 82px !important;
  }
  .category-card img {
    width: 68px !important;
    height: 68px !important;
    border-radius: 18px !important;
    padding: 8px !important;
  }
  .category-card span {
    font-size: 12px !important;
    max-width: 80px !important;
  }
}


/* =========================================================
   NATIVE DEVICE IN-APP NOTIFICATION BANNER (iOS/Android Push Style)
   ========================================================= */
.lavq-native-notification-banner {
  position: fixed;
  top: 12px;
  top: max(12px, env(safe-area-inset-top, 12px));
  left: 50%;
  transform: translateX(-50%) translateY(-120%);
  width: calc(100% - 24px);
  max-width: 420px;
  background: rgba(255, 255, 255, 0.95);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 22px;
  padding: 12px 14px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18), 0 4px 12px rgba(0, 0, 0, 0.06);
  z-index: 999999;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  opacity: 0;
  pointer-events: auto;
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s ease;
}

.lavq-native-notification-banner.is-visible {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
}

.lavq-native-notif-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  object-fit: cover;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.lavq-native-notif-content {
  flex: 1;
  min-width: 0;
}

.lavq-native-notif-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2px;
}

.lavq-native-notif-app {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #ea580c;
}

.lavq-native-notif-time {
  font-size: 11px;
  color: #94a3b8;
}

.lavq-native-notif-title {
  font-size: 14px;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 3px 0;
  line-height: 1.25;
}

.lavq-native-notif-body {
  font-size: 12px;
  color: #475569;
  margin: 0;
  line-height: 1.35;
}



/* =========================================================
   ORDER STATUS — WAITING CONFIRMATION & REAL-TIME COUNTDOWN
   ========================================================= */
.order-status-waiting-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 18px 16px 14px;
}

.order-status-clock-wrap {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: #fff7ed;
  border: 2px dashed #f97316;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  animation: clockPulseRing 2.4s ease-in-out infinite;
}

.order-status-clock-icon {
  font-size: 36px;
  color: #ea580c;
  animation: clockTickSwing 3s ease-in-out infinite;
}

@keyframes clockPulseRing {
  0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(234, 88, 12, 0.28); }
  50% { transform: scale(1.05); box-shadow: 0 0 0 10px rgba(234, 88, 12, 0); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(234, 88, 12, 0); }
}

@keyframes clockTickSwing {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(8deg); }
  75% { transform: rotate(-8deg); }
}

.order-status-waiting-title {
  font-size: 20px;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 6px;
  letter-spacing: -0.01em;
}

.order-status-waiting-desc {
  font-size: 13px;
  color: #64748b;
  margin: 0 0 14px 0;
  line-height: 1.45;
  max-width: 320px;
}

.order-status-waiting-pulse {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  background: #f1f5f9;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  color: #475569;
}

.order-status-waiting-pulse .pulse-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #f59e0b;
  box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.7);
  animation: pulseDotLive 1.5s infinite;
}

@keyframes pulseDotLive {
  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.7); }
  70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(245, 158, 11, 0); }
  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(245, 158, 11, 0); }
}


/* =========================================================
   Cart & Checkout — Eliminar raya gris permanentemente
   y ocultar encabezado de carrito durante checkout
   ========================================================= */
.cart-sidebar::before,
.cart-sidebar::after,
#cart-sidebar::before,
#cart-sidebar::after,
.cart-header::before,
.cart-header::after {
  display: none !important;
  content: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

.cart-sidebar.checkout-step-active .cart-header {
  display: none !important;
}

.cart-sidebar.checkout-step-active .cart-checkout-view {
  padding-top: max(18px, env(safe-area-inset-top, 18px)) !important;
}

@media (max-width: 768px) {
  .carousel .slide-content { width: 90%; padding: 24px 20px; }
  .carousel .slide-content h2 { font-size: 24px; }
  .carousel .slide .cta { padding: 10px 20px; font-size: 14px; margin-top:4px; }
}
