:root { --bg:#f2f3f4; --surface:#fff; --ink:#101418; --muted:#5b6470; --brand:#ff6a13; --brand-ink:#101418; --line:#d9dce0; --ok:#15803d; --ko:#b91c1c; --radius:4px; }
* { box-sizing: border-box; }
body { margin:0; font:16px/1.55 "Barlow",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; color:var(--ink); background:var(--bg); }
a { color:inherit; }
.container { max-width:1180px; margin:0 auto; padding:24px 16px; }
.topbar { background:var(--ink); color:#fff; font-size:13px; text-align:center; padding:6px 12px; }
.site-header { display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between; padding:14px 16px; border-bottom:1px solid var(--line); }
.logo { font-size:24px; text-decoration:none; text-transform:uppercase; letter-spacing:.5px; }
.logo img { display:block; height:34px; width:auto; }
.site-header nav { display:flex; flex-wrap:wrap; gap:18px; }
.site-header nav a { text-decoration:none; font-weight:600; }
.site-header nav a:hover { color:var(--brand); }
.hero { background:var(--surface); padding:40px 24px; border-radius:var(--radius); margin-bottom:28px; }
h1, h2, h3, .hero h1 { font-family:"Barlow Condensed","Barlow",sans-serif; text-transform:uppercase; letter-spacing:.5px; }
.hero h1 { margin:0 0 8px; font-size:40px; }
.hero.emel { background:var(--ink); color:#fff; }
.emel-teaser { background:#fff7ed; border:1px solid #fed7aa; padding:20px 24px; border-radius:var(--radius); margin:28px 0; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; background:var(--brand); color:var(--brand-ink); padding:0 24px; border:0; border-radius:var(--radius); text-decoration:none; font:inherit; font-family:"Barlow Condensed","Barlow",sans-serif; font-weight:700; font-size:18px; letter-spacing:.5px; text-transform:uppercase; cursor:pointer; }
.btn:hover { filter:brightness(.95); }
.btn[disabled] { opacity:.5; cursor:not-allowed; }
.btn-secondary { background:var(--surface); color:var(--ink); border:2px solid var(--ink); }
.chips { list-style:none; display:flex; flex-wrap:wrap; gap:8px; padding:0; }
.chips a { display:inline-block; padding:6px 12px; border:1px solid var(--line); border-radius:999px; text-decoration:none; }
.chips a:hover { border-color:var(--brand); color:var(--brand); }
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:16px; }
.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:12px; display:flex; flex-direction:column; }
.card img, .noimg { width:100%; aspect-ratio:1/1; object-fit:contain; background:#fafafa; border-radius:var(--radius); }
.noimg { display:flex; align-items:center; justify-content:center; color:var(--muted); font-size:13px; }
.card h3 { font-size:15px; margin:10px 0 6px; }
.card a { text-decoration:none; }
.price { font-weight:700; margin:4px 0; }
.price small, .muted, small { color:var(--muted); font-weight:400; }
.price.big { font-size:28px; }
.stock.ok { color:var(--ok); } .stock.ko { color:var(--ko); }
.product { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.product .gallery { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
@media (max-width:760px) { .product { grid-template-columns:1fr; } }
.specs { border-collapse:collapse; width:100%; max-width:720px; }
.specs th, .specs td { text-align:left; padding:6px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
.description table { border-collapse:collapse; } .description td, .description th { border:1px solid var(--line); padding:4px 8px; }
.pager { display:flex; gap:6px; margin:24px 0; flex-wrap:wrap; }
.pager a { padding:4px 10px; border:1px solid var(--line); border-radius:4px; text-decoration:none; }
.pager a.current { background:var(--ink); color:#fff; }
.tree ul { list-style:none; padding-left:18px; }
.site-footer { border-top:1px solid var(--line); background:#fafafa; margin-top:40px; font-size:14px; }

/* Carrello, checkout, ordine */
.site-header { background:var(--surface); }
.cart-link { white-space:nowrap; }
.cart-count { display:inline-block; min-width:22px; padding:0 6px; border-radius:11px; background:var(--brand); color:var(--brand-ink); font-size:13px; text-align:center; }
.flash { padding:12px 16px; margin:0 0 16px; border-radius:var(--radius); border:1px solid var(--line); background:var(--surface); }
.flash.ok { border-color:var(--ok); } .flash.error { border-color:var(--ko); background:#fef2f2; }
.flash ul { margin:0; padding-left:18px; }
.add-to-cart { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; margin:16px 0; }
.qty-label { display:flex; flex-direction:column; font-size:14px; color:var(--muted); }
.qty { width:80px; min-height:48px; padding:0 10px; font:inherit; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.cart { width:100%; border-collapse:collapse; background:var(--surface); }
.cart th, .cart td { text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:middle; }
.cart tfoot th, .cart tfoot td { border-bottom:0; }
.cart .total th { font-size:20px; }
.cart-product { display:flex; gap:12px; align-items:center; }
.cart-product img { object-fit:contain; background:#fafafa; }
.link { background:none; border:0; padding:0; font:inherit; color:var(--ko); text-decoration:underline; cursor:pointer; }
.actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:16px; }
.checkout { display:grid; grid-template-columns:minmax(0,2fr) minmax(260px,1fr); gap:32px; align-items:start; }
@media (max-width:860px) { .checkout { grid-template-columns:1fr; } }
.form label { display:block; margin:0 0 14px; font-weight:600; }
.form input[type=text], .form input[type=email], .form input[type=tel], .form select { display:block; width:100%; min-height:48px; margin-top:4px; padding:0 12px; font:inherit; font-weight:400; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.form .row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:560px) { .form .row { grid-template-columns:1fr; } }
.form .check { display:flex; gap:10px; align-items:flex-start; font-weight:400; }
.form .check input { margin-top:5px; width:20px; height:20px; }
.summary-box { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:16px 20px; }
.plain { list-style:none; margin:0 0 12px; padding:0; }
.plain li { padding:6px 0; border-bottom:1px solid var(--line); }
.right { float:right; }
.badge { display:inline-block; padding:2px 12px; border-radius:var(--radius); background:var(--ink); color:#fff; font-weight:600; }
.badge-pending_payment { background:var(--brand); color:var(--brand-ink); }
.badge-cancelled, .badge-failed, .badge-refunded { background:var(--ko); }
.pay { margin-top:24px; }
