/*
Theme Name: Today's Chef
Theme URI: https://todays-chef.com
Description: A friendly photo-forward recipe-blog theme — wide hero photos, minimal recipe cards, welcome intro, per-chef profile pages with circular portraits, warm earth-tone palette.
Author: Today's Chef
Version: 4.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: todays-chef
*/

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap');

:root {
  --bg:#fbf8f3;
  --ink:#2a2520;
  --ink-soft:#4a423a;
  --muted:#8a7f73;
  --line:#e5ddd0;
  --line-soft:#f0e8db;
  --accent:#c8553d;
  --accent-dark:#a44030;
  --accent-deep:#7d2d20;
  --olive:#5c7a3c;
  --olive-soft:#e8eedf;
  --card:#ffffff;
  --tint:#f4ebde;
  --shadow:0 1px 2px rgba(42,37,32,.04), 0 4px 14px rgba(42,37,32,.06);
  --shadow-hover:0 4px 8px rgba(42,37,32,.06), 0 12px 28px rgba(42,37,32,.12);
  --radius:6px;
  --radius-lg:10px;
}

* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body {
  margin:0; background:var(--bg); color:var(--ink);
  font-family:'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size:16px; line-height:1.65;
}
a { color:var(--accent); text-decoration:none; transition:color .15s ease; }
a:hover { color:var(--accent-dark); }
img { max-width:100%; height:auto; display:block; }
h1, h2, h3, h4, h5 { font-family:'Playfair Display', Georgia, serif; font-weight:600;
  color:var(--ink); letter-spacing:-.005em; }

.wrap { max-width:1180px; margin:0 auto; padding:0 24px; }
.wrap.article { max-width:760px; padding-top:0; }

header.site {
  text-align:center; padding:42px 24px 22px;
  background:var(--card); border-bottom:1px solid var(--line);
}
header.site .logo { width:58px; height:58px; display:block; margin:0 auto 12px; }
header.site .name { font-size:32px; letter-spacing:.4px; margin:0; font-weight:700; }
header.site .name a { color:var(--ink); }
header.site .tag {
  color:var(--muted); font-size:12px; margin-top:8px;
  font-family:'Inter', sans-serif; text-transform:uppercase; letter-spacing:.22em;
}

.topbar {
  background:var(--card); border-bottom:1px solid var(--line);
  text-align:center; padding:12px 16px; position:sticky; top:0; z-index:50;
}
.topbar a {
  font-family:'Inter', sans-serif; font-size:13px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--ink); font-weight:600;
  display:inline-flex; align-items:center; gap:9px;
}
.topbar .brand { width:24px; height:24px; }

.catnav { background:var(--card); border-bottom:1px solid var(--line); }
.catnav-inner {
  max-width:1180px; margin:0 auto; padding:8px 18px;
  display:flex; flex-wrap:wrap; gap:0; justify-content:center;
}
.catnav-link {
  font-family:'Inter', sans-serif; font-size:11.5px; letter-spacing:.16em;
  text-transform:uppercase; font-weight:600;
  color:var(--ink-soft); padding:11px 15px; white-space:nowrap;
  border-bottom:2px solid transparent; transition:color .15s ease, border-color .15s ease;
}
.catnav-link:hover { color:var(--accent); }
.catnav-link.is-current { color:var(--accent); border-bottom-color:var(--accent); }

.section-head {
  text-align:center; margin:56px 0 28px; position:relative;
}
.section-head .sec-eyebrow {
  font-family:'Inter', sans-serif; font-size:11px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--accent); font-weight:700; margin:0 0 8px;
}
.sec-title {
  font-size:32px; margin:0; font-weight:700;
  font-family:'Playfair Display', serif; line-height:1.1; color:var(--ink);
}
.section-head .ornament {
  display:flex; align-items:center; justify-content:center; gap:10px;
  margin-top:14px; color:var(--accent);
}
.section-head .ornament::before, .section-head .ornament::after {
  content:''; height:1px; width:42px; background:var(--line);
}
.section-head .ornament svg { width:14px; height:14px; opacity:.8; }
.section-head-row {
  display:flex; align-items:center; justify-content:space-between;
  margin:48px 0 22px; padding-bottom:14px; border-bottom:1px solid var(--line);
}
.section-head-row .sec-title { font-size:24px; text-align:left; }
.see-all {
  font-family:'Inter', sans-serif; font-size:13px; font-weight:600;
  letter-spacing:.04em; white-space:nowrap; color:var(--accent);
}

