/* Upfor — river blue + marigold, Bricolage Grotesque display, Atkinson Hyperlegible body. */
.upfor{
  --u-bg:#F3F6F6; --u-surface:#FFFFFF; --u-ink:#12262B; --u-muted:#56696D; --u-line:#D5DFDF;
  --u-river:#0E5566; --u-river-ink:#FFFFFF; --u-river-soft:#E0EEF0;
  --u-gold:#E3A008; --u-gold-ink:#2A1E00; --u-gold-soft:#FBF0D3;
  --u-good:#2C7A4B; --u-good-soft:#E2F2E8; --u-warn:#A8501A; --u-warn-soft:#F8E7DB;
  --u-display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --u-body:"Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-family:var(--u-body);color:var(--u-ink);font-size:1rem;line-height:1.5;
  display:grid;gap:24px;margin-block:8px 48px;
}
.upfor *{box-sizing:border-box}
.upfor h1,.upfor h2,.upfor h3{font-family:var(--u-display);line-height:1.15;text-wrap:balance;margin:0;color:var(--u-ink)}
.upfor h2{font-size:1.6rem;font-weight:700}
.upfor h3{font-size:1.15rem;font-weight:700}
.upfor p{margin:0}
.upfor a{color:var(--u-river)}
.upfor :focus-visible{outline:3px solid var(--u-gold);outline-offset:2px}
.wp-site-blocks:has(.upfor) .wp-block-post-title{display:none}

.upfor-note{font-size:.9rem;color:var(--u-muted)}
.upfor-tiny{font-size:.72rem;margin-top:4px}
.upfor-head{display:grid;gap:4px}
.upfor-notice{background:var(--u-good-soft);color:var(--u-good);border-radius:10px;padding:10px 14px;font-weight:700}
.upfor-notice.is-error{background:var(--u-warn-soft);color:var(--u-warn)}

/* hero */
.upfor-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:32px;align-items:center}
.upfor-hero h1{font-size:clamp(3rem,10vw,6rem);font-weight:800;letter-spacing:-.035em;line-height:.95;display:grid;gap:.06em}
.upfor-rot{position:relative;display:block;height:1.2em;overflow:hidden;font-size:.6em;color:var(--u-river)}
.upfor-rot .w{position:absolute;left:0;top:0;white-space:nowrap;text-decoration:underline;text-decoration-color:var(--u-gold);text-decoration-thickness:.12em;text-underline-offset:.12em;transform:translateY(110%);opacity:0;transition:transform .55s cubic-bezier(.2,.8,.2,1),opacity .45s}
.upfor-rot .w.in{transform:none;opacity:1}
.upfor-rot .w.out{transform:translateY(-110%);opacity:0}
.upfor-sub{font-family:var(--u-display);font-size:clamp(1.2rem,2.4vw,1.55rem);font-weight:700;margin-top:18px!important}
.upfor-lede{font-size:1.1rem;color:var(--u-muted);max-width:52ch;margin-top:12px!important}
.upfor-hero .upfor-row{margin-top:22px}
.upfor-board{background:var(--u-surface);border:1px solid var(--u-line);border-radius:14px;padding:18px;display:grid;gap:14px}
.upfor-label{font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--u-muted);font-weight:700}
.upfor-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.upfor-stats b{display:block;font-family:var(--u-display);font-size:2rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--u-river)}
.upfor-stats span{font-size:.85rem;color:var(--u-muted)}
.upfor-towns{display:flex;flex-wrap:wrap;gap:6px}
.upfor-towns span{font-size:.8rem;border:1px solid var(--u-line);border-radius:999px;padding:2px 9px;color:var(--u-muted)}
.upfor-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.upfor-three>div{border-top:3px solid var(--u-river);padding-top:12px;display:grid;gap:6px;align-content:start}
.upfor-three p{color:var(--u-muted)}

