/* Atelier du vin, 5e série : saisons, budget, arômes, bio. Après atelier-2.css.
   (Sur la page de l'Atelier, seule la règle outil--large sert, déjà dans outils-5.) */

/* ---------- En-têtes ---------- */
body.nsa-page .saisons-tete,
body.nsa-page .budget-tete,
body.nsa-page .aromes-tete,
body.nsa-page .bio-tete { padding-bottom: clamp(1.5rem, 3vw, 2.5rem); text-align: center; }
body.nsa-page .saisons-tete__contenu,
body.nsa-page .budget-tete__contenu,
body.nsa-page .aromes-tete__contenu,
body.nsa-page .bio-tete__contenu { max-width: 46rem; }
body.nsa-page .saisons-tete .fleur,
body.nsa-page .budget-tete .fleur,
body.nsa-page .aromes-tete .fleur,
body.nsa-page .bio-tete .fleur { margin-inline: auto; }
body.nsa-page .saisons-tete .titre,
body.nsa-page .budget-tete .titre,
body.nsa-page .aromes-tete .titre,
body.nsa-page .bio-tete .titre { margin-top: .75rem; text-wrap: balance; }
body.nsa-page .saisons-tete__intro,
body.nsa-page .budget-tete__intro,
body.nsa-page .aromes-tete__intro,
body.nsa-page .bio-tete__intro { margin-top: 1.25rem; font-size: 1.0625rem; line-height: 1.75; text-wrap: pretty; }
body.nsa-page .surtitre a { color: inherit; text-decoration: none; }