/* ---------- Welcome intro ---------- */
.welcome {
  margin:46px 0 12px; padding:40px 24px; text-align:center;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg);
}
.welcome .hi {
  font-family:'Inter', sans-serif; font-size:11px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--accent); font-weight:700; margin:0 0 12px;
}
.welcome h2 {
  font-family:'Playfair Display', serif; font-size:30px; line-height:1.2;
  margin:0 auto 14px; max-width:740px; font-weight:600;
}
.welcome p {
  max-width:620px; margin:0 auto; color:var(--ink-soft); font-size:15.5px; line-height:1.65;
}

/* ---------- Hero ---------- */
.hero {
  position:relative; margin:30px 0 0; border-radius:var(--radius-lg);
  overflow:hidden; background:var(--tint); box-shadow:var(--shadow);
}
.hero-photo { width:100%; height:520px; object-fit:cover; display:block; }
.hero-body {
  position:absolute; left:0; right:0; bottom:0;
  background:linear-gradient(to top, rgba(20,15,10,.78) 0%, rgba(20,15,10,.55) 50%, rgba(20,15,10,0) 100%);
  padding:64px 40px 32px; color:#fff8ee;
}
.hero-cat {
  font-family:'Inter', sans-serif; font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; font-weight:700; color:#f4d9c7; margin:0 0 10px;
}
.hero-title {
  font-family:'Playfair Display', serif; font-size:40px; line-height:1.12;
  margin:0 0 12px; color:#fff8ee; font-weight:700; max-width:740px;
}
.hero-title a { color:#fff8ee; }
.hero-meta { font-family:'Inter', sans-serif; font-size:13px; letter-spacing:.04em; color:#f0e6d6; margin:0; }

/* ---------- Recipe card grid ---------- */
.card-grid { display:grid; gap:32px; grid-template-columns:repeat(3, 1fr); }
.recipe-card { background:transparent; display:flex; flex-direction:column; transition:transform .18s ease; }
.recipe-card:hover { transform:translateY(-2px); }
.recipe-card-thumb {
  display:block; background:var(--tint); border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow); transition:box-shadow .18s ease;
}
.recipe-card:hover .recipe-card-thumb { box-shadow:var(--shadow-hover); }
.recipe-card-thumb img { width:100%; aspect-ratio:4 / 3; object-fit:cover; }
.recipe-card-body { padding:16px 4px 0; }
.recipe-card-cat {
  font-family:'Inter', sans-serif; font-size:10.5px; letter-spacing:.2em;
  text-transform:uppercase; font-weight:700; color:var(--accent); margin:0 0 6px;
}
.recipe-card-title {
  font-family:'Playfair Display', serif; font-size:20px; line-height:1.3;
  margin:0 0 8px; font-weight:600;
}
.recipe-card-title a { color:var(--ink); }
.recipe-card-title a:hover { color:var(--accent); }
.recipe-card-meta { font-family:'Inter', sans-serif; font-size:12px; color:var(--muted); }
.recipe-card-meta .by { color:var(--ink-soft); }
.recipe-card-meta .by a { color:var(--ink-soft); }
.recipe-card-meta .by a:hover { color:var(--accent); }

.newsletter {
  margin:64px 0 0; padding:44px 28px; text-align:center;
  background:var(--tint); border-radius:var(--radius-lg);
}
.newsletter .eyebrow {
  font-family:'Inter', sans-serif; font-size:11px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--accent); font-weight:700; margin:0 0 12px;
}
.newsletter h2 {
  font-family:'Playfair Display', serif; font-size:28px; line-height:1.2;
  margin:0 auto 12px; max-width:600px; font-weight:600;
}
.newsletter p { max-width:520px; margin:0 auto 8px; color:var(--ink-soft); font-size:15px; }
.newsletter .note { font-family:'Inter', sans-serif; font-size:12px; color:var(--muted); margin-top:18px; }