/* layout pieces */
.upfor-card{background:var(--u-surface);border:1px solid var(--u-line);border-radius:14px;padding:22px;display:grid;gap:18px;min-width:0}
.upfor-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.upfor-full{grid-column:1/-1}
.upfor-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.upfor-spread{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.upfor-list{display:grid;gap:14px}
.upfor-scroll{overflow-x:auto}
.upfor-empty{border:1px dashed var(--u-line);border-radius:14px;padding:26px;text-align:center;color:var(--u-muted);display:grid;gap:8px;justify-items:center}

/* forms */
.upfor-field{display:grid;gap:5px;min-width:0;align-content:start}
.upfor-field label,.upfor legend{font-weight:700;font-size:.92rem}
.upfor-hint{font-size:.82rem;color:var(--u-muted)}
.upfor input[type=text],.upfor input[type=email],.upfor input[type=tel],.upfor input[type=password],.upfor input[type=date],.upfor input[type=time],.upfor input[type=number],.upfor select,.upfor textarea{width:100%;background:var(--u-bg);border:1px solid var(--u-line);border-radius:8px;padding:9px 11px;font:inherit;color:inherit;min-width:0}
.upfor textarea{min-height:90px;resize:vertical}
.upfor fieldset{border:0;padding:0;margin:0;min-width:0;display:grid;gap:10px}
.upfor legend{padding:0;margin-bottom:8px}
.upfor-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px 22px}
.upfor .upfor-group-label{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--u-muted)}
.upfor-chips{display:flex;flex-wrap:wrap;gap:6px}
.upfor-chk{position:relative;display:inline-block}
.upfor-chk input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.upfor-chk span{display:inline-block;border:1px solid var(--u-line);border-radius:999px;padding:5px 11px;font-size:.88rem;background:var(--u-bg);cursor:pointer}
.upfor-chk input:checked+span{background:var(--u-river);border-color:var(--u-river);color:var(--u-river-ink)}
.upfor-chk input:focus-visible+span{outline:3px solid var(--u-gold);outline-offset:2px}
.upfor-check{display:flex;gap:10px;align-items:flex-start}
.upfor-check input{margin-top:5px}
.upfor-avail{border-collapse:separate;border-spacing:4px;font-size:.88rem}
.upfor-avail th{font-weight:700;text-align:left;padding:2px 6px;border:0}
.upfor-avail thead th{text-align:center;font-size:.8rem;color:var(--u-muted)}
.upfor-avail thead th span{font-weight:400}
.upfor-avail td{text-align:center;border:0;padding:0}
.upfor-slot{position:relative;display:inline-block}
.upfor-slot input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.upfor-slot span{display:block;width:64px;height:34px;border-radius:7px;border:1px dashed var(--u-line);background:var(--u-bg)}
.upfor-slot input:checked+span{background:var(--u-gold);border:1px solid var(--u-gold)}
.upfor-slot input:focus-visible+span{outline:3px solid var(--u-river);outline-offset:2px}

/* buttons & pills */
.upfor-btn,.upfor .login-submit input[type=submit]{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--u-river);background:var(--u-river);color:var(--u-river-ink)!important;padding:9px 16px;border-radius:8px;font-weight:700;font-family:var(--u-body);font-size:1rem;cursor:pointer;text-decoration:none;line-height:1.3}
.upfor-btn:hover{filter:brightness(1.08)}
.upfor-btn.is-ghost{background:transparent;color:var(--u-river)!important}
.upfor-btn.is-gold{background:var(--u-gold);border-color:var(--u-gold);color:var(--u-gold-ink)!important}
.upfor-btn.is-small{padding:5px 10px;font-size:.88rem}
.upfor-btn.is-danger{background:transparent;border-color:var(--u-warn);color:var(--u-warn)!important}
.upfor-pill{display:inline-block;font-size:.76rem;font-weight:700;border-radius:999px;padding:2px 9px;background:var(--u-river-soft);color:var(--u-river)}
.upfor-pill.is-gold{background:var(--u-gold-soft);color:var(--u-ink)}
.upfor-pill.is-good{background:var(--u-good-soft);color:var(--u-good)}
.upfor-pill.is-warn{background:var(--u-warn-soft);color:var(--u-warn)}

/* events */
.upfor-event{background:var(--u-surface);border:1px solid var(--u-line);border-radius:14px;display:grid;grid-template-columns:86px minmax(0,1fr);overflow:hidden}
.upfor-date{background:var(--u-river-soft);color:var(--u-river);display:grid;place-content:center;text-align:center;padding:12px 6px;font-family:var(--u-display)}
.upfor-date small{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.upfor-date b{font-size:2rem;font-weight:800;line-height:1}
.upfor-ev-body{padding:16px 18px;display:grid;gap:10px;min-width:0}
.upfor-meta{font-size:.9rem;color:var(--u-muted)}
.upfor-positions{border-top:1px solid var(--u-line)}
.upfor-pos{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--u-line)}
.upfor-pos:last-child{border-bottom:0}
.upfor-pos .t{font-weight:700}
.upfor-pos form{margin:0}
.upfor-fill{font-size:.85rem;color:var(--u-muted);font-variant-numeric:tabular-nums}
.upfor-bar{height:5px;background:var(--u-line);border-radius:3px;overflow:hidden;width:110px;margin-top:4px}
.upfor-bar i{display:block;height:100%;background:var(--u-gold)}
.upfor-filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;align-items:end}
.upfor-actions{display:flex;gap:12px;align-items:center}

