/* Shared footer for legacy pages (404, privacy, terms) that still use /site.css.
 * Generated from the footer-related rules in css/site.css, scoped to .sf-footer
 * so they don't touch the rest of those pages. */
.sf-footer {
  --bg: #F8FAFC;
  --panel: #FFFFFF;
  --panel-2: #F1F5F9;
  --line: #E2E8F0;
  --text: #0F172A;
  --lede: #334155;
  --muted: #64748B;
  --muted-strong: #475569;
  --arc: #E89200;
  --arc-strong: #C77C00;
  --cta-ink: #1A1205;
  --ok: #178A50;
  --err: #B42318;
  --dark: #0F172A;
  --dark-2: #1E293B;
  --dark-line: #334155;
  --radius: 12px;
  --radius-control: 8px;
  --space-1: 8px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 32px;
  --space-5: 48px;
  --space-6: 64px;
  --space-7: 96px;
  --space-8: 128px;
  --control-h: 40px;
  --dur: 150ms;
  --ease: ease-out;
}
.sf-footer, .sf-footer * { box-sizing: border-box; }
.sf-footer :where(h2, p, nav, form, div) { margin: 0; padding: 0; }
.sf-footer { font-family: "IBM Plex Sans", system-ui, sans-serif; line-height: 1.6; -webkit-font-smoothing: antialiased; }
.sf-footer .mono { font-family: "IBM Plex Mono", monospace; }
.sf-footer footer { border-top: 0; }
.sf-footer footer a, .sf-footer footer a:hover { text-decoration: none; }
.sf-footer .wrap {max-width: 1120px; margin: 0 auto; padding: 0 24px;}
.sf-footer .wrap.narrow {max-width: 720px;}
.sf-footer .fiberstrip {display: flex; height: 6px; width: 100%;}
.sf-footer .fiberstrip span {flex: 1;}
.sf-footer .f1 {background: #2965CC;}
.sf-footer .f2 {background: #F07818;}
.sf-footer .f3 {background: #2E9E4F;}
.sf-footer .f4 {background: #7A4A21;}
.sf-footer .f5 {background: #6E7B8A;}
.sf-footer .f6 {background: #D8DEE5;}
.sf-footer .f7 {background: #D8262C;}
.sf-footer .f8 {background: #2E2E2E;}
.sf-footer .f9 {background: #F2C31B;}
.sf-footer .f10 {background: #7B3FA0;}
.sf-footer .f11 {background: #E86FA4;}
.sf-footer .f12 {background: #35C4C8;}
.sf-footer .sr-only {position: absolute;   width: 1px;   height: 1px;   padding: 0;   margin: -1px;   overflow: hidden;   clip: rect(0, 0, 0, 0);   white-space: nowrap;   border: 0;}
.sf-footer .hp-field {position:absolute!important;left:-10000px!important;top:auto;width:1px;height:1px;overflow:hidden;}
.sf-footer .logo {font-family: "Barlow Condensed", sans-serif;   font-weight: 700;   font-size: 24px;   text-transform: uppercase;   letter-spacing: .04em;   color: var(--text);   text-decoration: none;   flex: none;}
.sf-footer .logo b {color: var(--arc); font-weight: 700;}
.sf-footer .nlform button {display: inline-flex;   align-items: center;   justify-content: center;   font-family: inherit;   font-weight: 600;   font-size: 16px;   line-height: 1;   min-height: var(--control-h);   padding: 12px 24px;   border-radius: var(--radius-control);   text-decoration: none;   border: 1px solid transparent;   cursor: pointer;   background: none;   color: inherit;   transition: color var(--dur) var(--ease), background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), opacity var(--dur) var(--ease);}
.sf-footer .nlform button {background: var(--arc);   color: var(--cta-ink);}
.sf-footer .nlform button:hover {background: var(--arc-strong);   color: var(--cta-ink);}
.sf-footer .nlform input {width: 100%;   background: var(--panel);   border: 1px solid var(--line);   border-radius: var(--radius-control);   color: var(--text);   font-size: 16px;   padding: 12px 16px;   font-family: inherit;   min-height: var(--control-h);}
.sf-footer .nlform input::placeholder {color: #94A3B8;}
.sf-footer .formnote {font-size: 13px; color: var(--muted); margin-top: 16px;}
.sf-footer .form-ok, .sf-footer .form-err {margin-top: 16px;   padding: 16px;   border-radius: var(--radius-control);   font-family: "IBM Plex Mono", monospace;   font-size: 16px;}
.sf-footer .form-ok {border: 1px solid #BFE3CF; background: #EAF7F0; color: var(--ok);}
.sf-footer .form-err {border: 1px solid #F5C2C0; background: #FDECEC; color: var(--err);}
.sf-footer .js-form.is-done .form-fields {display: none !important;}
.sf-footer .nlform .form-ok, .sf-footer .nlform .form-err {margin-top: 0;}
.sf-footer .nlform {display: flex; flex-direction: column; gap: 8px;}
.sf-footer .nlform .form-fields {display: flex; gap: 8px; flex-wrap: wrap;}
.sf-footer .nlform .form-fields input {width: auto; flex: 1; min-width: 160px;}
.sf-footer .nlform button {border: none; flex: none;}
.sf-footer .nlform button:disabled {opacity: .6; cursor: default;}
.sf-footer footer {background: var(--dark);   color: #94A3B8;   font-size: 16px;   padding: 64px 0 0;}
.sf-footer .footgrid {display: grid;   grid-template-columns: 1.3fr repeat(4, 0.9fr) 1.4fr;   gap: 48px 32px;   padding-bottom: 48px;}
.sf-footer .foot-brand p {margin-top: 16px; max-width: 36ch; line-height: 1.55;}
.sf-footer .foot-brand .logo {color: #F8FAFC;}
.sf-footer footer h2 {font-family: "IBM Plex Mono", monospace;   font-size: 12px;   letter-spacing: .14em;   text-transform: uppercase;   color: #CBD5E1;   font-weight: 500;   margin-bottom: 16px;}
.sf-footer .foot-col nav {display: flex; flex-direction: column; gap: 8px;}
.sf-footer .foot-col nav a {color: #94A3B8;   text-decoration: none;   transition: color var(--dur) var(--ease);}
.sf-footer .foot-col nav a:hover {color: #F8FAFC;}
.sf-footer .foot-nl .nlform .form-fields {flex-direction: column; align-items: stretch;}
.sf-footer .foot-nl .nlform .form-fields input {width: 100%;   min-width: 0;   background: #1E293B;   border-color: #334155;   color: #F8FAFC;}
.sf-footer .foot-nl .formnote {color: #64748B; margin-top: 8px;}
.sf-footer .foot-nl .form-ok {background: #0D1E16; border-color: #1E4030; color: #38E07B;}
.sf-footer .foot-nl .form-err {background: #2A1210; border-color: #7F1D1D; color: #FCA5A5;}
.sf-footer .footbar {display: flex;   justify-content: space-between;   gap: 16px;   flex-wrap: wrap;   align-items: center;   padding: 16px 0;   border-top: 1px solid var(--dark-line);   font-size: 13px;}
.sf-footer .footbar a {color: #94A3B8;   text-decoration: none;   transition: color var(--dur) var(--ease);}
.sf-footer .footbar a:hover {color: #F8FAFC;}
@media (max-width: 960px) {
  .sf-footer .footgrid {grid-template-columns: 1fr 1fr;}
}
@media (max-width: 560px) {
  .sf-footer .logo {font-size: 22px;}
  .sf-footer .nlform {min-width: 0; width: 100%;}
  .sf-footer .footgrid {grid-template-columns: 1fr; gap: 32px;}
  .sf-footer .wrap {padding: 0 20px;}
}
