/* T13 Forage calendar (Figma 31:991). Page layout only; tokens from css/v2. */
.fc-hero { padding: 32px 0 48px; }
.fc-hero .psb-hero__title { font-size: clamp(2.75rem, 1.4rem + 5vw, 5.5rem); }
.fc-hero .psb-hero__lead { max-width: 860px; color: var(--ink-900); }
.fc-months { margin-top: 24px !important; gap: 8px; }
.fc-months .psb-pill { padding: 8px 14px; }
.fc-months abbr { text-decoration: none; }

/* season chart */
.fc-wrap { border-radius: var(--radius-card); }
.fc-wrap:focus-visible { outline: 3px solid var(--sky-600); outline-offset: 3px; }
.fc-table { min-width: 880px; table-layout: fixed; }
.fc-table th:first-child { width: 260px; }
.fc-table thead th { padding: 14px 4px; text-align: center; font: 500 12px/1.3 var(--font-mono); }
.fc-table thead th:first-child { padding-left: 20px; text-align: left; font: 700 12px/1.3 var(--font-body); }
.fc-table thead th.is-sel { color: var(--butter-500); }
.fc-table abbr { text-decoration: none; }
.fc-table tbody tr th[scope="row"] { padding: 8px 20px; text-align: left; font: 700 14px/1.3 var(--font-body); background: transparent; color: var(--text-primary); border-top: 1px solid var(--border-default); white-space: nowrap; }
.fc-table tbody th a { color: inherit; text-decoration: none; }
.fc-table tbody th a:hover { text-decoration: underline; }
.fc-table tbody tr:nth-child(even) th[scope="row"] { background: var(--bg-subtle); }
.fc-table td { padding: 8px 3px; }
.fc-bar { display: block; height: 24px; border-radius: var(--radius-pill); }
.fc-bar:not(.fc-none) { border: 1.5px solid var(--ink-900); background: var(--bar); }
.fc-butter { --bar: var(--butter-500); } .fc-tomato { --bar: var(--tomato-100); } .fc-cream { --bar: var(--cream-200); }
.fc-white { --bar: var(--cream-0); } .fc-sky { --bar: var(--sky-300); } .fc-pink { --bar: var(--pink-300); } .fc-mint { --bar: var(--pine-100); }
.fc-table td.is-sel .fc-bar:not(.fc-none) { border: 2.5px solid var(--tomato-600); }
.fc-table td.is-sel .fc-none { border: 1.5px dashed var(--tomato-600); }
:root[data-theme="dark"] .fc-table td.is-sel .fc-bar:not(.fc-none),
:root[data-theme="dark"] .fc-table td.is-sel .fc-none { border-color: var(--tomato-500); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .fc-table td.is-sel .fc-bar:not(.fc-none),
  :root:not([data-theme="light"]) .fc-table td.is-sel .fc-none { border-color: var(--tomato-500); }
}
.psb .fc-note { margin-top: 12px; }

/* in-season cards */
.psb .fc-now-over { color: var(--tomato-700); }
.fc-cards { list-style: none; margin: 0; padding: 0; }
.fc-card { height: 100%; padding: 20px; gap: 6px; }
.fc-card .psb-media { margin-bottom: 10px; }
.fc-card .psb-media svg.psb-shroom { width: 34%; }
.psb .fc-card h3 { font-size: 22px; }
.fc-card .psb-caption i { font-style: normal; }
.fc-where { font-size: var(--fs-body-s); color: var(--text-secondary); }
.psb .fc-id { margin-top: 4px; font-weight: 700; font-size: var(--fs-body-s); color: var(--text-primary); text-decoration: none; }
.fc-id:hover { text-decoration: underline !important; }

/* safety + kit */
.fc-bottom { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px 32px; align-items: start; }
.fc-warn ul { list-style: none; padding: 0; gap: 12px; font-size: 17px; color: var(--ink-900); }
.fc-warn li::before { content: "•"; margin-right: 10px; }
.psb .fc-warn .psb-overline { color: var(--tomato-600); }
.fc-kit .psb-row { grid-template-columns: auto 110px minmax(0, 1fr); }
.fc-kit .psb-row__side { grid-column: 3; justify-items: start; grid-auto-flow: column; justify-content: space-between; align-items: center; }
@media (max-width: 1000px) { .fc-bottom { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
  .fc-kit .psb-row { grid-template-columns: 72px minmax(0, 1fr); }
  .fc-kit .psb-row__side { grid-column: 1 / -1; }
  .fc-table th:first-child { width: 190px; }
  .fc-table tbody th { white-space: normal; }
}

/* Page-local workarounds for shared specificity issues (".psb h2/h3/p" beat
   single-class components). Candidates for templates.css - see report. */
.psb h2.psb-overline, .psb h3.psb-overline { font: 700 var(--fs-caption)/1.33 var(--font-body); letter-spacing: .06em; text-transform: uppercase; }
.psb h3.psb-card__title { font: 700 19px/1.32 var(--font-body); }
.psb .psb-disclosure { display: block; }
.psb .psb-disclosure::before { margin-right: 8px; }
@media (max-width: 600px) { .psb .psb-grid { --cols: 1 !important; } } /* components.css :not() rule outranks its own 600px rule */
