/*
Theme Name: Digital Garden
Theme URI: https://github.com/your-username/digital-garden
Description: A botanical WordPress theme for your digital garden — seeds, soil, sprouts, and blooms.
Version: 1.0.0
Author: Your Name
License: GNU General Public License v2 or later
Text Domain: digital-garden
*/

/* ============================================================
   FONTS & CUSTOM PROPERTIES
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Jost:wght@300;400;500&display=swap');

:root {
  /* Palette — parchment & botanical */
  --clr-parchment:       #faf7f2;
  --clr-parchment-dark:  #f2ede3;
  --clr-parchment-mid:   #e8e0d0;
  --clr-ink:             #2a2a22;
  --clr-ink-mid:         #4a4438;
  --clr-ink-light:       #7a7060;
  --clr-ink-faint:       #a09880;

  /* Stage accent colors */
  --clr-seed:            #7aaa52;
  --clr-seed-bg:         #edf3e8;
  --clr-seed-border:     #b8d4a0;
  --clr-seed-text:       #3d5c2a;
  --clr-seed-dark:       #4a7a2a;

  --clr-soil:            #c8944a;
  --clr-soil-bg:         #f2ede3;
  --clr-soil-border:     #d4b88a;
  --clr-soil-text:       #6b4e2a;
  --clr-soil-dark:       #8a5e2a;

  --clr-sprout:          #52aa90;
  --clr-sprout-bg:       #e8f0ee;
  --clr-sprout-border:   #90c0b0;
  --clr-sprout-text:     #2a5048;
  --clr-sprout-dark:     #2a7060;

  --clr-bloom:           #c0527a;
  --clr-bloom-bg:        #f5e8ee;
  --clr-bloom-border:    #d490b0;
  --clr-bloom-text:      #6b2a48;
  --clr-bloom-dark:      #8a2a50;

  /* Soil sub-type colors */
  --clr-book-bg:         #f0e8d8;
  --clr-book-text:       #7a5a2a;
  --clr-book-border:     #d4b88a;

  --clr-podcast-bg:      #e8eef5;
  --clr-podcast-text:    #2a4a7a;
  --clr-podcast-border:  #8ab0d4;

  --clr-video-bg:        #f5e8e8;
  --clr-video-text:      #7a2a2a;
  --clr-video-border:    #d48a8a;

  --clr-article-bg:      #edf0e8;
  --clr-article-text:    #3a5a2a;
  --clr-article-border:  #a8c890;

  --clr-essay-bg:        #ede8f5;
  --clr-essay-text:      #4a2a7a;
  --clr-essay-border:    #b08ad4;

  --clr-diary-bg:        #f5eef0;
  --clr-diary-text:      #7a2a4a;
  --clr-diary-border:    #d48aa8;

  --clr-review-bg:       #eef5f0;
  --clr-review-text:     #2a5a3a;
  --clr-review-border:   #90c4a8;

  /* Typography */
  --font-display:  'Cormorant Garamond', Georgia, serif;
  --font-body:     'Jost', system-ui, sans-serif;

  /* Spacing */
  --gap-sm:   0.5rem;
  --gap-md:   1rem;
  --gap-lg:   1.5rem;
  --gap-xl:   2rem;
  --gap-2xl:  3rem;

  /* Borders */
  --radius-sm:  4px;
  --radius-md:  8px;
  --radius-lg:  12px;
  --radius-pill: 20px;
  --border:     0.5px solid var(--clr-parchment-mid);
  --border-mid: 0.5px solid #d4cec4;

  /* Shadows — very soft, botanical */
  --shadow-card: 0 1px 4px rgba(90,70,40,0.06), 0 0 0 0.5px rgba(90,70,40,0.08);
  --shadow-hover: 0 4px 16px rgba(90,70,40,0.10), 0 0 0 0.5px rgba(90,70,40,0.10);
}

/* ============================================================
   RESET & BASE
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: 16px; scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  background: var(--clr-parchment);
  color: var(--clr-ink);
  line-height: 1.7;
  font-weight: 400;
}

a { color: var(--clr-sprout-dark); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--clr-bloom-dark); }

img { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 500;
  line-height: 1.25;
  color: var(--clr-ink);
}

p { margin-bottom: var(--gap-md); }
p:last-child { margin-bottom: 0; }

ul, ol { padding-left: 1.5rem; }
ul li, ol li { margin-bottom: 0.25rem; }

/* ============================================================
   LAYOUT CONTAINERS
   ============================================================ */