/* ---------- Chef cards (homepage "Our chefs" section) ---------- */
.region-section { margin-top:32px; }
.chefs-grid {
  display:grid; grid-template-columns:repeat(5, 1fr); gap:22px; margin-top:8px;
}
.chef-card {
  text-align:center; padding:20px 14px;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg);
  transition:transform .18s ease, box-shadow .18s ease;
}
.chef-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-hover); }
.chef-card a { color:inherit; display:block; }
.chef-card-photo {
  width:88px; height:88px; border-radius:50%; overflow:hidden; margin:0 auto 12px;
  background:var(--tint); border:2px solid var(--card); box-shadow:var(--shadow);
}
.chef-card-photo img { width:100%; height:100%; object-fit:cover; }
.chef-card-photo.placeholder {
  display:flex; align-items:center; justify-content:center;
  background:var(--tint); color:var(--accent);
  font-family:'Playfair Display', serif; font-size:30px; font-weight:700;
}
.chef-card .nm {
  font-family:'Playfair Display', serif; font-size:16px; margin:0 0 4px; font-weight:600;
  color:var(--ink);
}
.chef-card:hover .nm { color:var(--accent); }
.chef-card .role {
  font-family:'Inter', sans-serif; font-size:10.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted); font-weight:600; margin:0;
}

/* ---------- Single chef page (author.php) ---------- */
.chef-hero {
  text-align:center; padding:54px 24px 36px;
  background:var(--card); border-bottom:1px solid var(--line);
}
.chef-hero-photo {
  width:180px; height:180px; border-radius:50%; overflow:hidden; margin:0 auto 20px;
  background:var(--tint); border:4px solid var(--card); box-shadow:0 6px 22px rgba(42,37,32,.16);
}
.chef-hero-photo img { width:100%; height:100%; object-fit:cover; }
.chef-hero-photo.placeholder {
  display:flex; align-items:center; justify-content:center;
  background:var(--tint); color:var(--accent);
  font-family:'Playfair Display', serif; font-size:64px; font-weight:700;
}
.chef-hero .eyebrow {
  font-family:'Inter', sans-serif; font-size:11px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--accent); font-weight:700; margin:0 0 8px;
}
.chef-hero h1 {
  font-family:'Playfair Display', serif; font-size:42px; line-height:1.14;
  margin:0 0 8px; font-weight:700;
}
.chef-hero .role {
  font-family:'Inter', sans-serif; font-size:14px; letter-spacing:.06em;
  color:var(--ink-soft); margin:0;
}

.chef-bio { max-width:680px; margin:36px auto 0; padding:0 24px; }
.chef-bio p { font-size:17px; line-height:1.75; color:var(--ink-soft); margin:0 0 1em; }

.chef-topics-section {
  max-width:760px; margin:36px auto 0; padding:0 24px;
}
.chef-topics-section .label {
  font-family:'Inter', sans-serif; font-size:11px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--accent); font-weight:700; margin:0 0 12px;
  text-align:center;
}
.chef-topics { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.chef-topic {
  font-family:'Inter', sans-serif; font-size:12.5px; padding:6px 14px;
  background:var(--tint); color:var(--ink-soft); border-radius:999px; font-weight:500;
  letter-spacing:.02em;
}

.chef-posts { margin:48px auto 0; max-width:1180px; padding:0 24px; }
.chef-posts-head {
  text-align:center; margin:0 0 24px; padding-bottom:18px; border-bottom:1px solid var(--line);
}
.chef-posts-head h2 {
  font-family:'Playfair Display', serif; font-size:26px; margin:0; font-weight:700;
}
.chef-posts-head .count {
  font-family:'Inter', sans-serif; font-size:13px; color:var(--muted); margin-top:6px; display:block;
}

/* ---------- Article ---------- */
.article-hero {
  width:100%; max-width:1080px; margin:0 auto 28px;
  border-radius:var(--radius-lg); overflow:hidden; background:var(--tint);
}
.article-hero img { width:100%; height:auto; aspect-ratio:16 / 9; object-fit:cover; }

.article-head { padding:0 0 16px; }
.article-head .cat {
  font-family:'Inter', sans-serif; font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--accent); font-weight:700; margin:0 0 10px;
}
.article-head h1 {
  font-family:'Playfair Display', serif; font-size:40px; line-height:1.16;
  margin:0 0 14px; font-weight:700;
}
.article-head .byline {
  font-family:'Inter', sans-serif; font-size:13.5px; color:var(--muted);
  margin-bottom:14px; padding-bottom:18px; border-bottom:1px solid var(--line);
  display:flex; flex-wrap:wrap; gap:10px; align-items:center;
}
.article-head .byline .by { color:var(--ink); font-weight:600; }
.article-head .byline .by a { color:var(--ink); }
.article-head .byline .by a:hover { color:var(--accent); }
.article-head .byline .bio {
  font-style:italic; color:var(--muted); font-size:13px;
  flex-basis:100%; margin-top:4px; line-height:1.55;
}
.article-head .byline .dot { color:var(--line); }

