
:root{--paper:#F8F6F1;--card:#fff;--ink:#272320;--muted:rgba(39,35,32,.62);--line:rgba(39,35,32,.1);--teal:#2E7A6F;--teal-soft:rgba(46,122,111,.1);--gold:#B8893A;--gold-soft:rgba(201,163,91,.16);--red:#B5523B;--red-soft:rgba(181,82,59,.1)}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 Manrope,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit}
.wrap{max-width:760px;margin:0 auto;padding:0 20px}
header{position:sticky;top:0;z-index:5;background:rgba(248,246,241,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-size:18px}
.brand img{width:32px;height:32px;border-radius:22.4%}
.bn{white-space:nowrap}.bn-gap{font-size:0}.me{color:#C9A35B}.nu{color:#358076}
.dl{display:inline-flex;align-items:center;height:38px;padding:0 18px;border-radius:999px;background:#1d1b19;color:#fff;font-weight:600;font-size:14px;text-decoration:none;white-space:nowrap}
.crumbs{font-size:14px;color:var(--muted);margin:28px 0 10px}
.crumbs a{text-decoration:none}.crumbs a:hover{text-decoration:underline}
h1{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:clamp(34px,7vw,52px);line-height:1.05;letter-spacing:-.01em;margin:0}
h2{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:26px;line-height:1.2;margin:0 0 14px}
.origin{display:inline-flex;line-height:1.35;align-items:center;gap:8px;margin-top:14px;padding:6px 14px;border-radius:14px;background:var(--gold-soft);color:#7a5a20;font-weight:600;font-size:14px}
.intro{font-size:18px;color:var(--muted);margin:18px 0 0}
section{margin-top:40px}
.nut.first{margin-top:22px}
.card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:24px}
.nut{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.nut .big{font-size:44px;font-weight:800;color:var(--teal);line-height:1}
.nut .big small{font-size:16px;font-weight:700;margin-left:4px}
.nut .lbl{font-size:13px;color:var(--muted);font-weight:600;margin-top:6px}
.macros{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.macro b{display:block;font-size:20px}
.macro span{display:block;font-size:13px;color:var(--muted);font-weight:700}
.macro em{display:block;font-style:normal;font-size:12px;color:var(--muted)}
.macro i{display:block;height:6px;border-radius:9px;background:var(--line);margin-top:8px;overflow:hidden}
.macro i::after{content:"";display:block;height:100%;width:var(--w);background:var(--c)}
.labels{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.label{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.label .ic{flex:0 0 24px;height:24px;margin-top:2px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:15px}
.label.yes .ic{background:var(--teal-soft);color:var(--teal)}
.label.no .ic{background:var(--red-soft);color:var(--red)}
.label.check .ic{background:var(--gold-soft);color:var(--gold)}
.label b{display:block}
.label b{font-size:15px}.label span{display:block;font-size:13px;line-height:1.4;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:6px 12px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:14px;font-weight:600}
.chip.warn{background:var(--red-soft);border-color:transparent;color:var(--red)}
.note{font-size:14px;color:var(--muted);margin:0 0 10px}
.meta{display:flex;gap:16px;font-size:14px;color:var(--muted);font-weight:600;margin-bottom:14px}
.recipe h3{font-size:16px;margin:18px 0 8px}
.recipe ul,.recipe ol{margin:0;padding-inline-start:22px}
.recipe li{margin:6px 0}
.tips li{margin:8px 0}
.history p{margin:0}
.cta{background:#1d1b19;color:#fff;border-radius:28px;padding:28px;text-align:center}
.cta h2{color:#fff}
.cta p{color:rgba(255,255,255,.75);margin:0 auto 20px;max-width:520px}
.cta a{display:inline-flex;height:48px;align-items:center;padding:0 24px;border-radius:999px;background:#fff;color:#1d1b19;font-weight:700;text-decoration:none}
.related{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.related a{display:flex;gap:12px;align-items:center;padding:14px 16px;border-radius:16px;background:var(--card);border:1px solid var(--line);text-decoration:none;font-weight:700}
.related .em{font-size:28px;line-height:1}
.related a div span{font-size:13px;color:var(--muted);font-weight:600;display:block}
.disclaimer{font-size:13px;color:var(--muted);margin-top:40px;padding-top:20px;border-top:1px solid var(--line)}
footer{margin-top:40px;padding:24px 0 40px;font-size:14px;color:var(--muted)}
footer .wrap{display:flex;flex-wrap:wrap;gap:18px}
footer a{text-decoration:none}
.langs a{margin-inline-end:10px}
.hnav{display:flex;align-items:center;gap:18px}
.langbox{position:relative}
.langbox summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:5px;font-weight:600;font-size:14px;color:var(--muted);padding:8px 2px}
.langbox summary::-webkit-details-marker{display:none}
.langbox summary:hover{color:var(--teal)}
.langbox .lm{position:absolute;top:100%;inset-inline-end:0;margin-top:6px;min-width:170px;padding:6px;border-radius:16px;background:var(--card);border:1px solid var(--line);box-shadow:0 14px 40px -12px rgba(39,35,32,.3);z-index:10}
.langbox .lm a{display:block;padding:8px 12px;border-radius:10px;font-size:14px;font-weight:600;text-decoration:none}
.langbox .lm a:hover{background:var(--teal-soft);color:var(--teal)}
.langbox .lm a.on{color:var(--teal)}
.hl{font-weight:600;font-size:15px;text-decoration:none;color:var(--muted)}.hl:hover{color:var(--teal)}
.search{display:block;width:100%;height:52px;margin-top:26px;padding:0 20px;border-radius:999px;border:1px solid var(--line);background:var(--card);font:inherit;font-size:16px;color:var(--ink);outline:none}
.search:focus{border-color:var(--teal);box-shadow:0 0 0 4px var(--teal-soft)}
.countries{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.countries a{padding:6px 12px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}
.countries a:hover{border-color:var(--teal);color:var(--teal)}
.countries a small{color:var(--muted);font-weight:600;margin-inline-start:4px}
.countries details{display:contents}.countries summary{list-style:none;cursor:pointer;padding:6px 12px;border-radius:999px;background:var(--teal-soft);color:var(--teal);font-size:14px;font-weight:700}
.countries summary::-webkit-details-marker{display:none}
.group h2{scroll-margin-top:80px}.group h2 small{font-family:Manrope,system-ui,sans-serif;font-size:14px;color:var(--muted);font-weight:600;margin-inline-start:8px}
.empty{color:var(--muted);margin-top:28px}
.chips.gl a,a.chip{text-decoration:none}a.chip.warn:hover{text-decoration:underline}.label b a{text-decoration:none}.label b a:hover{text-decoration:underline;color:var(--teal)}.chips.gl a:hover{border-color:var(--teal);color:var(--teal)}
.origin a{color:inherit}.group h2 a{text-decoration:none}.group h2 a:hover{text-decoration:underline;color:var(--teal)}
.cstats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}.cstats div{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px;text-align:center}.cstats b{display:block;font-size:28px;color:var(--teal);line-height:1.1}.cstats span{font-size:13px;color:var(--muted);font-weight:600}
.tipbox{background:var(--gold-soft);border-radius:22px;padding:18px 20px}
.gh{display:block;font-size:64px;line-height:1;margin-bottom:12px}
.gi{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--card);border:1px solid var(--line);font-size:24px;margin-inline-end:12px;vertical-align:middle}
.gs h2{display:flex;align-items:center}
.gs strong,.intro strong{color:var(--ink);font-weight:700}.gs em{color:var(--muted)}
.glist{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.glist li{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:16px;background:var(--card);border:1px solid var(--line);line-height:1.45}
.glist .ie{font-size:24px;line-height:1.1;flex:none}
.gs.can .glist li{border-color:rgba(46,122,111,.3);background:#F3F8F6}
.gs.avoid .glist li{border-color:rgba(181,82,59,.25);background:#FBF3F0}
.gs.urgent{background:#FBEDEA;border:2px solid #E3A897;border-radius:22px;padding:20px 22px}
.gs.urgent h2{color:#9C3A24}
.gs.urgent .gi{background:#fff;border-color:#E3A897}
.mlist{margin:10px 0 0;padding-inline-start:22px}.mlist li{margin:8px 0}
.disclaimer a{color:var(--teal);font-weight:600}
[hidden]{display:none!important}
@media (max-width:520px){.hl{font-size:14px}.hnav{gap:12px}.dl{padding:0 14px}.nut .big{font-size:34px}.card{padding:20px}.macros{gap:8px}}

/* foods only; the rest comes from the dishes stylesheet (copied in by build_foods.py) */
.fkcal{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.fkcal .big{font-family:'Fraunces',serif;font-size:54px;line-height:1;font-weight:700;color:var(--teal)}
.fkcal small{font-size:18px;color:var(--muted);font-weight:700}
.fcat{display:inline-block;margin-top:10px;padding:5px 12px;border-radius:99px;background:var(--gold-soft);font-size:13px;font-weight:700;color:var(--ink);text-decoration:none}
.wtab{width:100%;border-collapse:collapse;margin-top:14px}
.wtab th,.wtab td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:start;font-size:15px}
.wtab th{color:var(--muted);font-size:13px;font-weight:700}
.wcalc{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:6px}
.wcalc input{width:130px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;font:inherit;font-size:16px;background:#fff}
.wcalc b{font-size:20px}
.more{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}
.more div{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px}
.more b{display:block;font-size:18px}.more span{font-size:13px;color:var(--muted);font-weight:700}
.pager{display:flex;justify-content:space-between;gap:12px;margin-top:22px;font-weight:700}
.pager a{color:var(--teal)}
.fsrc{font-size:13px;color:var(--muted);margin-top:22px}
.catgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:18px}
.catgrid a{display:block;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--ink);text-decoration:none;font-weight:700}
.catgrid a small{display:block;color:var(--muted);font-weight:600;margin-top:2px}
.sres{margin-top:12px}.sres a{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);margin-top:8px;color:var(--ink);text-decoration:none}
.sres a span{color:var(--muted);white-space:nowrap}
@media (max-width:520px){.fkcal .big{font-size:44px}.more{grid-template-columns:1fr}}
@media (max-width:440px){.hnav{gap:10px}.hl{font-size:13px}.hnav .hl:nth-of-type(2){display:none}.dl{padding:0 12px;font-size:13px}}
