/* Crochet post grid v1.0.0 | All selectors scoped; no dependencies or imports. */
.cy-pg {
  --cy-cream: #faf7f2;
  --cy-ink: #283321;
  --cy-sage: #6d775e;
  --cy-badge: #e3e4d5;
  --cy-muted: #686b67;
  --cy-rose: #a6443c;
  --cy-serif: "Baskerville", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  --cy-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 36px 0 28px;
  background: var(--cy-cream);
  color: var(--cy-ink);
  font-family: var(--cy-sans);
  font-size: 16px;
  line-height: 1.55;
  text-align: left;
  isolation: isolate;
}
.cy-pg *, .cy-pg *::before, .cy-pg *::after { box-sizing: border-box; }
.cy-pg .cy-pg__inner { width: 100%; max-width: 1288px; margin: 0 auto; padding: 0 24px; }
.cy-pg .cy-pg__header { display: flex; align-items: center; justify-content: center; gap: 28px; margin: 0 0 30px; padding: 0; }
.cy-pg .cy-pg__intro { min-width: 0; text-align: center; }
.cy-pg .cy-pg__heading { margin: 0 0 4px; padding: 0; color: var(--cy-ink); font: 400 clamp(34px, 3.7vw, 56px)/1.16 var(--cy-serif); letter-spacing: -.025em; text-transform: none; overflow-wrap: anywhere; }
.cy-pg .cy-pg__subtitle { margin: 0; color: var(--cy-muted); font: 400 18px/1.55 var(--cy-sans); }
.cy-pg .cy-pg__sprig { display: block; flex: 0 0 105px; width: 105px; height: 84px; }
.cy-pg .cy-pg__header > .cy-pg__sprig:last-child { transform: scaleX(-1); }
.cy-pg .cy-pg__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 24px; margin: 0; padding: 0; }
.cy-pg .cy-pg__card { display: flex; flex-direction: column; min-width: 0; margin: 0; padding: 0; overflow: hidden; border: 1px solid #fff; border-radius: 12px; background: #fcfaf7; box-shadow: 0 7px 24px rgb(62 52 37 / 4%); }
.cy-pg .cy-pg__media { display: block; position: relative; aspect-ratio: 40 / 21; margin: 0; padding: 0; overflow: hidden; background: #e7e5d9; border-radius: 11px; }
.cy-pg .cy-pg__image { display: block; width: 100%; height: 100%; max-width: none; margin: 0; border: 0; border-radius: 0; object-fit: cover; transition: transform 220ms ease; }
.cy-pg .cy-pg__placeholder { display: grid; width: 100%; height: 100%; place-items: center; background: linear-gradient(135deg, #ebe9dd, #f4eee5); }
.cy-pg .cy-pg__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 12px 17px 14px; }
.cy-pg .cy-pg__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 15px; width: 100%; margin: 0 0 7px; color: var(--cy-muted); font: 400 12px/1.45 var(--cy-sans); }
.cy-pg a { box-shadow: none; text-decoration: none; text-underline-offset: .2em; }
.cy-pg a.cy-pg__category { display: inline-block; max-width: 100%; padding: 2px 10px 3px; border-radius: 999px; background: var(--cy-badge); color: #39402e; font: 400 11px/1.4 var(--cy-sans); letter-spacing: .035em; text-transform: uppercase; overflow-wrap: anywhere; }
.cy-pg .cy-pg__divider { width: 1px; height: 12px; background: #a5a49a; }
.cy-pg .cy-pg__title { width: 100%; margin: 0 0 5px; padding: 0; color: #23271e; font: 400 clamp(21px, 1.6vw, 24px)/1.23 var(--cy-serif); letter-spacing: -.025em; text-transform: none; overflow-wrap: anywhere; }
.cy-pg .cy-pg__title a { color: inherit; }
.cy-pg .cy-pg__excerpt { margin: 0 0 9px; padding: 0; color: var(--cy-muted); font: 400 14px/1.6 var(--cy-sans); overflow-wrap: anywhere; }
.cy-pg a.cy-pg__read { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; margin-top: auto; color: var(--cy-rose); font: 600 14px/1.5 var(--cy-sans); }
.cy-pg .cy-pg__footer { margin-top: 8px; text-align: center; }
.cy-pg a.cy-pg__button { display: inline-flex; justify-content: center; align-items: center; gap: 15px; min-height: 44px; max-width: 100%; padding: 8px 28px; border: 1px solid #727a60; border-radius: 999px; background: var(--cy-sage); color: #fff; font: 400 16px/1.5 var(--cy-serif); box-shadow: inset 0 1px 3px rgb(255 255 255 / 18%); overflow-wrap: anywhere; }
.cy-pg .cy-pg__empty { margin: 20px 0; padding: 25px; border-radius: 12px; background: #eeeee3; text-align: center; }
.cy-pg a:focus-visible { outline: 3px solid #536544; outline-offset: 4px; }
.cy-pg .cy-pg__sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .cy-pg .cy-pg__media:hover .cy-pg__image { transform: scale(1.025); }
}
@media (hover: hover) {
  .cy-pg .cy-pg__title a:hover, .cy-pg a.cy-pg__read:hover, .cy-pg a.cy-pg__category:hover { text-decoration: underline; }
  .cy-pg a.cy-pg__button:hover { background: #697257; }
}
@media (max-width: 999px) {
  .cy-pg .cy-pg__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; }
  .cy-pg .cy-pg__header { gap: 16px; }
  .cy-pg .cy-pg__header > .cy-pg__sprig { flex-basis: 66px; width: 66px; height: 64px; }
  .cy-pg .cy-pg__subtitle { font-size: 16px; }
}
@media (max-width: 639px) {
  .cy-pg { padding: 28px 0; }
  .cy-pg .cy-pg__inner { padding-inline: 20px; }
  .cy-pg .cy-pg__grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .cy-pg .cy-pg__header { margin-bottom: 24px; }
  .cy-pg .cy-pg__header > .cy-pg__sprig { display: none; }
  .cy-pg .cy-pg__heading { font-size: clamp(30px, 8vw, 38px); }
  .cy-pg .cy-pg__body { padding: 14px 16px 15px; }
  .cy-pg a.cy-pg__read { min-height: 44px; }
  .cy-pg a.cy-pg__category { padding-block: 5px; }
  .cy-pg .cy-pg__footer { margin-top: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .cy-pg .cy-pg__image { transition: none; }
}
