/* Boutique et catégories de produits : chargée seulement sur ces pages, après pages.css. */
/* Ouverture plus basse que sur les autres pages : on vient ici pour les vins. */
body.nsa-page .hero--court { height: min(68svh, 640px); min-height: 460px; }
body.nsa-page .hero__titre--texte { font-family: var(--titre); font-size: clamp(2.75rem, 6vw, 4.75rem); font-weight: 400; line-height: 1.05; color: #fffefc; text-wrap: balance; }

/* ---------- Rayons et distinctions ---------- */
body.nsa-page .rayon__rayons ul,
body.nsa-page .rayon__distinctions ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
body.nsa-page .rayon__rayons { margin-bottom: 1.5rem; }
body.nsa-page .rayon__rayons a { display: inline-flex; align-items: center; gap: .5rem; min-height: 46px; padding: 0 1.25rem; border: 1px solid var(--filet); border-radius: 999px; font-family: var(--sans); font-size: .75rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--encre); text-decoration: none; transition: border-color 300ms var(--ease), background-color 300ms var(--ease), color 300ms var(--ease); }
body.nsa-page .rayon__rayons a small,
body.nsa-page .rayon__distinctions a small { font-size: .6875rem; letter-spacing: 0; color: var(--texte-doux); }
body.nsa-page .rayon__rayons a[aria-current] { background: var(--encre); border-color: var(--encre); color: var(--fond); }
body.nsa-page .rayon__rayons a[aria-current] small { color: inherit; opacity: .7; }
body.nsa-page .rayon__distinctions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; padding: 1.1rem 0 1.25rem; border-top: 1px solid var(--filet); border-bottom: 1px solid var(--filet); }
body.nsa-page .rayon__distinctions-titre { font-family: var(--sans); font-size: .6875rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--cuivre-texte); }
body.nsa-page .rayon__distinctions a { display: inline-flex; align-items: center; gap: .4rem; min-height: 36px; padding: 0 .85rem; border: 1px solid transparent; border-radius: 999px; background: var(--fond-2); font-family: var(--sans); font-size: .75rem; color: var(--encre); text-decoration: none; transition: border-color 300ms var(--ease); }
body.nsa-page .rayon__distinctions a[aria-current] { border-color: var(--cuivre); background: #f7edd2; }
body.nsa-page .rayon__retirer { font-family: var(--sans); font-size: .75rem; color: var(--rouge); }
@media (hover: hover) {
  body.nsa-page .rayon__rayons a:not([aria-current]):hover { border-color: var(--cuivre); color: var(--cuivre-texte); }
  body.nsa-page .rayon__distinctions a:hover { border-color: var(--cuivre); }
}
body.nsa-page .rayon__prix { border-top: 0; padding-top: .25rem; }
body.nsa-page .rayon__distinctions a { white-space: nowrap; }

/* Mobile : chaque rangée de pastilles défile sur une ligne au lieu de s'empiler. */
@media (max-width: 760px) {
  body.nsa-page .rayon__distinctions { flex-direction: column; align-items: stretch; gap: .6rem; }
  body.nsa-page .rayon__rayons, body.nsa-page .rayon__distinctions, body.nsa-page .rayon__rayons ul, body.nsa-page .rayon__distinctions ul { min-width: 0; max-width: 100vw; }
  body.nsa-page .rayon__rayons ul,
  body.nsa-page .rayon__distinctions ul { flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scroll-padding-inline: var(--gouttiere); scrollbar-width: none; margin-inline: calc(-1 * var(--gouttiere)); padding-inline: var(--gouttiere); -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 2.5rem), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 2.5rem), transparent); }
  body.nsa-page .rayon__rayons ul::-webkit-scrollbar,
  body.nsa-page .rayon__distinctions ul::-webkit-scrollbar { display: none; }
  body.nsa-page .rayon__rayons li,
  body.nsa-page .rayon__distinctions li { flex: none; scroll-snap-align: start; }
  body.nsa-page .rayon__rayons a { white-space: nowrap; }
  body.nsa-page .rayon__retirer { align-self: flex-start; }
}
body.nsa-page .rayon__description { max-width: 72ch; margin: 0 0 1.75rem; color: var(--texte-doux); }
body.nsa-page .rayon__description p { margin: 0 0 .75rem; }

