/* PRISME — Repas Crous. Jetons --prisme-* partagés : suit les thèmes de fête, Octobre et Noël. Texte à gauche, 14 px minimum. */
@font-face { font-family: "Lexend PRISME"; font-weight: 400; src: url("../fonts/lexend-v26-latin-regular.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Lexend PRISME"; font-weight: 600; src: url("../fonts/lexend-v26-latin-600.woff2") format("woff2"); font-display: swap; }
.prisme-crous { font-family: var(--prisme-font, "Lexend PRISME", sans-serif); color: var(--prisme-texte, #FFFFFF); max-width: 860px; margin: 24px auto 64px; padding: 0 16px; display: grid; gap: 24px; text-align: left; overflow-wrap: anywhere; }
.prisme-crous h2 { font-size: var(--prisme-t-xl, 1.75rem); font-weight: 600; margin: 24px 0 0; line-height: 1.25; }
.prisme-crous h3 { font-size: var(--prisme-t-l, 1.25rem); font-weight: 600; margin: 0 0 16px; }
.prisme-crous h4 { font-size: var(--prisme-t-m, 1rem); font-weight: 600; margin: 16px 0 8px; color: var(--prisme-or, #F5A623); }
.prisme-crous h5 { font-size: var(--prisme-t-xs, 0.875rem); font-weight: 600; margin: 12px 0 4px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--prisme-texte-att, #A9A9B4); }
.prisme-crous-avert, .prisme-crous-lieu { padding: 24px; }
.prisme-crous-avert { border-color: var(--prisme-or, #F5A623); }
.prisme-crous-avert p { margin: 8px 0 0; line-height: 1.6; color: var(--prisme-texte-att, #A9A9B4); }
.prisme-crous-grille { display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr); } /* une carte par ligne : lecture tranquille */
.prisme-crous ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.prisme-crous li { line-height: 1.5; }
.prisme-crous-vg { display: inline-block; margin-left: 8px; padding: 0 8px; font-size: var(--prisme-t-xs, 0.875rem); border: 1px solid var(--prisme-vert, #2ECC71); border-radius: 999px; }
.prisme-crous-al { display: block; font-size: var(--prisme-t-xs, 0.875rem); color: var(--prisme-or, #F5A623); }
.prisme-crous-vide, .prisme-crous-source { color: var(--prisme-texte-att, #A9A9B4); font-size: var(--prisme-t-xs, 0.875rem); line-height: 1.5; margin: 0; }
.prisme-crous-suite { margin-top: 16px; }
.prisme-crous-suite summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-weight: 600; }

/* Carte « menu » : en-tête, services, rubriques */
.prisme-crous-lieu { display: flex; flex-direction: column; gap: 4px; }
.prisme-crous-entete { padding-bottom: 16px; margin-bottom: 8px; border-bottom: 1px solid var(--prisme-bordure, #34333B); }
.prisme-crous-entete h3 { margin: 4px 0 0; }
.prisme-crous-type { font-size: var(--prisme-t-xs, 0.875rem); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--prisme-or, #F5A623); }
.prisme-crous-date { margin: 0 0 8px; font-weight: 600; }
.prisme-crous-service { padding: 8px 0 16px; }
.prisme-crous-service + .prisme-crous-service { border-top: 1px dashed var(--prisme-bordure, #34333B); padding-top: 16px; }
.prisme-crous h6 { font-size: var(--prisme-t-m, 1rem); font-weight: 600; margin: 16px 0 8px; }
.prisme-crous-service h5 { margin-top: 0; }
.prisme-crous-service li { padding-left: 16px; position: relative; }
.prisme-crous-service li::before { content: ""; position: absolute; left: 0; top: 0.65em; width: 6px; height: 6px; border-radius: 50%; background: var(--prisme-or, #F5A623); }

/* Horaires, fermeture, proximité */
.prisme-crous-horaires { padding: 8px 0 8px; }
.prisme-crous-horaires h5 { margin: 0 0 8px; }
.prisme-crous-ferme { display: inline-block; margin: 8px 0 0; padding: 4px 12px; font-weight: 600; border: 2px solid var(--prisme-corail, #FF6B6B); border-radius: 999px; }
.prisme-crous-ferme::before { content: "■ "; }
.prisme-crous-adresse { margin: 8px 0 0; color: var(--prisme-texte-att, #A9A9B4); font-size: var(--prisme-t-xs, 0.875rem); }
.prisme-crous-proche { padding: 24px; display: grid; gap: 16px; }
.prisme-crous-proche h2 { margin: 0; }
.prisme-crous-proche p { margin: 0; line-height: 1.6; }
.prisme-crous-rassure li { padding-left: 16px; position: relative; }
.prisme-crous-rassure li::before { content: "✓"; position: absolute; left: 0; color: var(--prisme-vert, #2ECC71); }
.prisme-crous-bouton { min-height: 48px; width: fit-content; cursor: pointer; }
.prisme-crous-bouton:disabled { opacity: 0.6; cursor: progress; }
.prisme-crous-proche-resultat:empty { display: none; }
.prisme-crous-proche-resultat ul { margin-bottom: 8px; }
.prisme-crous-lieu { scroll-margin-top: 96px; }
@media (max-width: 640px) { .prisme-crous-bouton { width: 100%; } }

.prisme-crous-itineraire { padding: 8px 0 8px; }
.prisme-crous-itineraire h5 { margin: 0 0 8px; }
.prisme-crous-itineraire-liens { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0 0; }
.prisme-crous-itineraire-liens a { min-height: 48px; display: inline-flex; align-items: center; padding: 0 24px; }
@media (max-width: 640px) { .prisme-crous-itineraire-liens a { width: 100%; justify-content: flex-start; } }

.prisme-crous-etat { color: var(--prisme-texte-att, #A9A9B4); font-size: var(--prisme-t-xs, 0.875rem); }
.prisme-crous-proche-resultat { display: grid; gap: 24px; }
.prisme-crous-proche-bloc h3 { margin: 0 0 4px; font-size: var(--prisme-t-l, 1.25rem); font-weight: 600; }
.prisme-crous-proche-distance { color: var(--prisme-texte-att, #A9A9B4); margin: 0 0 12px; }
.prisme-crous-proche-carte:empty { display: none; }
.prisme-crous-lieu--proche { border-color: var(--prisme-or, #F5A623); }

/* Plats cliquables + fiches du Crous */
.prisme-crous-detail { border: 1px solid transparent; border-radius: var(--prisme-radius-s, 14px); }
.prisme-crous-detail > summary { cursor: pointer; list-style: none; min-height: 44px; padding: 8px 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; border-radius: var(--prisme-radius-s, 14px); }
.prisme-crous-detail > summary::-webkit-details-marker { display: none; }
.prisme-crous-detail > summary::after { content: "En savoir plus ▾"; margin-left: auto; font-size: var(--prisme-t-xs, 0.875rem); color: var(--prisme-texte-att, #A9A9B4); }
.prisme-crous-detail[open] > summary::after { content: "Fermer ▴"; }
.prisme-crous-detail[open] { border-color: var(--prisme-bordure, #34333B); }
.prisme-crous-detail-corps { padding: 8px 16px 16px; display: grid; gap: 12px; }
.prisme-crous-detail-corps p, .prisme-crous-fiche p { margin: 0; line-height: 1.6; }
.prisme-crous-statut { display: inline-block; padding: 0 12px; font-size: var(--prisme-t-xs, 0.875rem); font-weight: 600; border-radius: 999px; border: 1px solid var(--prisme-bordure, #34333B); }
.prisme-crous-statut--fiche { border-color: var(--prisme-vert, #2ECC71); }
.prisme-crous-statut--fiche::before { content: "✓ "; color: var(--prisme-vert, #2ECC71); }
.prisme-crous-statut--sans { border-style: dotted; color: var(--prisme-texte-att, #A9A9B4); }
.prisme-crous-statut--sans::before { content: "○ "; }
.prisme-crous-al { flex-basis: 100%; }
.prisme-crous-fiche { display: grid; gap: 12px; }
.prisme-crous-fiche-titre { font-weight: 600; }
.prisme-crous-puces { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.prisme-crous-puces li { padding: 4px 12px; border: 1px solid var(--prisme-or, #F5A623); border-radius: 999px; }
.prisme-crous-puces li::before { content: "■ "; color: var(--prisme-or, #F5A623); position: static; }
.prisme-crous-puces--traces li { border-style: dashed; }
.prisme-crous-puces--traces li::before { content: "▲ "; }
.prisme-crous-fiche-date, .prisme-crous-fiche-doute { font-size: var(--prisme-t-xs, 0.875rem); color: var(--prisme-texte-att, #A9A9B4); }
.prisme-crous-fiche-doute { color: var(--prisme-or, #F5A623); }
.prisme-crous-catalogue { display: grid; gap: 24px; }
.prisme-crous-intro { color: var(--prisme-texte-att, #A9A9B4); line-height: 1.6; margin: 0; }
.prisme-crous-cat { padding: 24px; }
.prisme-crous-cat h3 { margin-bottom: 12px; }
.prisme-crous-compte { font-weight: 400; color: var(--prisme-texte-att, #A9A9B4); }
.prisme-crous-liste-fiches { gap: 4px; }
.prisme-crous-avert a, .prisme-crous-voir-fiche, .prisme-crous-detail-corps a { color: var(--prisme-lien, #7CB7FF); text-decoration: underline; min-height: 44px; display: inline-block; }

.prisme-crous-liste-fiches > li::before { content: none; }
.prisme-crous-liste-fiches > li { padding-left: 0; }
.prisme-crous-voir-fiche { margin-left: 8px; min-height: 44px; display: inline-flex; align-items: center; text-decoration: underline; }
.prisme-crous-resume { flex-basis: 100%; color: var(--prisme-texte-att, #A9A9B4); font-size: var(--prisme-t-xs, 0.875rem); }

/* Les deux parties de PRISME Crous */
.prisme-crous-parties ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 12px; }
.prisme-crous-partie { display: flex; align-items: center; justify-content: center; min-height: 56px; padding: 8px 16px; border: 1px solid var(--prisme-bordure, #34333B); border-radius: 999px; font-weight: 600; text-decoration: none; color: inherit; text-align: center; }
.prisme-crous-partie.est-active { background: var(--prisme-action-fond, #FFFFFF); color: var(--prisme-action-texte, #17171A); border-color: var(--prisme-action-fond, #FFFFFF); }

/* Recettes : recherche et filtre */
.prisme-crous-filtre { padding: 24px; display: grid; gap: 16px; }
.prisme-crous-filtre h2 { margin: 0; }
.prisme-crous-champ { font-weight: 600; }
.prisme-crous-recherche { min-height: 48px; font: inherit; padding: 8px 16px; color: inherit; background: transparent; border: 1px solid var(--prisme-bordure, #34333B); border-radius: var(--prisme-radius-s, 14px); width: 100%; box-sizing: border-box; }
.prisme-crous-eviter { border: 1px solid var(--prisme-bordure, #34333B); border-radius: var(--prisme-radius-s, 14px); padding: 16px; margin: 0; min-width: 0; display: grid; gap: 12px; }
.prisme-crous-eviter legend { padding: 0 8px; font-weight: 600; }
.prisme-crous-eviter-liste { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 8px; }
.prisme-crous-choix { position: relative; }
.prisme-crous-choix input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.prisme-crous-choix label { display: block; min-height: 48px; padding: 12px 16px 12px 48px; border: 1px solid var(--prisme-bordure, #34333B); border-radius: var(--prisme-radius-s, 14px); position: relative; cursor: pointer; line-height: 1.4; }
.prisme-crous-choix label::before { content: ""; position: absolute; left: 14px; top: 50%; width: 20px; height: 20px; margin-top: -10px; border: 2px solid var(--prisme-texte-att, #A9A9B4); border-radius: 4px; }
.prisme-crous-choix input:checked + label { border-color: var(--prisme-or, #F5A623); border-width: 2px; padding: 11px 15px 11px 47px; }
.prisme-crous-choix input:checked + label::before { content: "✓"; display: flex; align-items: center; justify-content: center; background: var(--prisme-or, #F5A623); border-color: var(--prisme-or, #F5A623); color: #17171A; font-size: 14px; font-weight: 700; line-height: 1; }
.prisme-crous-choix input:focus-visible + label { outline: 3px solid var(--prisme-or, #F5A623); outline-offset: 2px; }
.prisme-crous-etat:empty { display: none; }
.prisme-crous-recettes [hidden] { display: none !important; }
@media (max-width: 640px) { .prisme-crous-filtre, .prisme-crous-cat { padding: 16px; } }
.prisme-crous-partie span { margin-right: 8px; }

/* ---- Cartes « profondeur douce » (1.6.0) ---- */
.prisme-crous-parties ul { gap: 16px; }
.prisme-crous-partie { justify-content: flex-start; text-align: left; min-height: 64px; padding: 16px 24px; border-radius: var(--prisme-radius, 28px); background: var(--prisme-fond-carte, #201F24); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), var(--prisme-ombre, none); transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease; }
.prisme-crous-partie:hover, .prisme-crous-partie:focus-visible { transform: translateY(-2px); border-color: var(--prisme-texte-att, #A9A9B4); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), var(--prisme-ombre-survol, none); }
.prisme-crous-partie.est-active { background: var(--prisme-action-fond, #FFFFFF); }
.prisme-crous-grille { gap: 24px; }
.prisme-crous-detail[open] { background: var(--prisme-fond, #17171A); border-radius: var(--prisme-radius-s, 14px); }
.prisme-crous-bouton { min-height: 48px; }
@media (prefers-reduced-motion: reduce) { .prisme-crous-partie { transition: none; } .prisme-crous-partie:hover { transform: none; } }

/* Grand écran (ordinateur, iPad en paysage) : la page profite de la largeur disponible */
@media (min-width: 1024px) {
	.prisme-crous { max-width: none; }
}

/* Bento (grille de cartes, voir le script bento.js du thème) */
@media (min-width: 768px) { .prisme-crous-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; grid-auto-flow: dense; } }
@media (min-width: 1280px) { .prisme-crous-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.prisme-crous-grille > * { min-width: 0; box-sizing: border-box; }

/* Estimations (1.13.0) : jamais confondues avec « Vérifié par le Crous » */
.prisme-crous-statut--estime { border-style: dashed; border-color: var(--prisme-or, #F5A623); }
.prisme-crous-statut--estime::before { content: "≈ "; color: var(--prisme-or, #F5A623); }
.prisme-crous-al--possible { color: var(--prisme-texte-att, #A9A9B4); }
.prisme-crous-estimation-avert { padding: 8px 12px; border-left: 4px solid var(--prisme-or, #F5A623); border-radius: var(--prisme-radius-s, 8px); background: rgba(245, 166, 35, 0.08); }

/* Prévisions (1.14.0) : tableaux de chaleur, courbes SVG, barres. Série 1-4 = bleu, orange, aqua, jaune (palette de données validée, version sombre). */
.prisme-crous-previsions { --prev-s1: #3987e5; --prev-s2: #d95926; --prev-s3: #199e70; --prev-s4: #c98500; --prev-vg: #199e70; }
.prisme-crous-prev-resto { padding: 0; margin: 16px 0; }
.prisme-crous-prev-resto > summary { list-style: none; display: grid; gap: 4px; padding: 16px 24px; cursor: pointer; min-height: 44px; }
.prisme-crous-prev-resto > summary::-webkit-details-marker { display: none; }
.prisme-crous-prev-resto > summary::after { content: "Ouvrir ▾"; color: var(--prisme-texte-att, #A9A9B4); font-size: var(--prisme-t-xs, 0.875rem); }
.prisme-crous-prev-resto[open] > summary::after { content: "Fermer ▴"; }
.prisme-crous-prev-resto-nom { font-size: var(--prisme-t-l, 1.375rem); font-weight: 600; }
.prisme-crous-prev-resto-info, .prisme-crous-prev-note { color: var(--prisme-texte-att, #A9A9B4); font-size: var(--prisme-t-xs, 0.875rem); margin: 0; }
.prisme-crous-prev-corps { padding: 0 24px 24px; display: grid; gap: 16px; }
.prisme-crous-prev-corps h3 { margin: 16px 0 0; font-size: var(--prisme-t-m, 1.125rem); }
.prisme-crous-prev-defil { overflow-x: auto; }
.prisme-crous-prev-tableau { border-collapse: separate; border-spacing: 2px; width: 100%; min-width: 520px; font-variant-numeric: tabular-nums; }
.prisme-crous-prev-tableau caption { text-align: left; color: var(--prisme-texte-att, #A9A9B4); font-size: var(--prisme-t-xs, 0.875rem); padding-bottom: 8px; }
.prisme-crous-prev-tableau th, .prisme-crous-prev-tableau td { padding: 8px 12px; text-align: center; font-size: var(--prisme-t-xs, 0.875rem); font-weight: 400; }
.prisme-crous-prev-tableau thead th { font-weight: 600; vertical-align: bottom; }
.prisme-crous-prev-tableau tbody th { text-align: left; font-weight: 600; white-space: nowrap; }
.prisme-crous-prev-etat { display: block; color: var(--prisme-texte-att, #A9A9B4); font-weight: 400; }
.prisme-crous-prev-sep th, .prisme-crous-prev-sep td { border-top: 1px solid var(--prisme-bordure, #34333B); }
.prisme-crous-prev-cel { border-radius: 8px; background: color-mix(in srgb, var(--prev-s1) calc(var(--v, 0) * 0.85%), transparent); }
.prisme-crous-prev-cel--vg { background: color-mix(in srgb, var(--prev-vg) calc(var(--v, 0) * 0.85%), transparent); }
.prisme-crous-prev-val { font-weight: 600; }
.prisme-crous-prev-cel--sur { background: transparent; border: 2px solid var(--prisme-or, #F5A623); }
.prisme-crous-prev-cel--non { background: transparent; border: 2px dashed var(--prisme-bordure, #34333B); color: var(--prisme-texte-att, #A9A9B4); }
.prisme-crous-prev-cel--vide { color: var(--prisme-texte-att, #A9A9B4); }
.prisme-crous-prev-tableau--simple { min-width: 0; }
.prisme-crous-prev-tableau--simple td { text-align: left; }
.prisme-crous-prev-graphe { max-width: 720px; }
.prisme-crous-prev-svg { width: 100%; height: auto; display: block; }
.prisme-crous-prev-grille { stroke: var(--prisme-bordure, #34333B); stroke-width: 1; }
.prisme-crous-prev-axe { fill: var(--prisme-texte-att, #A9A9B4); font-size: 14px; }
.prisme-crous-prev-nom { fill: var(--prisme-texte, #FFFFFF); font-size: 15px; font-weight: 600; }
.prisme-crous-prev-ligne { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.prisme-crous-prev-pt { stroke: var(--prisme-fond-carte, #201F24); stroke-width: 2; paint-order: stroke; }
.prisme-crous-prev-ligne.prisme-crous-prev-s1 { stroke: var(--prev-s1); } .prisme-crous-prev-pt.prisme-crous-prev-s1 { fill: var(--prev-s1); }
.prisme-crous-prev-ligne.prisme-crous-prev-s2 { stroke: var(--prev-s2); } .prisme-crous-prev-pt.prisme-crous-prev-s2 { fill: var(--prev-s2); }
.prisme-crous-prev-ligne.prisme-crous-prev-s3 { stroke: var(--prev-s3); } .prisme-crous-prev-pt.prisme-crous-prev-s3 { fill: var(--prev-s3); }
.prisme-crous-prev-ligne.prisme-crous-prev-s4 { stroke: var(--prev-s4); } .prisme-crous-prev-pt.prisme-crous-prev-s4 { fill: var(--prev-s4); }
.prisme-crous-previsions .prisme-crous-prev-legende { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 24px; }
.prisme-crous-prev-legende li { display: flex; align-items: center; gap: 8px; padding: 0; font-size: var(--prisme-t-xs, 0.875rem); }
.prisme-crous-prev-legende li::before { content: none; }
.prisme-crous-prev-puce svg { display: block; }
.prisme-crous-prev-puce.prisme-crous-prev-s1 svg { fill: var(--prev-s1); } .prisme-crous-prev-puce.prisme-crous-prev-s2 svg { fill: var(--prev-s2); }
.prisme-crous-prev-puce.prisme-crous-prev-s3 svg { fill: var(--prev-s3); } .prisme-crous-prev-puce.prisme-crous-prev-s4 svg { fill: var(--prev-s4); }
.prisme-crous-prev-chiffres summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; color: var(--prisme-lien, #7CB7FF); text-decoration: underline; }
.prisme-crous-prev-barres { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.prisme-crous-prev-barres li { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) 3.5em; align-items: center; gap: 12px; padding: 0; font-size: var(--prisme-t-xs, 0.875rem); }
.prisme-crous-prev-barres li::before { content: none; }
.prisme-crous-prev-barre { display: block; height: 8px; background: var(--prisme-bordure, #34333B); border-radius: 4px; overflow: hidden; }
.prisme-crous-prev-barre-rempli { display: block; height: 100%; background: var(--prev-s1); border-radius: 0 4px 4px 0; }
.prisme-crous-prev-barre-val { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
@media (max-width: 520px) { .prisme-crous-prev-barres li { grid-template-columns: 1fr 3.5em; } .prisme-crous-prev-barre { grid-column: 1 / -1; grid-row: 2; } .prisme-crous-prev-resto > summary, .prisme-crous-prev-corps { padding-inline: 16px; } }

/* Sous-bentos (1.15.0) : une grille bento DANS une carte (menu d'un restaurant, prévisions d'un restaurant, rubriques de fiches).
   bento.js (thème) lit le nombre de colonnes de chaque grille : dans une carte étroite il n'y a qu'une colonne (empilé, comme avant),
   dans une grande carte les sous-cartes se répartissent sans trou. Le menu du jour est la première sous-carte, donc la grande. */
.prisme-crous-sous { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); --prisme-rubrique: var(--prisme-corail, #F0653C); }
.prisme-crous-sous > * { min-width: 0; box-sizing: border-box; }
.prisme-crous-sous > p, .prisme-crous-sous > h2, .prisme-crous-sous > h3 { grid-column: 1 / -1; margin: 0; }
.prisme-crous-sous > .prisme-crous-sous-carte { --t: var(--prisme-rubrique, var(--prisme-corail, #F0653C)); position: relative; overflow: hidden; margin: 0; padding: 24px 16px 16px; border: 1px solid var(--prisme-bordure, #34333B); border-radius: var(--prisme-radius-s, 14px); background: rgba(255, 255, 255, 0.03); }
.prisme-crous-sous > .prisme-crous-sous-carte::before { content: ""; position: absolute; top: 0; left: 16px; width: 24px; height: 3px; border-radius: 0 0 3px 3px; background: var(--t); pointer-events: none; }
.prisme-crous-sous > .prisme-crous-sous-carte.prisme-bento-grand { background: linear-gradient(160deg, color-mix(in srgb, var(--t) 14%, transparent), transparent 70%); }
.prisme-crous-sous > .prisme-crous-sous-carte.prisme-bento-grand::before { left: 24px; width: 40px; height: 4px; }
.prisme-crous-sous > .prisme-crous-service + .prisme-crous-service { padding-top: 24px; border: 1px solid var(--prisme-bordure, #34333B); }
.prisme-crous-sous > .prisme-crous-sous-carte > h3, .prisme-crous-sous > .prisme-crous-sous-carte > h5 { margin: 0 0 12px; }
.prisme-crous-sous > .prisme-crous-suite { margin-top: 0; }
.prisme-crous-lieu > .prisme-crous-sous { margin-top: 4px; }
/* Prévisions : sous-cartes plus larges (tableaux), tableaux sans largeur minimale pour tenir dans la sous-carte */
.prisme-crous-prev-corps.prisme-crous-sous { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); padding: 0 16px 16px; gap: 16px; }
.prisme-crous-sous-carte .prisme-crous-prev-tableau { min-width: 0; }
.prisme-crous-sous-carte .prisme-crous-prev-tableau th, .prisme-crous-sous-carte .prisme-crous-prev-tableau td { padding: 6px 4px; }
.prisme-crous-sous-carte .prisme-crous-prev-defil { margin-inline: -4px; }
/* Recettes : rubriques de fiches en bento */
.prisme-crous-cats { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 16px; align-items: start; }
.prisme-crous-cats > .prisme-crous-cat { margin: 0; }
@media (max-width: 520px) { .prisme-crous-prev-corps.prisme-crous-sous { padding: 0 12px 12px; } }

/* ---- Carte de menu (1.16.0) : l'allure d'un menu de restaurant, sobre et aérée.
   Mêmes jetons --prisme-* (suivent Octobre, Noël, les fêtes), Lexend seulement, texte à gauche, aucune couleur nouvelle.
   Plus de bento ni de sous-cartes : un lieu = une page de carte, séparée par des filets fins. ---- */
.prisme-crous { --carte-filet: color-mix(in srgb, var(--prisme-texte, #FFFFFF) 16%, transparent); --carte-filet-fin: color-mix(in srgb, var(--prisme-texte, #FFFFFF) 9%, transparent); }
.prisme-crous-cartes { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); grid-auto-flow: dense; }
@media (min-width: 768px) { .prisme-crous-cartes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .prisme-crous-cartes { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.prisme-crous-cartes > * { min-width: 0; box-sizing: border-box; }
.prisme-crous .prisme-crous-lieu.prisme-card { --t: var(--prisme-rubrique, var(--prisme-corail, #F0653C)); position: relative; overflow: hidden; padding: 32px 28px 24px; gap: 0; }
.prisme-crous .prisme-crous-lieu.prisme-card::before { content: "" !important; position: absolute; top: 0; left: 28px; width: 28px; height: 3px; border-radius: 0 0 3px 3px; background: var(--t); pointer-events: none; }
.prisme-crous .prisme-crous-lieu.prisme-bento-grand { background-image: linear-gradient(160deg, color-mix(in srgb, var(--t) 18%, transparent), transparent 72%) !important; padding: 44px 40px 32px; }
.prisme-crous .prisme-crous-lieu.prisme-bento-grand::before { width: 48px; height: 4px; left: 40px; }
.prisme-crous-entete { padding: 0 0 24px; margin: 0 0 24px; border-bottom: 1px solid var(--carte-filet); }
.prisme-crous-type { display: block; font-size: var(--prisme-t-xs, 0.875rem); font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--prisme-or, #F5A623); }
.prisme-crous-entete h3 { margin: 12px 0 0; font-size: clamp(1.5rem, 4vw, 2rem); font-weight: 600; line-height: 1.2; letter-spacing: 0.01em; }
.prisme-crous-adresse { margin: 12px 0 0; }
.prisme-crous-date { margin: 0 0 8px; font-size: var(--prisme-t-xs, 0.875rem); font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--prisme-texte-att, #A9A9B4); }
.prisme-crous-service h5 { margin: 0 0 8px; font-size: var(--prisme-t-l, 1.25rem); letter-spacing: 0.04em; text-transform: none; color: var(--prisme-texte, #FFFFFF); }
.prisme-crous .prisme-crous-service h6 { display: flex; align-items: center; gap: 16px; margin: 24px 0 4px; font-size: var(--prisme-t-xs, 0.875rem); font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--prisme-or, #F5A623); }
.prisme-crous-service h6::after { content: ""; flex: 1; height: 1px; background: var(--carte-filet); }
.prisme-crous .prisme-crous-service ul { gap: 0; }
.prisme-crous .prisme-crous-service li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; padding: 16px 0; line-height: 1.5; border-bottom: 1px solid var(--carte-filet-fin); }
.prisme-crous .prisme-crous-service li:last-child { border-bottom: 0; }
.prisme-crous-service li::before { content: none !important; }
.prisme-crous .prisme-crous-plat { flex: 1 1 14em; font-weight: 500; font-size: var(--prisme-t-m, 1.0625rem); }
/* étiquettes fines au lieu de pilules ; la couleur ne porte jamais seule : le texte reste */
.prisme-crous .prisme-crous-vg, .prisme-crous .prisme-crous-statut { margin: 0; padding: 0; border: 0; border-radius: 0; font-size: var(--prisme-t-xs, 0.875rem); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.prisme-crous .prisme-crous-vg { color: var(--prisme-vert, #2ECC71); }
.prisme-crous .prisme-crous-statut { color: var(--prisme-texte-att, #A9A9B4); }
.prisme-crous .prisme-crous-statut--fiche { color: var(--prisme-vert, #2ECC71); }
.prisme-crous .prisme-crous-statut--estime { color: var(--prisme-or, #F5A623); }
.prisme-crous .prisme-crous-al { flex-basis: 100%; margin: 0; font-style: italic; letter-spacing: 0; }
.prisme-crous .prisme-crous-voir-fiche { margin: 0; }
/* pied de carte : horaires et itinéraire en lignes fines */
.prisme-crous .prisme-crous-horaires h5, .prisme-crous .prisme-crous-itineraire h5 { margin: 0 0 8px; letter-spacing: 0.24em; }
.prisme-crous .prisme-crous-horaires ul { gap: 4px; color: var(--prisme-texte-att, #A9A9B4); font-size: var(--prisme-t-xs, 0.875rem); }
.prisme-crous .prisme-crous-suite h4 { margin: 24px 0 4px; letter-spacing: 0.08em; }
/* avertissement et « le plus proche » : un encadré à filet, sans carte lourde */
.prisme-crous .prisme-crous-avert.prisme-card, .prisme-crous .prisme-crous-proche.prisme-card { padding: 24px 24px 24px 32px !important; background: none !important; border: 0 !important; border-left: 2px solid var(--prisme-or, #F5A623) !important; border-radius: 0; box-shadow: none !important; }
.prisme-crous .prisme-crous-proche.prisme-card { border-left-color: var(--carte-filet) !important; }
.prisme-crous-avert strong { letter-spacing: 0.16em; text-transform: uppercase; font-size: var(--prisme-t-xs, 0.875rem); }
/* titres de section : capitales espacées + filet */
.prisme-crous > h2 { display: flex; align-items: center; gap: 24px; margin: 32px 0 0; font-size: var(--prisme-t-xs, 0.875rem); letter-spacing: 0.24em; text-transform: uppercase; color: var(--prisme-or, #F5A623); }
.prisme-crous > h2::after { content: ""; flex: 1; height: 1px; background: var(--carte-filet); }
/* les trois parties : onglets soulignés */
.prisme-crous-parties ul { display: flex; flex-wrap: wrap; gap: 0 32px; border-bottom: 1px solid var(--carte-filet); }
.prisme-crous .prisme-crous-partie, .prisme-crous .prisme-crous-partie.est-active { min-height: 48px; padding: 8px 0; justify-content: flex-start; background: none !important; border: 0 !important; border-bottom: 2px solid transparent !important; border-radius: 0; box-shadow: none; color: var(--prisme-texte-att, #A9A9B4); font-size: var(--prisme-t-xs, 0.875rem); letter-spacing: 0.16em; text-transform: uppercase; transform: none; }
.prisme-crous .prisme-crous-partie:hover, .prisme-crous .prisme-crous-partie:focus-visible { color: var(--prisme-texte, #FFFFFF); transform: none; }
.prisme-crous .prisme-crous-partie.est-active { color: var(--prisme-texte, #FFFFFF); border-bottom-color: var(--prisme-or, #F5A623) !important; }
.prisme-crous-partie span { margin-right: 4px; }
/* recettes : rubriques comme des pages de carte */
.prisme-crous-cats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 16px; align-items: start; }
.prisme-crous-cat h2 { margin: 0 0 16px; padding-bottom: 16px; border-bottom: 1px solid var(--carte-filet); font-size: var(--prisme-t-xs, 0.875rem); letter-spacing: 0.24em; text-transform: uppercase; color: var(--prisme-or, #F5A623); }
.prisme-crous-liste-fiches { gap: 0; }
.prisme-crous-liste-fiches > li { border-bottom: 1px solid var(--carte-filet-fin); }
.prisme-crous-liste-fiches > li:last-child { border-bottom: 0; }
.prisme-crous-detail > summary { padding: 12px 0; }
.prisme-crous-detail[open] { border-color: transparent; background: none; }
.prisme-crous-puces li { border: 0; border-bottom: 1px solid var(--prisme-or, #F5A623); border-radius: 0; padding: 4px 8px; }
.prisme-crous-puces--traces li { border-bottom-style: dashed; }
/* prévisions : même cadre, tableaux conservés */
.prisme-crous-prev-resto > summary { padding: 24px 28px 16px; }
.prisme-crous-prev-resto-nom { font-size: clamp(1.5rem, 4vw, 2rem); }
.prisme-crous-prev-corps h3 { margin: 0 0 12px; font-size: var(--prisme-t-xs, 0.875rem); letter-spacing: 0.24em; text-transform: uppercase; color: var(--prisme-or, #F5A623); }
@media (max-width: 640px) {
	.prisme-crous .prisme-crous-lieu.prisme-card, 	.prisme-crous-prev-resto > summary { padding: 24px 20px 12px; }
	.prisme-crous-parties ul { gap: 0 24px; }
	.prisme-crous .prisme-crous-partie, .prisme-crous-type, .prisme-crous > h2, .prisme-crous .prisme-crous-service h6 { letter-spacing: 0.12em; }
	.prisme-crous .prisme-crous-corps > .prisme-crous-itineraire a { width: 100%; box-sizing: border-box; }
}


/* Une page par lieu : vue d'ensemble en cartes courtes + page de détail */
.prisme-crous-etat-lieu { margin: 0 0 16px; }
.prisme-crous-voir { margin: auto 0 0; }
.prisme-crous-retour { margin: 0 0 24px; }
.prisme-crous--lieu .prisme-crous-cartes { display: block; }

/* Date de dernière mise à jour sous chaque partie */
.prisme-crous-parties li { display: grid; gap: 4px; align-content: start; }
.prisme-crous-partie-maj { display: block; padding: 0 16px; font-size: var(--prisme-t-xs, 0.875rem); text-align: center; color: var(--prisme-texte-att, #A9A9B4); overflow-wrap: anywhere; }

/* Bandeau « restaurants fortement perturbés » (avec lien vers Courrier Picard) */
.prisme-crous-perturbation { display: grid; gap: var(--prisme-e3, 12px); justify-items: start; border: 2px solid var(--prisme-or, #F5A623) !important; }
.prisme-crous-perturbation p { margin: 0; }
.prisme-crous-perturbation-titre { font-size: var(--prisme-t-l, 1.375rem); font-weight: 600; line-height: 1.3; }
.prisme-crous-perturbation-titre span { color: var(--prisme-or, #F5A623); }
.prisme-crous-detail { font-size: var(--prisme-t-xs, 0.875rem); color: var(--prisme-texte-att, #A9A9B4); }

/* Quartier du lieu, mis en avant (1.23.0) */
.prisme-crous-quartier { margin: var(--prisme-e2, 8px) 0 0; padding: var(--prisme-e2, 8px) var(--prisme-e3, 16px); border-left: 4px solid var(--prisme-rubrique, var(--prisme-bleu, #3B82F6)); border-radius: var(--prisme-radius-s, 14px); background: color-mix(in srgb, var(--prisme-rubrique, var(--prisme-bleu, #3B82F6)) 14%, transparent); font-size: var(--prisme-t-s, 1rem); line-height: 1.4; }
.prisme-crous-quartier-nom { display: inline-block; margin-right: 4px; font-weight: 600; }
.prisme-crous-slogan { margin: var(--prisme-e1, 8px) 0 0; font-size: var(--prisme-t-s, 1rem); line-height: 1.5; font-style: normal; color: var(--prisme-texte-att, inherit); }