.site-wrapper {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--gap-xl);
}

.container--narrow {
  max-width: 820px;
}

.container--wide {
  max-width: 1400px;
}

/* ============================================================
   SITE HEADER
   ============================================================ */

.site-header {
  background: var(--clr-parchment-dark);
  border-bottom: 1px solid var(--clr-parchment-mid);
  position: sticky;
  top: 0;
  z-index: 100;
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 60px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--gap-xl);
}

.site-logo {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.5rem;
  color: var(--clr-seed-dark);
  letter-spacing: 0.02em;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.site-logo:hover { color: var(--clr-bloom-dark); }

.site-logo__icon { font-size: 1.2rem; }

/* Main Navigation */
.main-nav ul {
  list-style: none;
  padding: 0;
  display: flex;
  gap: 0;
  align-items: center;
}

.main-nav a {
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-ink-light);
  padding: 0 1rem;
  height: 60px;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  border-bottom: 2px solid transparent;
  transition: color 0.2s, border-color 0.2s;
}

.main-nav a:hover,
.main-nav a.current-menu-item,
.main-nav a[aria-current="page"] {
  color: var(--clr-ink);
  border-bottom-color: var(--clr-seed);
}

.main-nav a.nav-seeds:hover,  .main-nav a.nav-seeds.current { border-bottom-color: var(--clr-seed); }
.main-nav a.nav-soil:hover,   .main-nav a.nav-soil.current  { border-bottom-color: var(--clr-soil); }
.main-nav a.nav-sprouts:hover,.main-nav a.nav-sprouts.current { border-bottom-color: var(--clr-sprout); }
.main-nav a.nav-blooms:hover, .main-nav a.nav-blooms.current { border-bottom-color: var(--clr-bloom); }

.hamburger {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
  color: var(--clr-ink-mid);
  font-size: 1.5rem;
  line-height: 1;
}

/* ============================================================
   HEADER ACTIONS (search toggle, RSS) + SEARCH PANEL
   ============================================================ */

.site-header__actions {
  display: flex;
  align-items: center;
  gap: 2px;
}

.header-icon-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 0.95rem;
  color: var(--clr-ink-mid);
  transition: background 0.2s;
}

.header-icon-btn:hover { background: var(--clr-parchment-mid); }

.site-search {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.25s ease, padding 0.25s ease;
  background: var(--clr-parchment);
  border-bottom: 0px solid var(--clr-parchment-mid);
}

.site-search.open {
  max-height: 80px;
  border-bottom-width: 1px;
}

.site-search__form {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0.85rem var(--gap-xl);
  display: flex;
  gap: 0.5rem;
}

.site-search__input {
  flex: 1;
  font-family: var(--font-body);
  font-size: 0.9rem;
  padding: 8px 14px;
  border: var(--border-mid);
  border-radius: var(--radius-pill);
  background: #fff;
  color: var(--clr-ink);
}

.site-search__input:focus { outline: 2px solid var(--clr-sprout-border); }

.site-search__submit {
  font-family: var(--font-body);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0 18px;
  border: none;
  border-radius: var(--radius-pill);
  background: var(--clr-ink);
  color: var(--clr-parchment);
  cursor: pointer;
  transition: background 0.2s;
}

.site-search__submit:hover { background: var(--clr-sprout-dark); }

/* ============================================================
   FILTER BAR (Garden Map page)
   ============================================================ */

.filter-bar {
  background: var(--clr-parchment);
  border-bottom: var(--border);
  padding: 0.6rem var(--gap-xl);
  display: flex;
  gap: 0.5rem;
  align-items: center;
  flex-wrap: wrap;
}

.filter-bar__label {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--clr-ink-faint);
  margin-right: 0.25rem;
}

.filter-btn {
  font-family: var(--font-body);
  font-size: 0.65rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  padding: 3px 12px;
  border-radius: var(--radius-pill);
  border: var(--border-mid);
  background: var(--clr-parchment);
  color: var(--clr-ink-mid);
  cursor: pointer;
  transition: all 0.2s;
  text-decoration: none;
}

