.allergens-live .allergen-matrix { border:0; background:#fbf7ed; }
.allergens-live h1 { max-width:100%; font-size:clamp(2rem,4vw,3.4rem); line-height:1.15; color:var(--olive); overflow-wrap:break-word; }
.allergen-table-scroll { overflow-x:auto; border:1px solid var(--line); border-radius:14px; margin-top:1.5rem; }
.allergen-table-scroll:focus-visible { outline:3px solid var(--olive); outline-offset:4px; }
.allergen-table { width:100%; min-width:1050px; border-collapse:separate; border-spacing:0; font-size:.88rem; color:#424a3c; }
.allergen-table th,.allergen-table td { padding:.65rem .5rem; text-align:center; border-bottom:1px solid #e8e2d2; }
.allergen-table thead th { background:var(--olive); color:var(--cream); font:700 1rem/1.3 var(--serif); }
.allergen-table tbody th { font-weight:500; text-align:left; }
.allergen-table tr > :first-child { position:sticky; left:0; width:210px; min-width:170px; padding-left:1rem; z-index:1; }
.allergen-table tbody tr:nth-child(odd) > * { background:#fffdf8; }
.allergen-table tbody tr:nth-child(even) > * { background:#f3f0e4; }
.allergen-table tbody tr:last-child > * { border-bottom:0; }
.allergen-mark { display:inline-flex; justify-content:center; align-items:center; min-width:30px; min-height:30px; color:#7b8373; font-weight:500; white-space:nowrap; }
.allergen-mark--contains { border-radius:30px; padding:.15rem .6rem; background:var(--olive); color:#fffdf8; font-weight:700; }
.allergen-key { display:flex; flex-wrap:wrap; gap:.65rem 1.75rem; margin:1rem 0 1.75rem; font-size:.9rem; }
.allergen-key > span { display:flex; align-items:center; gap:.55rem; }
.allergen-key .allergen-mark:not(.allergen-mark--contains) { border:1px solid var(--line); border-radius:50%; }
.allergen-may-contain { padding:1.25rem 1.5rem; background:#edf0df; border:1px solid #dce1c8; border-radius:14px; }
.allergens-live .allergen-may-contain h2,.allergens-live .allergen-service-note h2 { margin:0 0 .75rem; font-size:1.4rem; }
.allergen-may-contain ul { display:flex; flex-wrap:wrap; gap:.5rem; margin:0; padding:0; list-style:none; }
.allergen-may-contain li { padding:.3rem .85rem; border:1px solid #d6dcc2; background:#fffdf8; border-radius:30px; font-size:.9rem; }
.allergen-may-contain p { margin:1rem 0 0; font-size:.9rem; }
.allergen-service-note { margin-top:1.5rem; max-width:75ch; }
.allergen-service-note p { margin:0; }
.allergen-explanations h2 { font-size:clamp(1.7rem,3vw,2.5rem); }
.allergen-explanations > .container > p { max-width:75ch; margin-bottom:1.5rem; }
.allergen-scroll-hint { font-size:.85rem; margin-bottom:0; }
.allergen-table caption.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media(max-width:700px) {
  .allergen-table { min-width:1020px; }
  .allergen-table tr > :first-child { min-width:145px; width:145px; max-width:145px; padding-left:.7rem; }
  .allergen-may-contain { padding:1rem; }
}
