/* ==========================================================================
   Vinoteca — shop: intro, menu "Browse by region/denomination", card
   prodotto (.pcard). Condiviso da: pagina Shop custom (page-templates/
   template-shop.php, solo i menu) e archivi prodotto nativi WooCommerce —
   categoria (/product-category/{slug}/), regione (/provenienza/{slug}/) e
   denominazione (/denominazione/{slug}/) — tramite content-product.php +
   loop-start/end, nessun archive-product.php override necessario.
   ========================================================================== */

.shop-intro{padding:44px 0 8px;}
.shop-intro p{color:var(--ink-dim);max-width:600px;font-size:.98rem;}

/* pagina Shop: due menu "Browse by region"/"Browse by denomination", ogni
   voce linka alla vera pagina archivio del termine (vedi template-shop.php). */
.shop-browse-section{padding:8px 0 40px;}
.shop-browse-section + .shop-browse-section{padding-top:0;}
.shop-browse-section h2{font-family:"Newsreader",serif;font-style:italic;font-weight:600;font-size:1.5rem;margin-bottom:20px;}
.term-link-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--rule);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
.term-link{
  display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  background:var(--paper);padding:14px 16px;text-decoration:none;color:var(--ink);
}
.term-link:hover{background:var(--stone);color:var(--accent);}
.term-link .term-name{font-size:.88rem;font-weight:700;}
.term-link .term-count{font-size:.7rem;color:var(--ink-dim);white-space:nowrap;}

/* minmax(240px,1fr) e non un bare 1fr: senza un minimo esplicito, una
   traccia "1fr" ha comunque un minimo implicito pari al min-content del suo
   contenuto (qui: "Aggiungi al carrello" reso su una sola riga) — con testi
   più lunghi della label originale del mockup ("Aggiungi") basterebbe da
   solo a forzare l'intera griglia, e quindi la pagina, a traboccare
   orizzontalmente invece di andare a capo. */
/* auto-fit, non auto-fill: con poche card (es. pagina di ricerca con 1-2
   risultati, o una denominazione con pochi vini) auto-fill lascerebbe le
   tracce vuote comunque presenti nel grid, visibili come riquadri grigi
   (sfondo di .product-grid) accanto alle card reali. */
.product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--rule);}

/* min-width:0: un elemento grid ha di default un minimo automatico pari al
   min-content dei suoi figli — qui l'<img> della miniatura, che senza
   questa regola vorrebbe restare largo almeno quanto la sua dimensione
   intrinseca (300px) anche se max-width:75% lo vorrebbe più stretto,
   facendo traboccare la card (e quindi tutta la pagina) sulle colonne
   strette di mobile. minmax(0,1fr) sulla *traccia* del grid (vedi
   .product-grid) non basta da solo: azzera il minimo della traccia, non
   quello dell'elemento. */
.pcard{position:relative;min-width:0;background:var(--paper);padding:22px;display:flex;flex-direction:column;gap:12px;}
.pcard .thumb{height:172px;margin:-22px -22px 6px;background:var(--stone);display:flex;align-items:center;justify-content:center;}
.pcard .thumb img{max-height:145px;max-width:75%;object-fit:contain;margin:0 auto;}
.pcard .region{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:700;}
.pcard .denom{font-family:"Newsreader",serif;font-style:italic;font-weight:600;font-size:1.2rem;margin-top:2px;}
.pcard .denom a{color:inherit;text-decoration:none;}
.pcard .denom a:hover{color:var(--accent);}
.pcard .producer{font-size:.82rem;color:var(--ink-dim);}
.pcard .producer a{color:inherit;text-decoration:none;}
.pcard .producer a:hover{color:var(--accent);text-decoration:underline;}
.pcard .specs{font-size:.74rem;color:var(--ink-dim);border-top:1px solid var(--rule);padding-top:12px;margin-top:auto;}
.pcard .foot{display:flex;justify-content:space-between;align-items:center;margin-top:2px;gap:10px;flex-wrap:wrap;}
.pcard .price{font-weight:700;font-size:1.05rem;}

.pcard .add_to_cart_button,
.pcard a.button,
.pcard .button{
  font-family:"Karla",sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent);background:none;text-decoration:none;border:0;border-bottom:1px solid var(--accent);
  padding:0 0 2px;border-radius:0;
  /* Niente white-space:nowrap: l'etichetta italiana di WooCommerce
     ("Aggiungi al carrello") è più lunga di quella del mockup ("Aggiungi") —
     deve poter andare a capo su più righe dentro .foot invece di forzare
     una larghezza minima, vedi commento su .product-grid più sopra. */
}
.pcard .add_to_cart_button:hover{color:var(--accent-hover);border-color:var(--accent-hover);}
.pcard .added_to_cart{display:block;font-size:.68rem;color:var(--ink-dim);margin-top:4px;text-decoration:none;}

@media (max-width:760px){
  /* minmax(0,1fr), non un bare 1fr — stesso motivo del commento su
     .product-grid più sopra: azzera il minimo implicito della traccia. */
  .product-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .term-link-grid{grid-template-columns:minmax(0,1fr);}
}

@media (max-width:480px){
  .product-grid{grid-template-columns:minmax(0,1fr);}
  .pcard .foot{justify-content:flex-start;}
}

/* Pagina produttore (archivio pa_azienda): logo + bio + scheda contatti,
   iniettati sopra la griglia vini via woocommerce_archive_description
   (vedi vinoteca_producer_profile_block() in inc/template-tags.php). */
.producer-profile{padding-bottom:12px;max-width:760px;}
.producer-logo{margin-bottom:20px;}
.producer-logo img{max-height:90px;width:auto;object-fit:contain;}
.producer-bio{color:var(--ink);font-size:.98rem;line-height:1.6;margin-bottom:28px;}
.producer-bio p{margin:0 0 1em;}
.producer-bio p:last-child{margin-bottom:0;}

.producer-details{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px 32px;
  padding:24px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
}
.producer-detail .label{
  display:block;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--accent);font-weight:700;margin-bottom:4px;
}
.producer-detail .value{font-size:.9rem;color:var(--ink);}
.producer-detail .value a{color:inherit;text-decoration:underline;text-decoration-color:var(--rule);}
.producer-detail .value a:hover{color:var(--accent);text-decoration-color:var(--accent);}
.producer-hours{grid-column:1 / -1;}
.hours-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:2px 24px;margin-top:2px;}
.hours-row{font-size:.86rem;color:var(--ink-dim);}
