
:root{
  --bg:#f5f2ea;
  --surface:#fffdf9;
  --surface-2:#f3ede2;
  --text:#223126;
  --muted:#687368;
  --line:rgba(34,49,38,.10);
  --primary:#254f33;
  --primary-2:#c89228;
  --shadow:0 20px 50px rgba(33,49,37,.10);
  --radius:24px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Inter",system-ui,sans-serif;
  background:linear-gradient(180deg,#f8f5ef 0%,#f2ece2 100%);
  color:var(--text);
}
img{max-width:100%;display:block}
button,input,select{font:inherit}
a{text-decoration:none;color:inherit}
.bg-blur{
  position:fixed; inset:auto; pointer-events:none; filter:blur(60px); opacity:.35; z-index:0;
}
.bg-1{width:240px;height:240px;background:#cedfb7;top:70px;left:-40px}
.bg-2{width:300px;height:300px;background:#f1cb8a;right:-80px;top:260px}

.topbar{
  position:sticky; top:0; z-index:10;
  backdrop-filter: blur(14px);
  background:rgba(248,245,239,.78);
  border-bottom:1px solid var(--line);
  padding:14px 22px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.brand{display:flex; align-items:center; gap:14px}
.brand strong{display:block}
.brand span{display:block; font-size:.85rem; color:var(--muted)}
.brand-mark{
  width:46px;height:46px;border-radius:14px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--primary),#4e8d5d);color:#fff;font-weight:800;
  box-shadow:var(--shadow);
}
.topnav{display:flex; gap:18px; color:var(--muted); font-weight:600; font-size:.95rem}
.topnav a:hover{color:var(--primary)}
main{max-width:1240px; margin:0 auto; padding:28px 18px 80px; position:relative; z-index:1}
.card{
  background:rgba(255,253,249,.82);
  border:1px solid rgba(255,255,255,.65);
  box-shadow:var(--shadow);
  border-radius:var(--radius);
}
.hero{
  display:grid; grid-template-columns:1.15fr .85fr; gap:28px; padding:28px; align-items:center;
}
.eyebrow,.section-tag{
  display:inline-flex; align-items:center; gap:8px;
  text-transform:uppercase; letter-spacing:.12em; font-size:.74rem; font-weight:800;
  color:var(--primary);
}
h1,h2,h3,h4{margin:0 0 12px}
h1,h2,h3{font-family:"Playfair Display",serif; line-height:1.05}
h1{font-size:clamp(2.1rem,4vw,4.3rem)}
h2{font-size:clamp(1.7rem,3vw,2.5rem)}
h3{font-size:clamp(1.5rem,2.4vw,2rem)}
.lead{font-size:1.05rem; color:var(--muted); line-height:1.7; max-width:65ch}
.hero-actions{display:flex; gap:12px; margin:24px 0 18px; flex-wrap:wrap}
.btn{
  border:none; border-radius:999px; padding:14px 20px; cursor:pointer; font-weight:700;
}
.btn-primary{background:var(--primary); color:#fff}
.btn-ghost{background:#eef2ea; color:var(--primary)}
.hero-stats{display:flex; gap:16px; flex-wrap:wrap; margin-top:8px}
.hero-stats div{
  background:#fff; border:1px solid var(--line); border-radius:18px; padding:14px 16px; min-width:100px;
}
.hero-stats strong{display:block; font-size:1.35rem; color:var(--primary)}
.hero-stats span{font-size:.86rem; color:var(--muted)}
.hero-cover img{
  border-radius:22px;
  width:100%; height:min(560px,70vh); object-fit:cover; object-position:center;
  border:1px solid var(--line);
}
.grid-two{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:22px}
.intro,.quote-card,.favorite-card,.closing-card,.controls{padding:24px}
.intro p,.quote-card p,.closing-card p{line-height:1.75; color:var(--muted)}
.benefits{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:22px}
.benefits div,.mini-checklist div{
  padding:14px 16px; border-radius:18px; background:var(--surface-2); color:var(--text); font-weight:600;
}
blockquote{
  margin:12px 0 18px; padding:18px 20px; border-left:4px solid var(--primary-2);
  background:linear-gradient(135deg,#fff9ec,#f8f0df); border-radius:18px;
  font-family:"Playfair Display",serif; font-size:1.55rem; color:var(--primary);
}
.controls{margin-top:24px; display:grid; gap:16px}
.toolbar{display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:14px}
label span{display:block; font-size:.84rem; font-weight:700; color:var(--muted); margin-bottom:8px}
input,select{
  width:100%; padding:14px 14px; border-radius:16px; border:1px solid var(--line); background:#fff;
}
.recipes-grid{
  margin-top:22px;
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px;
}
.recipe-card{
  overflow:hidden; display:flex; flex-direction:column; transition:transform .25s ease, box-shadow .25s ease;
}
.recipe-card:hover{transform:translateY(-4px)}
.recipe-card .thumb{position:relative}
.recipe-card .thumb img{width:100%; height:250px; object-fit:cover}
.badge{
  position:absolute; left:14px; top:14px; background:rgba(37,79,51,.92); color:#fff;
  padding:8px 12px; border-radius:999px; font-size:.76rem; font-weight:700;
}
.favorite-toggle{
  position:absolute; right:14px; top:14px; width:42px; height:42px; border:none; cursor:pointer;
  border-radius:50%; background:rgba(255,255,255,.95); font-size:1.1rem;
}
.recipe-body{padding:18px}
.recipe-title{font-family:"Playfair Display",serif; font-size:1.45rem; margin-bottom:8px}
.recipe-meta{display:flex; gap:10px; flex-wrap:wrap; color:var(--muted); font-size:.92rem; margin-bottom:12px}
.recipe-desc{color:var(--muted); line-height:1.65; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden}
.recipe-actions{display:flex; justify-content:space-between; align-items:center; margin-top:16px}
.link-btn{border:none; background:none; color:var(--primary); font-weight:800; cursor:pointer; padding:0}
.pill{padding:8px 10px; border-radius:999px; background:var(--surface-2); font-size:.78rem; font-weight:700; color:var(--primary)}
.lower{align-items:start}
.favorites-list{display:grid; gap:10px; margin-top:16px}
.favorite-item{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:14px 16px; background:var(--surface-2); border-radius:16px;
}
.favorite-item button{
  border:none; background:var(--primary); color:#fff; border-radius:999px; padding:10px 14px; cursor:pointer;
}
.favorite-empty{color:var(--muted); line-height:1.7}
.modal{
  position:fixed; inset:0; display:none; place-items:center; z-index:30;
}
.modal.open{display:grid}
.modal-backdrop{position:absolute; inset:0; background:rgba(20,30,23,.56); backdrop-filter: blur(8px)}
.modal-card{
  position:relative; z-index:1; width:min(1100px, calc(100vw - 24px)); max-height:calc(100vh - 24px);
  overflow:auto; background:var(--surface); border-radius:28px; display:grid; grid-template-columns:.9fr 1.1fr;
  box-shadow:0 30px 80px rgba(0,0,0,.25);
}
.modal-media img{width:100%; height:100%; object-fit:cover; min-height:360px}
.modal-content{padding:26px}
.meta-row{display:flex; gap:10px; flex-wrap:wrap; color:var(--muted); margin-bottom:18px}
.meta-row span{padding:8px 12px; background:var(--surface-2); border-radius:999px}
.modal-columns{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.modal-columns ul,.modal-columns ol{padding-left:20px; line-height:1.7; color:var(--muted)}
.tip-box{margin-top:20px; background:#f7f2e6; border:1px solid #eadab6; border-radius:18px; padding:16px}
.tip-box strong{display:block; margin-bottom:8px; color:var(--primary)}
.modal-close{
  position:absolute; top:14px; right:14px; width:42px;height:42px; border:none; border-radius:50%;
  font-size:1.35rem; cursor:pointer; background:rgba(255,255,255,.95);
}
.empty-state{
  grid-column:1/-1; padding:38px 22px; text-align:center; color:var(--muted);
  background:rgba(255,253,249,.72); border:1px dashed var(--line); border-radius:22px;
}
@media (max-width: 980px){
  .hero,.grid-two,.modal-card,.modal-columns,.toolbar,.benefits,.recipes-grid{grid-template-columns:1fr 1fr}
  .hero{grid-template-columns:1fr}
  .modal-card{grid-template-columns:1fr}
}
@media (max-width: 720px){
  .topbar{padding:12px 14px}
  .topnav{display:none}
  main{padding:18px 12px 70px}
  .hero,.intro,.quote-card,.favorite-card,.closing-card,.controls{padding:18px}
  .grid-two,.toolbar,.benefits,.recipes-grid,.modal-columns{grid-template-columns:1fr}
  .hero-cover img{height:auto}
  .recipe-card .thumb img{height:220px}
  blockquote{font-size:1.3rem}
}
