/* Macropay portal — design system "Vibrant Retail Momentum" (Google Stitch) */
:root{
  --primary:#0046be; --primary-dark:#00328c; --on-primary:#fff;
  --yellow:#ffdf00; --magenta:#e10098; --retail-red:#eb0000; --success:#00a859;
  --ink:#1c1b1b; --ink-soft:#434654; --outline:#c3c6d6;
  --surface:#ffffff; --surface-dim:#f6f3f2; --bg:#fcf9f8;
  --r-card:1rem; --r-btn:.5rem; --gutter:16px; --maxw:1280px;
  --shadow:0 8px 24px rgba(0,70,190,.08); --shadow-hi:0 12px 32px rgba(0,70,190,.16);
  --f:"Montserrat","Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--f);color:var(--ink);background:var(--bg);font-weight:400}
h1,h2,h3{font-family:var(--f);font-weight:800;letter-spacing:-.01em;margin:0}
img{max-width:100%}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--primary);color:#fff;padding:8px 14px;z-index:100;border-radius:8px}
:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}

/* topbar */
.topbar{position:sticky;top:0;z-index:40;background:var(--primary);display:flex;align-items:center;gap:24px;padding:14px 32px;box-shadow:var(--shadow)}
.topbar .logo{height:30px}
.navlinks{display:flex;gap:22px;margin-left:auto}
.navlinks a{color:#fff;text-decoration:none;font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.03em}
.navlinks a:hover{color:var(--yellow)}

/* hero */
.hero{position:relative;background:linear-gradient(120deg,var(--primary) 0%,var(--magenta) 130%);color:#fff;overflow:hidden}
.hero-in{max-width:var(--maxw);margin:0 auto;padding:64px 32px;position:relative;z-index:2;max-width:640px}
.hero h1{font-size:48px;line-height:1.05;margin-bottom:14px}
.hero p{font-size:18px;font-weight:500;line-height:1.5;opacity:.97}
.hero .cta{display:inline-block;margin-top:24px;background:var(--yellow);color:var(--ink);font-weight:800;padding:14px 30px;border-radius:var(--r-btn);text-decoration:none;font-size:16px;box-shadow:var(--shadow);transition:transform .15s}
.hero .cta:hover{transform:scale(1.03)}
.hero-art{position:absolute;right:-40px;top:0;bottom:0;width:55%;background-size:cover;background-position:center;opacity:.92;mask-image:linear-gradient(90deg,transparent,#000 35%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 35%)}
@media(max-width:820px){.hero-art{display:none}.hero h1{font-size:32px}}

/* sections */
.sec-title{font-size:32px;margin:56px 0 8px;color:var(--ink)}
.sec-sub{color:var(--ink-soft);font-weight:500;margin-bottom:24px}

/* product grid — "fully stocked shelf" */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--gutter)}
.card{background:var(--surface);border:1px solid var(--outline);border-radius:var(--r-card);padding:16px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s}
.card:hover{transform:scale(1.02);box-shadow:var(--shadow-hi)}
.card-img{aspect-ratio:1;background:var(--surface-dim);border-radius:.75rem;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:8px}
.card-img img{width:82%;height:82%;object-fit:contain;mix-blend-mode:multiply}
.card .cat{font-size:12px;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}
.card .name{font-size:16px;font-weight:700;line-height:1.25}
.card .week-badge{align-self:flex-start;background:var(--yellow);color:var(--ink);font-weight:700;font-size:13px;padding:4px 12px;border-radius:9999px;margin:6px 0 2px}
.card .week-badge b{font-weight:800}
.card .price{font-size:24px;font-weight:800;letter-spacing:-.01em;color:var(--primary)}
.card .plazo{font-size:12px;color:var(--ink-soft);font-weight:600;margin-bottom:8px}
.card .buy{margin-top:auto;background:var(--primary);color:#fff;border:none;border-radius:var(--r-btn);padding:10px;font-family:var(--f);font-weight:700;font-size:14px;cursor:pointer;transition:background .15s}
.card .buy:hover{background:var(--primary-dark)}

/* how */
.how{max-width:680px;font-size:18px;font-weight:500;line-height:1.9;color:var(--ink-soft)}
.how b{color:var(--ink);font-weight:800}

footer[role=contentinfo]{background:var(--ink);color:#cfd2d6;margin-top:64px;padding:28px 0;font-size:14px}
.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
footer a{color:var(--yellow);font-weight:700}

/* chat widget */
.chat-toggle{position:fixed;right:24px;bottom:24px;width:62px;height:62px;border-radius:9999px;border:none;background:var(--primary);color:#fff;font-size:1.6rem;cursor:pointer;box-shadow:0 6px 24px rgba(0,70,190,.45);z-index:60;transition:transform .15s}
.chat-toggle:hover{transform:scale(1.06)}
.chat-panel{position:fixed;right:24px;bottom:96px;width:374px;max-width:calc(100vw - 32px);height:540px;max-height:calc(100vh - 130px);background:#fff;border:1px solid var(--outline);border-radius:var(--r-card);box-shadow:var(--shadow-hi);display:flex;flex-direction:column;overflow:hidden;z-index:60}
.chat-panel[hidden]{display:none}
.chat-head{background:var(--primary);color:#fff;padding:14px 16px;font-weight:800;display:flex;justify-content:space-between;align-items:center}
.chat-head button{background:transparent;border:none;color:#fff;font-size:1.1rem;cursor:pointer}
.chat-body{flex:1;overflow-y:auto;padding:14px;background:var(--bg);display:flex;flex-direction:column;gap:8px}
.msg{max-width:85%;padding:9px 13px;border-radius:14px;font-size:14px;line-height:1.45;font-weight:500}
.msg.u{background:var(--primary);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.msg.a{background:#fff;border:1px solid var(--outline);align-self:flex-start;border-bottom-left-radius:4px}
.msg.sys{align-self:center;background:transparent;color:var(--ink-soft);font-size:12px;text-align:center}
.chat-form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--outline)}
.chat-form input{flex:1;border:1px solid var(--outline);border-radius:var(--r-btn);padding:10px 12px;font-family:var(--f);font-size:14px}
.chat-form input:focus{outline:none;border-color:var(--primary)}
.chat-form button{background:var(--primary);color:#fff;border:none;border-radius:var(--r-btn);width:44px;font-size:1.1rem;cursor:pointer}
.typing{font-size:12px;color:var(--ink-soft);align-self:flex-start;padding:4px 8px}
