/* ===== UniLabSci — Design System Premium =====
   Paleta e tipografia fiéis ao Manual de Identidade Visual (Ed. 2026 V1.0).
   Navy = estrutura · Neutros = respiro · Laranja = só acento.
   Grid base: 8px · gutter 24px. */
:root{
  /* marca */
  --blue:#17256E;        /* Navy UniLab — base/estrutura */
  --orange:#F85023;      /* Laranja Sci — só acento */
  /* neutros do manual */
  --graphite:#333333;    /* Grafite — texto */
  --gray-light:#DFDFDF;  /* Cinza Claro — superfícies */
  --white:#ffffff;       /* Branco — respiro */
  /* apoio do manual */
  --peach:#FFCCC2;       /* Pêssego — apoio */
  --periwinkle:#CCD6FF;  /* Periwinkle — apoio */
  /* tons de trabalho derivados */
  --blue-700:#101a4d; --blue-900:#0b1238;
  --orange-soft:#FFF1EC; --orange-line:#ffd9cc;
  --ink:#13183a; --muted:#6b7494; --line:#e9ecf4; --bg:#ffffff; --bg-soft:#f6f7fb;
  --shadow:0 18px 40px -18px rgba(16,26,77,.28);
  --shadow-sm:0 8px 24px -12px rgba(16,26,77,.22);
  --radius:16px;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{ font-family:'Helvetica Neue',Inter,-apple-system,Arial,sans-serif; color:var(--ink); background:var(--bg); -webkit-font-smoothing:antialiased; overflow-x:hidden; }
h1,h2,h3,h4{ overflow-wrap:break-word; }
a{ text-decoration:none; color:inherit; cursor:pointer; }
img{ max-width:100%; display:block; }
.wrap{ max-width:1240px; margin:0 auto; padding:0 40px; }
.eyebrow{ font-size:12px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--orange); }
.svg-defs{ position:absolute; width:0; height:0; }

