/* ============ Il Gomitolo di Beatricina — stile del negozio ============ */
:root{
  --bg:#faf6f0; --sup:#fffdfa; --ink:#2f2723; --tenue:#7a6c62;
  --prim:#b4462f; --prim-scuro:#8f3524; --salvia:#7f9e78; --bordo:#e9dfd2;
  --ok:#3f7d4e; --ko:#b4462f; --attesa:#c99a2e;
  --ombra:0 2px 4px rgba(69,48,35,.05), 0 8px 24px rgba(69,48,35,.07);
  --r:14px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  background:var(--bg); color:var(--ink);
  font:16px/1.6 "Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5{line-height:1.2;margin:0 0 .4em; font-weight:600;letter-spacing:-.01em}
h1{font-size:2.1rem} h2{font-size:1.5rem} h3{font-size:1.1rem}
a{color:inherit;text-decoration:none}
code{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:.87em;
  background:#f0e8dc;border-radius:5px;padding:.08em .35em}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.micro{font-size:.83rem;color:var(--tenue);line-height:1.5}
.sezione{padding:44px 0}

/* --------------------------------------------------- header ----- */
.site-header{position:sticky;top:0;z-index:40;background:rgba(250,246,240,.92);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--bordo)}
.header-inner{display:flex;align-items:center;gap:28px;height:70px}
.logo{display:flex;align-items:center;gap:10px;margin-right:auto}
.logo-mark{font-size:1.7rem;line-height:1}
.logo-text{display:flex;flex-direction:column;line-height:1.05}
.logo-text b{font-size:1.05rem}
.logo-text i{font-size:.74rem;color:var(--tenue);font-style:italic}
.nav{display:flex;gap:22px;font-size:.92rem}
.nav a{color:var(--tenue);padding-bottom:2px;border-bottom:1.5px solid transparent}
.nav a:hover{color:var(--ink)}
.nav a.attivo{color:var(--ink);border-color:var(--prim)}
.cart-link{display:flex;align-items:center;gap:8px;font-size:.92rem;
  border:1px solid var(--bordo);background:var(--sup);padding:8px 14px;border-radius:999px}
.badge{background:var(--prim);color:#fff;border-radius:999px;min-width:22px;height:22px;
  display:grid;place-items:center;font-size:.75rem;font-family:system-ui}
.badge.vuoto{background:#cdc1b4}

/* ----------------------------------------------------- hero ----- */
.hero{padding:56px 0 30px}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.hero h1{font-size:2.7rem;margin-bottom:.3em}
.hero p{color:var(--tenue);font-size:1.05rem;max-width:44ch}
.hero-premio{margin-top:22px;display:flex;gap:14px;align-items:flex-start;
  padding:16px 18px;border-radius:var(--r);font-size:.93rem;line-height:1.55;
  background:linear-gradient(160deg,#fff8ec,#fdeede);border:1px solid #f0dcc0;color:#6d5636}
.hero-premio b{color:var(--ink)}
.hero-premio-icona{font-size:1.35rem;line-height:1.2}
.hero-premio + .hero-nota{margin-top:12px}

.hero-nota{margin-top:22px;padding:2px 0 2px 16px;border-left:2px solid var(--bordo);
  font-size:.86rem;color:var(--tenue)}
.hero-art{aspect-ratio:1;border-radius:24px;overflow:hidden;box-shadow:var(--ombra);
  border:1px solid var(--bordo)}
.hero-art img{width:100%;height:100%;object-fit:cover;display:block}

/* ---------------------------------------------------- schede ---- */
.sezione-testa{display:flex;align-items:baseline;justify-content:space-between;
  gap:16px;margin-bottom:20px;border-bottom:1px solid var(--bordo);padding-bottom:12px}
.sezione-testa p{margin:0;color:var(--tenue);font-size:.9rem}
.griglia{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px}
.card{background:var(--sup);border:1px solid var(--bordo);border-radius:var(--r);
  overflow:hidden;transition:transform .16s ease, box-shadow .16s ease;cursor:pointer}
.card:hover{transform:translateY(-3px);box-shadow:var(--ombra)}
.card-img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.card-body{padding:14px 16px 18px}
.card-cat{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--salvia)}
.card-body h3{margin:.25em 0 .4em;font-size:1rem}
.card-price{font-family:system-ui;font-weight:600}

/* -------------------------------------------------- prodotto ---- */
.pdp{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start;padding:36px 0}
.pdp-media img{width:100%;border-radius:20px;border:1px solid var(--bordo)}
.briciole{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--salvia)}
.pdp h1{margin:.2em 0 .1em}
.pdp-prezzo{font-family:system-ui;font-size:1.6rem;font-weight:600;margin:.1em 0 .8em}
.pdp-desc{color:var(--tenue)}
.campo{display:block;margin:18px 0}
.campo>span{display:block;font-size:.82rem;color:var(--tenue);margin-bottom:6px}
.campo>span i{font-style:normal;opacity:.75}
select,input[type=text],input[type=number]{
  font:inherit;font-family:system-ui;font-size:.95rem;padding:11px 13px;
  border:1px solid var(--bordo);border-radius:10px;background:var(--sup);color:var(--ink);width:100%}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--bordo);
  border-radius:10px;overflow:hidden;background:var(--sup)}
