/* FarmFinder field notes: native artwork, useful tags, and membership journeys. */
.option-page-head { position:relative; isolation:isolate; overflow:hidden; background:#152b20; }
.option-page-head::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#152b20 25%,#152b2000 75%),url('/assets/brand/field-lines.svg') right center/auto 115% no-repeat; }
.option-page-head::after { content:""; position:absolute; inset:0; z-index:-2; background:url('/assets/brand/oat-paper.webp') center/600px; opacity:.07; mix-blend-mode:screen; }
.option-page-head-inner { position:relative; }
.option-page-copy { max-width:780px; }
.option-page-head h1 { text-wrap:balance; }
.ff-cta { background-image:linear-gradient(100deg,#78b448e8,#78b448c4),url('/assets/brand/field-lines.svg'); background-position:center; background-size:cover; }
body[data-route='/farmers'] main>.section:nth-of-type(2n),body[data-route='/contact'] main>.section:nth-of-type(2n) { background:linear-gradient(#eef5e488,#eef5e488),url('/assets/brand/oat-paper.webp') center/560px; border-radius:20px; }
/* Remove standalone decorative badges. Functional and inline icons stay visible. */
.icon-card>.ff-icon,.icon-panel>.ff-icon { display:none; }
.card h2,.card h3,.panel h2 { text-wrap:balance; }
.icon-card h2 { margin-top:0; }
.farm-filter-tag { border:1px solid #dce7ce; min-height:34px; padding:6px 10px; transition:background .15s,border-color .15s; }
.farm-filter-tag .ff-icon { width:16px; height:16px; flex:none; padding:0; margin:0; border-radius:0; background:none; }
.farm-filter-tag:hover { border-color:var(--orchard); }
.farm-filter-tag:focus-visible,.farm-tag-more summary:focus-visible { outline:3px solid var(--orchard); outline-offset:3px; }
.farm-tag-more { display:contents; }
.farm-tag-more summary { cursor:pointer; min-height:34px; border:1px dashed var(--line2); list-style:none; }
.farm-tag-more summary::-webkit-details-marker { display:none; }
.farm-tag-more[open]>.ff-tags { flex-basis:100%; padding-top:6px; }
.farm-season { scroll-margin-top:110px; }
.season-landscape { height:100px; background:linear-gradient(0deg,#d8e8c4aa,transparent),url('/assets/brand/field-lines.svg') center 58%/cover; border-radius:16px 16px 0 0; margin-top:16px; border-bottom:1px solid #cfddc5; }
.season-timeline { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); list-style:none; padding:16px 0 0; gap:4px; }
.season-month { min-width:0; text-align:center; font-size:12px; color:var(--text); }
.season-month abbr { text-decoration:none; }
.season-track { display:flex; align-items:center; justify-content:center; background:#e8e6df; height:26px; border-radius:4px; margin-bottom:8px; }
.season-month.is-available .season-track { background:var(--orchard); color:white; }
.season-track .ff-icon { color:white; width:15px; height:15px; }
.season-key { font-size:13px; color:var(--text); margin-top:18px !important; }
.season-key>span { display:inline-block; width:10px; height:10px; background:var(--orchard); border-radius:3px; margin-right:6px; }
.membership-band { --band-bg:#e9efdf; --band-accent:#2e6b2b; background:var(--band-bg); position:relative; isolation:isolate; border-bottom:1px solid #15231b14; }
.membership-band::before { content:""; position:absolute; inset:0; background:url('/assets/brand/field-lines.svg') right center/auto 100% no-repeat; opacity:.55; z-index:-1; }
.membership-band::after { content:""; position:absolute; inset:0; background:url('/assets/brand/oat-paper.webp') center/700px; mix-blend-mode:multiply; opacity:.22; z-index:-1; }
.membership-band--harvest { --band-bg:#f8edda; --band-accent:#9b6019; }
.membership-band--sky { --band-bg:#e4edef; --band-accent:#266571; }
.membership-band--orchard { --band-bg:#e5eadb; --band-accent:#506434; }
.membership-band--clay { --band-bg:#f3e5db; --band-accent:#975336; }
.membership-band--herb { --band-bg:#e7eadd; --band-accent:#57632f; }
.membership-band .section { padding-block:48px 56px; }
.membership-band .section-head { border-bottom:1px solid #15231b24; padding-bottom:18px; }
.membership-band .section-head h2 { font-size:clamp(30px,4vw,44px); color:var(--band-accent); margin:0; }
.membership-plan { border:1px solid #15231b1c; background:#fffffff5; display:flex; flex-direction:column; align-items:flex-start; min-height:280px; padding:26px; }
.membership-plan h3 { font-size:22px; line-height:1.2; margin:0 0 20px; }
.membership-price { display:flex; flex-direction:column; gap:3px; margin:0 0 16px; }
.membership-price strong { color:var(--band-accent); font:700 34px/1.1 var(--display); letter-spacing:-.03em; }
.membership-price span { font-size:13px; color:var(--text); font-weight:500; }
.membership-plan>.button { margin-top:auto; background:var(--band-accent); border-color:var(--band-accent); color:#fff; }
.membership-plan>p:not(.membership-price) { margin:0 0 24px; }
.section.about-intro { padding-block:clamp(26px,4vw,44px) clamp(32px,5vw,60px); }
.about-intro .detail-grid { max-width:none; padding:0; align-items:start; gap:clamp(24px,4vw,48px); }
.about-intro .prose { max-width:none; display:grid; gap:14px; }
.about-intro .prose h2,.about-intro .prose p { margin:0; text-wrap:balance; }
.about-intro .prose h2:not(:first-child) { margin-top:10px; }
.about-intro .icon-panel h2 { margin-top:0; }
.about-intro .icon-panel p:last-child { margin-bottom:0; }
.about-intro .check-list span { text-wrap:balance; }
.section.about-partners { padding-top:0; }
.about-partners .section-head { margin-bottom:20px; }
.about-partners .section-head h2 { margin-top:0; }
.card-grid.partner-grid--about { align-items:stretch; }
.partner-grid--about > .partner-card { padding:0; display:flex; flex-direction:column; overflow:hidden; }
.partner-media { height:180px; overflow:hidden; position:relative; display:grid; place-items:center; border-bottom:1px solid var(--line); }
.partner-media--community { background:#f1f5e9; }
.partner-media--community > .ff-icon { width:48px; height:48px; color:var(--orchard); }
.partner-media--standard-magic { background:#211d35 url('/assets/brand/field-lines.svg') center/cover; }
.partner-media--rallid { background:linear-gradient(#152b20,#365140 76%,#293e32 76%); }
.partner-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.42; pointer-events:none; }
.partner-wordmark { position:relative; width:78%; max-width:275px; height:96px; object-fit:contain; }
.partner-media--standard-magic .partner-wordmark,.partner-media--rallid .partner-wordmark { filter:brightness(0) invert(1); }
.partner-media--rallid .partner-wordmark { align-self:start; margin-top:6px; width:66%; height:82px; }
.partner-motion { position:absolute; inset:8px 8px auto auto; width:44px; height:44px; padding:0; border:0; border-radius:50%; display:grid; place-items:center; color:#fff; background:#15231bbf; cursor:pointer; }
.partner-motion[hidden],.partner-motion-play,.partner-motion[data-paused=true] .partner-motion-pause { display:none; }
.partner-motion[data-paused=true] .partner-motion-play { display:block; }
.partner-motion:hover { background:#15231b; }
.partner-motion:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.partner-motion span { line-height:0; }
.partner-motion .ff-icon { width:20px; height:20px; color:inherit; }
.partner-birds { position:absolute; inset:auto 5% 4px; display:flex; align-items:end; justify-content:space-evenly; pointer-events:none; }
.partner-bird { width:min(29%,91px); height:auto; animation:partner-bird-step 3.4s ease-in-out infinite alternate paused; }
.partner-bird:nth-child(2) { animation-delay:-1.6s; }
.partner-bird:nth-child(3) { animation-delay:-2.7s; }
.partner-birds.is-playing .partner-bird { animation-play-state:running; }
@keyframes partner-bird-step { 0%,35% { transform:none; } 68% { transform:translate(7px,-5px) rotate(-4deg); } 100% { transform:translate(12px,0); } }
@media(prefers-reduced-motion:reduce) { .partner-bird { animation:none; } }
.partner-copy { padding:24px; flex:1; display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.partner-copy h3,.partner-copy p { margin:0; text-wrap:balance; }
.partner-copy h3 { font-size:20px; }
.partner-copy .button { margin-top:auto; gap:8px; min-height:44px; }
.partner-copy .button .ff-icon { width:16px; height:16px; flex:none; }
@media(max-width:900px) { .card-grid.partner-grid--about { grid-template-columns:minmax(0,1fr); } }
@media(max-width:800px) { .about-intro .detail-grid { grid-template-columns:minmax(0,1fr); } }
/* The enquiry is one calm work surface, with the selected plan beside it. */
.membership-enquiry { background:linear-gradient(110deg,#eef5e4b8,#fbf9f4ed),url('/assets/brand/oat-paper.webp') center/600px; }
.membership-enquiry .public-form-wrap { max-width:1060px; padding-block:32px 56px; }
.membership-enquiry .public-form-card { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr); gap:36px; padding:32px; }
.enquiry-overview { min-width:0; }
.enquiry-illustration { display:block; width:min(100%,290px); height:auto; margin:0 0 24px; }
.membership-enquiry h1 { font-size:clamp(28px,3.2vw,38px); line-height:1.1; margin:0 0 12px; }
.enquiry-plan-price { font-weight:700; color:var(--orchard); margin:0 0 16px; }
.membership-enquiry .public-form-description { font-size:16px; margin:0 0 12px; }
.enquiry-assurance { font-size:14px; margin:0; }
.membership-enquiry .public-form-card>form { min-width:0; align-content:start; gap:20px; }
.enquiry-progress { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-column:2; list-style:none; gap:8px; padding:0; margin:0; align-self:start; }
.enquiry-overview { grid-column:1; grid-row:1 / span 2; }
.membership-enquiry .public-form-card>form { grid-column:2; }
.enquiry-progress li { display:flex; align-items:center; justify-content:center; gap:7px; color:var(--text); padding:0 0 14px; font-size:14px; border-bottom:3px solid var(--line); white-space:nowrap; }
.enquiry-step-number { display:grid; place-items:center; width:25px; height:25px; flex:none; background:var(--hair); border-radius:7px; font-size:12px; }
.enquiry-progress li[aria-current=step] { color:var(--orchard); font-weight:700; border-color:var(--orchard); }
.enquiry-progress li[aria-current=step] .enquiry-step-number,.enquiry-progress .is-complete .enquiry-step-number { color:white; background:var(--orchard); }
.enquiry-step { display:grid; gap:18px; min-width:0; }
.enquiry-step[hidden],.membership-enquiry [hidden] { display:none !important; }
.enquiry-step h2 { margin:0; font-size:24px; }
.form-required-note { font-size:13px; margin:0; color:var(--text); }
.public-form-status:empty { display:none; }
.enquiry-controls { display:flex; gap:12px; justify-content:flex-end; align-items:stretch; padding-top:20px; border-top:1px solid var(--line); }
.enquiry-controls .button { min-width:110px; }
.enquiry-controls .button:first-child:not([hidden]) { margin-right:auto; }
.enquiry-controls .button:only-child,.enquiry-controls .button[hidden]+.button:not([hidden]) { width:100%; }
.enquiry-review { margin:0; }
.enquiry-review div { padding:12px 0; border-bottom:1px solid var(--line); }
.enquiry-review dt { font-weight:600; font-size:14px; }
.enquiry-review dd { margin:5px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; color:var(--text); }
.membership-band-intro { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:180px; margin-bottom:24px; }
.membership-band-intro>div { flex:1; min-width:0; }
.membership-band-intro>img { width:250px; height:175px; object-fit:contain; flex:none; }
.membership-band-intro p { font-size:18px; max-width:36ch; }
.membership-plan { background:linear-gradient(145deg,#fff 65%,#ffffffe6),url('/assets/brand/oat-paper.webp') center/600px; min-height:0; }
.membership-plan-actions { padding-top:16px; width:100%; }
.membership-plan-actions .button { flex:1; }
@media(min-width:761px) {
 .hero-actions { align-items:stretch; }
 .option-page-head[data-hero-kind=portal] .hero-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); max-width:760px; }
 .option-page-head[data-hero-kind=portal] .hero-actions>form,.option-page-head[data-hero-kind=portal] .hero-actions .button { margin:0; width:100%; }
}
@media(max-width:760px) {
 .option-page-head::before { background-size:auto 100%; background-position:40% center; opacity:.65; }
 .membership-band .section { padding:36px 20px; }
 .membership-grid { grid-template-columns:minmax(0,1fr); }
 .membership-plan { min-height:0; }
 .membership-plan h3 { margin-bottom:16px; }
 .season-timeline { gap:3px; }
 .season-month { font-size:10px; }
 .season-track .ff-icon { width:12px; height:12px; }
 .partner-media { height:170px; }
 .enquiry-progress { gap:8px; }
 .membership-enquiry .public-form-wrap { padding:20px 12px 32px; }
 .membership-enquiry .public-form-card { display:block; padding:20px; }
 .enquiry-overview { position:relative; padding:0 0 20px; margin-bottom:20px; border-bottom:1px solid var(--line); }
 .enquiry-illustration { width:160px; margin:0 auto 12px; height:105px; object-fit:contain; }
 .membership-enquiry h1 { font-size:28px; }
 .enquiry-progress { margin-bottom:20px; gap:5px; }
 .enquiry-progress li { font-size:14px; gap:5px; }
 .enquiry-step-number { width:22px; height:22px; }
 .enquiry-controls { gap:10px; }
 .enquiry-controls .button { min-width:0; flex:1; }
 .membership-band-intro { gap:12px; min-height:0; }
 .membership-band-intro>img { width:120px; height:100px; }
 .membership-band-intro p { font-size:15px; }
 .membership-band .section-head h2 { font-size:30px; }
}
@media(prefers-reduced-motion:reduce) { .partner-video { display:none; } }
@media(prefers-contrast:more) { .option-page-head::after,.membership-band::after { display:none; } }
.membership-plan-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:auto; }
.membership-plan-actions .button { background:var(--band-accent,var(--orchard)); color:white; border-color:var(--band-accent,var(--orchard)); }
.membership-plan-actions .button--secondary { background:white; color:var(--ink); border-color:var(--line2); }
.membership-plan>.membership-payment-note { font-size:12px; line-height:1.45; margin:14px 0 0 !important; }

@media(max-width:420px) {
 .membership-band-intro { display:block; position:relative; padding-right:0; }
 .membership-band-intro>img { display:block; width:180px; height:120px; margin:12px auto 0; }
 .public-form-wrap { padding:20px 12px 32px; }
 .public-form-card { padding:20px; }
 .public-form-card h1 { font-size:28px; line-height:1.12; }
 .public-form-card label>span,.public-form-card legend { font-size:15px; }
 .school-resource-filter .button-row { display:grid; grid-template-columns:minmax(0,1fr); }
 .school-resource-filter .button { width:100%; }
 .workspace-header-title h1 { font-size:26px; }
 .workspace-header { padding-inline:12px; }
 .workspace-header-title { gap:8px; }
}
@media(min-width:600px) and (max-width:950px) {
 body[data-route='/resources'] .card-grid,body[data-route='/school-nutrition-tools'] .card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Plans are comparable rows, with one continuous surface per audience. */
.membership-table-wrap { border-block:1px solid #15231b30; }
.membership-table { width:100%; border-collapse:collapse; text-align:left; }
.membership-table th,.membership-table td { padding:24px 20px 24px 0; vertical-align:top; }
.membership-table thead th { padding-block:14px; color:var(--text); font-size:14px; font-weight:500; }
.membership-table tbody tr+tr { border-top:1px solid #15231b26; }
.membership-table th[scope=row] { width:23%; }
.membership-table h3 { font-size:22px; line-height:1.2; margin:0; }
.membership-table .membership-price { margin:0; min-width:120px; }
.membership-table .membership-price strong { font-size:30px; }
.membership-plan-description { width:31%; }
.membership-plan-description p { margin:0; }
.membership-plan-choice { width:235px; padding-right:0 !important; }
.membership-plan-choice .membership-plan-actions { display:grid; grid-template-columns:minmax(0,1fr); padding:0; margin:0; gap:8px; }
.membership-plan-choice>.button { width:100%; background:var(--band-accent); color:white; }
.membership-plan-choice .membership-payment-note { font-size:12px; margin:10px 0 0; line-height:1.4; }
.membership-explainer { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:48px; align-items:center; }
.membership-explainer+ .membership-explainer { border-top:1px solid var(--line); }
.membership-explainer h2 { margin-top:0; }
.membership-explainer>img { width:100%; height:auto; }
@media(max-width:1000px) {
 .membership-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 .membership-table,.membership-table tbody { display:block; }
 .membership-plan-row { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); column-gap:20px; padding:24px 0; }
 .membership-table th,.membership-table td { display:block; width:auto; padding:0; }
 .membership-table .membership-plan-cost { text-align:right; }
 .membership-table .membership-price { min-width:0; }
 .membership-table .membership-price strong { font-size:28px; }
 .membership-table .membership-price span { font-size:13px; }
 .membership-plan-description { grid-column:1 / -1; margin:14px 0 18px; }
 .membership-plan-choice { grid-column:1 / -1; }
 .membership-plan-choice .membership-plan-actions { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:440px; }
 .membership-plan-choice>.button { width:auto; }
 .membership-plan-choice .membership-payment-note { max-width:45ch; }
}
@media(max-width:600px) {
 .membership-table h3 { font-size:21px; }
 .membership-plan-row { column-gap:16px; }
 .membership-plan-choice .button { font-size:14px; padding-inline:12px; }
 .membership-explainer { grid-template-columns:minmax(0,1fr); gap:16px; }
 .membership-explainer>img { width:200px; justify-self:center; }
}
/* Resource collections read as a library rather than a wall of boxes. */
body[data-route='/school-nutrition-tools'] .card-grid { display:block; }
body[data-route='/school-nutrition-tools'] .content-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px 32px; background:transparent; border:0; border-bottom:1px solid var(--line); border-radius:0; padding:28px 0; }
body[data-route='/school-nutrition-tools'] .content-card h2 { grid-column:1; margin:0; max-width:760px; }
body[data-route='/school-nutrition-tools'] .content-card>p,body[data-route='/school-nutrition-tools'] .content-card>details { grid-column:1; margin:0; max-width:760px; }
body[data-route='/school-nutrition-tools'] .content-card>.button { grid-column:2; grid-row:1 / span 2; align-self:start; }
@media(max-width:700px) {
 body[data-route='/school-nutrition-tools'] .content-card { display:block; }
 body[data-route='/school-nutrition-tools'] .content-card>p,body[data-route='/school-nutrition-tools'] .content-card>details { margin-top:12px; }
 body[data-route='/school-nutrition-tools'] .content-card>.button { margin-top:16px; }
}
@media(max-width:1000px) {
 .membership-table th[scope=row] { width:auto; min-width:0; }
}
.option-page-head--illustrated .option-page-head-inner { grid-template-columns:minmax(0,1fr) 300px; gap:48px; }
.option-header-art { background:#F4F0DF; border-radius:48% 52% 42% 58% / 54% 42% 58% 46%; padding:8px; transform:rotate(4deg); }
.option-header-art>img { display:block; width:100%; height:auto; transform:rotate(-4deg); }
@media(max-width:760px) {
 .option-page-head--illustrated .option-page-head-inner { grid-template-columns:minmax(0,1fr); gap:28px; }
 .option-header-art { width:210px; justify-self:center; }
 .option-page-head--illustrated .option-page-head-inner { padding-block:36px; }
}
/* Keep texture behind the illustration and leave the comparison rows quiet. */
.membership-band::before { height:230px; bottom:auto; background-size:auto 230px; opacity:.35; }
.membership-band .membership-band-intro { border:0; padding-bottom:0; }
.visually-hidden { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
@media(max-width:480px) {
 .membership-plan-row { grid-template-columns:minmax(0,1fr); padding-block:22px; }
 .membership-table h3 { font-size:23px; }
 .membership-table .membership-plan-cost { text-align:left; margin-top:10px; }
 .membership-table .membership-price { flex-direction:row; align-items:baseline; gap:10px; flex-wrap:wrap; }
 .membership-table .membership-price span { font-size:14px; }
 .membership-plan-choice>.button { width:100%; }
}

/* Text routes use continuous editorial rows; actions follow their own copy. */
.icon-grid { display:block; }
.icon-grid>.icon-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(180px,.8fr); gap:16px 28px; align-items:start; min-height:0; padding:26px 0; background:transparent; border:0; border-bottom:1px solid var(--line); border-radius:0; }
.icon-grid>.icon-card h2,.icon-grid>.icon-card p { margin:0; }
.icon-grid>.icon-card .button { margin:0; width:100%; }
.icon-card { min-height:0; }
.icon-card-action { margin-top:16px; }
.card-grid { align-items:start; }
.card-grid>.card,.card-grid>.panel { height:auto; }
@media(max-width:760px) {
 .icon-grid>.icon-card { grid-template-columns:minmax(0,1fr); gap:14px; }
 .icon-grid>.icon-card .button { width:auto; justify-self:start; }
}
.ftt-title-pair { white-space:nowrap; }
.membership-payment-intro { padding-block:22px; }
.membership-payment-intro p { margin:0; max-width:80ch; }
@media(min-width:1001px) {
 .membership-table th[scope=row] { width:23%; }
 .membership-plan-description { width:29%; }
 .membership-plan-choice { width:325px; }
 .membership-plan-choice .membership-plan-actions { grid-template-columns:minmax(130px,1fr) minmax(165px,1fr); }
 .membership-plan-choice .button { padding-inline:12px; font-size:14px; }
}
@media(max-width:360px) { .membership-plan-choice .membership-plan-actions { grid-template-columns:minmax(0,1fr); } }

@media(max-width:760px) {
 .enquiry-overview { isolation:isolate; padding-bottom:16px; margin-bottom:16px; }
 .enquiry-illustration { position:absolute; top:0; right:-4px; width:115px; height:85px; margin:0; opacity:.16; z-index:-1; pointer-events:none; }
 .membership-enquiry h1 { margin-bottom:10px; }
 .membership-enquiry .enquiry-plan-price { margin-bottom:8px; }
 .membership-enquiry .public-form-description { font-size:15px; margin:0; }
 .enquiry-progress { margin-bottom:16px; }
 .membership-enquiry .public-form-card>form { gap:12px; }
}
@media(prefers-contrast:more) { .enquiry-illustration { display:none; } }

.membership-plan-choice .membership-plan-actions { display:flex; flex-wrap:nowrap; gap:8px; }
.membership-plan-choice .membership-plan-actions>.button { flex:1 1 0; min-width:0; white-space:nowrap; }
.membership-plan-choice .button .ff-icon { width:18px; height:18px; flex:none; }
@media(min-width:1001px) { .membership-plan-choice { width:210px; } }

.membership-plan-actions { flex-wrap:nowrap; }
.membership-plan-actions>.button { min-width:0; white-space:nowrap; }

.school-resource-filter .button-row,.commerce-actions { flex-wrap:nowrap; }
.school-resource-filter .button-row>.button,.commerce-actions>.button { min-width:0; white-space:nowrap; }
.button--icon { width:48px; padding:12px; flex:0 0 48px; }
.button--icon svg { display:block; width:22px; height:22px; }
.school-resource-filter .button-row { display:grid; grid-template-columns:minmax(0,1fr) 48px; gap:10px; }

.school-resource-filter { display:grid; gap:12px; max-width:760px; }
.school-resource-filter input,.school-resource-filter select { width:100%; box-sizing:border-box; min-width:0; padding:14px; font:inherit; color:var(--ink); background:var(--white,#fff); border:1px solid var(--line2,#857f6e); border-radius:10px; }
.school-resource-filter label { font-weight:600; }
.school-resource-filter .button-row { display:grid; grid-template-columns:minmax(0,1fr) 48px; gap:10px; margin-top:12px; }

/* A compact, contextual return control belongs to the form rather than a loose heading. */
.public-form-nav { display:flex; align-items:center; margin:0 0 14px; }
.public-form-nav .public-form-back { display:inline-flex; align-items:center; gap:7px; min-height:44px; padding:8px 12px; margin:0; border:1px solid var(--line2); border-radius:10px; background:var(--paper); color:var(--ink); font-size:14px; font-weight:600; line-height:1.2; text-decoration:none; white-space:nowrap; }
.public-form-back>svg { width:19px; height:19px; flex:none; }
.public-form-nav .public-form-back:hover { background:var(--hair); border-color:var(--orchard); }
.public-form-nav .public-form-back:focus-visible { outline:3px solid var(--orchard); outline-offset:3px; }
.public-form-wrap:has(.public-form-nav) { padding-top:24px; }
.public-form-card::before { display:none; }
.footer-policy-links { display:inline-flex; gap:16px; margin-inline-start:6px; }

/* Legal copy is a continuous reading surface with a compact section index. */
.legal-page { background:linear-gradient(#fbf9f4ee,#fbf9f4ee),url('/assets/brand/oat-paper.webp') center/600px; }
.legal-header { display:flex; align-items:center; justify-content:space-between; gap:32px; background:#152b20 url('/assets/brand/field-lines.svg') center/cover; color:white; padding:36px max(20px,calc((100% - 1152px)/2)); }
.legal-header h1 { font-size:clamp(32px,4.8vw,56px); line-height:1.1; letter-spacing:-.03em; margin:0 0 16px; text-wrap:balance; }
.legal-header p { color:#dce6d9; margin:0; font-size:15px; }
.legal-header>div { min-width:0; }
.legal-header>img { width:230px; height:160px; object-fit:contain; flex:none; }
.legal-layout { display:grid; grid-template-columns:230px minmax(0,1fr); gap:64px; max-width:1192px; margin:auto; padding:44px 20px; }
.legal-contents { align-self:start; position:sticky; top:112px; font-size:14px; }
.legal-contents summary { font-size:18px; font-weight:600; cursor:pointer; min-height:44px; padding:8px 0; }
.legal-contents ol { display:grid; gap:10px; margin:10px 0 0; padding-left:22px; }
.legal-contents a { color:var(--text); text-decoration:none; text-underline-offset:3px; }
.legal-contents a:hover { color:var(--orchard); text-decoration:underline; }
.legal-contents a:focus-visible,.legal-contents summary:focus-visible,.legal-related a:focus-visible { outline:3px solid var(--orchard); outline-offset:4px; }
.legal-copy { max-width:72ch; min-width:0; }
.legal-section { scroll-margin-top:112px; padding:0 0 32px; }
.legal-section+.legal-section { padding-top:24px; border-top:1px solid var(--line); }
.legal-section h2 { font-size:clamp(23px,2.5vw,30px); line-height:1.2; margin:0 0 20px; letter-spacing:-.02em; text-wrap:balance; }
.legal-section h3 { font-size:19px; line-height:1.3; margin:26px 0 16px; text-wrap:balance; }
.legal-section p { margin:0 0 18px; line-height:1.75; overflow-wrap:anywhere; }
.legal-section p:last-child { margin-bottom:0; }
.legal-related { max-width:1152px; margin:0 auto; padding:24px 0 44px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:18px 28px; }
.legal-related a { min-height:44px; display:inline-flex; align-items:center; color:var(--orchard); font-weight:600; text-underline-offset:4px; }
@media(max-width:760px) {
 .legal-header { padding:30px 20px; gap:16px; }
 .legal-header>img { width:105px; height:105px; }
 .legal-header h1 { font-size:32px; }
 .legal-layout { display:block; padding:20px; }
 .legal-contents { position:static; padding-bottom:24px; margin-bottom:28px; border-bottom:1px solid var(--line); }
 .legal-contents ol { columns:2; display:block; }
 .legal-contents li { margin:0 0 10px; break-inside:avoid; }
 .legal-related { margin-inline:20px; padding-bottom:28px; }
}
@media(max-width:420px) {
 .legal-header { align-items:flex-start; }
 .legal-header>img { width:70px; height:84px; }
 .legal-header h1 { font-size:30px; }
 .legal-contents ol { columns:1; }
 .legal-section { padding-bottom:24px; }
}
@media(max-width:360px) {
 .membership-enquiry .public-form-wrap { padding-top:12px; }
 .membership-enquiry .public-form-card { padding:16px; }
 .membership-enquiry .public-form-nav { margin-bottom:8px; }
 .membership-enquiry .enquiry-overview { padding-bottom:12px; margin-bottom:12px; }
 .membership-enquiry .enquiry-progress { margin-bottom:12px; }
}