.entry-content { color:var(--ink-soft); }
.entry-content p, .entry-content li { font-size:17px; line-height:1.75; color:var(--ink-soft); }
.entry-content h2 {
  font-family:'Playfair Display', serif; font-size:26px; margin-top:1.9em;
  margin-bottom:.5em; padding-bottom:6px; font-weight:700; color:var(--ink);
}
.entry-content h2::after {
  content:''; display:block; width:48px; height:3px; background:var(--accent);
  margin-top:8px; border-radius:2px;
}
.entry-content h3 {
  font-family:'Playfair Display', serif; font-size:20px; margin-top:1.5em;
  margin-bottom:.4em; font-weight:600; color:var(--accent-deep);
}
.entry-content ul, .entry-content ol { padding-left:1.4em; margin:1em 0; }
.entry-content ul li { margin-bottom:8px; }
.entry-content img { border-radius:var(--radius-lg); margin:1em 0; }
.entry-content a { color:var(--accent); border-bottom:1px solid var(--accent); }
.entry-content a:hover { border-bottom-color:var(--accent-dark); }

.entry-content > table:first-of-type {
  width:100%; border-collapse:separate; border-spacing:0;
  margin:0 0 30px; background:var(--card);
  border:1px solid var(--line); border-top:4px solid var(--accent);
  border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow);
}
.entry-content > table:first-of-type thead { display:none; }
.entry-content > table:first-of-type tr { border-bottom:1px solid var(--line-soft); }
.entry-content > table:first-of-type tr:last-child { border-bottom:none; }
.entry-content > table:first-of-type td {
  padding:14px 18px; vertical-align:middle; font-size:15px;
  font-family:'Inter', sans-serif;
}
.entry-content > table:first-of-type td:first-child {
  font-weight:600; color:var(--ink); width:32%;
  text-transform:uppercase; letter-spacing:.1em; font-size:12px;
}
.entry-content > table:first-of-type td:last-child { color:var(--ink-soft); font-weight:500; }
.entry-content > table:first-of-type strong { font-weight:600; }

.entry-content table {
  border-collapse:collapse; width:100%; margin:1.4em 0; font-size:15px;
  font-family:'Inter', sans-serif;
}
.entry-content th, .entry-content td {
  border:1px solid var(--line); padding:10px 12px; text-align:left;
}
.entry-content th { background:var(--tint); font-weight:600; color:var(--ink); }

.entry-content ol { counter-reset:step; list-style:none; padding-left:0; margin:1.2em 0; }
.entry-content ol > li {
  counter-increment:step; position:relative;
  padding:22px 22px 22px 76px; margin-bottom:16px;
  background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius-lg);
}
.entry-content ol > li::before {
  content:counter(step); position:absolute; left:20px; top:22px;
  width:40px; height:40px; line-height:40px;
  border-radius:50%; background:var(--accent); color:#fff8ee;
  font-family:'Inter', sans-serif; font-weight:700; font-size:16px; text-align:center;
}
.entry-content ol > li img {
  display:block; margin:14px 0 6px; border-radius:var(--radius);
  width:100%; max-width:560px;
}
.entry-content ol > li > p:first-child { margin-top:0; }
.entry-content ol > li > p:last-child { margin-bottom:0; }

.entry-content figure { margin:1.6em 0; }
.entry-content figure img { width:100%; border-radius:var(--radius-lg); }
.entry-content figcaption {
  font-family:'Inter', sans-serif; font-size:13px; color:var(--muted);
  margin-top:8px; text-align:center; font-style:italic;
}

