/* ==========================================================================
   ConfeNova — Shop (vetrina online) — usa le variabili di style.css
   ========================================================================== */

/* ---------- carrello in testata ---------- */
.nav-cart{position:relative;display:inline-flex;align-items:center;gap:.45em;color:var(--ink-soft);font-weight:600;font-size:.83rem;letter-spacing:.08em;text-transform:uppercase;padding:.3em 0}
.nav-cart:hover{color:var(--ink)}
.nav-cart svg{width:22px;height:22px}
.cart-badge{position:absolute;top:-7px;right:-9px;background:var(--accent);color:#fff;font-size:.64rem;font-weight:700;min-width:18px;height:18px;border-radius:999px;display:grid;place-items:center;padding:0 4px;line-height:1}

/* ---------- fascia anteprima ---------- */
.preview-ribbon{
  background:var(--accent-soft);border-bottom:1px solid var(--line);
  color:var(--accent-dark);font-size:.82rem;font-weight:600;
}
.preview-ribbon .wrap{display:flex;align-items:center;gap:.6em;padding:.7em var(--pad);flex-wrap:wrap}
.preview-ribbon b{letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;background:var(--accent);color:#fff;padding:.32em .7em;border-radius:999px}

/* ---------- testata shop ---------- */
.shop-hero{padding:clamp(40px,5vw,64px) 0 clamp(10px,2vw,18px)}
.shop-hero h1{font-size:clamp(2rem,4vw,3rem)}
.shop-hero .lead{margin-top:.5em;max-width:60ch}
.shop-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:clamp(22px,2.6vw,30px)}
.filters{display:flex;gap:8px;flex-wrap:wrap}
.filters button{
  font:inherit;font-size:.8rem;font-weight:600;letter-spacing:.04em;
  background:var(--surface);border:1px solid var(--line);border-radius:999px;
  padding:.55em 1.05em;cursor:pointer;color:var(--ink-soft);transition:all .18s;
}
.filters button:hover{border-color:var(--line-strong)}
.filters button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.shop-bar .spacer{margin-left:auto}
.result-count{font-size:.82rem;color:var(--muted)}

/* ---------- prezzo non pubblicato ---------- */
.price.price-tbd{font-family:var(--serif);font-size:1.06rem;font-weight:600;color:var(--muted);line-height:1.15}
.price.price-tbd small{font-family:var(--sans);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);opacity:.85;margin-top:.3em}
.pdp-info .price.price-tbd{font-size:1.42rem}

/* ---------- griglia prodotti ---------- */
.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,30px);padding:clamp(24px,3vw,40px) 0 0}
.shop-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;display:flex;flex-direction:column;transition:transform .24s,box-shadow .24s,border-color .24s;
}
.shop-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:var(--line-strong)}
.shop-card .im{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--bg-2);display:block}
.shop-card .im img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.shop-card:hover .im img{transform:scale(1.05)}
.shop-card .badge{position:absolute;top:12px;left:12px;background:rgba(255,255,255,.94);border:1px solid var(--line);
  font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.4em .7em;border-radius:999px}
.shop-card .body{padding:20px 20px 22px;display:flex;flex-direction:column;flex:1;gap:.55em}
.shop-card .line{font-size:.66rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.shop-card .line.textile{color:#9A6A4F}.shop-card .line.wood{color:var(--accent)}.shop-card .line.auto{color:var(--sage)}
.shop-card h3{font-size:1.1rem;margin:0}
.shop-card h3 a:hover{color:var(--accent)}
.shop-card .desc{font-size:.9rem;color:var(--ink-soft);margin:0}
.shop-card .foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:.9em}
.price{font-family:var(--serif);font-size:1.32rem;font-weight:600;line-height:1}
.price small{display:block;font-family:var(--sans);font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:.35em}
.btn-sm{padding:.62em 1.05em;font-size:.84rem}

/* ---------- scheda prodotto ---------- */
.pdp{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,64px);padding:clamp(30px,4vw,52px) 0 0;align-items:start}
.pdp-img{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--bg-2)}
.pdp-img img{width:100%;display:block}
.pdp-info .crumbs{font-size:.78rem;color:var(--muted);margin-bottom:1em}
.pdp-info .crumbs a:hover{color:var(--accent)}
.pdp-info h1{font-size:clamp(1.7rem,3vw,2.4rem);margin:.3em 0 .5em}
.pdp-info .price{font-size:1.8rem;margin:.6em 0}
.pdp-info .desc{color:var(--ink-soft);margin:1em 0 1.4em}
.specs{list-style:none;padding:0;margin:0 0 1.6em;display:grid;gap:.6em;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.1em 0}
.specs li{display:grid;grid-template-columns:150px 1fr;gap:12px;font-size:.9rem}
.specs li b{color:var(--muted);font-weight:600}
.buy-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:1em}
.qty{display:inline-flex;align-items:center;border:1.5px solid var(--line-strong);border-radius:999px;overflow:hidden}
.qty button{width:40px;height:40px;background:none;border:0;font-size:1.1rem;cursor:pointer;color:var(--ink)}
.qty button:hover{background:var(--bg-2)}
.qty input{width:46px;height:40px;border:0;text-align:center;font:inherit;background:transparent;-moz-appearance:textfield}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.chips-lg{display:flex;flex-wrap:wrap;gap:.5em;margin-bottom:1.4em}
.chips-lg span{font-size:.72rem;font-weight:600;color:var(--ink-soft);background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:.45em .85em}