.filter-btn:hover,
.filter-btn.active {
  background: var(--clr-ink);
  color: var(--clr-parchment);
  border-color: var(--clr-ink);
}

.filter-btn--seeds  { border-color: var(--clr-seed-border); color: var(--clr-seed-text); }
.filter-btn--seeds.active, .filter-btn--seeds:hover  { background: var(--clr-seed); color: white; border-color: var(--clr-seed); }

.filter-btn--soil   { border-color: var(--clr-soil-border); color: var(--clr-soil-text); }
.filter-btn--soil.active, .filter-btn--soil:hover   { background: var(--clr-soil); color: white; border-color: var(--clr-soil); }

.filter-btn--sprouts{ border-color: var(--clr-sprout-border); color: var(--clr-sprout-text); }
.filter-btn--sprouts.active, .filter-btn--sprouts:hover { background: var(--clr-sprout); color: white; border-color: var(--clr-sprout); }

.filter-btn--blooms { border-color: var(--clr-bloom-border); color: var(--clr-bloom-text); }
.filter-btn--blooms.active, .filter-btn--blooms:hover { background: var(--clr-bloom); color: white; border-color: var(--clr-bloom); }

.filter-divider {
  width: 1px;
  height: 16px;
  background: var(--clr-parchment-mid);
  margin: 0 0.5rem;
}

/* ============================================================
   TAG CLOUD (Garden Map quick-filter)
   ============================================================ */

.tag-cloud {
  background: var(--clr-parchment);
  border-bottom: var(--border);
  padding: 0.6rem var(--gap-xl) 0.8rem;
  display: flex;
  gap: 0.4rem;
  align-items: center;
  flex-wrap: wrap;
}

.tag-cloud__item {
  font-size: 0.68rem;
  padding: 3px 10px;
  border-radius: var(--radius-pill);
  border: var(--border-mid);
  background: #fff;
  color: var(--clr-ink-mid);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: all 0.2s;
}

.tag-cloud__item:hover,
.tag-cloud__item.active {
  background: var(--clr-ink);
  color: var(--clr-parchment);
  border-color: var(--clr-ink);
}

.tag-cloud__count {
  font-size: 0.6rem;
  opacity: 0.6;
}

/* ============================================================
   GARDEN MAP — MOSAIC GRID
   ============================================================ */

.garden-map {
  padding: var(--gap-lg) var(--gap-xl);
}

.garden-map__section-label {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--clr-ink-faint);
  padding-bottom: 0.5rem;
  margin-bottom: var(--gap-md);
  border-bottom: var(--border);
  grid-column: 1 / -1;
}

.mosaic-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  max-width: 1200px;
  margin: 0 auto;
}

/* ============================================================
   ENTRY CARDS
   ============================================================ */

.entry-card {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius-md);
  padding: 1rem 1.1rem 0.9rem;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.25s, transform 0.2s;
  box-shadow: var(--shadow-card);
}

.entry-card:hover {
  box-shadow: var(--shadow-hover);
  transform: translateY(-2px);
}

.entry-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
}

.entry-card--seed::before   { background: var(--clr-seed); }
.entry-card--soil::before   { background: var(--clr-soil); }
.entry-card--sprout::before { background: var(--clr-sprout); }
.entry-card--bloom::before  { background: var(--clr-bloom); }

/* Wide cards span 2 columns */
.entry-card--wide { grid-column: span 2; }

/* Background watermark emoji */
.entry-card__watermark {
  position: absolute;
  right: -12px;
  bottom: -16px;
  font-size: 64px;
  opacity: 0.04;
  pointer-events: none;
  user-select: none;
  line-height: 1;
}

/* Cover thumbnail (shown instead of the watermark when a featured image is set) */
.entry-card__thumb {
  display: block;
  margin: -1rem -1.1rem 0.75rem;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--clr-parchment-dark);
}

.entry-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.entry-card:hover .entry-card__thumb img { transform: scale(1.04); }

.entry-card--has-thumb.entry-card--wide .entry-card__thumb { aspect-ratio: 21 / 9; }

.entry-card__type-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}

.entry-card__type-icon { font-size: 14px; }

