@import url("https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap");
:root{--field-green:#4CAF50;--river-blue:#2E7DD7;--warm-accent:#F4B400;--off-white:#FAF9F5;--charcoal:#2D2D2D;--muted:#666861;--paper:#fff;--line:rgba(45,45,45,.15);--soft-green:#EEF7EE;--soft-blue:#EDF5FD;--shadow:0 18px 50px rgba(31,53,38,.08)}
*{box-sizing:border-box}
body{margin:0;background:var(--off-white);color:var(--charcoal);font-family:"Nunito Sans",system-ui,sans-serif;line-height:1.58}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px;padding:8px max(20px,calc((100vw - 1180px)/2));border-bottom:1px solid var(--line);background:rgba(250,249,245,.95);backdrop-filter:blur(14px)}
.topbar a{display:block;width:225px;height:58px;overflow:hidden;background:url("../images/FoLF_Header_Logo_FullColour.png") left center/contain no-repeat;color:transparent;font-size:0;text-decoration:none}
.topbar span{color:var(--muted);font-size:.92rem;font-weight:700}
.survey-shell{width:min(900px,calc(100% - 28px));margin:auto;padding:clamp(28px,5vw,54px) 0 100px}
.survey-banner{display:none}
.survey-intro{max-width:770px;margin-bottom:48px}
.kicker,.section-number{text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;font-weight:700;color:var(--river-blue)}
h1,h2,h3{font-family:"Space Grotesk",sans-serif;letter-spacing:-.04em}
h1{font-size:clamp(2.8rem,7vw,5.5rem);line-height:.98;margin:8px 0 22px}
h2{font-size:clamp(1.85rem,4vw,3rem);line-height:1.05;margin:6px 0 24px}
h3{font-size:1.35rem;margin:38px 0 16px}
.lead{font-size:1.22rem;line-height:1.5}
.survey-intro p:not(.kicker):not(.lead){color:var(--muted)}
.form-section{margin:0 0 28px;padding:clamp(22px,4vw,42px);border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:var(--shadow)}
.form-section:nth-of-type(3n+1){border-top:5px solid var(--field-green)}
.form-section:nth-of-type(3n+2){border-top:5px solid var(--river-blue)}
.form-section:nth-of-type(3n){border-top:5px solid var(--warm-accent)}
fieldset{border:0;padding:0;margin:26px 0}
fieldset:has(input[name="site_benefits"]){display:none}
legend,label{font-weight:600}
fieldset>label{display:block;margin:10px 0;font-weight:400}
input[type="radio"],input[type="checkbox"]{width:18px;height:18px;margin-right:8px;vertical-align:-3px;accent-color:var(--river-blue)}
input[type="text"],input[type="email"],input[type="tel"],input[type="number"],select,textarea{display:block;width:100%;margin-top:8px;border:1px solid #cdd1ca;border-radius:10px;background:#fff;padding:12px 13px;font:inherit;color:inherit}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(46,125,215,.18);border-color:var(--river-blue)}
textarea{resize:vertical;min-height:90px}
label{display:block;margin:22px 0}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.helper,.optional,.privacy-note{color:var(--muted)}
.optional{font-size:.85em;font-weight:400}
.map-card{margin:26px 0 30px;overflow:hidden;border:1px solid rgba(46,125,215,.22);border-top:5px solid var(--river-blue);border-radius:16px;background:white;box-shadow:var(--shadow)}
.map-card img{display:block;width:100%;height:auto;max-height:560px;object-fit:contain;background:white}
.map-card figcaption{padding:13px 16px;border-top:1px solid var(--line);background:var(--soft-blue);color:var(--muted);font-size:.88rem}
.map-card.map-unavailable{min-height:150px;display:grid;place-items:center}
.map-card.map-unavailable img{display:none}
.map-card.map-unavailable figcaption::before{content:"Map image not yet available. ";font-weight:700;color:#9a2c2c}
.file-drop{border:1.5px dashed rgba(46,125,215,.48);border-radius:14px;padding:22px;text-align:center;background:var(--soft-blue);cursor:pointer}
.file-drop input{display:block;margin:12px auto 0}
.file-item{padding:18px;background:var(--soft-green);border:1px solid var(--line);border-radius:12px;margin:14px 0;font-size:.92rem}
.file-heading{display:flex;justify-content:space-between;gap:18px;align-items:start}
.file-heading strong,.file-heading span{display:block;overflow-wrap:anywhere}
.file-heading span{color:var(--muted);margin-top:2px}
.remove-file{appearance:none;border:0;background:transparent;color:#8b2929;text-decoration:underline;cursor:pointer}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.choice-grid label{margin:8px 0}
.privacy-details{margin:0 0 26px;padding:16px;border-radius:12px;background:var(--soft-blue)}
.privacy-details summary{font-weight:700;cursor:pointer}
.privacy-details p{color:var(--muted)}
.callout{padding:16px;border-left:4px solid var(--field-green);border-radius:0 10px 10px 0;background:var(--soft-green)}
.confirmation button{appearance:none;border:0;background:var(--warm-accent);color:var(--charcoal);border-radius:999px;padding:14px 22px;font:700 1rem "Nunito Sans",sans-serif;cursor:pointer;margin-top:18px}
.confirmation button:hover{filter:brightness(.96)}
.confirmation button:disabled{opacity:.55;cursor:wait}
#submit-button{appearance:none;border:0;background:var(--warm-accent);color:var(--charcoal);border-radius:999px;padding:14px 22px;font:700 1rem "Nunito Sans",sans-serif;cursor:pointer;margin-top:18px}
#submit-button:hover{filter:brightness(.96)}
#submit-button:disabled{opacity:.55;cursor:wait}
#form-status{margin-top:16px;font-weight:600}
.success{color:#245b32}.error{color:#9a2c2c}
[data-show]{display:none}[data-show].is-visible{display:block}.form-section[data-show].is-visible{display:block}
.contact-section strong{font-weight:700}
.required-mark{font-size:.78rem;font-weight:700;color:#8a392f;margin-left:.35rem;white-space:nowrap}
.section-note{padding:15px 17px;border-left:4px solid var(--river-blue);border-radius:0 10px 10px 0;background:var(--soft-blue);color:var(--muted)}
.select-all{padding:13px 15px;border:1px solid rgba(76,175,80,.32);border-radius:10px;background:var(--soft-green);font-weight:700}
.eligibility-note{margin:0 0 28px;padding:16px 18px;border-left:4px solid var(--warm-accent);border-radius:0 10px 10px 0;background:#fff8df}
.eligibility-note label{margin:0}
.path-map-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0}
.path-map-option{display:flex;flex-direction:column;margin:0;overflow:hidden;border:1px solid rgba(46,125,215,.22);border-radius:14px;background:white;box-shadow:0 12px 32px rgba(31,53,38,.07);cursor:pointer}
.path-map-option img{display:block;width:100%;height:auto;aspect-ratio:1.36/1;object-fit:contain;background:white}
.path-map-option span{display:block;margin-top:auto;padding:13px 15px;border-top:1px solid var(--line);background:var(--soft-blue);font-weight:700;font-size:0}
.path-map-option span::after{font-size:1rem}
.path-map-option:nth-child(1) span::after{content:"I have used Path 1"}
.path-map-option:nth-child(2) span::after{content:"I have used Path 2"}
.path-map-option:nth-child(3) span::after{content:"I have used Path 3"}
.path-map-option:nth-child(4) span::after{content:"I have used Path 4"}
.path-map-option:has(input:checked){border-color:var(--river-blue);box-shadow:0 0 0 3px rgba(46,125,215,.14)}
.path-evidence-group{margin:30px 0 0;padding-top:8px;border-top:1px solid var(--line)}
.path-evidence-group [data-path-show]{display:none}
.path-evidence-group [data-path-show].is-visible{display:block}
.compact-fieldset{margin:22px 0}.compact-fieldset label{margin:8px 0}
.subsection{margin-top:38px;padding-top:8px;border-top:1px solid var(--line)}
.subsection>h3{margin-top:24px}
.inline-check{display:block;margin-top:10px;font-weight:400}
.inline-check input{display:inline-block;width:18px;margin:0 8px 0 0}
.notice{padding:16px 18px;border-left:4px solid var(--warm-accent);border-radius:0 10px 10px 0;background:#fff8df}
.map-awaiting-numbered-plan{border-style:dashed}.map-awaiting-numbered-plan figcaption{color:#7b342f}
.form-section[aria-hidden="true"]{display:none}
@media(max-width:700px){.two-col,.choice-grid,.path-map-grid{grid-template-columns:1fr}.survey-shell{padding-top:18px}.topbar{min-height:66px;padding:7px 14px}.topbar a{width:170px;height:50px}.topbar span{font-size:.82rem}.form-section{border-radius:14px}.required-mark{display:block;margin:.25rem 0 0}.form-section fieldset>label{padding:3px 0}}
