@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,500&family=Nunito+Sans:ital,opsz,wght@0,6..12,400;0,6..12,500;0,6..12,600;0,6..12,700;1,6..12,500&family=Caveat:wght@600;700&display=swap');

:root{
  --orange:#E8590C;
  --orange-bright:#F77F00;
  --brick:#B23A04;
  --ink:#1C1714;
  --ink-soft:#3A322C;
  --cream:#FFFBF4;
  --peach:#FFF0E2;
  --peach-deep:#FCE3CE;
  --line:#EBDFCF;
  --white:#FFFFFF;
  --shadow:0 18px 40px -22px rgba(60,30,10,.45);
  --shadow-sm:0 8px 20px -14px rgba(60,30,10,.4);
  --radius:18px;
  --radius-sm:12px;
  --maxw:1180px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Nunito Sans',system-ui,sans-serif;
  font-size:19px;
  line-height:1.72;
  color:var(--ink-soft);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--brick);text-decoration:none}
a:hover{text-decoration:underline}

h1,h2,h3,h4{font-family:'Fraunces',Georgia,serif;color:var(--ink);line-height:1.12;font-weight:600;letter-spacing:-.01em}
h1{font-size:clamp(2.4rem,5.4vw,3.9rem)}
h2{font-size:clamp(1.85rem,3.6vw,2.7rem)}
h3{font-size:1.5rem}
p{margin:0 0 1.1rem}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.narrow{max-width:760px;margin:0 auto;padding:0 24px}

.eyebrow{
  font-family:'Caveat',cursive;
  font-size:1.5rem;
  color:var(--orange);
  display:inline-block;
  transform:rotate(-2deg);
  margin-bottom:.2rem;
}
.section-label{
  font-family:'Nunito Sans',sans-serif;
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:.78rem;
  font-weight:700;
  color:var(--orange);
  display:flex;align-items:center;gap:.6rem;
}
.section-label::before{content:"";width:26px;height:2px;background:var(--orange);display:inline-block}

/* ---------- Skip link ---------- */
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:10px 16px;z-index:200;border-radius:0 0 8px 0}
.skip:focus{left:0}

/* ---------- Header ---------- */
.topbar{background:var(--ink);color:#F4E6D6;font-size:.84rem;letter-spacing:.04em}
.topbar .wrap{display:flex;justify-content:center;align-items:center;gap:.5rem;padding:9px 24px;text-align:center}
.topbar svg{flex:none}

.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,251,244,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;max-width:var(--maxw);margin:0 auto;gap:1rem}
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand:hover{text-decoration:none}
.brand .logo{width:46px;height:46px;flex:none}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-name{font-family:'Fraunces',serif;font-weight:600;font-size:1.32rem;color:var(--ink);letter-spacing:-.01em}
.brand-tag{font-family:'Caveat',cursive;font-size:1.02rem;color:var(--orange)}

.menu{display:flex;align-items:center;gap:6px;list-style:none}
.menu a{
  color:var(--ink);font-weight:600;font-size:1rem;padding:9px 14px;border-radius:9px;
  text-decoration:none;transition:background .15s,color .15s;
}
.menu a:hover,.menu a[aria-current="page"]{background:var(--peach);color:var(--brick)}
.menu .btn-nav{background:var(--orange);color:#fff}
.menu .btn-nav:hover{background:var(--brick);color:#fff}

.nav-toggle{display:none;background:none;border:2px solid var(--line);border-radius:10px;padding:8px;cursor:pointer}
.nav-toggle svg{display:block}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.55rem;
  font-family:'Nunito Sans',sans-serif;font-weight:700;font-size:1rem;
  padding:14px 26px;border-radius:999px;cursor:pointer;border:none;
  transition:transform .15s,box-shadow .15s,background .15s;text-decoration:none;
}
.btn-primary{background:var(--orange);color:#fff;box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--brick);transform:translateY(-2px);text-decoration:none;color:#fff}
.btn-ghost{background:transparent;color:var(--ink);border:2px solid var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff;text-decoration:none}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;background:
  radial-gradient(1200px 480px at 85% -8%,var(--peach) 0%,transparent 60%),
  var(--cream);padding:64px 0 40px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center}
.hero h1{margin:.5rem 0 1rem}
.hero h1 .mark{color:var(--orange);position:relative;white-space:nowrap}
.hero h1 .mark::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.16em;background:var(--peach-deep);z-index:-1;border-radius:4px}
.hero p.lead{font-size:1.18rem;color:var(--ink-soft);max-width:42ch}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:1.6rem}
.hero-stats{display:flex;gap:30px;margin-top:2.2rem;flex-wrap:wrap}
.hero-stats .stat strong{font-family:'Fraunces',serif;font-size:1.9rem;color:var(--ink);display:block;line-height:1}
.hero-stats .stat span{font-size:.9rem;color:var(--ink-soft);font-weight:600}

