/* =========================================================================
   Feuille d'impression.
   Objectif : ce qui sort de l'imprimante doit ressembler a une fiche cuisine,
   pas a une capture d'ecran. On enleve la navigation, les boutons et le bloc
   d'inscription, on repasse en noir sur blanc, et on evite les coupures
   au milieu d'une etape ou d'un ingredient.
   ========================================================================= */

@page { margin: 14mm 12mm; }

body {
  background: #fff !important;
  color: #000 !important;
  font-size: 11.5pt;
  line-height: 1.45;
}

/* Tout ce qui n'a aucun sens sur du papier */
.entete, .pied, .nav, .fil, .saut-contenu,
.bloc-email, .bouton, .heros__actions, .menu__actions,
.courses__actions, .retour, .etapes-site, .section--alt,
.reglages, .convives, .courses__vide,
.carte__choix, .menu__choix-aide,
/* Reglages et consignes qui n'ont aucun sens sur papier. Attention : masquer
   .convives ne suffit pas, l'etiquette « Vous etes » vit a cote et resterait
   seule, sans nombre. On masque donc toute la barre. */
.barre-convives, [data-aide-choix], .section__intro, .heros__rassurance,
.lien-outil, .outils-page {
  display: none !important;
}

/* Le grand aplat creme du bandeau d'accueil : joli a l'ecran, coûteux en encre
   et sans interet sur papier. */
.heros {
  background: none !important;
  border-bottom: 0 !important;
  padding: 0 0 10pt 0 !important;
}
.heros__oeil { color: #666 !important; font-size: 8pt; }
.heros__texte { font-size: 10pt; }

/* Les respirations genereuses de l'ecran gaspillent du papier. */
.section { padding: 8pt 0 !important; }
.section__titre { font-size: 15pt !important; margin-bottom: 6pt !important; }
.recap { margin-top: 12pt !important; }

/* Un diner decoche ne s'imprime pas : la feuille correspond a l'ecran. */
.carte--exclu { display: none !important; }

/* On imprime la liste telle qu'elle est a l'ecran : nombre de personnes et
   diners choisis compris. Les pastilles de jours restent, elles servent. */
.courses__jours { background: none !important; color: #444 !important; font-size: 8pt; }

.conteneur, .conteneur--etroit { max-width: none !important; padding: 0 !important; }

/* Titres */
h1 { font-size: 20pt; margin: 0 0 6pt; }
h2 { font-size: 13pt; margin: 14pt 0 5pt; border-bottom: 1px solid #999; padding-bottom: 2pt; }
h3 { font-size: 11.5pt; }

/* Le visuel decoratif ne merite pas de l'encre */
.recette__visuel, .carte__visuel, .carte__image--vide, .recette__image--vide {
  display: none !important;
}

/* Cartes et blocs : a plat, sans ombre ni fond */
.carte, .rayon, .bloc-ingredients, .nutrition, .recap, .astuce, .macro, .repere {
  background: #fff !important;
  box-shadow: none !important;
  border: 1px solid #ccc !important;
  border-radius: 0 !important;
}
.carte:hover { transform: none !important; }

/* Reperes de temps : une ligne compacte */
.reperes { grid-template-columns: repeat(4, 1fr) !important; margin-bottom: 10pt; }
.repere { padding: 6pt 4pt !important; }
.repere__valeur { font-size: 11pt; }
.repere__nom { font-size: 7.5pt; }

/* Recette : ingredients a gauche, etapes a droite, comme a l'ecran */
.recette__corps { display: block !important; }
.bloc-ingredients { position: static !important; padding: 10pt 12pt !important; margin-bottom: 12pt; }

.liste-cochable label { padding: 3.5pt 0 !important; }
.liste-cochable input[type="checkbox"] {
  -webkit-appearance: none; appearance: none;
  width: 10pt; height: 10pt; border: 1px solid #333; border-radius: 2px;
}

/* Etapes : jamais coupees en deux pages */
.etapes li { padding-bottom: 8pt !important; break-inside: avoid; page-break-inside: avoid; }
.etapes li::before {
  background: #fff !important; color: #000 !important; border: 1px solid #333;
  width: 22px !important; height: 22px !important; font-size: 9pt !important;
}
.etapes li::after { display: none !important; }
.etapes li { padding-left: 34px !important; }

/* Liste de courses : compacte, pour ne pas gaspiller de papier.
   Un rayon PEUT se couper entre deux pages (« break-inside: avoid » laissait de
   grands vides en bas de page) ; en revanche une LIGNE ne se coupe jamais. */
.rayon { margin-bottom: 6pt; padding: 2pt 8pt 4pt !important; border: 0 !important; }
.rayon__titre { font-size: 9pt !important; padding: 5pt 0 2pt !important; border-bottom: 1px solid #666 !important; }
.liste-cochable--courses li { break-inside: avoid; page-break-inside: avoid; }
.liste-cochable--courses label { padding: 2.5pt 0 !important; }
.courses__chapo, .courses__astuce, .courses__pied { font-size: 9pt; }

/* Menu de la semaine : la grille des 7 jours en liste compacte */
.semaine, .grille { display: block !important; }
.semaine .carte, .grille .carte { margin-bottom: 6pt; break-inside: avoid; }
.carte__texte { padding: 6pt 10pt !important; }
.carte__titre { font-size: 11.5pt; margin: 0 0 2pt; }
.carte__jour { font-size: 8pt; }

/* Nutrition */
.nutrition, .recap { break-inside: avoid; padding: 10pt 12pt !important; }
.nutrition__grille { grid-template-columns: repeat(5, 1fr) !important; gap: 6pt !important; }
.macro { padding: 6pt 3pt !important; }
.macro__valeur { font-size: 10.5pt; }
.macro__nom { font-size: 7pt; }

.astuce { border-left: 3px solid #666 !important; padding: 8pt 12pt !important; }

/* Les liens : inutile d'imprimer les adresses internes */
a { color: #000 !important; text-decoration: none !important; }

/* Rappel de provenance en bas de chaque impression */
.nutrition__source { font-size: 8pt; }