figure.diagram {
  margin:1.9em 0; width:94vw; max-width:940px; margin-left:50%; transform:translateX(-50%);
  overflow-x:auto; -webkit-overflow-scrolling:touch;
}
figure.diagram img {
  display:block; max-width:none; height:auto; margin:0 auto;
  border:1px solid var(--line); border-radius:var(--radius-lg); background:#fff;
}

.blogauto-disclosure {
  margin:1.4em 0; padding:.85em 1.1em; font-size:13.5px;
  font-family:'Inter', sans-serif; line-height:1.55; background:var(--olive-soft);
  border-left:3px solid var(--olive); color:#4a553a; border-radius:var(--radius);
}
.blogauto-aff { color:var(--accent); text-decoration:underline; text-underline-offset:2px; border:0; }
.blogauto-ad { margin:2em 0; }
.blogauto-support {
  margin:2.6em 0 0; padding:24px 26px; text-align:center;
  background:var(--tint); border:1px solid var(--line); border-radius:var(--radius-lg);
}
.blogauto-support-text { margin:0 0 12px; font-family:'Inter', sans-serif; font-size:15px; color:var(--ink-soft); }
.blogauto-support-btn {
  display:inline-block; padding:10px 24px; background:var(--accent);
  color:#fff8ee; border-radius:var(--radius); text-decoration:none; font-weight:600;
  font-family:'Inter', sans-serif; font-size:14px; letter-spacing:.04em;
}
.blogauto-support-btn:hover { background:var(--accent-dark); color:#fff8ee; }

.pagination {
  margin:36px 0 10px; font-family:'Inter', sans-serif; font-size:13px;
  display:flex; gap:8px; justify-content:center; flex-wrap:wrap;
}
.pagination .page-numbers {
  padding:9px 14px; border:1px solid var(--line); border-radius:var(--radius);
  color:var(--ink); background:var(--card); font-weight:600;
}
.pagination .page-numbers.current { background:var(--accent); color:#fff8ee; border-color:var(--accent); }

.archive-head { margin:48px 0 28px; text-align:center; padding-bottom:24px; border-bottom:1px solid var(--line); }
.archive-head .eyebrow {
  font-family:'Inter', sans-serif; font-size:11px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--accent); font-weight:700; margin:0 0 10px;
}
.archive-head h1 { font-family:'Playfair Display', serif; font-size:38px; margin:0; font-weight:700; }
.archive-head .desc { color:var(--muted); font-size:15px; margin-top:10px; max-width:560px; margin-left:auto; margin-right:auto; }

footer.site {
  border-top:1px solid var(--line); margin-top:64px; padding:34px 24px 60px;
  text-align:center; color:var(--muted);
  font-family:'Inter', sans-serif; font-size:13px;
}
footer.site a { color:var(--muted); border-bottom:1px solid var(--line); }
footer.site a:hover { color:var(--accent); border-bottom-color:var(--accent); }

@media (max-width:900px){
  .card-grid { grid-template-columns:repeat(2, 1fr); gap:24px; }
  .chefs-grid { grid-template-columns:repeat(4, 1fr); gap:16px; }
  .hero-photo { height:420px; }
  .hero-title { font-size:30px; }
  .article-head h1 { font-size:34px; }
  .chef-hero h1 { font-size:34px; }
  .welcome h2 { font-size:24px; }
  .newsletter h2 { font-size:24px; }
}
@media (max-width:600px){
  .card-grid { grid-template-columns:1fr; gap:24px; }
  .chefs-grid { grid-template-columns:repeat(2, 1fr); gap:14px; }
  header.site { padding:32px 22px 20px; }
  header.site .name { font-size:26px; }
  .hero-photo { height:340px; }
  .hero-body { padding:48px 22px 24px; }
  .hero-title { font-size:24px; }
  .sec-title { font-size:22px; }
  .article-head h1 { font-size:26px; }
  .welcome { padding:30px 22px; margin:30px 0 8px; }
  .welcome h2 { font-size:21px; }
  .newsletter { padding:32px 22px; }
  .newsletter h2 { font-size:21px; }
  .entry-content ol > li { padding:18px 18px 18px 62px; }
  .entry-content ol > li::before { width:34px; height:34px; line-height:34px; font-size:14px; left:18px; top:20px; }
  .chef-hero-photo { width:140px; height:140px; }
  .chef-hero h1 { font-size:28px; }
}