.hero-collage{position:relative}
.collage{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:16px}
.collage .tile{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:var(--white);border:1px solid var(--line)}
.collage .tile img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1}
.collage .tile.tall{grid-row:span 2;aspect-ratio:auto}
.collage .tile.tall img{aspect-ratio:3/5}
.hero-collage{position:relative}
.hero-collage .sticker{
  position:absolute;left:-14px;bottom:-18px;background:var(--ink);color:#fff;
  font-family:'Caveat',cursive;font-size:1.45rem;padding:10px 20px;border-radius:14px;
  transform:rotate(-5deg);box-shadow:var(--shadow);z-index:5;
}
.hero-collage .sticker b{color:var(--orange-bright)}

/* ---------- Section base ---------- */
.section{padding:64px 0}
.section.tint{background:var(--peach)}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:2.2rem;flex-wrap:wrap}
.section-head .intro{max-width:54ch}
.section-head h2{margin-top:.4rem}

/* ---------- Recipe cards ---------- */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.card-grid.two{grid-template-columns:repeat(2,1fr)}
.rcard{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;
  transition:transform .18s,box-shadow .18s;
}
.rcard:hover{transform:translateY(-4px);box-shadow:var(--shadow);text-decoration:none}
.rcard .thumb{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--peach)}
.rcard .thumb img{width:100%;height:100%;object-fit:cover}
.rcard .tag{
  position:absolute;top:12px;left:12px;background:var(--orange);color:#fff;
  font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:6px 11px;border-radius:999px;
}
.rcard .body{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1}
.rcard h3{font-size:1.32rem;margin-bottom:.4rem;color:var(--ink)}
.rcard:hover h3{color:var(--brick)}
.rcard p{font-size:.98rem;color:var(--ink-soft);margin-bottom:1rem}
.rcard .meta{margin-top:auto;display:flex;gap:18px;font-size:.86rem;color:var(--ink-soft);font-weight:600;border-top:1px dashed var(--line);padding-top:14px}
.rcard .meta span{display:inline-flex;align-items:center;gap:6px}
.rcard .meta svg{color:var(--orange)}

/* ---------- Blog list ---------- */
.bcard{
  display:grid;grid-template-columns:300px 1fr;gap:28px;align-items:center;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .18s,box-shadow .18s;
}
.bcard:hover{transform:translateY(-3px);box-shadow:var(--shadow);text-decoration:none}
.bcard .thumb{aspect-ratio:4/3;overflow:hidden;background:var(--peach)}
.bcard .thumb img{width:100%;height:100%;object-fit:cover}
.bcard .body{padding:24px 28px 24px 0}
.bcard .kicker{font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;color:var(--orange);font-weight:700}
.bcard h3{font-size:1.55rem;margin:.4rem 0 .5rem;color:var(--ink)}
.bcard:hover h3{color:var(--brick)}
.bcard p{font-size:1rem;margin-bottom:.8rem}
.bcard .readmore{font-weight:700;color:var(--brick);display:inline-flex;align-items:center;gap:.4rem}

