.fc-hero { margin-block: 1rem 1.5rem; }
.fc-hero img { display: block; width: 100%; height: clamp(190px,30vw,360px); object-fit: cover; border-radius: 0.8rem; }
.fc-hero figcaption { font-size: 0.95rem; line-height: 1.5; margin-top: 0.5rem; color: inherit; opacity: 0.85; }
.fc-lead, .fc-intro { font-size: 1.15rem; line-height: 1.7; margin-block: 1.3rem; }
.fc-prize, .fc-preview-note, .fc-scenario { color: #243f4a; padding: 1rem 1.2rem; border: 1px solid #b8b6aa; border-left: 5px solid #285d48; border-radius: 0.4rem; background: #eef3e7; margin-block: 1.3rem; }
.fc-preview-note { background: #f7efd9; border-left-color: #806528; }
.fc-prize > :last-child, .fc-preview-note > :last-child, .fc-scenario > :last-child { margin-bottom: 0; }
.forest-choice { --fc-ink: #243f4a; --fc-muted: #52605a; --fc-green: #285d48; --fc-blue: #245b78; --fc-red: #963e32; --fc-line: #b8b6aa; --fc-paper: #fffdf6; --bs-body-color: var(--fc-ink); --bs-heading-color: var(--fc-ink); --bs-emphasis-color: var(--fc-ink); color: var(--fc-ink); color-scheme: light; font-size: 1.05rem; line-height: 1.6; margin-block: 1.5rem; }
.forest-choice .fc-view { padding: clamp(1rem,3vw,1.6rem); border: 1px solid var(--fc-line); border-radius: 0.8rem; background: var(--fc-paper); overflow: hidden; }
.forest-choice h3, .forest-choice h4 { color: var(--fc-ink); }
.forest-choice h3 { font-size: 1.6rem; line-height: 1.3; margin-block: 0.3rem 1rem; }
.forest-choice h3:focus { outline: none; }
.forest-choice h4 { font-size: 1.2rem; line-height: 1.3; }
.forest-choice .fc-eyebrow { font-size: 0.85rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--fc-muted); margin-block: 0 0.4rem; }
.forest-choice .fc-help, .forest-choice small, .forest-choice .fc-character-count { color: var(--fc-muted); font-size: 0.92rem; }
.forest-choice .fc-mode, .forest-choice .fc-message, .forest-choice .fc-storage-note { border-left: 4px solid var(--fc-blue); padding: 0.8rem 1rem; background: #eaf0f2; margin-block: 0 1rem; }
.forest-choice .fc-mode-preview { border-color: #806528; background: #f7efd9; }
.forest-choice .fc-mode-live, .forest-choice .fc-message-success { border-color: var(--fc-green); background: #e9f1e9; }
.forest-choice .fc-message-error, .forest-choice .fc-storage-note { border-color: var(--fc-red); background: #f6eae5; }
.forest-choice .fc-prize-note { background: #eef3e7; padding: 0.9rem 1rem; border: 1px solid #bdc9b7; border-radius: 0.5rem; margin-block: 1rem; font-size: 0.94rem; }
.forest-choice button { border: 2px solid var(--fc-green); border-radius: 0.4rem; padding: 0.7rem 1.1rem; min-height: 3rem; background: var(--fc-green); color: white; font: inherit; font-weight: 700; cursor: pointer; }
.forest-choice button:hover { filter: brightness(0.94); }
.forest-choice button:disabled { background: #68756e; border-color: #68756e; cursor: default; }
.forest-choice .fc-secondary { background: transparent; color: var(--fc-green); }
.forest-choice :is(button,input,select,textarea,summary):focus-visible { outline: 3px solid #b0791d; outline-offset: 3px; }
.forest-choice label { font-weight: 600; }
.forest-choice input[type="text"], .forest-choice select, .forest-choice textarea { display: block; font: inherit; color: var(--fc-ink); background: white; border: 1px solid #78847e; border-radius: 0.35rem; padding: 0.65rem; max-width: 100%; }
.forest-choice input[type="text"] { text-transform: uppercase; width: 7rem; }
.forest-choice textarea { width: 100%; margin-top: 0.5rem; }
.forest-choice select { width: 100%; }
.forest-choice .fc-code-entry { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-block: 0.5rem 1rem; }
.forest-choice .fc-welcome > svg { width: 3.5rem; height: 3.5rem; stroke: var(--fc-green); stroke-width: 2.4; fill: #d6e3b8; margin-bottom: 0.6rem; }
.forest-choice .fc-choice-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.7rem; }
.forest-choice .fc-choice-count { white-space: nowrap; font-size: 0.85rem; color: var(--fc-muted); padding-top: 0.25rem; }
.forest-choice .fc-steps { display: grid; grid-template-columns: repeat(var(--fc-step-count,12),minmax(0,1fr)); gap: 0.4rem; list-style: none; padding: 0; margin-block: 0.8rem 1.2rem; }
.forest-choice .fc-steps li { text-align: center; padding: 0.3rem; border-bottom: 3px solid #d9ddcf; color: var(--fc-muted); font-size: 0.9rem; }
.forest-choice .fc-steps .fc-step-current { color: var(--fc-blue); border-color: var(--fc-blue); font-weight: 700; }
.forest-choice .fc-steps .fc-step-done { border-color: var(--fc-green); }
.forest-choice .fc-binding-note { background: #eef3e7; border-left: 4px solid var(--fc-green); padding: 0.7rem 0.9rem; border-radius: 0.3rem; margin-block: 1rem; font-size: 0.96rem; }
.forest-choice fieldset { border: 0; margin: 1.2rem 0; padding: 0; min-width: 0; }
.forest-choice legend { float: none; color: var(--fc-ink); font-size: 1.1rem; font-weight: 700; margin-bottom: 0.8rem; }
.forest-choice .fc-plans { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0.7rem; }
.forest-choice .fc-plan { display: flex; flex-direction: column; min-width: 0; border: 2px solid #a6b6aa; border-radius: 0.65rem; padding: 0.85rem; background: white; cursor: pointer; }
.forest-choice .fc-plan-heading { display: flex; align-items: center; gap: 0.6rem; min-height: 4.2rem; border-bottom: 1px solid #d5ddcf; padding-bottom: 0.6rem; }
.forest-choice .fc-plan-heading input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; accent-color: var(--fc-green); }
.forest-choice .fc-plan-heading h4 { margin: 0; flex: 1; }
.forest-choice .fc-plan-mark { flex: 0 0 auto; width: 1.9rem; height: 1.9rem; }
.forest-choice .fc-plan-mark svg { width: 100%; height: 100%; stroke: var(--fc-green); stroke-width: 2.3; fill: #d6e3b8; }
.forest-choice .fc-scale-label { margin: 0.7rem 0 0; font-size: 0.8rem; color: var(--fc-muted); font-weight: 400; }
.forest-choice .fc-plan dl { margin: 0; font-weight: 400; flex: 1; }
.forest-choice .fc-plan dl > div { padding-block: 0.7rem; border-bottom: 1px solid #e0e4d9; }
.forest-choice .fc-plan dt { font-weight: 400; color: var(--fc-muted); font-size: 0.83rem; line-height: 1.4; margin-bottom: 0.2rem; }
.forest-choice .fc-plan dd { margin: 0; font-size: 0.98rem; line-height: 1.4; }
.forest-choice .fc-plan dd small { font-size: 0.78rem; }
.forest-choice .fc-plan dd > small { display: block; }
.forest-choice .fc-plan dd strong { font-size: 1.65rem; color: var(--fc-blue); }
.forest-choice .fc-cash, .forest-choice .fc-cost, .forest-choice .fc-support, .forest-choice .fc-contribution { min-height: 4.8rem; }
.forest-choice .fc-cost dd strong { color: var(--fc-red); }
.forest-choice .fc-support dd strong { color: var(--fc-green); }
.forest-choice .fc-gift-total { min-height: 8.4rem; margin-block: 0.7rem 0; font-size: 0.92rem; font-weight: 400; line-height: 1.5; color: var(--fc-ink); }
.forest-choice .fc-pick-label { display: block; text-align: center; border: 1px solid #93aa98; border-radius: 0.3rem; padding: 0.45rem 0.2rem; color: var(--fc-green); font-weight: 700; font-size: 0.87rem; margin-top: 0.8rem; }
.forest-choice .fc-selected { border-color: var(--fc-green); box-shadow: 0 0 0 1px var(--fc-green); background: #f1f6ed; }
.forest-choice .fc-selected .fc-pick-label { background: var(--fc-green); border-color: var(--fc-green); color: white; }
.forest-choice .fc-navigation { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 0.8rem; margin-block: 1rem; }
.forest-choice .fc-navigation .fc-secondary { margin-right: auto; }
.forest-choice .fc-choice-log { list-style: none; padding: 0; margin-block: 1.2rem; }
.forest-choice .fc-choice-log li { display: grid; grid-template-columns: 2rem minmax(0,1fr); gap: 0.7rem; padding: 0.8rem 0; border-bottom: 1px solid var(--fc-line); }
.forest-choice .fc-log-number { border-radius: 50%; width: 2rem; height: 2rem; text-align: center; background: #eef3e7; color: var(--fc-green); font-weight: 700; }
.forest-choice .fc-choice-log li > div > span { display: block; color: var(--fc-muted); font-size: 0.9rem; margin-top: 0.2rem; }
.forest-choice .fc-review-form { margin-top: 1.5rem; }
.forest-choice .fc-review-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.2rem; margin-block: 1rem 1.5rem; }
.forest-choice .fc-review-fields .fc-help { margin-block: 0.3rem 0.6rem; }
.forest-choice .fc-recorded-log { margin-top: 1.5rem; }
.forest-choice summary { cursor: pointer; font-weight: 600; }
.forest-choice .fc-device { background: var(--fc-paper); border: 1px solid var(--fc-line); border-radius: 0.4rem; padding: 0.4rem 1rem; margin-top: 0.5rem; }
.forest-choice .fc-device-actions { display: flex; flex-wrap: wrap; gap: 1rem; }
.forest-choice .fc-link-button { border: 0; background: transparent; color: var(--fc-blue); text-decoration: underline; padding: 0.3rem 0; font-size: 0.92rem; font-weight: 600; }
.forest-choice .fc-clear-confirm { border: 1px solid var(--fc-red); padding: 1rem; border-radius: 0.4rem; margin-block: 0.5rem; }
.forest-choice [hidden] { display: none !important; }
@media (max-width: 650px) {
  .fc-lead, .fc-intro { font-size: 1.05rem; }
  .forest-choice { font-size: 1rem; }
  .forest-choice .fc-view { padding: 0.85rem; }
  .forest-choice .fc-choice-head h3 { font-size: 1.35rem; }
  .forest-choice .fc-choice-count { white-space: normal; text-align: right; max-width: 4rem; line-height: 1.3; }
  .forest-choice .fc-steps { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .forest-choice .fc-plans { grid-template-columns: 1fr; }
  .forest-choice .fc-plan { padding: 0.75rem; }
  .forest-choice .fc-plan-heading { min-height: 0; padding-bottom: 0.55rem; }
  .forest-choice .fc-plan-heading h4 { font-size: 1.15rem; }
  .forest-choice .fc-plan dl > div { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,1.2fr); gap: 0.7rem; padding-block: 0.55rem; min-height: 0; align-items: start; }
  .forest-choice .fc-plan dt { margin: 0; font-size: 0.84rem; }
  .forest-choice .fc-plan dd { font-size: 0.94rem; }
  .forest-choice .fc-gift-total { min-height: 0; }
  .forest-choice .fc-plan-mark { width: 1.6rem; height: 1.6rem; }
  .forest-choice .fc-pick-label { margin-top: 0.6rem; padding: 0.35rem; }
  .forest-choice .fc-review-fields { grid-template-columns: 1fr; }
  .forest-choice .fc-code-entry button { flex: 1; }
}
