:root{--ink:#1c1c1c;--mute:#6a6a6a;--line:#dcdcdc;--bg:#f2f2f2;--red:#c60c30;--blue:#00338d}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 Lora,Georgia,serif}
h1,h2,h3,.cond,nav,.kicker,.tag,button{font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif}
.serif{font-family:'Playfair Display',Georgia,serif}
a{color:var(--blue)}
/* header */
.top{background:#fff;border-bottom:1px solid var(--line)}
.topin{max-width:1200px;margin:0 auto;padding:.6rem 1.5rem;display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.8rem}
.logo{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--red);color:#fff;text-decoration:none;text-align:center;font:700 .72rem/1 'Barlow Condensed',Arial,sans-serif;letter-spacing:.05em;text-transform:uppercase}
.top nav a{font-weight:700;font-size:1.2rem;color:var(--ink);text-decoration:none;margin-right:1.4rem}.top nav a:hover{color:var(--red)}
.hsearch{margin-left:auto;display:flex;align-items:center;border:1px solid var(--line);border-radius:99px;background:#fff;padding:0 .4rem 0 1rem;min-width:240px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.hsearch input{border:0;margin:0;padding:.55rem 0;background:none;min-width:0;flex:1}.hsearch input:focus-visible{outline:0}
.hsearch button{background:none;color:var(--ink);padding:.3rem .5rem}.hsearch button:hover{color:var(--red);background:none}
main{max-width:1200px;margin:0 auto;padding:1rem 1.5rem 3rem}
.crumbs{font:600 .85rem 'Barlow Condensed',Arial,sans-serif;margin:.4rem 0}.crumbs a{color:var(--ink);text-decoration:none}.crumbs span{color:var(--red)}.crumbs{color:var(--red)}
.pagetitle,h1{font-weight:600;font-size:3rem;line-height:1.05;margin:.3rem 0 1rem;letter-spacing:-.01em}
h2{font-size:1.4rem;margin:.2rem 0}
/* forms */
label{display:block;font-weight:600;font-size:.95rem}
input,select,textarea{display:block;width:100%;font:inherit;padding:.5rem .6rem;border:1px solid #9a9a9a;border-radius:4px;background:#fff;margin-top:.2rem;color:var(--ink)}
fieldset{border:1px solid var(--line);border-radius:6px;padding:.5rem .8rem;margin:0}
.chk{display:inline-flex;gap:.4rem;align-items:center;font-weight:400;margin-right:1rem}.chk input{width:auto;margin:0}
button{font-weight:700;font-size:1rem;letter-spacing:.03em;background:var(--red);color:#fff;border:0;border-radius:4px;padding:.5rem 1.1rem;cursor:pointer}
button:hover{background:#9f0a27}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.stack{display:grid;gap:1rem}.narrow{max-width:600px}
.note{background:#e4eaf8;border-left:4px solid var(--blue);padding:.6rem 1rem}.error{background:#fde7eb;border-left:4px solid var(--red);color:#7a0b20;padding:.6rem 1rem}
.empty{color:var(--mute)}.meta{color:var(--mute);font-size:.9rem;margin:.2rem 0}
.inline{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:.5rem 0}.inline input{max-width:300px;margin:0}
.thumb{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;display:block}
.tag{display:inline-block;background:#e4e4e4;color:var(--ink);padding:.05rem .6rem;margin:0 .3rem .3rem 0;font-size:.85rem;font-weight:600;letter-spacing:.02em}
.kicker{margin:.5rem 0 0;color:var(--red);font-weight:700;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}
/* shop layout */
.shop{display:grid;grid-template-columns:230px 1fr;gap:2rem;align-items:start}
.facets h2{font:700 1.1rem 'Barlow Condensed',Arial,sans-serif;margin:1.1rem 0 .4rem;padding-top:1rem;border-top:1px solid var(--line)}
.facets h2:first-of-type{margin-top:0;padding-top:0;border:0}
.flist{list-style:none;margin:0;padding:0}.flist li{margin:.25rem 0}
.flist a{color:var(--ink);text-decoration:none;font-size:.95rem}.flist a:hover{color:var(--red);text-decoration:underline}.flist a.on{font-weight:700;color:var(--red)}
.fchk{display:flex;gap:.5rem;align-items:center;font-weight:400;font-size:.95rem;margin:.3rem 0;cursor:pointer}.fchk input{width:1.1rem;height:1.1rem;margin:0}
.clear{font-size:.9rem}
.rbar{display:flex;flex-wrap:wrap;gap:.6rem 1rem;justify-content:space-between;align-items:center;padding-bottom:.7rem;border-bottom:1px solid var(--line);margin-bottom:1rem}
.rctl{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center}.rctl .chk{margin:0}
.sortl{display:flex;gap:.4rem;align-items:center;font-weight:400}.sortl select{width:auto;margin:0;padding:.35rem .5rem}
.cathead{font-size:1.6rem;margin:1.6rem 0 .8rem;padding-bottom:.3rem;border-bottom:3px solid var(--red)}.cathead:first-child{margin-top:0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.6rem 1.2rem}
.fcard{position:relative}
.imgwrap{display:block;aspect-ratio:4/3;background:#dedede;overflow:hidden}.imgwrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}
.imgwrap:hover img{transform:scale(1.03)}
.noimg{display:grid;place-items:center;height:100%;color:var(--mute);font:600 .95rem 'Barlow Condensed',Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase}
.fcard .pick{position:absolute;top:.5rem;left:.5rem;width:1.3rem;height:1.3rem;margin:0;z-index:2}
.fcard h3{margin:.1rem 0 0;font-size:1.4rem;line-height:1.15;font-weight:700}.fcard h3 a{color:var(--ink);text-decoration:none}.fcard h3 a:hover{color:var(--red)}
.fcard p{margin:.2rem 0}
/* recipe page */
.hero{display:grid;grid-template-columns:1.3fr 1fr;background:#fff;min-height:340px;margin-bottom:1.5rem}
.heroimg{background:#dedede;min-height:260px}.heroimg img{width:100%;height:100%;object-fit:cover;display:block}
.herotxt{padding:1.8rem 2rem;align-self:center}.herotxt h1{font-size:2.6rem;margin:.2rem 0 .6rem}
.links{display:flex;gap:1.2rem;font-weight:600}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:2rem;background:#fff;padding:1.5rem 2rem}
.cols ul,.cols ol{padding-left:1.3rem}.cols li{margin:.35rem 0}
@media (max-width:820px){.shop,.hero,.cols{grid-template-columns:1fr}.hsearch{margin-left:0;width:100%}.pagetitle,h1{font-size:2.3rem}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
.danger{max-width:600px;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line)}
button.del{background:#fff;color:var(--red);border:2px solid var(--red)}button.del:hover{background:var(--red);color:#fff}
/* add-recipe form */
.wide{max-width:760px}
.rtype{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.rtype label{display:flex;gap:.6rem;align-items:flex-start;padding:.8rem 1rem;background:#fff;border:2px solid var(--line);border-radius:6px;cursor:pointer;font-weight:400}
.rtype label:has(input:checked){border-color:var(--red)}
.rtype input{width:auto;margin:.3rem 0 0}.rtype strong{display:block;font-weight:700}
.tsec{display:grid;gap:1rem;padding:1rem;background:#fff;border:1px solid var(--line);border-radius:6px}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.lbl{display:block;font-weight:600;font-size:.95rem;margin-bottom:.3rem}
.irow{display:grid;grid-template-columns:2fr 1fr 1fr 2fr auto;gap:.5rem;margin-bottom:.5rem;align-items:center}
.irow input{margin:0}.irow .rm{background:none;color:var(--mute);padding:.2rem .6rem;font-size:1.3rem}.irow .rm:hover{color:var(--red);background:none}
button.add{background:#fff;color:var(--red);border:2px solid var(--red)}button.add:hover{background:var(--red);color:#fff}
.cols.one{grid-template-columns:1fr}
[hidden]{display:none!important}
@media (max-width:700px){.rtype,.three{grid-template-columns:1fr}.irow{grid-template-columns:1fr 1fr}}
/* radio options: bubble on the left of the text */
.rtype{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.rtype label{display:flex;flex-direction:row;align-items:center;gap:.7rem;padding:.8rem 1rem;background:#fff;border:2px solid var(--line);border-radius:6px;cursor:pointer;font-weight:700;margin:0}
.rtype label:has(input:checked){border-color:var(--red)}
.rtype input[type=radio]{flex:none;width:1.15rem;height:1.15rem;margin:0;display:inline-block}
/* events */
.btnlink{display:inline-block;background:var(--red);color:#fff;font:700 1rem 'Barlow Condensed',Arial,sans-serif;letter-spacing:.03em;padding:.5rem 1.1rem;border-radius:4px;text-decoration:none}.btnlink:hover{background:#9f0a27}
.elist{display:grid;gap:1rem;margin:1rem 0}
.ecard{display:flex;gap:1rem;background:#fff;padding:1rem 1.2rem;border-top:4px solid var(--blue)}
.edate{flex:none;width:64px;height:68px;text-align:center;background:var(--red);color:#fff;padding-top:.5rem;font-family:'Barlow Condensed',Arial,sans-serif;line-height:1}
.edate span{display:block;font-weight:600;letter-spacing:.12em;font-size:.95rem}.edate strong{display:block;font-size:2rem;margin-top:.1rem}
.ebody h3{margin:0;font-size:1.5rem}.ebody h3 a{color:var(--ink);text-decoration:none}.ebody h3 a:hover{color:var(--red)}.ebody p{margin:.2rem 0}
.chip{display:inline-block;font:600 .9rem 'Barlow Condensed',Arial,sans-serif;padding:.1rem .6rem;margin:0 .3rem .3rem 0;background:#e4e4e4}
.chip.ok{background:#dbe5f7;color:var(--blue)}.chip.short{background:#fde7eb;color:#7a0b20}
.pastev{margin-top:1.5rem}.pastev summary{cursor:pointer;font:700 1.2rem 'Barlow Condensed',Arial,sans-serif}
.cov{background:#fff;padding:1rem 1.2rem;display:grid;gap:.8rem}
.covrow{display:grid;grid-template-columns:130px 1fr 190px;gap:.8rem;align-items:center}
.covname{font:700 1.15rem 'Barlow Condensed',Arial,sans-serif}
.covbar{height:10px;background:#e4e4e4;border-radius:99px;overflow:hidden}.covbar i{display:block;height:100%;background:var(--red)}.covbar i.ok{background:var(--blue)}
.covtxt{font-size:.9rem}.covtxt.ok{color:var(--blue);font-weight:600}.covtxt.short{color:var(--red);font-weight:600}
.subhead{font-size:1.3rem;margin:1.2rem 0 .4rem}
.dishes{list-style:none;margin:0 0 1rem;padding:0;background:#fff}
.dishes li{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 1.2rem;border-bottom:1px solid var(--line)}.dishes li:last-child{border:0}
.mins{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
@media (max-width:700px){.covrow{grid-template-columns:1fr}.mins{grid-template-columns:1fr 1fr}}
/* accounts */
.who{font-size:.9rem;color:var(--mute)}.who a{color:var(--blue)}
.mrow{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.3fr auto auto;gap:.5rem;align-items:center;background:#fff;padding:.6rem .8rem;margin-bottom:.5rem}
.mrow input,.mrow select{margin:0}.mrow .chk{margin:0}
.grow{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem;background:#fff;padding:1rem 1.2rem;margin-bottom:.8rem;border-left:5px solid var(--blue)}
.grow p{margin:.2rem 0}
@media (max-width:900px){.mrow{grid-template-columns:1fr 1fr}}