.entry-card__type-label {
  font-size: 0.6rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 500;
}

.type-color--seed   { color: var(--clr-seed-text); }
.type-color--soil   { color: var(--clr-soil-text); }
.type-color--sprout { color: var(--clr-sprout-text); }
.type-color--bloom  { color: var(--clr-bloom-text); }

.entry-card__title {
  font-family: var(--font-display);
  font-size: 1.05rem;
  line-height: 1.3;
  margin-bottom: 0.4rem;
  color: var(--clr-ink);
  font-weight: 500;
  flex-grow: 1;
}

.entry-card__title a {
  color: inherit;
  text-decoration: none;
}
.entry-card__title a:hover { color: var(--clr-bloom-dark); }

.entry-card__excerpt {
  font-size: 0.8rem;
  line-height: 1.6;
  color: var(--clr-ink-light);
  margin-bottom: 0.75rem;
}

.entry-card__tags {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
}

.entry-card__dates {
  display: flex;
  gap: 12px;
  padding-top: 0.6rem;
  border-top: var(--border);
  margin-top: auto;
}

.entry-card__date {
  font-size: 0.65rem;
  color: var(--clr-ink-faint);
}

.entry-card__date strong {
  color: var(--clr-ink-light);
  font-weight: 500;
}

/* ============================================================
   TAGS & BADGES
   ============================================================ */

.tag {
  display: inline-block;
  font-size: 0.65rem;
  padding: 2px 9px;
  border-radius: var(--radius-pill);
  background: var(--clr-parchment-dark);
  color: var(--clr-ink-light);
  border: var(--border-mid);
  text-decoration: none;
  transition: all 0.2s;
  white-space: nowrap;
}

.tag:hover {
  background: var(--clr-ink);
  color: var(--clr-parchment);
  border-color: var(--clr-ink);
}

/* Soil sub-type badges */
.soil-subtype {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 0.6rem;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  border: 0.5px solid;
  font-weight: 400;
  letter-spacing: 0.03em;
}

.soil-subtype--book     { background: var(--clr-book-bg);    color: var(--clr-book-text);    border-color: var(--clr-book-border); }
.soil-subtype--podcast  { background: var(--clr-podcast-bg); color: var(--clr-podcast-text); border-color: var(--clr-podcast-border); }
.soil-subtype--video    { background: var(--clr-video-bg);   color: var(--clr-video-text);   border-color: var(--clr-video-border); }
.soil-subtype--article  { background: var(--clr-article-bg); color: var(--clr-article-text); border-color: var(--clr-article-border); }
.soil-subtype--essay    { background: var(--clr-essay-bg);   color: var(--clr-essay-text);   border-color: var(--clr-essay-border); }
.soil-subtype--diary    { background: var(--clr-diary-bg);   color: var(--clr-diary-text);   border-color: var(--clr-diary-border); }
.soil-subtype--review   { background: var(--clr-review-bg);  color: var(--clr-review-text);  border-color: var(--clr-review-border); }
.soil-subtype--news     { background: var(--clr-article-bg); color: var(--clr-article-text); border-color: var(--clr-article-border); }

/* ============================================================
   SINGLE ENTRY LAYOUT
   ============================================================ */

.single-entry {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: var(--gap-xl);
  padding: var(--gap-xl);
  max-width: 1200px;
  margin: 0 auto;
  align-items: start;
}

/* Article */
.entry-article {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-card);
}

.entry-article__header {
  padding: var(--gap-lg) var(--gap-lg) 0;
  border-top: 4px solid var(--clr-bloom);
}

.entry-article__header--seed   { border-top-color: var(--clr-seed); }
.entry-article__header--soil   { border-top-color: var(--clr-soil); }
.entry-article__header--sprout { border-top-color: var(--clr-sprout); }
.entry-article__header--bloom  { border-top-color: var(--clr-bloom); }

.entry-article__stage-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 0.5rem;
  flex-wrap: wrap;
}

.entry-article__stage-icon { font-size: 1.2rem; }

.entry-article__stage-label {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 500;
}

.entry-article__title {
  font-family: var(--font-display);
  font-size: 2rem;
  font-style: italic;
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 0.75rem;
  color: var(--clr-ink);
}

