:root{--bg:#faf8f5;--card:#fff;--ink:#2b2118;--muted:#8a7d70;--line:#ece2d6;--accent:#c8451f;--accent-d:#a8380f;--warm:#f3a712;--ok:#3f8f4e;--radius:14px;--shadow:0 6px 22px rgba(80,50,20,.08)}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);background:var(--bg);font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-text-size-adjust:100%}
.wrap{max-width:1100px;margin:0 auto;padding:0 18px}
h1,h2,h3{line-height:1.2;margin:0}
a{color:var(--accent)}
img{max-width:100%;height:auto}
.accent{color:var(--accent)}
b{font-weight:700}

/* header */
.site-head{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.head-row{display:flex;align-items:center;gap:14px;justify-content:space-between;padding:10px 18px;max-width:1100px;margin:0 auto}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font-weight:800;font-size:1.2rem}
.brand-mark{font-size:1.35rem}
.hnav{display:flex;gap:16px;flex:1;font-size:.9rem}
.hnav a{color:var(--muted);text-decoration:none;font-weight:600;white-space:nowrap}
.hnav a:hover{color:var(--accent)}
.head-search{display:flex;flex:0 1 280px}
.head-search input{flex:1;font:inherit;padding:8px 12px;border:1.5px solid var(--line);border-right:0;border-radius:10px 0 0 10px;background:var(--bg);color:var(--ink);min-width:0}
.head-search button{border:1.5px solid var(--accent);background:var(--accent);color:#fff;border-radius:0 10px 10px 0;padding:0 13px;cursor:pointer}
@media(max-width:820px){.hnav{display:none}.head-search{flex-basis:170px}}

main.wrap{display:block;min-height:60vh}
.crumbs{font-size:.82rem;color:var(--muted);padding:14px 0 4px}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--accent)}

