/* Le Tapis — pezzi del negozio vero che nel mockup statico non c'erano:
   avvisi di WooCommerce, variante esaurita, modulo standard di ripiego.
   Il resto della grafica è in le-tapis.css. */

/* avvisi (aggiunto al carrello, errori) */
.woocommerce-notices-wrapper{margin-top:18px}
.woocommerce-notices-wrapper:empty{display:none}
.woocommerce-message,.woocommerce-info,.woocommerce-error{list-style:none;margin:0 0 10px;padding:14px 18px;border:0;border-radius:var(--r-m);background:var(--salvia,#e6ece0);color:var(--inchiostro);font-size:15.5px;line-height:1.45;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{display:none}
.woocommerce-error{background:#fbe3dc;display:block}
.woocommerce-error li{list-style:none}
.woocommerce-message .button,.woocommerce-info .button{order:2;float:none;background:none;color:var(--inchiostro);padding:0 0 2px;border-radius:0;border-bottom:2px solid var(--salmone);font-weight:600;font-size:15px}

/* variante esaurita: la scritta resta leggibile */
.opz input:disabled+label span{color:var(--inchiostro);font-weight:600}

/* più di due scelte (es. i colori della cover): griglia che va a capo */
.misure-scelta.tante{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}

/* modulo standard di WooCommerce (gift card e prodotti con più attributi) */
.compra-standard{margin-top:24px}
.compra-standard .button,.compra-standard button[type=submit]{background:var(--inchiostro);color:var(--carta);border:0;border-radius:999px;padding:15px 26px;font:600 17px 'Figtree',sans-serif;cursor:pointer}
.compra-standard input[type=text],.compra-standard input[type=email],.compra-standard input[type=number],.compra-standard textarea,.compra-standard select{width:100%;padding:13px 16px;border-radius:var(--r-s);border:1.5px solid #e2d4c9;background:#fff;font:500 16px 'Figtree',sans-serif;color:var(--inchiostro)}
.compra-standard label{display:block;font-weight:600;font-size:14.5px;margin:14px 0 6px}

/* nomi lunghi nelle scelte (cover): il prezzo non va a capo */
.opz label b{gap:10px;align-items:baseline}
.opz label b em{white-space:nowrap;flex:none}

/* prodotto con una sola foto: niente colonna delle miniature */
.galleria.una{grid-template-columns:1fr}

/* ordinamento del negozio: è un modulo vero (nel mockup era una <label>) */
form.ordina{margin:0}
form.ordina label{display:contents}

/* pagine successive, se un giorno i prodotti superano una pagina */
.woocommerce-pagination{margin:44px 0 0;text-align:center}
.woocommerce-pagination ul{list-style:none;display:inline-flex;gap:8px}
.woocommerce-pagination a,.woocommerce-pagination span{display:grid;place-items:center;min-width:42px;height:42px;padding:0 12px;border-radius:999px;border:1.5px solid #e2d4c9;background:#fff;font-weight:600;text-decoration:none}
.woocommerce-pagination .current{background:var(--inchiostro);border-color:var(--inchiostro);color:var(--carta)}
/* senza la fascia verde sotto, la griglia non deve toccare il piede */
.fine-negozio{padding-bottom:88px}

/* --- disegno in scala MAXI / MINI (fascia verde di home, negozio e categorie) ----- */
.tab:has(.disegno-misure){padding:26px 28px 8px}
.disegno-misure{margin:0;color:var(--inchiostro)}
.disegno-misure svg{display:block;width:100%;height:auto;overflow:visible}
.dm-titolo{font:600 26px 'Fraunces',serif;fill:var(--inchiostro)}
.dm-sotto{font:500 15px 'Figtree',sans-serif;fill:var(--testo2)}
.dm-quota{font:600 15px 'Figtree',sans-serif;fill:var(--salmone-scuro);font-variant-numeric:tabular-nums}
.dm-linea{fill:none;stroke:var(--salmone-scuro);stroke-width:1.4;stroke-linecap:round}
.dm-fondo{fill:#f8dccf;stroke:#d9a48f;stroke-width:1.4}
.dm-b .dm-fondo{fill:#dfe9d8;stroke:#9db290}
.dm-trama{color:#a8634d}
.dm-b .dm-trama{color:#5f7a55}
.dm-cucitura{fill:none;stroke:#fff;stroke-width:1.6;stroke-dasharray:5 4;opacity:.95}
.dm-spessore rect{fill:#f8dccf;stroke:#d9a48f;stroke-width:1.2}
.dm-diff{opacity:0}
.disegno-misure figcaption{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:14px 0 18px}
.disegno-misure .pillola{cursor:pointer;font-family:inherit}
.dm-legenda{font:600 17px 'Fraunces',serif;fill:var(--inchiostro)}
.dm-campione-b{fill:#dfe9d8;stroke:#9db290}
.dm-nota{font-size:15px;color:var(--testo2)}

/* movimento: i pezzi scorrono, niente scatti */
.dm-scena,.dm-tappeto,.dm-stoffa,.dm-nome,.dm-quote,.dm-diff{transition:transform .9s cubic-bezier(.32,.72,0,1),opacity .5s}
.dm-stoffa{transform-box:fill-box;transform-origin:0 100%}

/* entrata: la stoffa si stende, poi arrivano le quote (solo se il JS l'ha preparata) */
.disegno-misure.pronto .dm-stoffa{transform:scale(.2);opacity:0}
.disegno-misure.pronto .dm-nome,.disegno-misure.pronto .dm-quota,.disegno-misure.pronto .dm-spessore{opacity:0}
.disegno-misure.pronto .dm-quote .dm-linea{stroke-dasharray:1;stroke-dashoffset:1}
.disegno-misure.pronto.visto .dm-stoffa{transform:none;opacity:1}
.disegno-misure.pronto.visto .dm-b .dm-stoffa{transition-delay:.18s}
.disegno-misure.pronto.visto .dm-nome,.disegno-misure.pronto.visto .dm-quota,.disegno-misure.pronto.visto .dm-spessore{opacity:1;transition:opacity .6s .75s}
.disegno-misure.pronto.visto .dm-quote .dm-linea{stroke-dashoffset:0;transition:stroke-dashoffset .9s .55s cubic-bezier(.32,.72,0,1)}

/* uno sull'altro: il secondo va sopra il primo, base e angolo in comune.
   Sta dopo le regole dell'entrata perché deve vincere su di loro. */
.disegno-misure.sopra .dm-scena{transform:translateX(var(--dm-sposta))}
.disegno-misure.sopra .dm-b{transform:translateX(var(--dm-sopra))}
.disegno-misure.sopra .dm-b .dm-fondo{fill-opacity:.82}
.disegno-misure.sopra .dm-quote,.disegno-misure.sopra .dm-nome,.disegno-misure.pronto.visto.sopra .dm-nome{opacity:0;transition:opacity .3s}
.disegno-misure.sopra .dm-diff{opacity:1;transition-delay:.45s}

/* la tabella di prima: chiusa sotto il disegno */
.dm-dettagli{border-top:1px solid #eee4dc}
.dm-dettagli summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:16px 0;font-weight:600;font-size:16px}
.dm-dettagli summary::-webkit-details-marker{display:none}
.dm-dettagli summary::after{content:"+";font:400 24px/1 'Figtree',sans-serif;transition:transform .35s cubic-bezier(.32,.72,0,1)}
.dm-dettagli[open] summary::after{transform:rotate(45deg)}
.dm-dettagli summary:focus-visible{outline:2px solid var(--salmone-scuro);outline-offset:3px}
.dm-dettagli table caption,.dm-dettagli thead{display:none}

@media (max-width:980px){
  .tab:has(.disegno-misure){padding:18px 16px 4px}
  .dm-titolo{font-size:28px}.dm-sotto,.dm-quota,.dm-legenda{font-size:19px}
}
@media (prefers-reduced-motion:reduce){
  .dm-scena,.dm-tappeto,.dm-stoffa,.dm-nome,.dm-quote,.dm-diff{transition:none}
}

/* --- moduli newsletter: campo trappola ed esito dell'iscrizione (assets/js/moduli.js) --- */
form[data-newsletter] .trappola{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.avviso-news form[data-newsletter]{flex-wrap:wrap}
.esito-news{flex-basis:100%;width:100%;font-size:15px;font-weight:600;line-height:1.4;margin:4px 0 0}
.news .esito-news{color:#fff}
.news .esito-news.errore{color:#ffc9bb}
.avviso-news .esito-news{color:var(--inchiostro);font-size:14px;margin:2px 0 0}
.avviso-news .esito-news.errore{color:#a8432a}