/* organizations */
.upfor-working{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;background:var(--u-river-soft);border-radius:10px;padding:12px 16px}
.upfor-working b{font-family:var(--u-display);font-size:1.15rem}
.upfor-subtabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--u-line)}
.upfor-subtabs a{border-bottom:3px solid transparent;padding:8px 12px;font-weight:700;color:var(--u-muted);text-decoration:none}
.upfor-subtabs a[aria-current="page"]{color:var(--u-ink);border-bottom-color:var(--u-gold)}
.upfor-vol{background:var(--u-surface);border:1px solid var(--u-line);border-radius:14px;padding:16px 18px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 20px}
.upfor-vol-main{display:grid;gap:6px;min-width:0}
.upfor-name{font-family:var(--u-display);font-weight:700;font-size:1.15rem}
.upfor-stars{color:var(--u-gold);letter-spacing:1px;font-variant-numeric:tabular-nums}
.upfor-stars small{color:var(--u-muted);letter-spacing:0;margin-left:4px}
.upfor-mini{display:grid;grid-template-columns:repeat(7,14px);gap:3px;font-size:.62rem;color:var(--u-muted);text-align:center}
.upfor-mini i{width:14px;height:9px;border-radius:2px;background:var(--u-line);display:block}
.upfor-mini i.on{background:var(--u-gold)}
.upfor-contact{grid-column:1/-1;display:flex;gap:10px 18px;flex-wrap:wrap;align-items:center;border-top:1px dashed var(--u-line);padding-top:10px;font-size:.92rem}
.upfor-contact code{font-family:var(--u-body);user-select:all;background:var(--u-bg);padding:2px 7px;border-radius:5px}
.upfor-pref{font-weight:700;color:var(--u-river)}
.upfor-posrows{display:grid;gap:10px}
.upfor-posrow{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) 90px auto;gap:8px;align-items:end}
.upfor-times{flex-wrap:nowrap}
.upfor-times .upfor-field{flex:1}
.upfor-posblock{display:grid;gap:4px;border-top:1px solid var(--u-line);padding-top:12px}
.upfor-signup{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;padding:8px 0;align-items:center}
.upfor-rate{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--u-bg);padding:8px 10px;border-radius:8px;margin:0}
.upfor-stars-in{display:inline-flex;flex-direction:row-reverse}
.upfor-stars-in input{position:absolute;opacity:0;width:1px;height:1px}
.upfor-stars-in label{font-size:1.4rem;line-height:1;color:var(--u-line);cursor:pointer;padding:0 1px}
.upfor-stars-in input:checked~label,.upfor-stars-in label:hover,.upfor-stars-in label:hover~label{color:var(--u-gold)}
.upfor-stars-in input:focus-visible+label{outline:3px solid var(--u-river)}
.upfor .upfor-hrs{width:80px}
.upfor .upfor-nt{flex:1 1 180px;width:auto}
.upfor-del summary{list-style:none}
.upfor-del summary::-webkit-details-marker{display:none}
.upfor-del[open] summary{display:none}
.upfor-table{width:100%;border-collapse:collapse;font-size:.92rem}
.upfor-table td,.upfor-table th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--u-line)}
.upfor-table .n{text-align:right;font-variant-numeric:tabular-nums}
.upfor-progress{height:10px;background:var(--u-line);border-radius:5px;overflow:hidden}
.upfor-progress i{display:block;height:100%;background:var(--u-good)}

/* sign in */
.upfor-signin{max-width:440px}
.upfor-signin form p{display:grid;gap:5px;margin:0 0 12px}
.upfor-signin .login-remember label{display:flex;gap:8px;align-items:center;font-weight:400}

/* site header & footer, matching the prototype */
body{background:#F3F6F6}
.upfor-header{background:#0E5566;color:#fff;position:sticky;top:var(--wp-admin--admin-bar--height,0px);z-index:50;font-family:"Atkinson Hyperlegible",system-ui,sans-serif}
.upfor-header-in{max-width:1340px;margin:0 auto;padding:10px max(16px,var(--wp--style--root--padding-left,16px));display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.upfor-brand{display:flex;align-items:baseline;gap:6px;font-family:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;font-weight:800;font-size:1.45rem;letter-spacing:-.01em;color:#fff!important;text-decoration:none}
.upfor-brand span{color:#E3A008}
.upfor-brand em{font-style:normal;font-size:.72rem;font-weight:700;background:#E3A008;color:#2A1E00;padding:2px 7px;border-radius:5px;letter-spacing:.06em;transform:translateY(-3px)}
.upfor-nav{display:flex;gap:4px;overflow-x:auto;flex:1 1 auto;justify-content:flex-end;min-width:0}
.upfor-nav a{color:#fff!important;opacity:.85;padding:8px 12px;border-radius:8px;text-decoration:none;font-weight:700;white-space:nowrap}
.upfor-nav a:hover{opacity:1;background:rgba(255,255,255,.12)}
.upfor-nav a[aria-current="page"]{opacity:1;background:#fff;color:#0E5566!important}
.upfor-nav a:focus-visible,.upfor-brand:focus-visible{outline:3px solid #E3A008;outline-offset:2px}
.upfor-footer{background:#12262B;color:#CFDADB;font-family:"Atkinson Hyperlegible",system-ui,sans-serif;font-size:.9rem;margin-top:48px}
.upfor-footer .upfor-header-in{justify-content:space-between;padding-top:22px;padding-bottom:22px}
.upfor-footer b{color:#fff}
@media (max-width:760px){.upfor-nav{justify-content:flex-start}}

@media (max-width:760px){
  .upfor-hero,.upfor-three,.upfor-two{grid-template-columns:1fr}
  .upfor-vol{grid-template-columns:1fr}
  .upfor-posrow{grid-template-columns:1fr 1fr}
  .upfor-event{grid-template-columns:64px minmax(0,1fr)}
  .upfor-date b{font-size:1.5rem}
  .upfor-slot span{width:48px}
}
@media (prefers-reduced-motion:reduce){.upfor *{transition:none!important;animation:none!important}}