.entry-article__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap-lg);
  padding-bottom: var(--gap-md);
  border-bottom: var(--border);
  margin-bottom: var(--gap-md);
}

.entry-article__meta-item {
  font-size: 0.75rem;
  color: var(--clr-ink-faint);
  display: flex;
  align-items: center;
  gap: 4px;
}

.entry-article__meta-item strong {
  color: var(--clr-ink-light);
  font-weight: 500;
}

/* Article source (Soil only) */
.entry-article__source {
  font-size: 0.8rem;
  color: var(--clr-ink-light);
  margin-bottom: var(--gap-md);
  padding: 0.6rem 1rem;
  background: var(--clr-parchment);
  border-radius: var(--radius-sm);
  border-left: 3px solid var(--clr-soil);
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Cover image */
.entry-article__cover {
  margin: var(--gap-md) 0 0;
  max-height: 420px;
  overflow: hidden;
}

.entry-article__cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.entry-article__body {
  padding: 0 var(--gap-lg) var(--gap-lg);
}

.entry-article__body h2 { font-size: 1.3rem; margin: 1.5rem 0 0.5rem; }
.entry-article__body h3 { font-size: 1.1rem; margin: 1.25rem 0 0.4rem; }
.entry-article__body p  { font-size: 0.95rem; line-height: 1.8; color: var(--clr-ink-mid); }
.entry-article__body ul,
.entry-article__body ol { font-size: 0.95rem; color: var(--clr-ink-mid); margin-bottom: var(--gap-md); }
.entry-article__body blockquote {
  border-left: 3px solid var(--clr-bloom-border);
  padding: 0.75rem 1rem;
  margin: var(--gap-md) 0;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.1rem;
  color: var(--clr-ink-mid);
  background: var(--clr-bloom-bg);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

.entry-article__footer {
  padding: var(--gap-md) var(--gap-lg);
  border-top: var(--border);
  background: var(--clr-parchment);
}

.entry-article__footer-tags {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.entry-article__footer-label {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--clr-ink-faint);
  margin-right: 4px;
}

/* ============================================================
   SIDEBAR
   ============================================================ */

.entry-sidebar {
  position: sticky;
  top: 80px;
  display: flex;
  flex-direction: column;
  gap: var(--gap-md);
}

.sidebar-card {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius-md);
  padding: var(--gap-md);
  box-shadow: var(--shadow-card);
}

.sidebar-card__title {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--clr-ink-faint);
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  gap: 6px;
}

.sidebar-card__title-icon { font-size: 0.9rem; }

/* Cross-pollination */
.cross-pollination__subtitle {
  font-size: 0.65rem;
  color: var(--clr-ink-faint);
  letter-spacing: 0.04em;
  margin-bottom: 0.75rem;
}

.cross-pollination__group-label {
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--clr-ink-faint);
  margin: 0.75rem 0 0.5rem;
  padding-bottom: 4px;
  border-bottom: var(--border);
}

.cross-pollination__group-label:first-of-type { margin-top: 0; }

.cross-pollination__item {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  padding: 6px 0;
  border-bottom: 0.5px solid var(--clr-parchment-dark);
  text-decoration: none;
  transition: background 0.15s;
}

.cross-pollination__item:last-child { border-bottom: none; }

.cross-pollination__item:hover .cross-pollination__item-text { color: var(--clr-bloom-dark); }

.cross-pollination__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  margin-top: 5px;
  flex-shrink: 0;
}

.dot--seed   { background: var(--clr-seed); }
.dot--soil   { background: var(--clr-soil); }
.dot--sprout { background: var(--clr-sprout); }
.dot--bloom  { background: var(--clr-bloom); }

.cross-pollination__item-text {
  font-size: 0.78rem;
  color: var(--clr-ink-mid);
  line-height: 1.4;
}

.cross-pollination__item-tags {
  font-size: 0.65rem;
  color: var(--clr-ink-faint);
  margin-top: 1px;
}

/* Growth stage widget */
.growth-stage__track {
  display: flex;
  gap: 6px;
  margin-top: 4px;
}

.growth-stage__step {
  flex: 1;
  text-align: center;
  padding: 8px 4px;
  border-radius: var(--radius-sm);
  border: var(--border);
  background: var(--clr-parchment);
  opacity: 0.45;
  transition: opacity 0.2s;
}