/* ---------- Category chips ---------- */
.chips{display:flex;flex-wrap:wrap;gap:12px}
.chip{
  background:var(--white);border:1px solid var(--line);border-radius:999px;
  padding:10px 18px;font-weight:700;font-size:.94rem;color:var(--ink);
  display:inline-flex;align-items:center;gap:.5rem;transition:all .15s;
}
.chip:hover{background:var(--orange);color:#fff;border-color:var(--orange);text-decoration:none}
.chip svg{color:var(--orange)}
.chip:hover svg{color:#fff}

/* ---------- Feature strip ---------- */
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.feat{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px}
.feat .ic{width:54px;height:54px;border-radius:14px;background:var(--peach);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.feat .ic svg{color:var(--brick)}
.feat h3{font-size:1.28rem;margin-bottom:.5rem}
.feat p{font-size:.98rem;margin:0}

/* ---------- Page hero (interior) ---------- */
.page-hero{background:
  radial-gradient(900px 360px at 90% -20%,var(--peach) 0%,transparent 65%),var(--cream);
  padding:54px 0 40px;border-bottom:1px solid var(--line)}
.page-hero .crumbs{font-size:.9rem;color:var(--ink-soft);margin-bottom:1rem;font-weight:600}
.page-hero .crumbs a{color:var(--brick)}
.page-hero h1{max-width:18ch}
.page-hero p.lead{font-size:1.15rem;max-width:62ch;margin-top:1rem;color:var(--ink-soft)}

/* ---------- Recipe article ---------- */
.article{padding:48px 0 72px}
.recipe-head{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;margin-bottom:48px}
.recipe-head .photo{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line)}
.recipe-head .photo img{width:100%;aspect-ratio:4/3;object-fit:cover}
.recipe-meta-bar{
  display:flex;flex-wrap:wrap;gap:0;background:var(--ink);border-radius:14px;overflow:hidden;
  margin:24px 0;
}
.recipe-meta-bar .cell{flex:1;min-width:120px;padding:16px 18px;color:#fff;border-right:1px solid rgba(255,255,255,.12)}
.recipe-meta-bar .cell:last-child{border-right:none}
.recipe-meta-bar .cell span{display:block;font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;color:var(--orange-bright);font-weight:700}
.recipe-meta-bar .cell strong{font-family:'Fraunces',serif;font-size:1.35rem;font-weight:600}

.recipe-body{display:grid;grid-template-columns:1fr 1.4fr;gap:48px;align-items:start}
.ing-box{background:var(--peach);border:1px solid var(--peach-deep);border-radius:var(--radius);padding:28px 26px;position:sticky;top:96px}
.ing-box h2{font-size:1.5rem;margin-bottom:1rem}
.ing-list{list-style:none}
.ing-list li{display:flex;gap:12px;padding:11px 0;border-bottom:1px dashed var(--peach-deep);font-weight:600;color:var(--ink)}
.ing-list li:last-child{border-bottom:none}
.ing-list li svg{flex:none;color:var(--orange);margin-top:5px}

.steps h2{font-size:1.7rem;margin-bottom:1.2rem}
.step{display:flex;gap:20px;margin-bottom:24px}
.step .num{flex:none;width:44px;height:44px;border-radius:50%;background:var(--orange);color:#fff;font-family:'Fraunces',serif;font-weight:600;font-size:1.3rem;display:flex;align-items:center;justify-content:center}
.step .txt{padding-top:6px}
.step .txt p{margin:0}

.callout{background:var(--white);border-left:5px solid var(--orange);border-radius:0 14px 14px 0;padding:22px 26px;margin:32px 0;box-shadow:var(--shadow-sm)}
.callout h3{font-size:1.2rem;margin-bottom:.4rem}
.callout p{margin:0}

.prose p{font-size:1.08rem}
.prose h2{font-size:1.9rem;margin:2.2rem 0 1rem}
.prose h3{font-size:1.4rem;margin:1.6rem 0 .6rem}
.prose ul{margin:0 0 1.2rem 1.2rem}
.prose li{margin-bottom:.5rem}
.prose .lead-img{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin:0 0 32px;border:1px solid var(--line)}
.prose .lead-img img{width:100%;aspect-ratio:16/9;object-fit:cover}
.prose blockquote{font-family:'Fraunces',serif;font-style:italic;font-size:1.35rem;color:var(--ink);border-left:4px solid var(--orange);padding-left:22px;margin:28px 0}

.tags-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.tags-row .t{background:var(--peach);color:var(--brick);font-size:.85rem;font-weight:700;padding:7px 14px;border-radius:999px}

/* ---------- Related ---------- */
.related{background:var(--peach);padding:60px 0}

/* ---------- Contact / info cards ---------- */
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start}
.info-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:30px 30px;box-shadow:var(--shadow-sm)}
.info-card h3{display:flex;align-items:center;gap:12px;margin-bottom:.7rem}
.info-card h3 .ic{width:42px;height:42px;border-radius:11px;background:var(--peach);display:flex;align-items:center;justify-content:center}
.info-card h3 .ic svg{color:var(--brick)}
.info-line{display:flex;gap:12px;align-items:flex-start;margin-bottom:.7rem;font-weight:600;color:var(--ink)}
.info-line svg{flex:none;color:var(--orange);margin-top:4px}

/* ---------- Legal ---------- */
.legal{padding:40px 0 72px}
.legal h2{font-size:1.5rem;margin:2rem 0 .7rem}
.legal h3{font-size:1.18rem;margin:1.4rem 0 .5rem}
.legal p,.legal li{font-size:1.02rem}
.legal ul{margin:0 0 1.2rem 1.3rem}
.legal li{margin-bottom:.45rem}
.legal .updated{font-style:italic;color:var(--ink-soft);font-size:.95rem}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:#E9D9C7;padding:60px 0 28px;margin-top:20px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}
.site-footer .brand-name{color:#fff}
.site-footer p{color:#C9B6A2;font-size:.98rem}
.foot-col h4{font-family:'Nunito Sans',sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;color:var(--orange-bright);margin-bottom:1rem;font-weight:700}
.foot-col ul{list-style:none}
.foot-col li{margin-bottom:.6rem}
.foot-col a{color:#E9D9C7;font-weight:500}
.foot-col a:hover{color:#fff}
.foot-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:22px;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.88rem;color:#B49E89}
.foot-bottom a{color:#B49E89}

/* ---------- Responsive ---------- */
@media(max-width:960px){
  .hero-grid{grid-template-columns:1fr;gap:36px}
  .recipe-head{grid-template-columns:1fr}
  .recipe-body{grid-template-columns:1fr;gap:32px}
  .ing-box{position:static}
  .card-grid{grid-template-columns:repeat(2,1fr)}
  .features{grid-template-columns:1fr}
  .bcard{grid-template-columns:1fr}
  .bcard .thumb{aspect-ratio:16/9}
  .bcard .body{padding:0 26px 26px}
  .foot-grid{grid-template-columns:1fr 1fr}
  .info-grid{grid-template-columns:1fr}
}
@media(max-width:680px){
  body{font-size:18px}
  .menu{
    display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;
    background:var(--cream);border-bottom:1px solid var(--line);padding:14px 18px;gap:4px;
    box-shadow:var(--shadow);align-items:stretch;
  }
  .menu.open{display:flex}
  .menu a{padding:13px 14px;font-size:1.05rem}
  .menu .btn-nav{text-align:center;margin-top:6px}
  .nav-toggle{display:inline-flex}
  .card-grid,.card-grid.two{grid-template-columns:1fr}
  .collage{grid-template-columns:1fr 1fr}
  .hero-stats{gap:22px}
  .foot-grid{grid-template-columns:1fr}
  .recipe-meta-bar .cell{min-width:50%;flex:1 0 50%}
  .section{padding:48px 0}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