.stepper button{width:42px;height:44px;border:0;background:none;font-size:1.15rem;
  cursor:pointer;color:var(--ink)}
.stepper button:hover{background:#f3ece2}
.stepper input{width:64px;text-align:center;border:0;border-left:1px solid var(--bordo);
  border-right:1px solid var(--bordo);border-radius:0}
.stepper.piccolo button{width:32px;height:32px;font-size:1rem}
.stepper.piccolo .qta{min-width:32px;text-align:center;font-family:system-ui;font-size:.9rem}

/* --------------------------------------------------- bottoni ---- */
.btn{font:inherit;font-family:system-ui;font-size:.94rem;font-weight:500;
  padding:12px 22px;border-radius:10px;border:1px solid var(--bordo);
  background:var(--sup);color:var(--ink);cursor:pointer;transition:.15s}
.btn:hover{background:#f3ece2}
.btn-primario{background:var(--prim);border-color:var(--prim);color:#fff}
.btn-primario:hover{background:var(--prim-scuro);border-color:var(--prim-scuro)}
.btn-rischio{color:var(--ko);border-color:#e6c4bb}
.btn.largo,.btn-primario.largo{width:100%;margin-top:14px}
.riga-bottoni{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}

/* -------------------------------------------------- carrello ---- */
.cart-grid{display:grid;grid-template-columns:1fr 320px;gap:32px;align-items:start;padding:12px 0 40px}
.riga{display:grid;grid-template-columns:72px 1fr auto auto auto;gap:16px;align-items:center;
  padding:16px;background:var(--sup);border:1px solid var(--bordo);border-radius:var(--r);margin-bottom:12px}
.riga img{width:72px;height:72px;border-radius:10px;object-fit:cover}
.riga-info h4{margin:0 0 2px;font-size:1rem}
.riga-tot{font-family:system-ui;font-weight:600;min-width:80px;text-align:right}
.cestino{border:0;background:none;cursor:pointer;font-size:1.05rem;opacity:.55;padding:6px}
.cestino:hover{opacity:1}
.riepilogo{background:var(--sup);border:1px solid var(--bordo);border-radius:var(--r);padding:22px;
  position:sticky;top:94px}
.riepilogo.statico{position:static;margin:22px 0;text-align:left}
.rig{display:flex;justify-content:space-between;gap:14px;padding:6px 0;font-family:system-ui;font-size:.93rem}
.rig.grande{font-size:1.12rem;border-top:1px solid var(--bordo);margin-top:8px;padding-top:12px}
.riepilogo hr{border:0;border-top:1px solid var(--bordo);margin:12px 0}
.vuoto-box{text-align:center;padding:70px 20px;background:var(--sup);
  border:1px dashed var(--bordo);border-radius:var(--r)}
.vuoto-box .btn{margin-top:14px}

/* -------------------------------------------------- checkout ---- */
.passi{display:flex;gap:26px;list-style:none;padding:0;margin:26px 0 24px;
  font-family:system-ui;font-size:.9rem;color:var(--tenue);flex-wrap:wrap}
.passi .ora{color:var(--prim);font-weight:600}
.passi .fatto{color:var(--ok)}
.checkout-grid{display:grid;grid-template-columns:1fr 320px;gap:32px;align-items:start;padding-bottom:44px}
.checkout-form{background:var(--sup);border:1px solid var(--bordo);border-radius:var(--r);padding:26px}
.opzione{display:block;border:1px solid var(--bordo);border-radius:12px;padding:14px 16px;
  margin:10px 0;cursor:pointer;background:#fff}
.opzione:has(input:checked){border-color:var(--prim);background:#fdf4f1}
.opzione input{margin-right:12px}
.opzione span{display:inline-flex;gap:12px;align-items:baseline}
.opzione i{font-style:normal;color:var(--tenue);font-size:.88rem}

/* ---------------------------------------------------- grazie ---- */
.grazie-box{max-width:520px;margin:56px auto;text-align:center;background:var(--sup);
  border:1px solid var(--bordo);border-radius:20px;padding:44px 36px;box-shadow:var(--ombra)}
.grazie-emoji{font-size:3rem}

/* ----------------------------------------------------- setup ---- */
.setup-grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));padding:26px 0 50px}
.pannello{background:var(--sup);border:1px solid var(--bordo);border-radius:var(--r);padding:26px}
.pannello p{color:var(--tenue);font-size:.94rem}
.elenco{color:var(--tenue);font-size:.94rem;padding-left:20px}
.spie{margin-top:18px;display:grid;gap:8px}
.spia-riga{display:flex;align-items:center;gap:10px;font-size:.88rem;font-family:system-ui}
.spia{width:9px;height:9px;border-radius:50%;background:#c9beb2;flex:none}
.spia.verde{background:var(--ok)} .spia.gialla{background:var(--attesa)} .spia.rossa{background:var(--ko)}

/* -------------------------------------------------- percorso ---- */
.percorso-intro{padding:40px 0 18px;max-width:62ch}
.percorso-intro p{color:var(--tenue)}
.percorso-stato{display:inline-block;margin-top:10px;background:var(--sup);
  border:1px solid var(--bordo);border-radius:999px;padding:7px 16px;font-family:system-ui;font-size:.9rem}
.mappa{list-style:none;padding:0;margin:0 0 60px;display:grid;gap:14px}
.tappa{display:grid;grid-template-columns:52px 1fr 40px;gap:18px;align-items:start;
  background:var(--sup);border:1px solid var(--bordo);border-left:4px solid #ddd2c4;
  border-radius:var(--r);padding:20px 22px}
.tappa.ok{border-left-color:var(--ok)} .tappa.ko{border-left-color:var(--attesa)}
.tappa-n{width:40px;height:40px;border-radius:50%;background:#f2eae0;display:grid;place-items:center;
  font-family:system-ui;font-weight:600}
.tappa.ok .tappa-n{background:#e2f0e4;color:var(--ok)}
.tappa-ev{font-weight:400;font-size:.82rem}
.tappa-sub{color:var(--salvia);font-size:.88rem;margin:.1em 0 .6em}
.tappa-corpo p{color:var(--tenue);font-size:.94rem;margin:.3em 0}
.tappa details{margin-top:10px;font-size:.9rem}
.tappa summary{cursor:pointer;color:var(--prim);font-family:system-ui;font-size:.85rem}
.tappa details ol,.tappa details ul{color:var(--tenue);margin:.5em 0;padding-left:22px}
.tappa-badge{font-size:1.3rem;color:var(--ok);text-align:right}
.tappa.ko .tappa-badge{color:var(--attesa)}

/* ---------------------------------------------------- avviso ---- */
.avviso{background:#fdf1e3;border-bottom:1px solid #f0dcc0;color:#7a5a2d;
  padding:11px 20px;text-align:center;font-size:.88rem;font-family:system-ui}
.avviso a{color:var(--prim);text-decoration:underline}

/* ---------------------------------------------------- footer ---- */
.site-footer{border-top:1px solid var(--bordo);margin-top:40px;padding:26px 0 90px}
.footer-inner{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-size:.82rem;color:var(--tenue)}

@media (max-width:900px){
  .hero-grid,.pdp,.cart-grid,.checkout-grid{grid-template-columns:1fr}
  .hero-art{max-width:280px}
  .riepilogo{position:static}
  .nav{display:none}
}