/* ---------- TOP BAR ---------- */
.topbar{ background:var(--blue-900); color:#aeb8e0; font-size:12.5px; }
.topbar .wrap{ display:flex; justify-content:space-between; align-items:center; height:42px; }
.topbar .r{ color:#ffb59e; font-weight:500; }

/* ---------- HEADER ---------- */
header.site{ background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50; }
.head{ display:flex; align-items:center; gap:36px; height:92px; }
.brand{ display:flex; align-items:center; gap:13px; }
.brand .mark{ height:48px; width:auto; }
.brand .wm .n{ font-size:23px; font-weight:400; letter-spacing:-.01em; color:var(--blue); line-height:1; }
.brand .wm .n b{ font-weight:800; }
.brand .wm .t{ font-size:8.5px; font-weight:700; letter-spacing:.18em; color:var(--orange); margin-top:4px; }
.search{ flex:1; display:flex; align-items:center; background:var(--bg-soft); border:1px solid var(--line); border-radius:14px; padding:6px 6px 6px 18px; }
.search input{ border:0; background:transparent; flex:1; font-size:14.5px; color:var(--ink); outline:none; font-family:inherit; }
.search input::placeholder{ color:#9aa3c0; }
.search .btn{ background:var(--orange); color:#fff; font-weight:700; font-size:14px; padding:11px 22px; border-radius:10px; border:0; cursor:pointer; }
.acts{ display:flex; align-items:center; gap:24px; }
.act{ display:flex; align-items:center; gap:9px; }
.act .ic{ width:38px; height:38px; border-radius:12px; display:flex; align-items:center; justify-content:center; }
.act .ic.o{ background:var(--orange-soft); color:var(--orange); }
.act .ic.f{ background:var(--orange); color:#fff; }
.act .lab .s{ font-size:11px; color:var(--muted); } .act .lab .b{ font-size:13.5px; font-weight:700; color:var(--blue); }

/* ---------- NAV ---------- */
nav.site{ background:#fff; border-bottom:1px solid var(--line); }
.nav{ display:flex; align-items:center; gap:28px; height:56px; }
.allcat{ display:flex; align-items:center; gap:10px; background:var(--blue); color:#fff; font-weight:700; font-size:14px; padding:13px 22px; border-radius:12px; box-shadow:var(--shadow-sm); }
.nav a.link{ font-size:14.5px; font-weight:600; color:#2a3354; }
.nav a.link:hover,.nav a.link.active{ color:var(--orange); }
/* megamenu */
.allcat-wrap{ position:relative; }
.allcat-wrap .c-ar{ opacity:.85; font-size:11px; display:inline-block; transition:transform .2s; }
.allcat-wrap.open .c-ar{ transform:rotate(180deg); }
.megamenu{ position:absolute; top:calc(100% + 6px); left:0; width:1100px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); padding:30px 34px; display:none; z-index:80; }
.allcat-wrap.open .megamenu{ display:block; }
.mega-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px 40px; }
.mega-col h6{ display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:800; color:var(--blue); margin-bottom:11px; }
.mega-col h6 svg{ width:15px; height:15px; color:var(--orange); } .mega-col h6 img.hexmark{ width:15px; height:auto; }
.mega-col a{ display:block; font-size:13px; color:#566087; padding:5px 0; }
.mega-col a:hover{ color:var(--orange); }

/* ---------- BUTTONS ---------- */
.btn-primary{ background:var(--orange); color:#fff; font-weight:700; font-size:15px; padding:15px 28px; border-radius:12px; box-shadow:0 16px 30px -14px rgba(248,80,35,.6); display:inline-flex; align-items:center; gap:9px; border:0; cursor:pointer; }
.btn-blue{ background:var(--blue); color:#fff; font-weight:700; font-size:15px; padding:15px 28px; border-radius:12px; display:inline-flex; align-items:center; gap:9px; border:0; cursor:pointer; }
.btn-ghost{ border:1.5px solid rgba(255,255,255,.35); color:#fff; font-weight:600; font-size:15px; padding:15px 26px; border-radius:12px; background:transparent; }
.btn-out{ border:1.5px solid var(--line); color:var(--blue); font-weight:700; font-size:14px; padding:13px 22px; border-radius:11px; background:#fff; display:inline-flex; align-items:center; gap:8px; }

/* ---------- HERO ---------- */
.hero{ position:relative; overflow:hidden; background:linear-gradient(125deg,#1d2b77 0%,var(--blue) 42%,#0d1644 100%); color:#fff; }
.hero .hexbg{ position:absolute; right:-120px; top:-80px; width:auto; height:780px; opacity:.08; }
.hero .glow{ position:absolute; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle,rgba(248,80,35,.35),transparent 65%); right:60px; bottom:-200px; }
.hero .wrap{ position:relative; z-index:2; display:flex; align-items:center; gap:60px; padding:88px 40px; }
.hero .col{ flex:1; }
.hero .eyebrow{ color:#ffb59e; }
.hero h1{ font-size:54px; line-height:1.04; font-weight:800; letter-spacing:-.02em; margin:18px 0 20px; }
.hero p.lead{ font-size:17.5px; line-height:1.6; color:#cdd5f5; max-width:520px; font-weight:300; }
.hero .cta{ display:flex; gap:14px; margin-top:34px; }
.hero .visual{ width:480px; height:440px; border-radius:22px; background:linear-gradient(160deg,rgba(255,255,255,.12),rgba(255,255,255,.03)); border:1px solid rgba(255,255,255,.16); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; position:relative; overflow:hidden; }
.hero .visual .people{ width:250px; height:auto; color:rgba(255,255,255,.6); }
.hero .visual .ph-cap{ font-size:12.5px; letter-spacing:.03em; color:rgba(255,255,255,.5); }
.hero .visual .ph-tag{ position:absolute; top:16px; left:16px; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#ffb59e; border:1px solid rgba(255,181,158,.45); padding:4px 11px; border-radius:30px; }
.hero .stats{ display:flex; gap:30px; margin-top:40px; }
.hero .stat .v{ font-size:26px; font-weight:800; } .hero .stat .l{ font-size:12.5px; color:#aeb8e0; }

/* ---------- TRUST ---------- */
.trust{ background:#fff; border-bottom:1px solid var(--line); }
.trust .wrap{ display:flex; justify-content:space-between; gap:20px; padding:26px 40px; }
.trust .t{ display:flex; align-items:center; gap:13px; }
.trust .t .ic{ width:40px; height:40px; border-radius:11px; background:var(--orange-soft); color:var(--orange); display:flex; align-items:center; justify-content:center; flex:0 0 40px; }
.trust .t .b{ font-size:13.5px; font-weight:700; color:var(--blue); } .trust .t .s{ font-size:11.5px; color:var(--muted); }

/* ---------- SECTIONS ---------- */
section.blk{ padding:74px 0; } .blk.soft{ background:var(--bg-soft); }
.head-row{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:34px; }
.head-row h2{ font-size:32px; font-weight:800; letter-spacing:-.02em; color:var(--blue); margin-top:6px; }
.head-row .more{ font-size:14px; font-weight:700; color:var(--orange); }
.title-mark{ display:flex; align-items:center; gap:10px; } .title-mark svg{ width:20px; height:20px; color:var(--orange); } .title-mark img.hexmark{ width:20px; height:auto; }

/* category tiles */
.cats{ display:grid; grid-template-columns:repeat(6,1fr); gap:18px; }
.cat{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:26px 14px; text-align:center; box-shadow:var(--shadow-sm); }
.cat .ic{ width:58px; height:58px; border-radius:16px; background:linear-gradient(160deg,#fff3ef,#ffe7df); color:var(--orange); display:flex; align-items:center; justify-content:center; margin:0 auto 14px; }
.cat .nm{ font-size:14px; font-weight:700; color:var(--blue); }

/* products */
.prods{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.prod{ background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; box-shadow:var(--shadow); }
.prod .img{ height:210px; background:radial-gradient(circle at 50% 40%,#fff,#eef1f8); display:flex; align-items:center; justify-content:center; position:relative; }
.prod .img .em{ width:78px; height:78px; opacity:.85; color:#aeb6d6; }
.prod .tag{ position:absolute; top:14px; left:14px; background:var(--orange); color:#fff; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:5px 10px; border-radius:30px; }
.prod .bd{ padding:18px 20px 22px; }
.prod .ct{ font-size:10.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--orange); }
.prod .nm{ font-size:14.5px; font-weight:600; color:var(--ink); line-height:1.4; margin:7px 0 12px; min-height:40px; }
.prod .pr{ font-size:22px; font-weight:800; color:var(--blue); letter-spacing:-.01em; }
.prod .inst{ font-size:11.5px; color:var(--muted); margin-top:3px; }
.prod .buy{ margin-top:16px; display:flex; align-items:center; justify-content:center; gap:8px; background:var(--blue); color:#fff; font-weight:700; font-size:14px; padding:13px; border-radius:11px; }
.prod .buy.alt{ background:var(--orange); }

/* CTA band */
.ctaband{ position:relative; overflow:hidden; background:linear-gradient(120deg,var(--blue) 0%,#0e1645 100%); color:#fff; border-radius:24px; padding:48px 56px; display:flex; align-items:center; justify-content:space-between; box-shadow:var(--shadow); }
.ctaband .hexbg{ position:absolute; right:-30px; top:-50px; width:auto; height:360px; opacity:.10; }
.ctaband h3{ font-size:28px; font-weight:800; letter-spacing:-.01em; position:relative; }
.ctaband p{ color:#c7cff2; font-size:15px; margin-top:8px; position:relative; }

/* blog */
.posts{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.post{ background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; box-shadow:var(--shadow-sm); }
.post .img{ height:172px; background:linear-gradient(160deg,var(--periwinkle),#e6ecff); display:flex;align-items:center;justify-content:center; color:#7d8bc4; }
.post .bd{ padding:20px 22px 24px; }
.post .mt{ font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--orange); }
.post h4{ font-size:17px; font-weight:700; color:var(--blue); line-height:1.32; margin:9px 0 8px; }
.post p{ font-size:13px; color:var(--muted); line-height:1.55; }
.post .rd{ font-size:13px; font-weight:700; color:var(--orange); margin-top:12px; display:inline-flex; gap:6px; align-items:center; }

/* ---------- BREADCRUMB / PAGE HEAD ---------- */
.crumb{ font-size:13px; color:var(--muted); padding:22px 0 0; } .crumb a:hover{ color:var(--orange); } .crumb b{ color:var(--ink); }
.page-head{ padding:18px 0 4px; } .page-head h1{ font-size:34px; font-weight:800; color:var(--blue); letter-spacing:-.02em; } .page-head .sub{ color:var(--muted); font-size:14.5px; margin-top:6px; }

/* ---------- LISTING (categoria/busca) ---------- */
.filterbar{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px 18px; box-shadow:var(--shadow-sm); margin:22px 0 30px; }
.filterbar .lb{ font-size:13px; font-weight:700; color:var(--blue); margin-right:4px; }
.chip{ display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line); border-radius:30px; padding:9px 16px; font-size:13px; font-weight:600; color:#39425f; background:#fff; }
.chip.on{ border-color:var(--orange); color:var(--orange); background:var(--orange-soft); }
.chip .x{ color:var(--orange); font-weight:800; }
.listing{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.result-bar{ display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; color:var(--muted); font-size:14px; }
.result-bar .sort{ font-weight:700; color:var(--blue); }

/* ---------- PRODUCT DETAIL ---------- */
.pdp{ display:grid; grid-template-columns:1.05fr 1fr; gap:54px; padding:30px 0 10px; }
.gallery .main{ height:440px; border:1px solid var(--line); border-radius:20px; background:radial-gradient(circle at 50% 40%,#fff,#eef1f8); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-sm); }
.gallery .main svg{ width:150px; height:150px; color:#aeb6d6; }
.gallery .thumbs{ display:flex; gap:12px; margin-top:14px; }
.gallery .thumbs .th{ width:74px; height:74px; border-radius:12px; border:1px solid var(--line); background:#f3f5fb; display:flex; align-items:center; justify-content:center; color:#aeb6d6; }
.gallery .thumbs .th.on{ border:2px solid var(--orange); }
.pinfo .stock{ font-size:13px; font-weight:700; color:var(--blue); display:flex; align-items:center; gap:7px; }
.pinfo .ct{ font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--orange); margin-top:14px; }
.pinfo h1{ font-size:30px; font-weight:800; color:var(--blue); letter-spacing:-.02em; margin:8px 0 6px; line-height:1.15; }
.pinfo .rate{ font-size:13px; color:var(--muted); }
.pinfo .price{ font-size:40px; font-weight:800; color:var(--blue); letter-spacing:-.02em; margin:20px 0 4px; }
.pinfo .inst{ font-size:14px; color:var(--muted); }
.pinfo .actions{ display:flex; flex-direction:column; gap:12px; margin:26px 0; }
.pinfo .actions .btn-primary,.pinfo .actions .btn-blue{ justify-content:center; font-size:16px; padding:17px; }
.specs{ background:var(--bg-soft); border:1px solid var(--line); border-radius:14px; padding:22px 24px; }
.specs h4{ font-size:14px; color:var(--blue); margin-bottom:12px; }
.specs table{ width:100%; border-collapse:collapse; } .specs td{ font-size:13.5px; padding:7px 0; border-bottom:1px solid var(--line); color:#41496a; } .specs td:first-child{ color:var(--muted); width:42%; }

/* ---------- CART ---------- */
.cart{ display:grid; grid-template-columns:1.7fr 1fr; gap:32px; padding:26px 0 10px; }
.cart-items{ border:1px solid var(--line); border-radius:16px; overflow:hidden; box-shadow:var(--shadow-sm); }
.citem{ display:flex; align-items:center; gap:18px; padding:20px; border-bottom:1px solid var(--line); }
.citem:last-child{ border-bottom:0; }
.citem .th{ width:66px; height:66px; border-radius:12px; background:#f3f5fb; display:flex;align-items:center;justify-content:center; color:#aeb6d6; flex:0 0 66px; }
.citem .info{ flex:1; } .citem .info .nm{ font-size:14.5px; font-weight:600; color:var(--ink); } .citem .info .cd{ font-size:12px; color:var(--muted); margin-top:3px; }
.qty{ display:flex; align-items:center; border:1px solid var(--line); border-radius:9px; overflow:hidden; }
.qty span{ padding:8px 12px; font-weight:700; color:var(--blue); } .qty b{ padding:8px 14px; border-left:1px solid var(--line); border-right:1px solid var(--line); }
.citem .pr{ font-weight:800; color:var(--blue); font-size:16px; width:90px; text-align:right; }
.citem .rm{ color:#aab2cc; font-size:18px; }
.summary{ background:var(--bg-soft); border:1px solid var(--line); border-radius:16px; padding:26px; height:fit-content; }
.summary h3{ font-size:18px; color:var(--blue); margin-bottom:18px; }
.summary .row{ display:flex; justify-content:space-between; font-size:14px; color:#41496a; padding:9px 0; }
.summary .row.tot{ border-top:1px solid var(--line); margin-top:8px; padding-top:16px; font-size:18px; font-weight:800; color:var(--blue); }
.summary .btn-primary{ width:100%; justify-content:center; margin-top:18px; padding:16px; }
.summary .hint{ font-size:12px; color:var(--muted); text-align:center; margin-top:12px; }

/* ---------- INSTITUTIONAL / CONTACT ---------- */
.lead-block{ max-width:880px; font-size:16px; line-height:1.7; color:#41496a; }
.cards3{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:34px; }
.icard{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:30px 28px; box-shadow:var(--shadow-sm); }
.icard .ic{ width:52px; height:52px; border-radius:14px; background:var(--orange-soft); color:var(--orange); display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.icard h3{ font-size:18px; color:var(--blue); margin-bottom:8px; } .icard p{ font-size:14px; color:var(--muted); line-height:1.6; }

/* ---------- 404 ---------- */
.err{ text-align:center; padding:90px 0; }
.err .big{ font-size:120px; font-weight:800; color:var(--blue); letter-spacing:-.04em; line-height:1; opacity:.9; }
.err h1{ font-size:30px; color:var(--blue); margin:10px 0 12px; } .err p{ color:var(--muted); font-size:16px; max-width:520px; margin:0 auto 26px; }

/* ---------- ARTICLE (post) ---------- */
.article{ max-width:760px; margin:0 auto; padding:20px 0; }
.article .hero-img{ height:320px; border-radius:20px; background:linear-gradient(160deg,var(--periwinkle),#dde6f6); display:flex;align-items:center;justify-content:center; color:#7d8bc4; margin:22px 0 28px; box-shadow:var(--shadow-sm); }
.article h1{ font-size:36px; color:var(--blue); letter-spacing:-.02em; line-height:1.15; margin-bottom:12px; }
.article p{ font-size:16px; line-height:1.8; color:#3c445f; margin-bottom:18px; }
.article h2{ font-size:22px; color:var(--blue); margin:28px 0 12px; }

/* ---------- FOOTER ---------- */
footer.site{ background:var(--blue-900); color:#fff; padding:64px 0 28px; }
.fcols{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:40px; }
.fbrand .n{ font-size:22px; font-weight:400; } .fbrand .n b{ font-weight:800; } .fbrand p{ color:#9fabd6; font-size:13px; line-height:1.6; margin:14px 0 16px; }
.fsoc{ display:flex; gap:12px; } .fsoc .s{ width:36px;height:36px;border-radius:10px; background:rgba(255,255,255,.07); display:flex;align-items:center;justify-content:center; color:#ffb59e; font-size:12px; font-weight:700; }
.fcol h5{ font-size:14px; font-weight:700; margin-bottom:16px; } .fcol a{ display:block; color:#9fabd6; font-size:13px; line-height:2.1; } .fcol a:hover{ color:#fff; }
.fwa{ background:var(--orange); color:#fff; font-weight:700; font-size:13.5px; padding:13px 18px; border-radius:11px; display:inline-flex; gap:9px; align-items:center; margin-top:8px; }
.fbar{ border-top:1px solid rgba(255,255,255,.1); margin-top:44px; padding-top:22px; display:flex; justify-content:space-between; color:#7683b5; font-size:12px; }

/* ============================================================
   RESPONSIVO — tablet (≤880px) e mobile (≤560px)
   Grade base 8px · respiro generoso mantido
   ============================================================ */
@media (max-width:880px){
  .wrap{ padding:0 24px; }

  /* header */
  .topbar{ font-size:11px; }
  .topbar .wrap{ height:auto; padding:8px 24px; }
  .topbar .wrap span:first-child{ display:none; }
  .topbar .r{ width:100%; text-align:center; }
  .head{ flex-wrap:wrap; height:auto; gap:16px; padding:16px 0; }
  .brand{ flex:1; }
  .search{ order:3; flex-basis:100%; }
  .acts{ gap:16px; }
  .act .lab{ display:none; }

  /* nav vira rolagem horizontal */
  .nav{ gap:18px; height:52px; overflow-x:auto; -webkit-overflow-scrolling:touch; white-space:nowrap; }
  .nav::-webkit-scrollbar{ display:none; }
  .allcat{ flex:0 0 auto; }
  .megamenu{ width:calc(100vw - 32px); left:-24px; padding:22px 22px; }
  .mega-grid{ grid-template-columns:1fr 1fr; gap:18px 22px; }

  /* hero empilha */
  .hero .wrap{ flex-direction:column; gap:32px; padding:56px 24px; }
  .hero h1{ font-size:38px; }
  .hero .visual{ width:100%; height:300px; }
  .hero .stats{ gap:24px; flex-wrap:wrap; }

  /* trust 2×2 */
  .trust .wrap{ flex-wrap:wrap; gap:18px 24px; padding:24px; }
  .trust .t{ flex:1 1 40%; }

  /* grids */
  section.blk{ padding:48px 0; }
  .head-row{ flex-direction:column; align-items:flex-start; gap:10px; }
  .cats{ grid-template-columns:repeat(3,1fr); gap:14px; }
  .prods,.listing{ grid-template-columns:repeat(2,1fr); gap:18px; }
  .posts,.cards3{ grid-template-columns:1fr 1fr; gap:18px; }

  /* CTA band empilha */
  .ctaband{ flex-direction:column; align-items:flex-start; gap:20px; padding:36px 32px; }

  /* PDP e carrinho empilhados (block evita expansão de faixa do grid) */
  .pdp{ display:block; }
  .gallery,.pinfo{ min-width:0; }
  .pinfo{ margin-top:28px; }
  .gallery .main{ height:340px; }
  .cart{ display:block; }
  .cart-items,.summary{ min-width:0; max-width:100%; }
  .summary{ margin-top:24px; }

  /* filtros rolam na horizontal */
  .filterbar{ flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .filterbar::-webkit-scrollbar{ display:none; }
  .chip{ flex:0 0 auto; }

  /* footer */
  .fcols{ grid-template-columns:1fr 1fr; gap:30px; }
  .fbrand{ grid-column:1 / -1; }

  /* form contato */
  .article h1{ font-size:28px; }
}

@media (max-width:560px){
  .wrap{ padding:0 18px; }
  .topbar{ display:none; }
  .brand .wm .n{ font-size:20px; }
  .brand .mark{ height:40px; }
  .search .btn{ padding:11px 16px; }
  .hero h1{ font-size:27px; }
  .hero p.lead{ font-size:15.5px; }
  .hero .cta{ flex-direction:column; align-items:stretch; }
  .hero .cta a{ justify-content:center; }
  .cats{ grid-template-columns:repeat(2,1fr); }
  .prods,.listing,.posts,.cards3{ grid-template-columns:1fr; }
  .head-row h2{ font-size:26px; }
  .mega-grid{ grid-template-columns:1fr; }
  .ctaband{ padding:28px 22px; }
  .ctaband h3{ font-size:22px; }
  /* itens do carrinho: grid 2 col · thumb+qtd à esq, nome+preço à dir · ✕ no canto */
  .citem{ display:grid; grid-template-columns:52px 1fr; grid-template-areas:"th info" "qty pr"; column-gap:14px; row-gap:12px; align-items:center; position:relative; padding-right:34px; }
  .citem .th{ grid-area:th; align-self:start; flex:0 0 52px; width:52px; height:52px; }
  .citem .info{ grid-area:info; }
  .citem .qty{ grid-area:qty; justify-self:start; }
  .citem .pr{ grid-area:pr; justify-self:end; width:auto; text-align:right; }
  .citem .rm{ position:absolute; top:18px; right:14px; }
  .pinfo .actions .btn-primary,.pinfo .actions .btn-blue{ font-size:15px; padding:15px; }
  /* resumo: valores podem quebrar sem estourar */
  .summary .row{ gap:14px; }
  .summary .row span:last-child{ text-align:right; }
  .err .big{ font-size:84px; }
  .page-head h1{ font-size:27px; }
  .pinfo .price{ font-size:34px; }
  /* form contato 1 coluna */
  .icard{ padding:24px 22px; }
}
