﻿:root { --bg:#f6f3ee; --surface:#ffffff; --surface-2:#efe8de; --surface-3:#e6ddd0; --text:#241f19; --muted:#72695f; --primary:#0f6c73; --primary-dark:#0b5156; --accent:#9f4d28; --success:#2f7448; --warning:#a15f00; --danger:#a03346; --border:#dbd1c6; --shadow:0 12px 28px rgba(36,31,25,.08); --radius:20px; --radius-sm:14px; --max:1180px; --pro-bg:#0a0f14; --pro-accent:#14b8a6; --site-header-h:78px; --page-offset:18px; }
* { box-sizing:border-box; }
html { height: 100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--site-header-h) + 12px); }
body { min-height: 100%; display: flex; flex-direction: column; margin:0; padding-top:var(--site-header-h); font-family:'Inter',Arial,sans-serif; background:var(--bg); color:var(--text); line-height:1.5; }
a { text-decoration:none; color:inherit; transition:.2s ease; }
img { display:block; max-width:100%; height:auto; }
button,input,select,textarea { font:inherit; outline:none; }
.container { width:min(calc(100% - 32px),var(--max)); margin:auto; }
.topbar,.pro-header { position:sticky; top:0; z-index:1000; }
.topbar { background:rgba(246,243,238,.92); backdrop-filter:blur(12px); border-bottom:1px solid var(--border); }
.nav { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 0; }
.pro-header { backdrop-filter:blur(14px); background:linear-gradient(180deg,rgba(10,15,20,.92),rgba(10,15,20,.82)); border-bottom:1px solid rgba(255,255,255,.08); box-shadow:0 10px 30px rgba(0,0,0,.18); }
.pro-header .brand-pro strong { color:#fff!important; font-size:1.1rem; }
.pro-header .brand-pro small { color:rgba(255,255,255,.7)!important; font-size:.8rem; }
.pro-nav-wrap { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:78px; }
.brand { display:flex; align-items:center; gap:12px; font-weight:800; }
.brand-mark { width:44px; height:44px; border-radius:14px; display:grid; place-items:center; background:linear-gradient(135deg,var(--pro-accent),#0f766e); color:#fff; box-shadow:0 10px 24px rgba(20,184,166,.35); font-weight:800; }
.menu,.pro-main-nav { display:flex; gap:10px; align-items:center; }
.pro-main-nav a { color:#eaf4f3; font-weight:600; padding:10px 14px; border-radius:999px; }
.pro-main-nav a:hover { background:rgba(255,255,255,.08); color:#fff; }
.nav-toggle { display:none; border:none; background:rgba(255,255,255,.08); color:#fff; width:44px; height:44px; border-radius:12px; cursor:pointer; }
.btn,.menu a { min-height:44px; border:none; border-radius:999px; padding:12px 20px; cursor:pointer; font-weight:700; display:inline-flex; align-items:center; justify-content:center; }
.btn-primary,.nav-cta { background:linear-gradient(135deg,#14b8a6,#0f766e); color:#fff!important; border:none; }
.btn-accent { background:var(--accent); color:#fff; }
.btn-ghost { background:transparent; border:1px solid var(--border); }
.nav-pill { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08); }
.cart-badge { background:#f97316; color:#fff; border-radius:999px; padding:2px 8px; font-size:.75rem; margin-left:6px; }
.grid { display:grid; gap:20px; }
.products { grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.card,.premium-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; transition:transform .3s ease; }
.premium-card:hover { transform:translateY(-5px); box-shadow:var(--shadow); }
.product-image { aspect-ratio:4/3; width:100%; object-fit:cover; background:#ece5dc; }
.card-body { padding:10px; }
.hero-premium { padding:30px 0; background:radial-gradient(circle at top left,rgba(20,184,166,.15),transparent),#0c1117; color:#fff; }
.hero-premium-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:40px; align-items:center; }
input,select,textarea { width:100%; padding:14px; border:1px solid var(--border); border-radius:var(--radius-sm); background:#fff; transition:border-color .2s; }
input:focus,select:focus,textarea:focus { border-color:var(--primary); }
.table-wrap { overflow-x:auto; border-radius:16px; border:1px solid var(--border); }
table { width:100%; border-collapse:collapse; background:#fff; }
th,td { padding:14px; text-align:left; border-bottom:1px solid var(--border); }
th { background:#faf7f2; font-weight:700; }
.product-page-shell { background:var(--bg); padding:20px 0; }
.page-main { display:flow-root; padding-top:var(--page-offset)!important; position:relative; z-index:1; }
main,.wrap,.container { position:relative; z-index:1; }
main.container { flex-grow: 1; }
.product-detail-grid { display:grid; gap:16px; }
.product-gallery-card,.product-info-card { background:var(--surface); border-radius:var(--radius); border:1px solid var(--border); overflow:hidden; }
.product-main-image-wrap { width:100%; aspect-ratio:1/1; background:#fff; display:flex; align-items:center; justify-content:center; padding:20px; }
.product-main-image { max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; border-radius:var(--radius-sm); }
.product-thumbs-row { display:flex; gap:10px; padding:12px; overflow-x:auto; }
.product-thumb-btn { width:80px; height:80px; padding:0; overflow:hidden; border:2px solid transparent; border-radius:var(--radius-sm); cursor:pointer; flex-shrink:0; background:var(--surface); }
.product-thumb-btn img { width:100%; height:100%; object-fit:cover; }
.product-thumb-btn.is-active { border-color:var(--primary); }
.product-info-card { padding:18px; }
.product-info-top h1 { margin:0 0 10px; font-size:clamp(1.55rem,4vw,2.25rem); color:var(--text); line-height:1.1; }
.product-price-xl { font-size:1.7rem; font-weight:800; color:var(--primary); }
.product-meta-list { display:grid; gap:10px; margin:18px 0; }
.product-meta-list div { display:flex; justify-content:space-between; padding:10px 12px; background:var(--surface-2); border-radius:var(--radius-sm); border:1px solid var(--border); }
.product-meta-list strong { color:var(--muted); font-size:.85rem; }
.product-buy-box { display:grid; gap:12px; margin-top:18px; padding:166px; border-radius:var(--radius); background:var(--surface-3); }
.qty-row { display:grid; gap:8px; }
.product-grid { display:grid; grid-template-columns:1fr; gap:14px; }
.product-card-pro { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; }
.product-card-media { display:block; width:100%; aspect-ratio:1/1; overflow:hidden; background:#f8f5f0; }
.product-card-media img { width:100%; height:100%; object-fit:contain; transition:.3s; background:#fff; padding:10px; }
.product-card-media:hover img { transform:scale(1.05); }
.price-line { color:var(--primary); font-weight:800; }

/* --- STRUTTURA FOOTER CORRETTA (4 COLONNE REALI SULLA CLASSE GENERICA) --- */
.site-footer { flex-shrink: 0; background:#1a1a1a; color:#e0e0e0; padding:40px 0 20px; margin-top:10px; }
.footer-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:30px; }
.footer-brand h3 { color:#fff; margin-bottom:15px; font-weight:700; letter-spacing:-.5px; }
.footer-brand .company-name { color: #fff; font-size: 0.9rem; margin-bottom: 10px; }
.footer-brand .tax-info { margin-top: 15px; font-size: 0.75rem; color: #555; }
.info-item { display:flex; align-items:center; gap:8px; margin-bottom:5px; font-size:.85rem; color:#b0b0b0; }
.info-item i { color:var(--primary); width:15px; text-align:center; }
.footer-links h4 { color:#fff; font-size:1rem; margin-bottom:18px; text-transform:uppercase; letter-spacing:1px; }
.list-clean { list-style:none; padding:0; margin:0; }
.list-clean li { margin-bottom:10px; }
.list-clean a { color:#b0b0b0; text-decoration:none; font-size:.9rem; transition:color .3s ease,padding-left .3s ease; }
.list-clean a:hover { color:#fff; padding-left:5px; }
.list-clean .admin-lock-row { margin-top: 25px; }
.footer-admin-lock { opacity:.3; transition:.3s; font-size: 0.7rem; display: inline-flex; align-items: center; gap: 5px; color:#fff; }
.footer-admin-lock:hover { opacity:1; }
.social-icons { display:flex; gap:15px; margin-top:20px; }
.social-link { width:35px; height:35px; background:rgba(255,255,255,.05); display:flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; transition:all .3s ease; }
.social-link:hover { background:var(--primary); transform:translateY(-3px); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.05); padding-top:20px; display:flex; justify-content:space-between; align-items:center; font-size:.75rem; color:#666; margin-top:40px; }
.footer-bottom .credits strong { color:#fff; }

/* --- RESPONSIVE MEDIA QUERIES --- */
@media (max-width:992px) { 
    .footer-grid { grid-template-columns: repeat(2, 1fr); gap: 40px 20px; } 
}
@media (max-width:900px) { :root { --site-header-h:72px; --page-offset:14px; } .hero-premium-grid,.admin-shell { grid-template-columns:1fr; } .nav-toggle { display:block; } .pro-main-nav { display:none; width:100%; flex-direction:column; position:absolute; top:100%; left:0; background:var(--pro-bg); padding:20px; } body.nav-open .pro-main-nav { display:flex; } }
@media (max-width:768px) { .site-footer { padding:30px 0 20px; } .container { padding-left:15px; padding-right:15px; } .product-detail-grid { display:flex; flex-direction:column; gap:20px; } .product-main-image-wrap { min-height:300px; } .product-page-shell { padding:14px 0; } .product-grid,.products { grid-template-columns:1fr; gap:16px; } .card,.premium-card,.product-card-pro { border-radius:16px; } .card-body,.product-info-card { padding:14px; } .product-card-media { aspect-ratio:1/1; background:#f8f5f0; } .product-card-media img { object-fit:contain; padding:12px; } input,select,textarea,.btn { min-height:44px; } .product-info-top h1 { font-size:1.45rem; line-height:1.15; } .product-price-xl { font-size:1.45rem; } }
@media (max-width:576px) { 
    .footer-grid { grid-template-columns: 1fr; gap: 30px; text-align: center; } 
    .footer-grid .info-item { justify-content: center; } 
    .footer-grid .social-icons { justify-content: center; } 
    .footer-bottom { flex-direction: column; text-align: center; gap: 15px!important; } 
}
@media (max-width:560px) { :root { --site-header-h:68px; --page-offset:12px; } }
@media (min-width:768px) { .product-detail-grid { grid-template-columns:1.05fr .95fr; align-items:start; } .product-grid { grid-template-columns:repeat(4,1fr); } }