/* ---------- Le vin des saisons ---------- */
body.nsa-page .saisons { padding-top: 0; }
body.nsa-page .saisons__choix { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin-bottom: clamp(1.75rem, 3vw, 2.5rem); }
body.nsa-page .saisons__choix[hidden] { display: none; }
body.nsa-page .saisons__bouton { padding: .75rem 1.4rem; font-family: var(--sans); font-size: .875rem; letter-spacing: .04em; color: var(--encre); background: var(--blanc); border: 1px solid var(--filet); border-radius: 999px; cursor: pointer; transition: border-color .2s, background .2s; }
body.nsa-page .saisons__bouton:hover { border-color: var(--rouge); }
body.nsa-page .saisons__bouton[aria-pressed="true"] { color: var(--blanc); background: var(--rouge); border-color: var(--rouge); }
body.nsa-page .saisons__bouton:focus-visible { outline: 2px solid var(--cuivre); outline-offset: 2px; }
body.nsa-page .saisons__maintenant { font-size: .75rem; opacity: .85; }
body.nsa-page .saisons__maintenant[hidden] { display: none; }
body.nsa-page .saison { padding: clamp(1.5rem, 3.5vw, 2.5rem); background: var(--blanc); border: 1px solid var(--filet); border-top: 3px solid var(--rouge); }
body.nsa-page .saison + .saison { margin-top: 1.5rem; }
body.nsa-page .saison[hidden] { display: none; }
body.nsa-page .saison--printemps { border-top-color: #7aa04a; }
body.nsa-page .saison--ete { border-top-color: #d9a43a; }
body.nsa-page .saison--automne { border-top-color: #b4562a; }
body.nsa-page .saison--hiver { border-top-color: #5a6f86; }
body.nsa-page .saison__tete { display: grid; grid-template-columns: minmax(0, 14rem) minmax(0, 1fr); gap: 1rem 2.5rem; align-items: baseline; padding-bottom: 1.5rem; border-bottom: 1px solid var(--filet); }
body.nsa-page .saison__nom { margin: 0; font-family: var(--titre); font-size: clamp(2rem, 4vw, 2.75rem); font-weight: 400; color: var(--encre); }
body.nsa-page .saison__textes p { margin: 0; line-height: 1.7; }
body.nsa-page .saison__textes p + p { margin-top: .5rem; }
body.nsa-page .saison__textes strong { display: inline-block; min-width: 8.5rem; font-family: var(--sans); font-size: .6875rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--cuivre-texte); }
body.nsa-page .saison__familles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2.5rem; margin-top: 1.5rem; }
body.nsa-page .sfamille__titre { margin: 0; font-family: var(--titre); font-size: 1.375rem; font-weight: 400; color: var(--encre); }
body.nsa-page .sfamille__exemples { margin: .25rem 0 0; font-size: .9375rem; color: var(--texte-doux); }
body.nsa-page .sfamille__vins { display: grid; gap: .65rem; margin: .85rem 0 0; padding: 0; list-style: none; }
body.nsa-page .sfamille__vins li { display: flex; gap: .65rem; align-items: baseline; line-height: 1.55; }
body.nsa-page .sfamille__vins a { font-weight: 500; color: var(--rouge); text-decoration: none; }
body.nsa-page .sfamille__vins a:hover { text-decoration: underline; }
body.nsa-page .sfamille__conseil { display: block; font-size: .9375rem; }
body.nsa-page .sfamille__pastille { flex: none; width: .7rem; height: .7rem; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .12); transform: translateY(.05rem); }
body.nsa-page .sfamille__pastille--bulles { background: #efe3b0; }
body.nsa-page .sfamille__pastille--blanc { background: #f1e6a6; }
body.nsa-page .sfamille__pastille--rose { background: #f0b3a6; }
body.nsa-page .sfamille__pastille--rouge { background: #7a1626; }
body.nsa-page .saisons__note { max-width: 46rem; margin: 1.5rem auto 0; font-family: var(--sans); font-size: .8125rem; line-height: 1.6; color: var(--texte-doux); text-align: center; }

/* ---------- Le budget ---------- */
body.nsa-page .budget { padding-top: 0; }
body.nsa-page .budget__grille { display: grid; grid-template-columns: minmax(0, 1fr) 24rem; gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
body.nsa-page .budget__reglages { display: grid; gap: 1rem; }
body.nsa-page .budget__bloc { margin: 0; padding: 1.25rem 1.5rem; background: var(--blanc); border: 1px solid var(--filet); }
body.nsa-page .budget__bloc legend { float: left; width: 100%; margin-bottom: .75rem; padding: 0; font-family: var(--titre); font-size: 1.25rem; color: var(--encre); }
body.nsa-page .budget__bloc > label, body.nsa-page .budget__invites { clear: both; }
body.nsa-page .budget__invites { display: flex; align-items: center; gap: 1.25rem; }
body.nsa-page .budget__curseur { flex: 1; accent-color: var(--rouge); }
body.nsa-page .budget__nombre { min-width: 3.5rem; font-family: var(--titre); font-size: 2rem; color: var(--rouge); text-align: right; font-variant-numeric: tabular-nums; }
body.nsa-page .budget__moment { display: flex; gap: .65rem; align-items: flex-start; padding: .45rem 0; cursor: pointer; line-height: 1.5; }
body.nsa-page .budget__moment input { flex: none; width: 1.1rem; height: 1.1rem; margin-top: .2rem; accent-color: var(--rouge); }
body.nsa-page .budget__moment small, body.nsa-page .budget__emploi small { display: block; font-family: var(--sans); font-size: .8125rem; color: var(--texte-doux); }
body.nsa-page .budget__vin { display: grid; gap: .45rem; padding: .75rem 0; border-top: 1px solid var(--filet); }
body.nsa-page .budget__bloc > legend + .budget__vin { border-top: 0; padding-top: 0; }
body.nsa-page .budget__emploi strong { font-weight: 500; color: var(--encre); }
body.nsa-page .budget__vin select { width: 100%; min-height: 2.75rem; padding: .5rem .75rem; font-family: var(--sans); font-size: .875rem; color: var(--encre); background: var(--fond); border: 1px solid var(--filet); }
body.nsa-page .budget__bilan { position: sticky; top: 6rem; padding: 1.75rem; background: var(--blanc); border: 1px solid var(--filet); border-top: 3px solid var(--rouge); }
body.nsa-page .budget__titre { margin: 0; font-family: var(--titre); font-size: 1.5rem; font-weight: 400; }
body.nsa-page .budget__lignes { margin: 1rem 0 0; padding: 0; list-style: none; }
body.nsa-page .budget__lignes li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .1rem 1rem; padding: .7rem 0; border-top: 1px solid var(--filet); }
body.nsa-page .budget__ligne-nom { grid-column: 1 / -1; font-family: var(--titre); font-size: 1rem; line-height: 1.3; color: var(--encre); }
body.nsa-page .budget__ligne-qte { font-family: var(--sans); font-size: .8125rem; color: var(--texte-doux); }
body.nsa-page .budget__ligne-cout { font-family: var(--sans); font-size: .875rem; font-weight: 500; color: var(--encre); }
body.nsa-page .budget__total, body.nsa-page .budget__invite { display: flex; justify-content: space-between; align-items: baseline; margin: 0; font-family: var(--sans); font-size: .875rem; color: var(--texte-doux); }
body.nsa-page .budget__total { margin-top: .5rem; padding-top: 1rem; border-top: 1px solid var(--filet); }
body.nsa-page .budget__invite { margin-top: .4rem; }
body.nsa-page .budget__somme { font-family: var(--titre); font-size: 1.75rem; font-weight: 400; color: var(--encre); }
body.nsa-page .budget__par { font-family: var(--titre); font-size: 1.25rem; font-weight: 400; color: var(--rouge); }
body.nsa-page .budget__livraison { margin: 1rem 0 0; padding: .65rem .85rem; font-family: var(--sans); font-size: .8125rem; line-height: 1.5; background: var(--fond-2); }
body.nsa-page .budget__livraison.is-ok { color: #3d5a2a; background: #e8efdf; }
body.nsa-page .budget__valider { width: 100%; justify-content: center; margin-top: 1.25rem; }
body.nsa-page .budget__valider:disabled { opacity: .45; cursor: default; }
body.nsa-page .budget__valider.is-attente { opacity: .7; cursor: progress; }
body.nsa-page .budget__erreur { margin: 1rem 0 0; font-size: .875rem; color: var(--rouge); }
body.nsa-page .budget__erreur[hidden] { display: none; }
body.nsa-page .budget__note { margin: 1rem 0 0; font-family: var(--sans); font-size: .75rem; line-height: 1.6; color: var(--texte-doux); }

/* ---------- La roue des arômes ---------- */
body.nsa-page .roue { padding-top: 0; }
body.nsa-page .roue__grille { display: grid; grid-template-columns: minmax(0, 30rem) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4rem); align-items: start; }
body.nsa-page .roue__figure { position: sticky; top: 7rem; margin: 0; text-align: center; }
body.nsa-page .roue__figure svg { display: block; width: 100%; height: auto; }
body.nsa-page .roue__part { cursor: pointer; outline: none; }
body.nsa-page .roue__part path { stroke: var(--fond); stroke-width: 2; transition: opacity .25s, transform .25s var(--ease); transform-origin: 220px 220px; }
body.nsa-page .roue__part text { fill: #fff; font-family: var(--sans); font-size: 12.5px; font-weight: 500; pointer-events: none; paint-order: stroke; stroke: rgba(0, 0, 0, .18); stroke-width: 2px; }
body.nsa-page .roue__part:hover path, body.nsa-page .roue__part:focus-visible path { transform: scale(1.03); }
body.nsa-page .roue__part.is-actif path { transform: scale(1.05); stroke: var(--encre); stroke-width: 2.5; }
body.nsa-page .roue__figure.is-negrette .roue__part:not(.roue__part--negrette) path { opacity: .22; }
body.nsa-page .roue__figure.is-negrette .roue__part--negrette path { transform: scale(1.05); }
body.nsa-page .roue__centre { fill: var(--blanc); stroke: var(--filet); }
body.nsa-page .roue__centre-texte { fill: var(--encre); font-family: var(--titre); font-size: 26px; }
body.nsa-page .roue__centre-texte--petit { font-size: 17px; fill: var(--texte-doux); }
body.nsa-page .roue__actions { margin: 1.25rem 0 0; }
body.nsa-page .roue__actions[hidden] { display: none; }
body.nsa-page .roue__negrette[aria-pressed="true"] { color: var(--blanc); background: var(--rouge); border-color: var(--rouge); }
body.nsa-page .roue__negrette-texte { margin: 0 0 1rem; padding: 1rem 1.25rem; background: #f1e8f5; border-left: 3px solid #8e5aa8; line-height: 1.6; }
body.nsa-page .roue__negrette-texte[hidden] { display: none; }
body.nsa-page .roue__fiches { border-top: 1px solid var(--filet); }
body.nsa-page .arome { border-bottom: 1px solid var(--filet); }
body.nsa-page .arome summary { display: flex; align-items: center; gap: .75rem; padding: 1rem 0; font-family: var(--titre); font-size: 1.3125rem; color: var(--encre); cursor: pointer; list-style: none; }
body.nsa-page .arome summary::-webkit-details-marker { display: none; }
body.nsa-page .arome summary:hover { color: var(--rouge); }
body.nsa-page .arome__pastille { flex: none; width: .95rem; height: .95rem; border-radius: 50%; background: var(--teinte); }
body.nsa-page .arome__negrette { margin-left: auto; padding: .2rem .65rem; font-family: var(--sans); font-size: .6875rem; letter-spacing: .06em; color: #6c3d86; background: #f1e8f5; border-radius: 999px; }
body.nsa-page .arome dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .5rem 1.25rem; margin: 0; padding: 0 0 1.25rem 1.7rem; }
body.nsa-page .arome dt { font-family: var(--sans); font-size: .6875rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--cuivre-texte); padding-top: .2rem; }
body.nsa-page .arome dd { margin: 0; line-height: 1.6; }
body.nsa-page .roue__suite { margin: 1.75rem 0 0; }

/* ---------- Vin bio et sulfites ---------- */
body.nsa-page .plafonds { padding-top: 0; }
body.nsa-page .plafonds__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; }
body.nsa-page .plafonds__tete .titre { margin-top: .5rem; }
body.nsa-page .plafonds__tete > p:not(.surtitre) { margin: 1rem 0 0; line-height: 1.7; }
body.nsa-page .plafonds__legende { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 1.25rem 0 0; padding: 0; list-style: none; font-family: var(--sans); font-size: .875rem; }
body.nsa-page .plafonds__legende li { display: flex; align-items: center; gap: .5rem; }
body.nsa-page .plafonds__cle { width: 1.5rem; height: .75rem; }
body.nsa-page .plafonds__cle--conv, body.nsa-page .plafond__ligne--conv .plafond__barre { background: #b9aea4; }
body.nsa-page .plafonds__cle--bio, body.nsa-page .plafond__ligne--bio .plafond__barre { background: #5f8a3a; }
body.nsa-page .plafonds__barres { display: grid; gap: 1.5rem; padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--blanc); border: 1px solid var(--filet); border-top: 3px solid #5f8a3a; }
body.nsa-page .plafond { margin: 0; }
body.nsa-page .plafond figcaption { margin-bottom: .6rem; font-family: var(--titre); font-size: 1.25rem; color: var(--encre); }
body.nsa-page .plafond__ligne { display: flex; align-items: center; gap: .75rem; margin: .4rem 0 0; }
body.nsa-page .plafond__barre { display: block; height: 1.6rem; border-radius: 0 2px 2px 0; transition: width .6s var(--ease); }
body.nsa-page .plafond__valeur { flex: none; font-family: var(--sans); font-size: .875rem; font-weight: 500; color: var(--encre); font-variant-numeric: tabular-nums; }
body.nsa-page .plafond__ecart { margin: .5rem 0 0; font-family: var(--sans); font-size: .8125rem; color: #3d5a2a; }
body.nsa-page .vraifaux { background: var(--fond-2); }
body.nsa-page .vraifaux .entete { text-align: center; }
body.nsa-page .vraifaux .entete .fleur { margin-inline: auto; }
body.nsa-page .vraifaux__contenu { max-width: 52rem; }
body.nsa-page .vraifaux__score { margin: 1rem 0 0; font-family: var(--titre); font-size: 1.375rem; color: var(--rouge); text-align: center; }
body.nsa-page .vraifaux__score[hidden] { display: none; }
body.nsa-page .vraifaux__liste { display: grid; gap: 1rem; margin: clamp(1.5rem, 3vw, 2.25rem) 0 0; padding: 0; list-style: none; }
body.nsa-page .vf { padding: 1.25rem 1.5rem; background: var(--blanc); border: 1px solid var(--filet); border-left: 3px solid var(--filet); transition: border-color .25s; }
body.nsa-page .vf.is-juste { border-left-color: #5f8a3a; }
body.nsa-page .vf.is-faux { border-left-color: var(--cuivre); }
body.nsa-page .vf__affirmation { display: flex; gap: .85rem; align-items: baseline; margin: 0; font-family: var(--titre); font-size: 1.1875rem; line-height: 1.45; color: var(--encre); }
body.nsa-page .vf__num { flex: none; font-family: var(--sans); font-size: .75rem; font-weight: 600; color: var(--cuivre-texte); }
body.nsa-page .vf__choix { display: flex; gap: .6rem; margin: .9rem 0 0 1.6rem; }
body.nsa-page .vf__choix[hidden] { display: none; }
body.nsa-page .vf__choix button { padding: .55rem 1.3rem; font-family: var(--sans); font-size: .875rem; color: var(--encre); background: var(--fond); border: 1px solid var(--filet); border-radius: 999px; cursor: pointer; }
body.nsa-page .vf__choix button:hover:not(:disabled) { border-color: var(--rouge); }
body.nsa-page .vf__choix button:disabled { cursor: default; opacity: .55; }
body.nsa-page .vf.is-juste .is-choisi { opacity: 1; color: #fff; background: #5f8a3a; border-color: #5f8a3a; }
body.nsa-page .vf.is-faux .is-choisi { opacity: 1; color: #fff; background: var(--cuivre); border-color: var(--cuivre); }
body.nsa-page .vf__reponse { margin: .75rem 0 0 1.6rem; }
body.nsa-page .vf__reponse summary { font-family: var(--sans); font-size: .8125rem; color: var(--rouge); cursor: pointer; }
body.nsa-page .vf__reponse p { margin: .5rem 0 0; line-height: 1.65; }

@media (max-width: 960px) {
  body.nsa-page .budget__grille, body.nsa-page .roue__grille, body.nsa-page .plafonds__grille { grid-template-columns: minmax(0, 1fr); }
  body.nsa-page .budget__bilan, body.nsa-page .roue__figure { position: static; }
  body.nsa-page .roue__figure { max-width: 26rem; margin-inline: auto; }
  body.nsa-page .saison__tete, body.nsa-page .saison__familles { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  body.nsa-page .budget__bloc { padding: 1rem 1.1rem; }
  body.nsa-page .saison__textes strong { display: block; min-width: 0; }
  body.nsa-page .vf__choix, body.nsa-page .vf__reponse { margin-left: 0; }
  body.nsa-page .arome dl { grid-template-columns: minmax(0, 1fr); padding-left: 0; }
}
