:root{
  --bg:#f7f4ee; --surface:#ffffff; --ink:#141319; --ink-soft:#6b6a72;
  --dark:#15141a; --dark-soft:#232129; --cream-on-dark:#f2ede2;
  --accent:#c9a24e; --accent-dark:#a3812f; --accent-soft:#f5ead0;
  --border:#e6e2d8; --success:#2f7a4f; --danger:#b3492f;
  --radius:16px; --radius-sm:10px; --shadow:0 4px 28px rgba(20,19,25,0.08);
  --font-display:'Fraunces',Georgia,serif; --font-body:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --maxw:1180px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--font-body);color:var(--ink);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased;padding-bottom:0;}
body.has-sticky-bar{padding-bottom:74px;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.15;letter-spacing:-0.01em;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
@media (prefers-reduced-motion:reduce){*{animation-duration:0.01ms !important;transition-duration:0.01ms !important;}}

header{position:sticky;top:0;z-index:100;background:rgba(21,20,26,0.96);backdrop-filter:blur(8px);border-bottom:1px solid #2c2a34;}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;max-width:var(--maxw);margin:0 auto;gap:20px;}
.logo img{height:34px;width:auto;display:block;}
nav.main-nav{display:flex;gap:26px;align-items:center;flex-wrap:wrap;}
nav.main-nav a,nav.main-nav button{font-size:14px;font-weight:500;color:#b8b5bf;transition:color .2s;}
nav.main-nav a:hover,nav.main-nav button:hover{color:var(--accent);}
.header-actions{display:flex;align-items:center;gap:18px;}
.icon-btn{position:relative;font-size:26px;color:var(--cream-on-dark);padding:6px;border-radius:8px;transition:background .2s;}
.icon-btn:hover{background:#2c2a34;}
.cart-count{position:absolute;top:-2px;right:-2px;background:var(--accent);color:#1a1a1a;font-size:11px;font-weight:700;min-width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0 3px;}
.menu-toggle{display:none;font-size:22px;}

.hero{position:relative;overflow:hidden;background:#15141a;}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:75% 100%;}
.hero-inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;text-align:center;padding:130px 24px 110px;}
.hero h1{font-size:clamp(32px,5vw,54px);max-width:740px;margin:0 auto 18px;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,0.5);}
.hero h1 em{color:var(--accent);font-style:normal;}
.hero p{font-size:17px;color:#e7e4ee;max-width:520px;margin:0 auto 30px;text-shadow:0 1px 12px rgba(0,0,0,0.5);}
.hero-ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;border-radius:999px;font-size:14px;font-weight:600;transition:transform .15s, box-shadow .15s;}
.btn-primary{background:var(--accent);color:#1a1408;}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(201,162,78,0.35);}
.btn-secondary{background:rgba(255,255,255,0.08);color:#fff;border:1px solid rgba(255,255,255,0.35);}
.btn-secondary:hover{border-color:var(--accent);color:var(--accent);}

.trust-strip{border-bottom:1px solid var(--border);background:var(--surface);}
.trust-strip .wrap{display:flex;justify-content:center;gap:48px;flex-wrap:wrap;padding:18px 24px;font-size:13px;color:var(--ink-soft);font-weight:500;}
.trust-strip i{color:var(--accent-dark);margin-right:6px;}

.breadcrumb{max-width:var(--maxw);margin:0 auto;padding:16px 24px 0;font-size:13px;color:var(--ink-soft);}
.breadcrumb a{color:var(--ink-soft);}
.breadcrumb a:hover{color:var(--accent-dark);}
.breadcrumb .sep{margin:0 6px;color:var(--border);}
.breadcrumb .current{color:var(--ink);font-weight:500;}

.catalog{padding:56px 24px 80px;}
.catalog-head{text-align:center;margin-bottom:32px;}
.catalog-head h2{font-size:30px;margin-bottom:8px;}
.catalog-head p{color:var(--ink-soft);font-size:15px;}
.filters{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:40px;}
.filter-pill{padding:9px 20px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:13px;font-weight:500;color:var(--ink-soft);transition:all .2s;}
.filter-pill:hover{border-color:var(--accent-dark);color:var(--accent-dark);}
.filter-pill.active{background:var(--dark);color:var(--cream-on-dark);border-color:var(--dark);}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:24px;max-width:var(--maxw);margin:0 auto;}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:box-shadow .2s, transform .2s;display:flex;flex-direction:column;}
.card:hover{box-shadow:var(--shadow);transform:translateY(-2px);}
.card-img{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--accent-soft);}
.card-img img{width:100%;height:100%;object-fit:cover;}
.badge{position:absolute;top:10px;left:10px;background:var(--surface);color:var(--ink);font-size:11px;font-weight:600;padding:4px 10px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,0.12);}
.badge.bundle{background:var(--accent);color:#1a1408;}
.card-body{padding:16px;display:flex;flex-direction:column;gap:6px;flex:1;}
.card-body h3{font-size:14.5px;font-weight:600;font-family:var(--font-body);line-height:1.35;}
.card-tagline{font-size:12.5px;color:var(--ink-soft);line-height:1.4;flex:1;}
.card-price{font-size:18px;font-weight:600;color:var(--accent-dark);margin-top:4px;font-family:var(--font-display);}
.card-add{margin-top:10px;background:var(--dark);color:var(--cream-on-dark);border-radius:var(--radius-sm);padding:10px;font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;transition:background .2s;}
.card-add:hover{background:var(--accent);color:#1a1408;}

.about{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:64px 24px;}
.about .wrap{max-width:760px;text-align:center;}
.about h2{font-size:28px;margin-bottom:16px;}
.about p{color:var(--ink-soft);font-size:15.5px;line-height:1.7;margin-bottom:14px;}

footer{background:var(--dark);color:var(--cream-on-dark);padding:56px 24px 28px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;max-width:var(--maxw);margin:0 auto;}
.footer-grid h4{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#8a8792;margin-bottom:14px;font-weight:600;}
.footer-grid a,.footer-grid button{display:block;font-size:14px;color:#d6d3dc;margin-bottom:10px;text-align:left;transition:color .2s;}
.footer-grid a:hover,.footer-grid button:hover{color:var(--accent);}
.footer-logo img{height:26px;margin-bottom:12px;}
.footer-tag{font-size:13px;color:#8a8792;max-width:280px;line-height:1.5;}
.footer-email{color:var(--accent);font-weight:500;}
.footer-bottom{max-width:var(--maxw);margin:36px auto 0;padding-top:24px;border-top:1px solid #2c2a34;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12.5px;color:#726f7a;}


.overlay{position:fixed;inset:0;background:rgba(15,14,18,0.55);opacity:0;pointer-events:none;transition:opacity .25s;z-index:200;}
.overlay.open{opacity:1;pointer-events:auto;}
.cart-drawer{position:fixed;top:0;right:0;height:100%;width:420px;max-width:92vw;background:var(--surface);z-index:201;transform:translateX(100%);transition:transform .3s ease;display:flex;flex-direction:column;box-shadow:-8px 0 32px rgba(0,0,0,0.2);}
.cart-drawer.open{transform:translateX(0);}
.cart-head{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid var(--border);}
.cart-head h3{font-size:18px;}
.cart-items{flex:1;overflow-y:auto;padding:18px 22px;}
.cart-empty{text-align:center;color:var(--ink-soft);padding:60px 20px;font-size:14px;}
.cart-empty i{font-size:32px;color:var(--border);margin-bottom:12px;display:block;}
.cart-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--border);}
.cart-item img{width:56px;height:70px;object-fit:cover;border-radius:8px;}
.cart-item-info{flex:1;}
.cart-item-info h4{font-size:13px;font-weight:600;margin-bottom:4px;line-height:1.3;}
.cart-item-price{font-size:13px;color:var(--accent-dark);font-weight:600;}
.qty-row{display:flex;align-items:center;gap:10px;margin-top:6px;}
.qty-btn{width:22px;height:22px;border:1px solid var(--border);border-radius:6px;font-size:13px;display:flex;align-items:center;justify-content:center;}
.remove-item{font-size:12px;color:var(--danger);margin-left:auto;}
.cross-sell{padding:16px 22px;border-top:1px solid var(--border);background:var(--bg);}
.cross-sell h4{font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:12px;}
.cross-sell-list{display:flex;gap:10px;overflow-x:auto;}
.cross-sell-item{flex:0 0 100px;text-align:center;}
.cross-sell-item img{width:100px;height:125px;object-fit:cover;border-radius:8px;margin-bottom:6px;cursor:pointer;}
.cross-sell-item p{font-size:11px;font-weight:500;margin-bottom:2px;line-height:1.3;}
.cross-sell-item span{font-size:11.5px;color:var(--accent-dark);font-weight:600;}
.cross-sell-item button{font-size:10.5px;color:var(--ink-soft);text-decoration:underline;margin-top:3px;}
.cart-footer{padding:18px 22px 22px;border-top:1px solid var(--border);}
.summary-row{display:flex;justify-content:space-between;font-size:13.5px;margin-bottom:6px;color:var(--ink-soft);}
.summary-total{display:flex;justify-content:space-between;font-size:17px;font-weight:600;margin:12px 0 16px;}
.checkout-btn{width:100%;background:var(--dark);color:var(--cream-on-dark);padding:14px;border-radius:var(--radius-sm);font-size:14.5px;font-weight:600;}
.checkout-btn:hover{background:var(--accent);color:#1a1408;}

.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--dark);color:var(--cream-on-dark);padding:13px 22px;border-radius:999px;font-size:13.5px;font-weight:500;box-shadow:0 8px 24px rgba(0,0,0,0.3);z-index:400;opacity:0;pointer-events:none;transition:all .3s;display:flex;align-items:center;gap:8px;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast i{color:var(--accent);}

.modal-overlay{position:fixed;inset:0;background:rgba(15,14,18,0.6);z-index:300;display:none;align-items:center;justify-content:center;padding:24px;}
.modal-overlay.open{display:flex;}
.modal{background:var(--surface);border-radius:var(--radius);max-width:560px;width:100%;max-height:86vh;overflow-y:auto;padding:32px;position:relative;}
.modal-close{position:absolute;top:18px;right:18px;font-size:18px;color:var(--ink-soft);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;z-index:5;background:var(--surface);}
.modal-close:hover{background:var(--bg);}
.modal h2{font-size:22px;margin-bottom:16px;padding-right:30px;}
.modal h3{font-size:15px;margin:18px 0 8px;font-family:var(--font-body);font-weight:600;}
.modal p, .modal li{font-size:14px;color:var(--ink-soft);line-height:1.65;margin-bottom:8px;}
.modal ul{padding-left:20px;margin-bottom:10px;}
.coming-soon-box{text-align:center;padding:20px 10px;}
.coming-soon-box i{font-size:38px;color:var(--accent-dark);margin-bottom:14px;}
.coming-soon-box h2{font-size:20px;margin-bottom:10px;padding-right:0;}
.thankyou-box{text-align:center;padding:30px 10px;}
.thankyou-box i{font-size:42px;color:var(--success);margin-bottom:14px;}

.form-group{margin-bottom:14px;}
.form-group label{display:block;font-size:12.5px;font-weight:600;margin-bottom:5px;}
.form-group input,.form-group textarea{width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;}
.form-group textarea{resize:vertical;min-height:90px;}
.form-submit{background:var(--dark);color:var(--cream-on-dark);padding:12px 22px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;}
.form-submit:hover{background:var(--accent);color:#1a1408;}
.honeypot{position:absolute;left:-9999px;}

/* Product detail page */
.product-page{max-width:var(--maxw);margin:0 auto;padding:28px 24px 80px;display:grid;grid-template-columns:1fr 1fr;gap:48px;}
.product-gallery-page{position:sticky;top:90px;align-self:start;}
.gallery-main{aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;background:var(--accent-soft);margin-bottom:12px;}
.gallery-main img{width:100%;height:100%;object-fit:contain;}
.gallery-thumbs{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;}
.gallery-thumbs img{aspect-ratio:1;object-fit:cover;border-radius:8px;cursor:pointer;border:2px solid transparent;opacity:.7;transition:all .15s;}
.gallery-thumbs img:hover{opacity:1;}
.gallery-thumbs img.active{border-color:var(--accent-dark);opacity:1;}
.product-detail-info h1{font-size:24px;line-height:1.3;margin-bottom:14px;}
.product-detail-price{font-size:30px;font-weight:600;color:var(--accent-dark);font-family:var(--font-display);margin-bottom:18px;}
.product-detail-badge{display:inline-block;background:var(--accent-soft);color:var(--accent-dark);font-size:12px;font-weight:600;padding:5px 12px;border-radius:999px;margin-bottom:14px;}
.product-detail-info h3{margin-top:22px;font-size:16px;}
.product-detail-info ul{padding-left:20px;margin-top:8px;}
.product-detail-info li{font-size:14px;color:var(--ink-soft);margin-bottom:6px;line-height:1.5;}
.product-modal-formats{font-size:13px;color:var(--ink-soft);background:var(--bg);border-radius:8px;padding:10px 12px;margin:18px 0;}
.product-modal-formats i{color:var(--accent-dark);margin-right:6px;}
.add-to-cart-full{width:100%;justify-content:center;padding:15px;font-size:15px;}
.related-section{padding:60px 24px 20px;max-width:var(--maxw);margin:0 auto;}
.related-section h2{font-size:22px;margin-bottom:24px;}

@media (max-width:900px){
  .footer-grid{grid-template-columns:1fr 1fr;}
  .hero h1{font-size:30px;}
  .product-page{grid-template-columns:1fr;gap:24px;}
  .product-gallery-page{position:static;}
}
@media (max-width:720px){
  nav.main-nav{display:none;}
  .menu-toggle{display:block;}
  .grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;}
  .card-body{padding:11px;}
  .card-body h3{font-size:12.5px;}
  .card-tagline{display:none;}
  .cart-drawer{width:100%;max-width:100%;}
  .hero-inner{padding:64px 20px 48px;}
  .trust-strip .wrap{gap:20px;font-size:12px;}
  .gallery-thumbs{grid-template-columns:repeat(5,1fr);}
  .sticky-bar{padding:12px 16px;}
  .sticky-bar-info{font-size:12.5px;}
}
@media (max-width:480px){
  .footer-grid{grid-template-columns:1fr;gap:26px;}
  .header-actions{gap:10px;}
  .hero-ctas{flex-direction:column;align-items:stretch;}
}

/* ===== ANIMAZIONI & TRANSIZIONI ===== */
@keyframes fadeInUp {
  from { opacity:0; transform:translateY(22px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes fadeIn {
  from { opacity:0; }
  to   { opacity:1; }
}
.anim-fadeinup { animation: fadeInUp 0.55s ease both; }
.anim-fadein   { animation: fadeIn  0.4s ease both; }

.card {
  opacity:0;
  animation: fadeInUp 0.5s ease forwards;
}
.card:nth-child(1)  { animation-delay:0.03s }
.card:nth-child(2)  { animation-delay:0.07s }
.card:nth-child(3)  { animation-delay:0.11s }
.card:nth-child(4)  { animation-delay:0.15s }
.card:nth-child(5)  { animation-delay:0.19s }
.card:nth-child(6)  { animation-delay:0.23s }
.card:nth-child(7)  { animation-delay:0.27s }
.card:nth-child(8)  { animation-delay:0.31s }
.card:nth-child(n+9){ animation-delay:0.35s }

.hero-inner { animation: fadeInUp 0.7s ease both; }
.trust-strip { animation: fadeIn 0.6s ease 0.3s both; }
.catalog-head { animation: fadeInUp 0.5s ease 0.1s both; }
.filters { animation: fadeInUp 0.5s ease 0.15s both; }
.about .wrap { animation: fadeInUp 0.5s ease both; }

.btn { transition: transform .18s, box-shadow .18s, background .18s, color .18s, border-color .18s; }
.filter-pill { transition: all .22s; }
.card { transition: box-shadow .25s, transform .25s, opacity 0s; }
.card-img img { transition: transform .4s ease; }
.card:hover .card-img img { transform: scale(1.04); }
.card-add { transition: background .2s, color .2s; }

/* Frecce galleria */
.gallery-wrap { position:relative; }
.gallery-arrow {
  position:absolute; top:50%; transform:translateY(-50%);
  width:36px; height:36px; border-radius:50%;
  background:rgba(21,20,26,0.72); color:#fff; border:none;
  display:flex; align-items:center; justify-content:center;
  font-size:15px; cursor:pointer; z-index:10;
  transition:background .2s, opacity .2s;
  opacity:0.75;
}
.gallery-arrow:hover { background:var(--accent); opacity:1; }
.gallery-arrow.prev { left:10px; }
.gallery-arrow.next { right:10px; }
.gallery-arrow:disabled { opacity:0.2; cursor:default; }

/* Transizione immagine galleria */
#galleryMainImg {
  transition: opacity .25s ease;
}
#galleryMainImg.fading { opacity:0; }

/* Smooth reveal per modal */
.modal-overlay.open .modal {
  animation: fadeInUp 0.3s ease both;
}

/* Pulsanti di acquisto */
.buy-btn{margin-top:10px;background:var(--dark);color:var(--cream-on-dark);border-radius:var(--radius-sm);padding:10px;font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;transition:background .2s, color .2s;}
.buy-btn:hover{background:var(--accent);color:#1a1408;}
.buy-btn.coming-soon{background:var(--border);color:var(--ink-soft);cursor:default;pointer-events:none;}
.buy-btn-large{width:100%;justify-content:center;padding:15px;font-size:15px;}
.badge-soon{position:absolute;top:10px;right:10px;background:var(--ink-soft);color:#fff;font-size:10.5px;font-weight:600;padding:4px 9px;border-radius:999px;}

/* Descrizione prodotto: apertura ed elenco file PDF */
.product-opening{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--accent-dark);letter-spacing:.02em;margin-bottom:6px;margin-top:28px;padding-top:24px;border-top:1px solid var(--border);}
.product-modal-formats ul{list-style:none;padding:0;margin-top:6px;}
.product-modal-formats li{font-size:12.5px;color:var(--ink-soft);padding:2px 0;}

/* Pagine legali standalone */
.legal-page{max-width:760px;margin:0 auto;padding:56px 24px 90px;}
.legal-page h1{font-size:32px;margin-bottom:8px;}
.legal-page .updated{font-size:13px;color:var(--ink-soft);margin-bottom:32px;}
.legal-page h2{font-size:18px;margin:28px 0 10px;font-family:var(--font-body);font-weight:600;}
.legal-page p, .legal-page li{font-size:15px;color:var(--ink-soft);line-height:1.75;margin-bottom:10px;}
.legal-page ul{padding-left:22px;margin-bottom:14px;}
.legal-page strong{color:var(--ink);}