/* ---------- Barre d'outils (résultats, tri, messages) ---------- */
body.nsa-page .rayon__outils { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin: 1.5rem 0 clamp(1.75rem, 3vw, 2.5rem); }
body.nsa-page .rayon__outils .woocommerce-notices-wrapper { flex: 1 1 100%; }
body.nsa-page .rayon__outils .woocommerce-notices-wrapper:empty { display: none; }
body.nsa-page .woocommerce-result-count { margin: 0; font-family: var(--sans); font-size: .8125rem; color: var(--texte-doux); }
body.nsa-page .woocommerce-ordering { margin: 0; }
body.nsa-page .woocommerce-ordering select { min-height: 44px; padding: 0 2.5rem 0 1rem; border: 1px solid var(--filet); border-radius: 0; background: var(--fond) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%237a3f2a' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 1rem center; font-family: var(--sans); font-size: .8125rem; color: var(--encre); appearance: none; cursor: pointer; }
body.nsa-page .woocommerce-ordering select:focus-visible { outline: 2px solid var(--cuivre); outline-offset: 2px; }
body.nsa-page .woocommerce-message,
body.nsa-page .woocommerce-info,
body.nsa-page .woocommerce-error { margin: 0 0 1rem; padding: 1rem 1.25rem; list-style: none; border: 1px solid var(--filet); background: var(--fond-2); font-size: .9375rem; }
body.nsa-page .woocommerce-error { border-color: #e2b4b4; background: #fbf0f0; }
body.nsa-page .woocommerce-message .button { float: right; margin-left: 1rem; color: var(--rouge); }

/* ---------- Grille des vins ---------- */
body.nsa-page .produits--boutique { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
body.nsa-page .produit__visuel--photo img { height: 270px; width: auto; max-width: 100%; object-fit: contain; mix-blend-mode: multiply; filter: none; }
body.nsa-page .pastille--promo { background: var(--rouge); color: var(--blanc); }
body.nsa-page .produits--boutique .produit__nom { font-size: 1.125rem; text-wrap: balance; }

/* ---------- Pagination WooCommerce ---------- */
body.nsa-page .woocommerce-pagination { margin-top: clamp(3rem, 6vw, 4.5rem); }
body.nsa-page nav.woocommerce-pagination { text-align: center; }
body.nsa-page nav.woocommerce-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; width: 100%; margin: 0; padding: 0; list-style: none; border: 0; }
body.nsa-page nav.woocommerce-pagination ul.page-numbers li { border: 0; }
body.nsa-page .woocommerce-pagination li { border: 0; }
body.nsa-page .woocommerce-pagination li .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 1rem; border: 1px solid var(--filet); font-family: var(--sans); font-size: .8125rem; color: var(--encre); text-decoration: none; }
body.nsa-page .woocommerce-pagination li .page-numbers.current { background: var(--encre); border-color: var(--encre); color: var(--fond); }
@media (hover: hover) { body.nsa-page .woocommerce-pagination a.page-numbers:hover { border-color: var(--cuivre); color: var(--cuivre-texte); } }

body.nsa-page .rayon__mentions { margin-top: clamp(2.5rem, 5vw, 3.5rem); font-size: .8125rem; color: var(--texte-doux); }
body.nsa-page .rayon__vide { padding: 3rem 0; text-align: center; }

/* ---------- Bandeau livraison ---------- */
body.nsa-page .bandeau-livraison { padding: clamp(3.5rem, 7vw, 5rem) 0; background: var(--brun); color: #f3e8df; }
body.nsa-page .bandeau-livraison__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) auto; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
body.nsa-page .bandeau-livraison .titre { margin: .4rem 0 0; font-size: clamp(1.75rem, 3vw, 2.5rem); }
body.nsa-page .bandeau-livraison p:not(.surtitre) { margin: 0; line-height: 1.7; }

/* ---------- Passage GEO et avis ---------- */
body.nsa-page .reponse { text-align: center; }
body.nsa-page .reponse__contenu { max-width: 46rem; }
body.nsa-page .reponse .fleur { margin-inline: auto; }
body.nsa-page .reponse .nis-geo { margin: 0; }
body.nsa-page .reponse .nis-geo h2 { margin: .75rem 0 1.25rem; font-family: var(--titre); font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 400; line-height: 1.2; color: var(--encre); text-wrap: balance; }
body.nsa-page .reponse .nis-geo p { margin: 0; font-size: 1.0625rem; line-height: 1.75; text-wrap: pretty; }
body.nsa-page .avis-boutique .nis-avis { margin: 0; }
body.nsa-page .avis-boutique .nis-avis > h2 { margin: 0 0 1.5rem; font-family: var(--titre); font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 400; text-align: center; }
body.nsa-page .avis-boutique .nis-avis-lien { display: block; width: fit-content; margin: 1.25rem auto 0; font-family: var(--sans); font-size: .8125rem; color: var(--rouge); }

@media (max-width: 1200px) {
  body.nsa-page .produits--boutique { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  body.nsa-page .produits--boutique { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.nsa-page .bandeau-livraison__grille { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  body.nsa-page .hero--court { height: 56svh; min-height: 400px; }
  /* Deux vins par ligne : on compare mieux, et la boutique ne fait pas dix écrans. */
  body.nsa-page .produits--boutique { gap: .75rem; }
  body.nsa-page .produits--boutique .produit__lien { padding: 0 .75rem 1rem; }
  body.nsa-page .produits--boutique .produit__visuel { height: 210px; }
  body.nsa-page .produits--boutique .produit__visuel img { height: 175px; }
  body.nsa-page .produits--boutique .produit__nom { font-size: 1rem; }
  body.nsa-page .produits--boutique .produit__type { font-size: .8125rem; }
  body.nsa-page .produits--boutique .produit__cepages { display: none; }
  body.nsa-page .produits--boutique .pastille { font-size: .5625rem; padding-inline: .5rem; }
  body.nsa-page .produits--boutique .produit__ajout { font-size: .625rem; letter-spacing: .12em; }
  body.nsa-page .rayon__rayons ul { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .5rem; margin-inline: calc(var(--gouttiere, 16px) * -1); padding-inline: var(--gouttiere, 16px); scrollbar-width: none; }
  body.nsa-page .rayon__rayons li { flex: none; }
}
