/*
Theme Name: Dished by Denise
Theme URI: https://example.com/dished-by-denise
Author: OpenAI
Description: A warm, editorial, seasonal WordPress block theme for food, recipes, travel, lifestyle, and personal stories.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: dished-by-denise
*/

:root {
  --dbd-cream: #fbf6ee;
  --dbd-paper: #fffdf8;
  --dbd-ink: #27231f;
  --dbd-muted: #746b61;
  --dbd-accent: #a64b35;
  --dbd-accent-2: #68765c;
  --dbd-border: #e7ddd0;
  --dbd-radius: 24px;
  --dbd-shadow: 0 18px 50px rgba(62, 43, 28, .09);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--dbd-cream); color: var(--dbd-ink); }
a { text-underline-offset: .18em; }

.wp-site-blocks { overflow: hidden; }
.dbd-shell { width: min(1180px, calc(100% - 32px)); margin-inline: auto; }
.dbd-eyebrow { letter-spacing: .14em; text-transform: uppercase; font-size: .78rem; font-weight: 700; color: var(--dbd-accent); }
.dbd-card { background: var(--dbd-paper); border: 1px solid var(--dbd-border); border-radius: var(--dbd-radius); overflow: hidden; box-shadow: var(--dbd-shadow); }
.dbd-card img { display: block; width: 100%; height: auto; }
.dbd-soft { background: color-mix(in srgb, var(--dbd-accent) 8%, var(--dbd-paper)); }
.dbd-pill { display: inline-flex; align-items: center; gap: .45rem; border: 1px solid var(--dbd-border); border-radius: 999px; padding: .5rem .8rem; background: rgba(255,255,255,.55); }

.site-header { position: relative; z-index: 20; border-bottom: 1px solid var(--dbd-border); background: color-mix(in srgb, var(--dbd-paper) 92%, transparent); backdrop-filter: blur(14px); }
.site-title a { text-decoration: none; }
.site-tagline { color: var(--dbd-muted); }

.dbd-season-strip { position: relative; overflow: hidden; background: var(--dbd-accent); color: #fff; }
.dbd-season-strip::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .18; background-image: radial-gradient(circle at 10% 20%, #fff 0 2px, transparent 3px), radial-gradient(circle at 70% 60%, #fff 0 1.5px, transparent 2.5px); background-size: 70px 70px, 90px 90px; }

.dbd-hero { padding-block: clamp(42px, 7vw, 90px); }
.dbd-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.dbd-hero-copy h1 { font-size: clamp(3rem, 7vw, 6.4rem); line-height: .92; margin: .18em 0 .25em; }
.dbd-hero-copy p { font-size: clamp(1.05rem, 1.8vw, 1.3rem); color: var(--dbd-muted); max-width: 56ch; }
.dbd-hero-image { border-radius: 40% 18% 34% 18% / 24% 34% 22% 36%; overflow: hidden; box-shadow: var(--dbd-shadow); background: linear-gradient(135deg, color-mix(in srgb, var(--dbd-accent) 20%, #fff), color-mix(in srgb, var(--dbd-accent-2) 18%, #fff)); min-height: 420px; display:flex; align-items:center; justify-content:center; }
.dbd-hero-image .wp-block-post-featured-image { width: 100%; height: 100%; margin: 0; }
.dbd-hero-image img { width: 100%; height: 100%; object-fit: cover; }

.wp-block-query .wp-block-post { margin-bottom: 0; }
.dbd-post-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 28px; padding: 0; }
.dbd-post-grid > li { list-style: none; }
.dbd-post-grid .wp-block-post-featured-image { margin: 0 0 18px; border-radius: 20px; overflow: hidden; }
.dbd-post-grid .wp-block-post-title { margin-top: .35rem; }
.dbd-post-grid .wp-block-post-excerpt { color: var(--dbd-muted); }

.dbd-category-row { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.dbd-category-row .wp-block-group { min-height: 150px; border-radius: 22px; border: 1px solid var(--dbd-border); background: var(--dbd-paper); display:flex; align-items:flex-end; padding: 22px; box-shadow: 0 10px 30px rgba(62,43,28,.05); }

.entry-content > * { margin-block-start: 1.3em; margin-block-end: 1.3em; }
.entry-content > .alignwide { margin-block: 2.5em; }
.entry-content blockquote { border-left: 3px solid var(--dbd-accent); padding-left: 1.4rem; font-style: italic; color: var(--dbd-muted); }

.dbd-recipe { background: var(--dbd-paper); border: 1px solid var(--dbd-border); border-radius: 28px; padding: clamp(24px, 5vw, 48px); box-shadow: var(--dbd-shadow); }
.dbd-recipe-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin: 1.2rem 0 2rem; }
.dbd-recipe-meta > div { background: var(--dbd-cream); border-radius:16px; padding:14px 16px; }

.site-footer { border-top: 1px solid var(--dbd-border); margin-top: 72px; }

/* Seasonal palettes */
body.dbd-season-autumn { --dbd-cream:#fbf2e4; --dbd-paper:#fffaf3; --dbd-ink:#33251f; --dbd-muted:#7d6659; --dbd-accent:#b6532d; --dbd-accent-2:#7d6a3f; --dbd-border:#ead6c2; }
body.dbd-season-halloween { --dbd-cream:#171417; --dbd-paper:#211c22; --dbd-ink:#fff7e8; --dbd-muted:#c8bdb7; --dbd-accent:#ef7f22; --dbd-accent-2:#8e6ab0; --dbd-border:#3e3440; --dbd-shadow:0 18px 50px rgba(0,0,0,.28); }
body.dbd-season-christmas { --dbd-cream:#f7f4ee; --dbd-paper:#fffdfa; --dbd-ink:#253128; --dbd-muted:#68736c; --dbd-accent:#a62d36; --dbd-accent-2:#315f47; --dbd-border:#d8ddd6; }
body.dbd-season-winter { --dbd-cream:#f3f6f8; --dbd-paper:#ffffff; --dbd-ink:#24313a; --dbd-muted:#687681; --dbd-accent:#4c708a; --dbd-accent-2:#8496a2; --dbd-border:#dce5ea; }
body.dbd-season-spring { --dbd-cream:#f7f7ed; --dbd-paper:#fffef8; --dbd-ink:#2d3529; --dbd-muted:#6c7766; --dbd-accent:#8b5f76; --dbd-accent-2:#78936b; --dbd-border:#dfe4d6; }
body.dbd-season-summer { --dbd-cream:#fff8e8; --dbd-paper:#fffdf6; --dbd-ink:#2e2b22; --dbd-muted:#7d735f; --dbd-accent:#d2693d; --dbd-accent-2:#4d8b8a; --dbd-border:#eadfca; }
body.dbd-season-halloween .dbd-card, body.dbd-season-halloween .dbd-category-row .wp-block-group { box-shadow: 0 18px 50px rgba(0,0,0,.25); }
body.dbd-season-halloween .site-header { background: rgba(33,28,34,.92); }
body.dbd-season-halloween img { filter: saturate(.94) contrast(1.03); }

@media (max-width: 900px) {
  .dbd-hero-grid { grid-template-columns: 1fr; }
  .dbd-hero-image { min-height: 320px; }
  .dbd-post-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .dbd-category-row { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .dbd-post-grid { grid-template-columns: 1fr; }
  .dbd-category-row { grid-template-columns: 1fr 1fr; }
  .dbd-recipe-meta { grid-template-columns: 1fr; }
  .dbd-hero-copy h1 { font-size: clamp(3rem, 15vw, 4.5rem); }
}
