body{line-height:1.6;padding:0 1rem 2rem}
.navbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;margin-bottom:1.5rem}
.navbar h1{margin:0}
.navbar a{text-decoration:none}
.navbar .cart-link{display:flex;align-items:center;gap:.5rem;text-decoration:none;padding:.4rem .75rem;transition:background .2s}
.cart-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;line-height:1}
.cart-badge:empty{display:none}
.card{box-shadow:0 1px 3px rgba(0,0,0,.08);padding:1.5rem;max-width:1100px;margin:0 auto}
.card-narrow{max-width:800px}
main.card{margin-bottom:1.5rem}
.catalogo-header{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.5rem}
.catalogo-title{margin:0;line-height:1.2}
.catalogo-header .subtitle{margin:0;white-space:nowrap}
.filters{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;align-items:center}
.filters select,.filters input{padding:.5rem .75rem;min-width:140px;flex:1}
.filters input{flex:2;min-width:200px}
.filters button,.btn{padding:.5rem 1rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:.35rem;transition:background .2s}
table{width:100%}
th,td{padding:.75rem 1rem;text-align:left}
th{white-space:nowrap}
.prezzo{white-space:nowrap;text-align:right}
.thumb{width:50px;height:50px;object-fit:cover;display:block}
.categoria-badge{display:inline-block;padding:.15rem .5rem;text-transform:uppercase;letter-spacing:.02em}
.dettaglio{display:flex;gap:2rem;flex-wrap:wrap}
.dettaglio .img-col{flex:0 0 300px}
.dettaglio .img-col img{width:100%}
.dettaglio .info-col{flex:1;min-width:250px}
.dettaglio h2{margin-bottom:.5rem}
.dettaglio .meta{margin-bottom:1rem}
.dettaglio dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;max-width:500px}
.dettaglio dd{margin:0}
.cart-item{display:flex;align-items:center;gap:1rem;padding:1rem 0}
.cart-item .thumb{width:60px;height:60px}
.cart-item-info{flex:1}
.cart-item-info h3{margin-bottom:.15rem}
.cart-qty{display:flex;align-items:center;gap:.5rem}
.cart-qty span{min-width:1.5rem;text-align:center}
.cart-total{margin-top:1.5rem;padding-top:1rem;display:flex;justify-content:space-between;align-items:center}
.empty{text-align:center;padding:3rem 1rem}
.empty p{margin-bottom:1rem}
.msg{position:fixed;bottom:1.5rem;right:1.5rem;padding:.75rem 1.25rem;box-shadow:0 4px 12px rgba(0,0,0,.15);opacity:0;transform:translateY(1rem);transition:opacity .3s,transform .3s;pointer-events:none;z-index:1000}
.msg.show{opacity:1;transform:translateY(0)}
/* -- Utilities -- */
.d-flex{display:flex}
.d-grid{display:grid}
.flex-center{align-items:center}
.flex-wrap{flex-wrap:wrap}
.gap-075{gap:.75rem}
.gap-1{gap:1rem}
.w-full{width:100%}
.mt-1{margin-top:1rem}
.mb-025{margin-bottom:.25rem}
.mb-05{margin-bottom:.5rem}
.mb-1{margin-bottom:1rem}
.ml-05{margin-left:.5rem}
.overflow-x-auto{overflow-x:auto}
.text-center{text-align:center}
.text-nowrap{white-space:nowrap}
.no-underline{text-decoration:none}
.block{display:block}
.d-none{display:none}
.d-inline{display:inline}
.flex-between{justify-content:space-between}
.btn-padded{padding-top:.65rem;padding-bottom:.65rem}
/* -- Nav -- */
.nav-wrap{max-width:1100px;margin:0 auto;margin-bottom:1.5rem;padding:.5rem 1.5rem}
.navbar-inner{margin:0;padding:0}
.nav-home{display:flex;align-items:center;text-decoration:none;transition:color .2s;margin-right:.5rem}
.nav-catalogo{margin-left:auto;margin-right:.5rem}
.nav-auth{display:flex;align-items:center;gap:.75rem}
.nav-fontsize{display:flex;align-items:center;gap:.25rem;margin:0 .5rem}
.btn-fontsize{padding:.15rem .4rem;cursor:pointer;line-height:1.4;transition:color .2s,border-color .2s}
.nav-link{text-decoration:none;display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .65rem;transition:background .2s}
.nav-link-accedi{text-decoration:none;display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .65rem;transition:background .2s}
/* -- Form -- */
.form-label{display:block;margin-bottom:.25rem}
.form-input{width:100%;padding:.5rem .75rem}
.form-error{padding:.75rem 1rem;margin-bottom:1.5rem}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.form-grid-full{display:grid;gap:1rem}
.btn-block{width:100%;padding:.65rem 1rem}
.form-box{max-width:480px}
.form-box-narrow{max-width:400px}
.empty-box{padding:2rem 1rem}
.success-msg{margin-bottom:.5rem}
.success-sub{margin-bottom:1.5rem}
/* -- Catalog -- */
.tbl-link{text-decoration:none}
.tbl-link-inherit{text-decoration:none}
/* -- Cart -- */
.cart-actions{margin-top:1rem;display:flex;gap:.75rem;flex-wrap:wrap}
.cart-actions .ml-auto{margin-left:auto}
.btn-cart{display:inline-flex;align-items:center;gap:.4rem}
/* -- Floating buttons -- */
.fab{position:fixed;bottom:1.5rem;z-index:999;display:flex;align-items:center;justify-content:center;width:52px;height:52px;box-shadow:0 4px 12px rgba(0,0,0,.2);transition:transform .2s,box-shadow .2s;text-decoration:none}
.fab:hover{transform:scale(1.08)}
.fab-whatsapp{right:1.5rem;bottom:1.5rem;box-shadow:0 4px 12px rgba(37,211,102,.35)}
.fab-whatsapp:hover{box-shadow:0 6px 16px rgba(37,211,102,.45)}
.fab-phone{right:1.5rem;bottom:calc(1.5rem + 60px);box-shadow:0 4px 12px rgba(0,113,227,.35)}
.fab-phone:hover{box-shadow:0 6px 16px rgba(0,113,227,.45)}
@media(max-width:480px){.fab{width:44px;height:44px}.fab svg{width:20px;height:20px}.fab-whatsapp{right:1rem;bottom:1rem}.fab-phone{right:1rem;bottom:calc(1rem + 52px)}}
/* -- Pagination -- */
.pagination{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1.5rem}
/* -- Header -- */
.site-header{max-width:1100px;margin:0 auto;padding:1.25rem 1.5rem .75rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.site-logo{display:flex;align-items:center;gap:.5rem;text-decoration:none}
.logo-icon{display:flex;align-items:center}
.logo-text{letter-spacing:-.02em}
.site-header hgroup{display:inline-flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}
.site-header h1{margin:0}
.site-header h2{margin:0}
.site-tagline{padding-bottom:.15rem}
@media(max-width:640px){.site-header{flex-direction:column;align-items:center;text-align:center;gap:.25rem}.site-header hgroup{flex-direction:column;align-items:center;text-align:center;gap:.15rem}}
footer{max-width:1100px;margin:1.5rem auto 0;padding:.75rem 1.5rem}
footer p{margin:0}
@media(max-width:640px){.filters{flex-direction:column}.filters select,.filters input{width:100%;min-width:0}th,td{padding:.5rem}.card{padding:1rem}.dettaglio .img-col{flex:1 1 100%}.cart-item{flex-wrap:wrap}.nav-wrap{padding:.4rem .6rem}.navbar{flex-wrap:wrap;gap:.25rem;justify-content:center}.nav-catalogo{margin-left:0}.nav-auth{flex-wrap:wrap;justify-content:center;gap:.25rem}.nav-link,.nav-link-accedi,.cart-link{padding:.4rem .5rem}}
/* -- Admin -- */
.admin-nav{max-width:1100px;margin:0 auto 1.5rem;padding:.5rem 1.5rem}
.admin-nav .navbar{margin:0;padding:0}
.admin-nav-link{text-decoration:none;display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;transition:background .2s}
.admin-menu{display:flex;align-items:center;gap:.5rem}
.admin-main{max-width:1100px}
.admin-section-title{margin:1.5rem 0 1rem}
.admin-section-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:1.5rem 0 1rem}
.admin-section-header .admin-section-title{margin:0}
.admin-form{max-width:600px}
.admin-form .form-grid{display:grid;gap:.75rem}
.admin-form .form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.admin-flex{display:flex;gap:.75rem}
.admin-table td{vertical-align:middle}
.admin-table th:last-child,.admin-table td:last-child{text-align:right}
.admin-success{padding:.75rem 1rem;margin:1rem 0}
.admin-error{padding:.75rem 1rem;margin:1rem 0}
.admin-footer{max-width:1100px;margin:1.5rem auto 0;padding:.75rem 1.5rem;text-align:center}
.admin-nav-wrap{max-width:1100px;margin:0 auto 1.5rem;padding:.5rem 1.5rem}