.growth-stage__step--active {
  opacity: 1;
  border-width: 1.5px;
}

.growth-stage__step--active.step--seed    { background: var(--clr-seed-bg);   border-color: var(--clr-seed-border); }
.growth-stage__step--active.step--soil    { background: var(--clr-soil-bg);   border-color: var(--clr-soil-border); }
.growth-stage__step--active.step--sprout  { background: var(--clr-sprout-bg); border-color: var(--clr-sprout-border); }
.growth-stage__step--active.step--bloom   { background: var(--clr-bloom-bg);  border-color: var(--clr-bloom-border); }

.growth-stage__step-icon  { font-size: 1.1rem; margin-bottom: 2px; }
.growth-stage__step-label { font-size: 0.6rem; color: var(--clr-ink-light); }
.growth-stage__step--active .growth-stage__step-label { font-weight: 500; }

/* ============================================================
   ARCHIVE PAGES
   ============================================================ */

.archive-header {
  padding: var(--gap-xl) var(--gap-xl) var(--gap-md);
  max-width: 1200px;
  margin: 0 auto;
  border-bottom: var(--border);
  display: flex;
  align-items: flex-end;
  gap: var(--gap-lg);
}

.archive-header__icon { font-size: 2.5rem; line-height: 1; }

.archive-header__text { flex: 1; }

.archive-header__title {
  font-family: var(--font-display);
  font-size: 2.2rem;
  font-style: italic;
  font-weight: 500;
  line-height: 1.1;
  margin-bottom: 0.25rem;
}

.archive-header__title--seed   { color: var(--clr-seed-dark); }
.archive-header__title--soil   { color: var(--clr-soil-dark); }
.archive-header__title--sprout { color: var(--clr-sprout-dark); }
.archive-header__title--bloom  { color: var(--clr-bloom-dark); }

.archive-header__desc {
  font-size: 0.9rem;
  color: var(--clr-ink-light);
  margin: 0;
}

.archive-header__count {
  font-size: 0.75rem;
  color: var(--clr-ink-faint);
  margin-top: 4px;
}

/* ============================================================
   SITE FOOTER
   ============================================================ */

.site-footer {
  margin-top: auto;
  background: var(--clr-parchment-dark);
  border-top: 1px solid var(--clr-parchment-mid);
  padding: var(--gap-xl) var(--gap-xl);
}

.site-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: var(--gap-xl);
  padding-bottom: var(--gap-lg);
  border-bottom: var(--border);
  margin-bottom: var(--gap-md);
}

.site-footer__col-title {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--clr-ink-faint);
  margin-bottom: 0.75rem;
}

.site-footer__links {
  list-style: none;
  padding: 0;
}

.site-footer__links li { margin-bottom: 0.4rem; }

.site-footer__links a {
  font-size: 0.85rem;
  color: var(--clr-ink-light);
}

.site-footer__links a:hover { color: var(--clr-bloom-dark); }

.site-footer__bottom {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.site-footer__copy {
  font-size: 0.75rem;
  color: var(--clr-ink-faint);
  font-style: italic;
  font-family: var(--font-display);
}

/* ============================================================
   BOTANICAL DECORATIONS
   ============================================================ */

/* Decorative divider */
.botanical-divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: var(--gap-xl) 0;
  color: var(--clr-ink-faint);
  font-size: 1rem;
}

.botanical-divider::before,
.botanical-divider::after {
  content: '';
  flex: 1;
  height: 0.5px;
  background: var(--clr-parchment-mid);
}

/* Page hero with botanical texture */
.garden-hero {
  background: var(--clr-parchment-dark);
  padding: var(--gap-2xl) var(--gap-xl);
  text-align: center;
  border-bottom: 1px solid var(--clr-parchment-mid);
  position: relative;
  overflow: hidden;
}

.garden-hero__title {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 3rem;
  color: var(--clr-seed-dark);
  margin-bottom: 0.5rem;
}

.garden-hero__subtitle {
  font-size: 0.9rem;
  color: var(--clr-ink-light);
  max-width: 600px;
  margin: 0 auto 1.5rem;
}

