.ff{--ff-green:#31594b;--ff-ink:#2d3932;--ff-muted:#5f6a62;--ff-line:#dedfd4;max-width:1100px!important;color:var(--ff-ink);padding-bottom:60px!important}
.ff p{text-align:left}
.ff [hidden],.ff-dialog [hidden]{display:none!important}
.ff-hero{padding:42px 0 30px;border-bottom:1px solid var(--ff-line);display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.ff-eyebrow{font:700 12px/1.5 var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--ff-green)}
.ff h1{font:500 clamp(42px,6vw,70px)/1.12 var(--font-body);margin:10px 0 16px!important;text-align:left!important;color:var(--ff-ink)}
.ff-intro{font-size:21px;max-width:570px;line-height:1.6}
.ff-purpose{font:16px/1.65 var(--font-display);max-width:620px;margin-top:16px;color:var(--ff-ink)}
.ff-hero-art{width:165px;height:165px;color:var(--ff-green);background:#e5eadd;border-radius:50%;padding:22px;transform:rotate(-4deg)}
.ff-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:23px}
.ff button,.ff-dialog button,.ff .ff-button{font:600 15px/1.4 var(--font-display);border-radius:7px;padding:12px 18px;min-height:44px;transition:background .15s;text-decoration:none}
.ff-primary{background:#31594b!important;color:white!important;border:1px solid #31594b!important}
.ff-secondary{background:transparent!important;color:#31594b!important;border:1px solid #899d91!important}
.ff button:hover,.ff-dialog button:hover{filter:brightness(.94)}
.ff button:disabled,.ff-dialog button:disabled{opacity:.6;cursor:wait}
.ff button:focus-visible,.ff a:focus-visible,.ff-dialog button:focus-visible{outline:3px solid #a65028;outline-offset:4px}
.ff-note{font:14px/1.6 var(--font-display);color:var(--ff-muted);margin-top:14px}
.ff-toolbar{display:grid;grid-template-columns:1fr 230px;gap:16px;margin:28px 0 20px;align-items:end}
.ff label,.ff-dialog label{display:block;font:600 14px/1.5 var(--font-display);color:#354a3d;margin:0 0 6px}
.ff input,.ff select,.ff-dialog input:not([type=checkbox]),.ff-dialog select,.ff-dialog textarea{box-sizing:border-box;width:100%;min-height:46px;border:1px solid #9baba0;border-radius:6px;background:#fffefa;color:#28392e;padding:10px 12px;font:16px/1.5 var(--font-display)}
.ff input:focus,.ff select:focus,.ff-dialog input:focus,.ff-dialog select:focus,.ff-dialog textarea:focus{outline:2px solid #31594b;outline-offset:2px}
.ff-count{font:14px/1.5 var(--font-display);color:var(--ff-muted);margin:0 0 16px}
.ff-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.ff-card{border:1px solid var(--ff-line);background:#fffefa;border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.ff-card-body{padding:24px;flex:1}
.ff-card h3{font:600 24px/1.3 var(--font-body);margin:12px 0 8px;color:var(--ff-ink);overflow-wrap:anywhere}
.ff-card p{font-size:17px;line-height:1.6;margin:8px 0;white-space:normal;overflow-wrap:anywhere}
.ff-tag{display:inline-block;background:#e8eee3;border-radius:4px;padding:3px 9px;color:#3c5e43;font:600 12px/1.5 var(--font-display)}
.ff-person{font:14px/1.6 var(--font-display)!important;color:var(--ff-muted)}
.ff-contact{display:flex;flex-wrap:wrap;gap:10px 18px;border-top:1px solid #e4e6dc;padding:15px 24px;font:600 14px/1.5 var(--font-display)}
.ff-contact a{color:#31594b;text-underline-offset:3px;overflow-wrap:anywhere}
.ff-photo{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;background:#e8eee3}
.ff-empty{grid-column:1/-1;padding:48px 24px;text-align:center;border:1px dashed #b7c3b4;border-radius:12px;background:#eef0e7}
.ff-empty h2{font:500 28px/1.3 var(--font-body);margin-bottom:10px}
.ff-empty p{max-width:480px;margin:auto;color:var(--ff-muted);font-size:17px}
.ff-status{font:15px/1.5 var(--font-display);background:#eef2e9;border-radius:6px;padding:12px 16px;margin:18px 0}
.ff-status:empty{display:none}
.ff-status.error{background:#fff0e8;color:#843a25}
.ff-section-title{font:500 32px/1.3 var(--font-body);margin:38px 0 15px}
.ff-guidance{margin-top:42px;border-top:1px solid var(--ff-line);padding-top:25px;font:14px/1.7 var(--font-display);color:var(--ff-muted)}
.ff-guidance a{color:var(--ff-green)}
.ff-dialog{position:fixed;inset:0;margin:auto;width:min(620px,calc(100% - 28px));max-height:90dvh;border:1px solid #c6cfc2;border-radius:14px;padding:28px;background:#faf9f3;color:#2d3932;box-shadow:0 20px 80px #1b2d2540;overflow-y:auto}
.ff-dialog::backdrop{background:#17251bb3}
.ff-dialog h2{font:500 30px/1.2 var(--font-body);margin:5px 40px 16px 0}
.ff-dialog p{font:15px/1.6 var(--font-display);margin:10px 0 18px}
.ff-close{position:absolute;right:12px;top:10px;color:#31594b;font-size:22px!important}
.ff-field{margin-top:16px}
.ff-help{font:13px/1.6 var(--font-display);display:block;color:#5f6a62;margin:5px 0 0}
.ff-check{display:flex!important;gap:10px;align-items:flex-start;font-weight:400!important;margin-top:18px!important}
.ff-check input{width:20px;height:20px;margin-top:2px;flex-shrink:0;accent-color:#31594b}
.ff-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ff-dialog textarea{resize:vertical;min-height:100px}
.ff-review-controls{margin:15px 0 0;display:flex;gap:8px;flex-wrap:wrap}
.ff-preview-photo{width:140px;height:140px;object-fit:cover;border-radius:8px;margin:12px 0}
@media(max-width:640px){.ff-hero{grid-template-columns:1fr;padding-top:26px}.ff-hero-art{display:none}.ff-intro{font-size:19px}.ff-toolbar,.ff-grid,.ff-form-grid{grid-template-columns:1fr}.ff-card-body{padding:20px}.ff-dialog{padding:22px}.ff h1{font-size:48px}.ff-toolbar{gap:12px}}

.ff-crop-panel{padding:16px;margin:16px 0;border:1px solid #bbc7b9;border-radius:8px;background:#eef2e9}
.ff-crop-panel h3{font:600 18px/1.4 var(--font-display);margin:0 0 8px}
.ff-crop-panel canvas{display:block;width:min(100%,320px);height:auto;aspect-ratio:1;margin:12px auto 18px;cursor:grab;touch-action:none;border-radius:4px}
.ff-crop-panel canvas:active{cursor:grabbing}
.ff-dialog .ff-crop-panel input[type=range]{padding:0;min-height:32px;border:0;accent-color:#31594b;background:transparent}