/* -- Product grid (home) -- */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem;margin-top:1.5rem}
.product-card{background-color:var(--bg-product);border-radius:var(--radius-lg);overflow:hidden;transition:transform .2s,box-shadow .2s}
.product-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}
.product-img{width:100%;aspect-ratio:1;object-fit:contain;display:block;padding:1rem;}
.product-body{background-color:var(--bg-product);padding:0 1rem 1rem}
.product-name{font-size:var(--fs-base);font-weight:var(--fw-semibold);margin:0 0 .25rem;line-height:1.3}
.product-name a{color:inherit;text-decoration:none}
.product-name a:hover{color:var(--primary)}
.product-meta{font-size:var(--fs-xs);color:var(--text-muted);margin:0 0 .5rem}
.product-price{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin:0 0 .75rem}
.product-btn{width:100%;justify-content:center}
@media(max-width:480px){.product-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.product-body{padding:0 .5rem .75rem}.product-name{font-size:var(--fs-xs)}.product-price{font-size:var(--fs-base)}}
@media(prefers-color-scheme:dark){html:not([data-theme="light"]) .card{box-shadow:none}html:not([data-theme="light"]) .product-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.4)}}
html[data-theme="dark"] .card{box-shadow:none}
html[data-theme="dark"] .product-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.4)}