/* Stage count pills in hero */
.garden-hero__stats {
  display: flex;
  justify-content: center;
  gap: var(--gap-md);
  flex-wrap: wrap;
}

.hero-stat {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  padding: 5px 14px;
  border-radius: var(--radius-pill);
  border: var(--border-mid);
  background: #fff;
}

.hero-stat--seed   { border-color: var(--clr-seed-border);   color: var(--clr-seed-text); }
.hero-stat--soil   { border-color: var(--clr-soil-border);   color: var(--clr-soil-text); }
.hero-stat--sprout { border-color: var(--clr-sprout-border); color: var(--clr-sprout-text); }
.hero-stat--bloom  { border-color: var(--clr-bloom-border);  color: var(--clr-bloom-text); }

/* ============================================================
   START HERE PANEL
   ============================================================ */

.start-here {
  background: var(--clr-parchment-dark);
  border-bottom: var(--border);
  padding: var(--gap-xl) 0;
}

.start-here__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--gap-xl);
  text-align: center;
}

.start-here__heading {
  font-style: italic;
  font-size: 1.5rem;
  color: var(--clr-ink);
  margin-bottom: 0.4rem;
}

.start-here__intro {
  font-size: 0.85rem;
  color: var(--clr-ink-light);
  max-width: 560px;
  margin: 0 auto var(--gap-lg);
}

.start-here__paths {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--gap-md);
  text-align: left;
}

.start-here__path {
  background: #fff;
  border: var(--border-mid);
  border-radius: var(--radius-md);
  padding: var(--gap-md);
  display: flex;
  flex-direction: column;
  gap: 2px;
  box-shadow: var(--shadow-card);
  transition: box-shadow 0.2s, transform 0.2s;
}

.start-here__path:hover {
  box-shadow: var(--shadow-hover);
  transform: translateY(-2px);
}

.start-here__path-icon { font-size: 1.4rem; margin-bottom: 4px; }

.start-here__path-label {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--clr-ink);
}

.start-here__path-desc {
  font-size: 0.78rem;
  color: var(--clr-ink-faint);
  margin-bottom: 6px;
}

.start-here__path-title {
  font-size: 0.8rem;
  color: var(--clr-sprout-dark);
  font-weight: 500;
}

/* ============================================================
   BLOG (standard WordPress posts — About page)
   ============================================================ */

.blog-list {
  display: flex;
  flex-direction: column;
  gap: var(--gap-lg);
  max-width: 760px;
  margin: 0 auto;
}

.blog-list-wrap {
  padding: var(--gap-lg) var(--gap-xl);
}

.blog-card {
  display: flex;
  gap: var(--gap-lg);
  background: #fff;
  border: var(--border);
  border-radius: var(--radius-md);
  padding: var(--gap-lg);
  box-shadow: var(--shadow-card);
  transition: box-shadow 0.25s, transform 0.2s;
}

.blog-card:hover {
  box-shadow: var(--shadow-hover);
  transform: translateY(-2px);
}

.blog-card__thumb {
  flex-shrink: 0;
  width: 160px;
  height: 120px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  display: block;
  background: var(--clr-parchment-dark);
}

.blog-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.blog-card__body {
  flex: 1;
  min-width: 0;
}

.blog-card__meta {
  display: flex;
  gap: 10px;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--clr-ink-faint);
  margin-bottom: 0.4rem;
}

.blog-card__cat {
  color: var(--clr-sprout-dark);
  font-weight: 500;
}

.blog-card__title {
  font-family: var(--font-display);
  font-size: 1.3rem;
  margin-bottom: 0.4rem;
}

.blog-card__title a {
  color: var(--clr-ink);
  text-decoration: none;
}

.blog-card__title a:hover { color: var(--clr-bloom-dark); }

.blog-card__excerpt {
  font-size: 0.88rem;
  color: var(--clr-ink-light);
  line-height: 1.6;
  margin-bottom: 0.5rem;
}

.blog-card__readmore {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--clr-sprout-dark);
}

/* Single blog post */
.blog-single-wrap {
  max-width: 760px;
  margin: 0 auto;
  padding: var(--gap-xl);
}