/* hero / home */
.hero{padding:30px 0 8px}
.hero h1{font-size:clamp(1.9rem,5vw,2.8rem);font-weight:850;letter-spacing:-.03em}
.hero .sub{color:var(--muted);max-width:60ch;margin:12px 0 0}
.kit{max-width:620px;margin:20px 0 0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chips:empty{display:none}.chips:not(:empty){margin-bottom:10px}
.chip{display:inline-flex;align-items:center;gap:6px;background:#fdeee6;color:var(--accent-d);border:1px solid #f3cdba;border-radius:999px;padding:5px 8px 5px 12px;font-weight:600;font-size:.9rem}
.chip button{border:0;background:none;color:var(--accent);cursor:pointer;font-size:1.1rem;line-height:1;padding:0}
.kit-row{display:flex;gap:8px}
.kit-row input{flex:1;font:inherit;padding:11px 13px;border:1.5px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink)}
.btn{font:inherit;font-weight:700;border-radius:10px;padding:11px 16px;cursor:pointer;border:1.5px solid transparent;transition:.15s;text-decoration:none;display:inline-block;text-align:center}
.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-d)}
.quick{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}
.q{font:inherit;font-size:.85rem;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:5px 11px;cursor:pointer;color:var(--muted)}
.q:hover{border-color:var(--accent);color:var(--accent)}
.btn.cook{width:100%;background:var(--ink);color:#fff;font-size:1.05rem;padding:13px;margin-top:4px}
.btn.cook:disabled{opacity:.4;cursor:not-allowed}

.browse{margin:38px 0 0}
.browse h2,.about h2{font-size:1.35rem;margin-bottom:14px}
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}
.cat{display:flex;flex-direction:column;align-items:center;gap:5px;text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 8px;transition:.15s}
.cat:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow)}
.cat img{width:56px;height:56px;object-fit:contain}
.cat span{font-weight:650;font-size:.9rem}.cat small{color:var(--muted)}
.chips-row{display:flex;flex-wrap:wrap;gap:8px}
.chip-link{text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 14px;color:var(--ink);font-weight:600;font-size:.9rem}
.chip-link:hover{border-color:var(--accent);color:var(--accent)}.chip-link small{color:var(--muted)}
.about{margin:40px 0 0}
.why{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.why li{color:var(--muted);padding-left:26px;position:relative}
.why li::before{content:"🍴";position:absolute;left:0;font-size:.85rem}
.why strong{color:var(--ink)}

/* grids */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
.rcard{text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:13px;overflow:hidden;transition:.15s}
.rcard:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--accent)}
.rc-img{aspect-ratio:1/1;background:#efe3d6}
.rc-img img{width:100%;height:100%;object-fit:cover;display:block}
.rc-b{padding:10px 12px}.rc-name{font-weight:650;font-size:.95rem}.rc-tag{font-size:.74rem;color:var(--muted)}
.match{position:absolute;top:8px;left:8px;background:var(--accent);color:#fff;font-size:.76rem;font-weight:800;padding:3px 8px;border-radius:999px}
.hub-head{margin:6px 0 18px}.hub-head h1{font-size:clamp(1.6rem,4vw,2.2rem);font-weight:850}
.lede{font-size:1.06rem;color:#43382e;margin:14px 0}
.pager{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:26px 0}
.pager a,.pager span{min-width:38px;text-align:center;padding:7px 10px;border:1px solid var(--line);border-radius:9px;text-decoration:none;color:var(--ink)}
.pager span{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700}

/* recipe */
.recipe{max-width:880px}
.recipe h1{font-size:clamp(1.7rem,4.5vw,2.4rem);font-weight:850;letter-spacing:-.02em;margin:6px 0}
.r-meta{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.badge{background:#fdeee6;color:var(--accent-d);border:1px solid #f3cdba;border-radius:999px;padding:3px 11px;font-size:.8rem;font-weight:650;text-decoration:none}
.badge small{font-weight:500;opacity:.8}
.r-hero{border-radius:var(--radius);overflow:hidden;margin:14px 0;aspect-ratio:16/9;background:#efe3d6}
.r-hero img{width:100%;height:100%;object-fit:cover;display:block}
.recipe h2{font-size:1.4rem;margin:30px 0 12px}
.ri-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:30px}
.ri-head h2{margin:0}
.servings{display:inline-flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:5px 12px}
.servings span{font-size:.82rem;color:var(--muted)}
.sv-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:var(--bg);font-size:1.1rem;line-height:1;cursor:pointer;color:var(--accent)}
#sv-n{min-width:1.3em;text-align:center;font-weight:800}
.ing-have{background:#eef7ef;border:1px solid #cfe6d2;border-radius:9px;padding:8px 12px;color:#2c5733;font-size:.9rem;margin:10px 0}
.ing-h{font-size:1rem;margin:16px 0 6px}.ing-h small{font-weight:500;color:var(--muted)}
.ing-list{list-style:none;padding:0;margin:0 0 6px}
.ing-list li{padding:7px 0;border-top:1px solid var(--line)}
.ing-list li:first-child{border-top:0}
.ing-list label{display:flex;align-items:baseline;gap:9px;cursor:pointer}
.ing-list input{margin-top:3px;accent-color:var(--accent)}
.ing-list.staples{opacity:.92}
.meas{font-weight:750;color:var(--accent-d);white-space:nowrap}
.conv{margin-top:16px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.conv summary{padding:10px 13px;cursor:pointer;font-weight:650;font-size:.9rem}
.conv-body{padding:0 13px 13px}
.conv-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.conv-row input{width:72px;font:inherit;padding:7px 9px;border:1.5px solid var(--line);border-radius:8px;background:var(--bg)}
.conv-row select{font:inherit;padding:7px 8px;border:1.5px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.conv-row .eq{color:var(--muted)}#cv-out{font-weight:800;min-width:64px}
.conv-tabs{display:flex;gap:6px;margin-top:10px}
.conv-tabs button{font:inherit;font-size:.78rem;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px 11px;cursor:pointer;color:var(--muted)}
.conv-tabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.steps{padding-left:0;margin:0;list-style:none;counter-reset:s}
.steps li{position:relative;padding:0 0 16px 44px;counter-increment:s}
.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:.9rem}
.equip{color:var(--muted);font-size:.92rem;margin-top:10px}
.note{color:#5c4f42;font-size:.96rem;background:#fff;border-left:3px solid var(--warm);border-radius:0 8px 8px 0;padding:10px 14px;margin:0 0 6px}
.subs{margin:0}.subs dt{font-weight:750;margin-top:10px}.subs dd{margin:2px 0 0;color:#43382e}
.serve-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.serve-list li{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.serve-list a{font-weight:600;text-decoration:none}
.faq{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:var(--card)}
.faq summary{padding:12px 14px;cursor:pointer;font-weight:650}
.faq p{margin:0;padding:0 14px 13px;color:#43382e}
.attribution{color:var(--muted);font-size:.82rem;margin:26px 0 0;border-top:1px solid var(--line);padding-top:14px}

/* explore by country — big tappable dish-emoji buttons */
.browse-sub{color:var(--muted);margin:-6px 0 14px}
.country-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:10px}
.country-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 8px 10px;transition:.15s}
.country-btn:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow)}
.country-emoji{font-size:1.9rem;line-height:1}
.country-name{font-weight:650;font-size:.85rem;line-height:1.15}
.country-count{font-size:.72rem;color:var(--muted)}
.country-all{background:linear-gradient(135deg,#fdeee6,var(--card))}

/* recipe of the day */
.rotd{margin:26px 0 0}
.rotd-card{display:grid;grid-template-columns:minmax(0,260px) 1fr;text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:.15s}
.rotd-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.rotd-img{background:#efe3d6}
.rotd-img img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:1/1}
.rotd-body{padding:18px 20px;display:flex;flex-direction:column;justify-content:center;gap:6px}
.rotd-kicker{font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-d)}
.rotd-name{font-size:clamp(1.3rem,3vw,1.7rem);font-weight:850;letter-spacing:-.02em}
.rotd-meta{color:var(--muted);margin:0}
.rotd-cta{font-weight:700;color:var(--accent);margin-top:4px}
@media(max-width:560px){.rotd-card{grid-template-columns:1fr}.rotd-img img{aspect-ratio:16/9}}

/* recipe video facade */
.r-video{margin-top:30px}
.video-facade{position:relative;cursor:pointer;border-radius:var(--radius);overflow:hidden;background:#000;aspect-ratio:16/9;max-width:560px}
.video-facade img{width:100%;height:100%;object-fit:cover;display:block;opacity:.85;transition:.15s}
.video-facade:hover img{opacity:1}
.video-play{position:absolute;inset:0;margin:auto;width:64px;height:64px;border-radius:50%;background:rgba(200,69,31,.92);display:flex;align-items:center;justify-content:center}
.video-play::after{content:"";border-style:solid;border-width:11px 0 11px 18px;border-color:transparent transparent transparent #fff;margin-left:4px}
.video-facade iframe{width:100%;height:100%;border:0;display:block}
.video-note{color:var(--muted);font-size:.8rem;margin:8px 0 0}

/* share row */
.share{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.share-label{font-weight:700;font-size:.9rem}
.share-btns{display:flex;flex-wrap:wrap;gap:8px}
.share-btn{display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:.85rem;font-weight:650;cursor:pointer;text-decoration:none;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:6px 12px;transition:.15s}
.share-btn:hover{border-color:var(--accent);color:var(--accent)}

/* recipe title + save button */
.recipe-title{display:flex;align-items:flex-start;gap:12px;justify-content:space-between;flex-wrap:wrap}
.recipe-title h1{flex:1 1 auto;margin:6px 0}
.save-btn{flex:0 0 auto;margin-top:8px;font:inherit;font-weight:700;font-size:.9rem;cursor:pointer;color:var(--accent-d);background:#fdeee6;border:1px solid #f3cdba;border-radius:999px;padding:8px 16px;white-space:nowrap;transition:.15s}
.save-btn:hover{border-color:var(--accent)}
.save-btn.on{background:var(--accent);color:#fff;border-color:var(--accent)}

/* steps head + cook-mode button + tappable steps */
.steps-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:30px 0 12px}
.steps-head h2{margin:0}
.cookmode-btn{font:inherit;font-weight:700;font-size:.92rem;cursor:pointer;color:#fff;background:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:8px 16px;transition:.15s}
.cookmode-btn:hover{background:var(--accent-d)}
.steps li.step{cursor:pointer;transition:opacity .15s,color .15s}
.steps li.step:hover{color:var(--accent-d)}
.steps li.step.done{opacity:.5}
.steps li.step.done::before{content:"✓";background:var(--ok)}

/* inline timer chips */
.timer-chip{font:inherit;font-size:.92em;font-weight:700;cursor:pointer;color:var(--accent-d);background:#fdeee6;border:1px solid #f3cdba;border-radius:8px;padding:0 6px;white-space:nowrap}
.timer-chip:hover{background:var(--accent);color:#fff;border-color:var(--accent)}

/* running-timer tray */
.timer-tray{position:fixed;right:14px;bottom:14px;z-index:70;display:flex;flex-direction:column;gap:8px;max-width:230px}
.timer-item{display:flex;align-items:center;gap:8px;background:var(--ink);color:#fff;border-radius:10px;padding:8px 10px;box-shadow:var(--shadow)}
.timer-item.done{background:var(--ok)}
.timer-label{flex:1;font-size:.78rem;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timer-time{font-weight:800;font-variant-numeric:tabular-nums}
.timer-x{background:none;border:0;color:#fff;font-size:1.2rem;line-height:1;cursor:pointer;padding:0 2px}

/* cook mode: distraction-free big steps, screen stays awake */
body.cooking .ad,body.cooking .r-related,body.cooking .r-serve,body.cooking .r-subs,body.cooking .r-faq,body.cooking .r-video,body.cooking .attribution,body.cooking .site-foot,body.cooking .share,body.cooking .crumbs,body.cooking .cookmode-btn,body.cooking .r-hero,body.cooking .save-btn{display:none}
body.cooking .site-head{position:static}
body.cooking .recipe{max-width:760px;padding-bottom:80px}
body.cooking .steps li.step{font-size:1.2rem;line-height:1.55;padding:14px 0 18px 52px;border-top:1px solid var(--line)}
body.cooking .steps li.step::before{width:34px;height:34px;font-size:1rem}
body.cooking .timer-tray{bottom:64px}
.cook-bar{position:fixed;left:0;right:0;bottom:0;z-index:65;display:none;align-items:center;gap:12px;background:var(--ink);color:#fff;padding:11px 16px}
body.cooking .cook-bar{display:flex}
.cook-progress{font-weight:800;white-space:nowrap}
.cook-hint{flex:1;font-size:.82rem;opacity:.8}
.cook-exit{font:inherit;font-weight:700;cursor:pointer;color:var(--ink);background:#fff;border:0;border-radius:8px;padding:7px 16px}
@media(max-width:560px){.cook-hint{display:none}}

/* newsletter signup */
.newsletter{margin:40px 0 0;background:linear-gradient(135deg,#fdeee6,var(--card));border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px}
.nl-inner{max-width:560px}
.newsletter h2{font-size:1.35rem;margin-bottom:6px}
.newsletter p{color:#43382e;margin:0 0 14px}
.nl-form{display:flex;gap:8px;flex-wrap:wrap}
.nl-form input{flex:1 1 220px;font:inherit;padding:11px 13px;border:1.5px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink)}
.nl-consent{display:flex;gap:8px;align-items:flex-start;font-size:.82rem;color:var(--muted);margin-top:10px}
.nl-consent input{margin-top:3px;accent-color:var(--accent)}
.nl-msg{margin:12px 0 0;font-weight:600;color:var(--accent-d)}

/* chef spotlights */
.chef-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
.chef-card{text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.15s}
.chef-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:var(--shadow)}
.chef-photo{aspect-ratio:1/1;background:#efe3d6}
.chef-photo img{width:100%;height:100%;object-fit:cover;display:block}
.chef-cb{padding:12px}.chef-name{font-weight:750}.chef-tag{font-size:.82rem;color:var(--muted)}
.chef{max-width:760px}
.chef-head{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:8px 0 14px}
.chef-hero{flex:0 0 auto;width:160px;height:160px;border-radius:var(--radius);overflow:hidden;background:#efe3d6}
.chef-hero img{width:100%;height:100%;object-fit:cover;display:block}
.chef-meta h1{font-size:clamp(1.6rem,4vw,2.2rem);font-weight:850}
.chef-loc{color:var(--muted);margin:4px 0 0}
.chef-quote{border-left:3px solid var(--accent);background:var(--card);margin:16px 0;padding:12px 16px;font-size:1.1rem;font-style:italic;color:#43382e;border-radius:0 8px 8px 0}
.chef-bio{color:#3a2f26}
.chef-cuis{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* community reviews (UGC) */
.r-reviews{margin-top:30px}
.reviews-list{display:grid;gap:12px;margin-bottom:14px}
.review{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.review-head{display:flex;gap:8px;align-items:center;margin-bottom:4px}
.review-name{font-weight:700}.review-stars{color:var(--warm)}
.review-body{margin:0;color:#3a2f26}
.review-form-wrap{border:1px solid var(--line);border-radius:10px;background:var(--card)}
.review-form-wrap summary{padding:12px 14px;cursor:pointer;font-weight:700}
.review-form{display:grid;gap:10px;padding:0 14px 14px}
.review-form input,.review-form textarea{font:inherit;padding:10px 12px;border:1.5px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.rf-stars{display:flex;gap:2px;font-size:1.5rem}
.rf-star{background:none;border:0;cursor:pointer;color:var(--warm);line-height:1;padding:0 1px}
.rf-consent{display:flex;gap:8px;align-items:flex-start;font-size:.82rem;color:var(--muted)}
.rf-consent input{margin-top:3px;accent-color:var(--accent)}
.rf-msg{font-weight:600;color:var(--accent-d);margin:4px 0 0}

/* submit-a-recipe form */
.submit-form{display:grid;gap:14px;max-width:640px;margin-top:10px}
.submit-form label{display:grid;gap:5px;font-weight:650}
.submit-form label small{font-weight:400;color:var(--muted)}
.submit-form input,.submit-form textarea{font:inherit;font-weight:400;padding:10px 12px;border:1.5px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}

/* ingredient autocomplete */
.ac{position:absolute;top:100%;left:0;right:0;z-index:30;background:var(--card);border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;box-shadow:var(--shadow);max-height:280px;overflow:auto;display:none}
.ac-item{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;font:inherit;background:none;border:0;border-top:1px solid var(--line);padding:9px 12px;cursor:pointer;color:var(--ink)}
.ac-item:first-child{border-top:0}
.ac-item:hover{background:var(--bg);color:var(--accent-d)}
.ac-c{font-size:.72rem;color:var(--muted)}

/* category ingredient pickers */
.quick-hint{font-size:.82rem;color:var(--muted);margin:2px 0 8px}
.catgrp{border:1px solid var(--line);border-radius:9px;margin-bottom:6px;background:var(--bg)}
.catgrp summary{padding:8px 12px;cursor:pointer;font-weight:650;font-size:.9rem}
.catgrp summary small{color:var(--muted);font-weight:500}
.catchips{display:flex;flex-wrap:wrap;gap:6px;padding:4px 12px 12px}
.q.on{background:var(--accent);color:#fff;border-color:var(--accent)}

/* image placeholders (text-only recipes, e.g. Wikibooks) */
.rc-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fdeee6,#efe3d6);color:var(--accent);font-weight:850;font-size:2.4rem}
.r-hero.ph{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fdeee6,#efe3d6)}
.r-ph-mark{font-weight:850;font-size:clamp(3rem,12vw,6rem);color:var(--accent);opacity:.85}

/* pantry filters (diet / time / allergy-exclude) */
.filters{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:6px 0 18px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
.filt-grp{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.filt-lbl{font-size:.78rem;font-weight:700;color:var(--muted);margin-right:2px}
.filt{font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:5px 11px;color:var(--ink);transition:.12s}
.filt:hover{border-color:var(--accent)}
.filt.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.filt.x.on{background:var(--accent);border-color:var(--accent);color:#fff}
.filt-note{flex-basis:100%;font-size:.72rem;color:var(--muted);margin:0}

/* pantry result sections (make-now / one-away / more) */
.rsec{margin:0 0 26px}
.rsec-h{font-size:1.15rem;margin:0 0 12px}
.rsec-h small{color:var(--muted);font-weight:500}
.rc-miss{font-size:.72rem;color:var(--accent-d);margin-top:3px}
.rc-swap{font-size:.72rem;color:var(--ok);font-weight:650;margin-top:3px}
.match.ok{background:var(--ok)}
.match.one{background:var(--warm);color:#3a2f26}

/* shopping list */
.shoplist-add{margin-top:14px;background:var(--card);color:var(--accent-d);border:1px solid #f3cdba;font-size:.92rem}
.shoplist-add:hover{border-color:var(--accent);background:#fdeee6}
.shop-ul{list-style:none;padding:0;margin:0 0 18px}
.shop-ul li{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.shop-ul li:first-child{border-top:0}
.shop-ul label{display:flex;align-items:baseline;gap:9px;flex:1;cursor:pointer}
.shop-ul input{accent-color:var(--accent)}
.shop-m{font-weight:750;color:var(--accent-d);white-space:nowrap}
.shop-r{font-size:.74rem;color:var(--muted)}
.shop-x{background:none;border:0;color:var(--muted);font-size:1.3rem;line-height:1;cursor:pointer;padding:0 4px}
.shop-x:hover{color:var(--accent)}
.shop-ul li.done{opacity:.5}.shop-ul li.done .shop-n{text-decoration:line-through}
.shop-actions{display:flex;gap:10px}
@media print{.site-head,.site-foot,.ad,.shop-actions,.shop-x,.crumbs{display:none!important}}

/* dark mode toggle + surprise button */
.theme-btn{flex:0 0 auto;font-size:1.05rem;background:none;border:1px solid var(--line);border-radius:10px;width:38px;height:38px;cursor:pointer;line-height:1;padding:0}
.theme-btn:hover{border-color:var(--accent)}
.surprise-row{margin:12px 0 0}
.surprise{background:var(--card);color:var(--ink);border:1.5px solid var(--line);font-size:.95rem}
.surprise:hover{border-color:var(--accent);color:var(--accent)}

/* dark mode */
html[data-theme=dark]{--bg:#16130f;--card:#241f1a;--ink:#efe7dd;--muted:#a89a8b;--line:#39312a;--accent:#e0623e;--accent-d:#e8744f;--shadow:0 6px 22px rgba(0,0,0,.45)}
html[data-theme=dark] .chip,html[data-theme=dark] .save-btn,html[data-theme=dark] .badge,html[data-theme=dark] .timer-chip{background:#2e2620;border-color:#4a3e34;color:#f0a585}
html[data-theme=dark] .note{background:#241f1a;color:#cfc4b6}
html[data-theme=dark] .ing-have{background:#1e2a1e;border-color:#34492f;color:#9cc89f}
html[data-theme=dark] .lede,html[data-theme=dark] .prose p,html[data-theme=dark] .prose li,html[data-theme=dark] .subs dd,html[data-theme=dark] .faq p,html[data-theme=dark] .why li{color:#cfc4b6}
html[data-theme=dark] .rc-img,html[data-theme=dark] .r-hero,html[data-theme=dark] .chef-photo,html[data-theme=dark] .rotd-img{background:#2e2620}
html[data-theme=dark] .rc-ph,html[data-theme=dark] .r-hero.ph,html[data-theme=dark] .country-all,html[data-theme=dark] .newsletter{background:#2e2620;background-image:none}
html[data-theme=dark] .chef-quote{background:#241f1a}

/* send-to-phone QR */
.share-btn.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.qr-panel{flex-basis:100%;display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:12px}
.qr-wrap{width:180px;height:180px;background:#fff;padding:8px;border:1px solid var(--line);border-radius:10px}
.qr-svg{width:100%;height:100%;display:block}
.qr-cap{font-size:.78rem;color:var(--muted)}

/* ads — reserved box with a label, no layout shift when the unit loads */
.ad{margin:26px 0;min-height:100px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--card);overflow:hidden;contain:layout}
.ad__label{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ad .adsbygoogle{display:block;width:100%}
.ad[data-empty]{display:none}   /* JS hides slots AdSense didn't fill, so no orphan "Advertisement" box */
.ad--in-article{min-height:280px}.ad--in-feed{min-height:200px;grid-column:1/-1}

/* prose (trust pages) */
.prose{max-width:740px}
.prose h1{font-size:clamp(1.7rem,4vw,2.3rem);font-weight:850;margin-bottom:14px}
.prose h2{font-size:1.3rem;margin:26px 0 8px}
.prose p,.prose li{color:#3a2f26}
.prose ul{padding-left:20px;display:grid;gap:6px}

/* pantry results */
#presults{margin-top:20px}
.presult-head{margin:6px 0 14px;color:var(--muted)}

/* footer */
.site-foot{border-top:1px solid var(--line);margin-top:48px;padding:30px 0;background:var(--card);color:var(--muted);font-size:.88rem}
.foot-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px}
.foot-cols strong{display:block;color:var(--ink);margin-bottom:8px}
.foot-cols a{display:block;color:var(--muted);text-decoration:none;padding:3px 0}
.foot-cols a:hover{color:var(--accent)}
.foot-note{margin:22px 0 0;border-top:1px solid var(--line);padding-top:16px;font-size:.82rem}
.loading,.empty{text-align:center;color:var(--muted);padding:40px 20px}
