:root{
  --spruce:#1E3A2F; --spruce-2:#2B5242; --mustard:#E8B02E; --brick:#B5412F;
  --paper:#F5F7F3; --white:#fff; --ink:#1B2420; --muted:#56635B; --line:#D8DED7;
  --display:'Young Serif',Georgia,serif; --body:'Figtree',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--body);font-size:17px;line-height:1.6;color:var(--ink);background:var(--paper)}
img,svg{max-width:100%}
a{color:var(--spruce-2)}
a:hover{color:var(--brick)}
:focus-visible{outline:3px solid var(--mustard);outline-offset:2px}
.wrap{width:min(1140px,100% - 2.5rem);margin-inline:auto}
.skip{position:absolute;left:-999px;top:0;background:var(--mustard);color:var(--ink);padding:.6rem 1rem;z-index:99}
.skip:focus{left:0}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.15;margin:0 0 .6em;color:var(--spruce)}
h1{font-size:clamp(2.2rem,5vw,3.6rem)}
h2{font-size:clamp(1.6rem,3vw,2.1rem)}
h3{font-size:1.25rem}
p{margin:0 0 1em}

/* Header */
.site-header{background:var(--spruce);color:#fff;position:sticky;top:0;z-index:20}
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:68px}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--mustard);text-decoration:none;font-family:var(--display);font-size:1.3rem}
.brand em{font-style:normal;color:#fff}
.brand:hover{color:var(--mustard)}
nav{display:flex;gap:.25rem}
nav a{color:#E4EBE6;text-decoration:none;padding:.5rem .9rem;border-radius:6px;font-weight:500}
nav a:hover{background:var(--spruce-2);color:#fff}
nav a[aria-current="page"]{background:var(--mustard);color:var(--ink)}
.menu-btn{display:none;background:transparent;border:1px solid #6f8a7c;color:#fff;padding:.45rem .9rem;border-radius:6px;font:inherit;cursor:pointer}

/* Buttons */
.btn{display:inline-block;background:var(--brick);color:#fff;border:0;padding:.8rem 1.4rem;border-radius:6px;font:600 1rem var(--body);text-decoration:none;cursor:pointer}
.btn:hover{background:#963323;color:#fff}
.btn.alt{background:transparent;color:var(--spruce);border:2px solid var(--spruce)}
.btn.alt:hover{background:var(--spruce);color:#fff}

/* Hero */
.hero{background:var(--spruce);color:#fff;padding:4rem 0 5rem;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center}
.hero h1{color:#fff;margin-bottom:.4em}
.hero p.lead{font-size:1.2rem;color:#D6E2DA;max-width:34rem}
.search{display:flex;gap:.5rem;max-width:34rem;margin-top:1.6rem}
.search input{flex:1;min-width:0;padding:.85rem 1rem;border:0;border-radius:6px;font:inherit}
.ticket{background:var(--paper);color:var(--ink);border-radius:10px;padding:1.6rem 1.6rem 1.4rem;position:relative;transform:rotate(1.8deg);box-shadow:0 18px 40px rgba(0,0,0,.28)}
.ticket::before{content:"";position:absolute;left:0;right:0;top:3.6rem;border-top:2px dashed var(--line)}
.ticket .t-top{display:flex;justify-content:space-between;color:var(--muted);font-size:.9rem;font-weight:600;margin-bottom:1.5rem}
.ticket h2{margin:.6rem 0 .5rem;font-size:1.7rem}
.ticket ul{margin:.8rem 0 1.2rem;padding-left:1.1rem;color:var(--muted)}
.ticket a.btn{width:100%;text-align:center}

/* Sections */
.section{padding:3.5rem 0}
.section.tint{background:var(--white);border-block:1px solid var(--line)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.6rem;flex-wrap:wrap}
.sec-head h2{margin:0}
.sec-head p{margin:0;color:var(--muted)}
.page-head{background:var(--white);border-bottom:1px solid var(--line);padding:3rem 0 2.2rem}
.page-head p{color:var(--muted);max-width:40rem;margin:0}
.crumbs{font-size:.92rem;color:var(--muted);margin-bottom:.8rem}
.crumbs a{color:var(--muted)}

/* Cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem}
.card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:10px;overflow:hidden;text-decoration:none;color:var(--ink)}
.card:hover{border-color:var(--spruce-2);color:var(--ink)}
.card:hover strong{color:var(--brick)}
.tile{position:relative;height:150px;background:var(--c);display:flex;align-items:center;justify-content:center;color:#fff;overflow:hidden}
.tile b{font:400 6.5rem/1 var(--display);opacity:.28;letter-spacing:-.02em}
.tile i{position:absolute;left:.9rem;bottom:.8rem;font-style:normal;font-weight:600;font-size:.85rem;background:rgba(0,0,0,.28);padding:.15rem .6rem;border-radius:99px}
.card-body{display:flex;flex-direction:column;gap:.4rem;padding:1.1rem 1.2rem 1.3rem;flex:1}
.card-body strong{font:400 1.2rem/1.25 var(--display);color:var(--spruce)}
.card-body>span{color:var(--muted);font-size:.97rem}
.card-body small{margin-top:auto;padding-top:.5rem;color:var(--muted);font-weight:600}
.cat-card{display:block;text-decoration:none;color:#fff;background:var(--c);padding:1.6rem;border-radius:10px;min-height:170px;position:relative;overflow:hidden}
.cat-card:hover{color:#fff;filter:brightness(1.08)}
.cat-card h3{color:#fff;margin:0 0 .4rem;font-size:1.4rem}
.cat-card p{margin:0;color:rgba(255,255,255,.9);font-size:.97rem}
.cat-card span.n{position:absolute;right:1.2rem;bottom:.8rem;font:400 3.2rem/1 var(--display);opacity:.35}

/* Filters */
.filters{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.4rem}
.filters input,.filters select{padding:.7rem .9rem;border:1px solid var(--line);border-radius:6px;font:inherit;background:#fff;min-width:0}
.filters input{flex:1;min-width:200px}
.chips{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1.6rem}
.chip{padding:.4rem .9rem;border:1px solid var(--line);border-radius:99px;background:#fff;text-decoration:none;color:var(--ink);font-weight:500;font-size:.95rem}
.chip:hover{border-color:var(--spruce)}
.chip.on{background:var(--spruce);border-color:var(--spruce);color:#fff}
.empty{padding:2.5rem;background:#fff;border:1px dashed var(--line);border-radius:10px;text-align:center}

/* Recipe page */
.recipe-top{display:grid;grid-template-columns:1fr 300px;gap:3rem;align-items:start}
.facts{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:1.2rem 1.4rem;margin:0}
.facts div{display:flex;justify-content:space-between;padding:.55rem 0;border-bottom:1px solid var(--line)}
.facts div:last-child{border:0}
.facts dt{color:var(--muted)}
.facts dd{margin:0;font-weight:700}
.recipe-body{display:grid;grid-template-columns:340px 1fr;gap:3.5rem;align-items:start;padding:3rem 0}
.ing{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:1.5rem 1.6rem;position:sticky;top:90px}
.ing ul{list-style:none;margin:0;padding:0}
.ing li{padding:.5rem 0;border-bottom:1px solid var(--line)}
.ing li:last-child{border:0}
.ing label{display:flex;gap:.7rem;cursor:pointer;align-items:flex-start}
.ing input{margin-top:.35rem;accent-color:var(--spruce)}
.ing input:checked+span{text-decoration:line-through;color:var(--muted)}
.steps{margin:0;padding:0;list-style:none;counter-reset:s;max-width:42rem}
.steps li{counter-increment:s;position:relative;padding:0 0 1.5rem 3.2rem}
.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--spruce);color:var(--mustard);font:400 1.1rem/2.2rem var(--display);text-align:center}
.note{background:#FBF3DC;border-left:5px solid var(--mustard);padding:1rem 1.2rem;border-radius:0 8px 8px 0;max-width:42rem}
.note strong{display:block;margin-bottom:.2rem}

/* Text pages and forms */
.prose{max-width:46rem;padding:3rem 0}
.prose h2{margin-top:1.8em}
.two{display:grid;grid-template-columns:1fr 1fr;gap:3rem;padding:3rem 0;align-items:start}
.form{display:grid;gap:1rem}
.form label{font-weight:600;display:grid;gap:.35rem}
.form input,.form select,.form textarea{padding:.8rem .9rem;border:1px solid #b9c2ba;border-radius:6px;font:inherit;background:#fff;width:100%}
.form textarea{min-height:160px;resize:vertical}
.hp{position:absolute;left:-9999px}
.alert{padding:1rem 1.2rem;border-radius:8px;margin-bottom:1.2rem;font-weight:500}
.alert.ok{background:#E2F1E7;border:1px solid #9CCBA9}
.alert.bad{background:#F9E3DF;border:1px solid #E0A79D}
.info-box{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:1.6rem}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.5rem 0}
.stat-row div{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:1.1rem}
.stat-row b{display:block;font:400 2rem/1.1 var(--display);color:var(--brick)}
.err404{text-align:center;padding:5rem 0}
.err404 .big{font:400 clamp(5rem,16vw,9rem)/1 var(--display);color:var(--mustard);margin:0}

/* Footer */
.site-footer{background:var(--spruce);color:#CBD8CF;padding:3rem 0 1.5rem;margin-top:2rem}
.site-footer a{color:#E4EBE6;text-decoration:none;display:block;padding:.15rem 0}
.site-footer a:hover{color:var(--mustard)}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2.5rem}
.foot-brand{font:400 1.4rem var(--display);color:var(--mustard);margin-bottom:.4rem}
.foot-h{font-weight:700;color:#fff;margin-bottom:.4rem}
.legal{border-top:1px solid #3d5a4c;margin-top:2rem;padding-top:1.2rem;font-size:.92rem}

@media (max-width:860px){
  .hero .wrap,.recipe-top,.recipe-body,.two{grid-template-columns:1fr}
  .ticket{transform:none}
  .ing{position:static}
  .foot-grid{grid-template-columns:1fr 1fr}
  .stat-row{grid-template-columns:1fr}
  .menu-btn{display:block}
  nav{display:none;position:absolute;left:0;right:0;top:68px;background:var(--spruce);flex-direction:column;padding:.6rem 1.25rem 1rem;border-top:1px solid #3d5a4c}
  nav.open{display:flex}
}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}.search{flex-direction:column}}
@media print{.site-header,.site-footer,.no-print{display:none}body{background:#fff}.ing{position:static}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