/* ---------- carrello / checkout ---------- */
.cart-wrap{padding:clamp(30px,4vw,52px) 0 0;display:grid;grid-template-columns:1.6fr .9fr;gap:clamp(28px,4vw,52px);align-items:start}
.cart-list{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}
.cart-row{display:grid;grid-template-columns:86px 1fr auto auto;gap:16px;align-items:center;padding:16px;border-bottom:1px solid var(--line)}
.cart-row:last-child{border-bottom:0}
.cart-row img{width:86px;height:86px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
.cart-row .nm{font-weight:600}
.cart-row .nm small{display:block;color:var(--muted);font-weight:500;margin-top:.2em}
.cart-row .rm{background:none;border:0;color:var(--muted);cursor:pointer;font-size:.78rem;text-decoration:underline;padding:0}
.cart-row .rm:hover{color:#B3261E}
.cart-row .lt{text-align:right;font-family:var(--serif);font-size:1.08rem;min-width:86px}
.summary{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:24px;position:sticky;top:96px}
.summary h3{margin:0 0 1em;font-size:1.05rem}
.sum-row{display:flex;justify-content:space-between;gap:12px;font-size:.92rem;padding:.5em 0}
.sum-row.total{border-top:1px solid var(--line);margin-top:.5em;padding-top:1em;font-family:var(--serif);font-size:1.3rem;font-weight:600}
.summary .btn{width:100%;justify-content:center;margin-top:1.2em}
.summary .note{font-size:.76rem;color:var(--muted);margin:.9em 0 0;text-align:center}
.cart-empty{padding:clamp(50px,8vw,90px) 0;text-align:center}
.cart-empty .big{font-family:var(--serif);font-size:1.6rem;margin:.6em 0 1em}

/* form fatturazione */
.co-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.co-form .field{display:flex;flex-direction:column;gap:.4em}
.co-form .field.full{grid-column:1/-1}
.co-form label{font-size:.78rem;font-weight:600;letter-spacing:.04em}
.co-form input,.co-form select,.co-form textarea{
  font:inherit;font-size:.95rem;padding:.8em .9em;border:1.5px solid var(--line-strong);
  border-radius:12px;background:var(--surface);color:var(--ink);
}
.co-form input:focus,.co-form textarea:focus,.co-form select:focus{outline:0;border-color:var(--accent)}
.co-form textarea{min-height:84px;resize:vertical}

/* conferma */
.confirm{max-width:640px;margin:0 auto;text-align:center;padding:clamp(40px,7vw,90px) var(--pad)}
.confirm .tick{width:70px;height:70px;border-radius:50%;background:#E7F0E9;color:var(--ok);display:grid;place-items:center;margin:0 auto 1.2em;font-size:2rem}
.confirm h1{font-size:clamp(1.8rem,3.4vw,2.6rem)}
.confirm .code{display:inline-block;font-family:ui-monospace,monospace;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:.5em 1em;margin:.4em 0 1.2em;font-size:1rem}
.confirm .box{text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:22px;margin:1.6em 0}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .shop-grid{grid-template-columns:repeat(2,1fr)}
  .pdp{grid-template-columns:1fr}
  .cart-wrap{grid-template-columns:1fr}
  .summary{position:static}
}
@media(max-width:620px){
  .shop-grid{grid-template-columns:1fr}
  .co-form{grid-template-columns:1fr}
  .nav-cart span:not(.cart-badge){display:none}
  .cart-row{grid-template-columns:64px 1fr;grid-template-areas:"img nm" "img qty" "img lt";row-gap:8px}
  .cart-row img{width:64px;height:64px;grid-area:img}
  .cart-row .nm{grid-area:nm}.cart-row .qty{grid-area:qty;justify-self:start}.cart-row .lt{grid-area:lt;text-align:left}
}