.blog-article {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.blog-article__cover img {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
}

.blog-article__header {
  padding: var(--gap-lg) var(--gap-lg) 0;
}

.blog-article__title {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 2rem;
  margin-bottom: 0.5rem;
  color: var(--clr-ink);
}

.blog-article__meta {
  display: flex;
  gap: var(--gap-md);
  font-size: 0.78rem;
  color: var(--clr-ink-faint);
  padding-bottom: var(--gap-md);
  border-bottom: var(--border);
  margin-bottom: var(--gap-md);
}

.blog-article__cats a {
  color: var(--clr-sprout-dark);
}

.blog-article__body {
  padding: 0 var(--gap-lg) var(--gap-lg);
}

.blog-article__body p { font-size: 0.95rem; line-height: 1.8; color: var(--clr-ink-mid); }

.blog-article__footer {
  padding: var(--gap-md) var(--gap-lg);
  border-top: var(--border);
  background: var(--clr-parchment);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.blog-article__footer-label {
  font-size: 0.65rem;
  text-transform: uppercase;
  color: var(--clr-ink-faint);
  margin-right: 4px;
}

.blog-single-nav {
  display: flex;
  justify-content: space-between;
  padding-top: var(--gap-lg);
}

.blog-single-nav__link {
  font-size: 0.82rem;
  color: var(--clr-ink-light);
}

/* ============================================================
   PAGINATION
   ============================================================ */

.pagination {
  display: flex;
  justify-content: center;
  gap: 6px;
  padding: var(--gap-xl) 0;
}

.pagination ul,
.pagination ul.page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.pagination li {
  list-style: none;
  display: flex;
}

.pagination a,
.pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-sm);
  font-size: 0.8rem;
  border: var(--border-mid);
  color: var(--clr-ink-mid);
  transition: all 0.2s;
  text-decoration: none;
}

.pagination a:hover { background: var(--clr-ink); color: var(--clr-parchment); border-color: var(--clr-ink); }
.pagination .current { background: var(--clr-seed-dark); color: white; border-color: var(--clr-seed-dark); }

/* ============================================================
   NO RESULTS
   ============================================================ */

.no-entries {
  text-align: center;
  padding: var(--gap-2xl);
  color: var(--clr-ink-faint);
}

.no-entries__icon { font-size: 3rem; margin-bottom: var(--gap-md); opacity: 0.4; }
.no-entries__title { font-family: var(--font-display); font-size: 1.5rem; font-style: italic; color: var(--clr-ink-light); }

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 960px) {
  .mosaic-grid { grid-template-columns: repeat(2, 1fr); }
  .entry-card--wide { grid-column: span 2; }
  .single-entry { grid-template-columns: 1fr; }
  .entry-sidebar { position: static; }
  .site-footer__inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 680px) {
  .mosaic-grid { grid-template-columns: 1fr; }
  .entry-card--wide { grid-column: span 1; }
  .main-nav { display: none; }
  .main-nav.open { display: block; position: absolute; top: 60px; left: 0; right: 0; background: var(--clr-parchment-dark); border-bottom: var(--border); }
  .main-nav.open ul { flex-direction: column; }
  .main-nav.open a { height: 44px; padding: 0 var(--gap-xl); }
  .hamburger { display: block; }
  .site-footer__inner { grid-template-columns: 1fr; }
  .garden-hero__title { font-size: 2rem; }
  .filter-bar, .tag-cloud { padding: 0.6rem var(--gap-md); }
  .garden-map, .single-entry { padding: var(--gap-md); }
  .archive-header { padding: var(--gap-lg) var(--gap-md) var(--gap-sm); }
  .site-search__form { padding: 0.75rem var(--gap-md); }
  .start-here__inner { padding: 0 var(--gap-md); }
  .start-here__paths { grid-template-columns: 1fr; }
  .blog-card { flex-direction: column; }
  .blog-card__thumb { width: 100%; height: 180px; }
  .blog-list-wrap { padding: var(--gap-md); }
  .blog-single-wrap { padding: var(--gap-md); }
}

/* ============================================================
   PRINT
   ============================================================ */

@media print {
  .site-header, .filter-bar, .tag-cloud, .start-here, .entry-sidebar, .site-footer { display: none; }
  .single-entry { display: block; }
  .entry-article { box-shadow: none; border: 1px solid #ccc; }
}
