
/* ==========================================================================
   THE HABITUAL VOLUNTEER
   Give a little. Gain a lot.

   White canvas, navy type, blush / sage / warm stone / pale blue accents.
   Editorial rather than charity-website: generous space, thin borders, very
   soft shadows, nothing shouty.

   Class names avoid the -card / -tile / -tag / -pill / -badge suffixes, each of
   which a global rule in this file hijacks. Prefix is vol-.
   ========================================================================== */
#page-volunteer{
  background:#ffffff !important;
  font-family:'Nunito',system-ui,-apple-system,sans-serif;
}
#page-volunteer .vol-wrap{ max-width:1140px; margin:0 auto; padding:0 clamp(16px,4vw,30px); }
/* the global section{padding:52px 24px} rule reaches any <section> here */
#page-volunteer .vol-wrap section, #page-volunteer .vol-sec{ padding:0 !important; }
#page-volunteer .vol-sec{ margin:0 0 clamp(48px,7vw,84px); }
#page-volunteer .vol-body{ padding:clamp(32px,5vw,56px) 0 90px; }

/* ---- type ---------------------------------------------------------------- */
/* NOT #7E8C6E — that measured 3.58 on white, under AA. The established HU
   olive #5F7350 is the same family and clears it. Applied to every place that
   sage was used for TEXT (eyebrow, tagline, organisation name). */
#page-volunteer .vol-eb{
  font-size:.72rem; font-weight:800; letter-spacing:.2em; text-transform:uppercase; margin:0 0 8px;
  color:#5F7350 !important; -webkit-text-fill-color:#5F7350 !important;
}
#page-volunteer .vol-h2{
  font-family:'Playfair Display',Georgia,serif !important;
  font-size:clamp(1.45rem,3.2vw,2.15rem) !important; font-weight:700 !important; line-height:1.18;
  margin:0 0 8px !important; color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#page-volunteer .vol-h3{
  font-family:'Nunito',system-ui,sans-serif !important;
  font-size:1.02rem !important; font-weight:800 !important; margin:0 !important;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#page-volunteer .vol-lead{
  margin:0; font-size:1rem; line-height:1.7; max-width:60ch;
  color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important;
}
#page-volunteer .vol-sub{ margin:4px 0 0; font-size:.88rem; line-height:1.6;
  color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important; }
#page-volunteer .vol-hrow{ display:flex; align-items:flex-end; justify-content:space-between;
  gap:16px; flex-wrap:wrap; margin:0 0 22px; }
#page-volunteer .vol-note{ margin:14px 0 0; font-size:.82rem; line-height:1.65;
  color:#6A727D !important; -webkit-text-fill-color:#6A727D !important; }

/* ---- hero ---------------------------------------------------------------- */
#page-volunteer .vol-backbar{
  max-width:1140px; margin:0 auto; padding:14px clamp(16px,4vw,30px) 12px;
}
#page-volunteer .vol-hero{ display:block; width:100%; }
#page-volunteer .vol-hero img{ display:block; width:100%; height:auto; }
#page-volunteer .vol-intro{ padding:clamp(30px,4.5vw,48px) 0 0; }
#page-volunteer .vol-h1{
  font-family:'Playfair Display',Georgia,serif !important;
  font-size:clamp(1.9rem,4.6vw,3rem) !important; font-weight:700 !important; line-height:1.1;
  margin:0 0 10px !important; color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#page-volunteer .vol-tline{
  margin:0 0 14px; font-size:clamp(1rem,2.2vw,1.2rem); font-weight:700; font-style:italic;
  color:#5F7350 !important; -webkit-text-fill-color:#5F7350 !important;
}

/* ---- controls ------------------------------------------------------------- */
#page-volunteer .vol-b, #volSheet .vol-b{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:48px; padding:13px 22px; border-radius:999px; cursor:pointer; font:inherit;
  font-size:.9rem; font-weight:800; text-align:center;
  background:#fff !important; border:1px solid #DFD9CC !important;
  color:#3D4A3A !important; -webkit-text-fill-color:#3D4A3A !important;
}
#page-volunteer .vol-b:hover, #volSheet .vol-b:hover{ background:#F2F6F0 !important; border-color:#CFDDC8 !important; }
#page-volunteer .vol-b.is-primary, #volSheet .vol-b.is-primary{
  background:#4E6640 !important; border-color:#4E6640 !important;
  color:#fff !important; -webkit-text-fill-color:#fff !important;
}
#page-volunteer .vol-b.is-primary:hover, #volSheet .vol-b.is-primary:hover{ background:#445A38 !important; border-color:#445A38 !important; }
#page-volunteer .vol-b.is-sm, #volSheet .vol-b.is-sm{ min-height:44px; padding:10px 16px; font-size:.82rem; }
#page-volunteer .vol-b svg, #volSheet .vol-b svg{ width:17px; height:17px; flex:none;
  stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
#page-volunteer .vol-b:focus-visible, #volSheet .vol-b:focus-visible,
#page-volunteer .vol-heart:focus-visible, #page-volunteer .vol-int:focus-visible,
#page-volunteer .vol-cause:focus-visible, #page-volunteer .vol-nav:focus-visible{
  outline:3px solid #CF9E3F; outline-offset:2px;
}
#page-volunteer .vol-acts{ display:flex; gap:11px; flex-wrap:wrap; }
#page-volunteer .vol-link{
  background:none !important; border:0 !important; padding:10px 0; min-height:44px; font:inherit;
  font-size:.86rem; font-weight:800; cursor:pointer; text-align:left;
  color:#4E6640 !important; -webkit-text-fill-color:#4E6640 !important;
}
#page-volunteer .vol-link:hover{ text-decoration:underline; }

/* ---- the six hub cards ----------------------------------------------------- */
#page-volunteer .vol-hub{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
#page-volunteer .vol-nav{
  display:flex; flex-direction:column; gap:9px; align-items:flex-start; text-align:left;
  width:100%; cursor:pointer; font:inherit; min-height:170px;
  background:#fff !important; border:1px solid #EAE6DD !important; border-radius:22px;
  padding:24px 24px 22px; box-shadow:0 2px 14px rgba(36,52,71,.04);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
#page-volunteer .vol-nav:hover{ transform:translateY(-3px);
  box-shadow:0 14px 34px rgba(36,52,71,.09); border-color:#DCE4D6 !important; }
#page-volunteer .vol-ic{
  width:46px; height:46px; border-radius:14px; display:flex; align-items:center; justify-content:center; flex:none;
}
#page-volunteer .vol-ic svg{ width:22px; height:22px; stroke:currentColor; fill:none;
  stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
#page-volunteer .vol-ic.is-sage{ background:#EDF3EA !important; color:#4E6640; }
#page-volunteer .vol-ic.is-blush{ background:#F8EFEC !important; color:#95604F; }
#page-volunteer .vol-ic.is-stone{ background:#F4F1EA !important; color:#726A58; }
#page-volunteer .vol-ic.is-sky{ background:#EBF1F6 !important; color:#3F6480; }
#page-volunteer .vol-nav-n{ font-size:1.06rem; font-weight:800;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#page-volunteer .vol-nav-d{ font-size:.88rem; line-height:1.58;
  color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important; }
#page-volunteer .vol-nav-c{ margin-top:auto; padding-top:10px; font-size:.79rem; font-weight:800;
  color:#4E6640 !important; -webkit-text-fill-color:#4E6640 !important; }

/* ---- horizontally scrolling interest rail --------------------------------- */
#page-volunteer .vol-rail{
  display:flex; gap:12px; overflow-x:auto; padding:4px 2px 14px; scroll-snap-type:x proximity;
}
#page-volunteer .vol-rail::-webkit-scrollbar{ height:7px; }
#page-volunteer .vol-rail::-webkit-scrollbar-thumb{ background:#E2E6DE; border-radius:99px; }
#page-volunteer .vol-int{
  flex:none; width:158px; scroll-snap-align:start; cursor:pointer; font:inherit; text-align:left;
  border:1px solid #EAE6DD !important; border-radius:20px; padding:18px 16px 16px;
  display:flex; flex-direction:column; gap:9px; position:relative; min-height:150px;
  transition:transform .16s ease, box-shadow .16s ease;
}
#page-volunteer .vol-int:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(36,52,71,.08); }
#page-volunteer .vol-int.is-on{ border-color:#B9CDB1 !important; box-shadow:0 0 0 2px rgba(125,158,119,.22); }
#page-volunteer .vol-int-n{ font-size:.9rem; font-weight:800; line-height:1.35;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#page-volunteer .vol-heart{
  position:absolute; top:8px; right:8px; width:44px; height:44px; min-height:44px;
  border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.86) !important; border:1px solid #E6E1D6 !important;
}
#page-volunteer .vol-heart svg{ width:17px; height:17px; stroke:#8A7F72; fill:none;
  stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
#page-volunteer .vol-heart[aria-pressed="true"] svg{ stroke:#95604F; fill:#C98470; }
/* the tick is the non-colour signal — status never rests on colour alone */
#page-volunteer .vol-int.is-on .vol-int-n::after{ content:' \2713'; color:#4E6640; }

/* pastel washes for the interest and cause tiles */
#page-volunteer .p-sage{ background:#EFF4EC !important; }
#page-volunteer .p-blush{ background:#F9F0ED !important; }
#page-volunteer .p-stone{ background:#F5F2EB !important; }
#page-volunteer .p-sky{ background:#EDF2F7 !important; }
#page-volunteer .p-cream{ background:#FBF7EF !important; }

/* ---- panels, figures, rows ------------------------------------------------- */
#page-volunteer .vol-panel{
  background:#fff !important; border:1px solid #EAE6DD !important; border-radius:24px;
  padding:clamp(20px,3vw,30px); box-shadow:0 2px 14px rgba(36,52,71,.04);
}
#page-volunteer .vol-panel.is-cream{ background:#FBF7EF !important; border-color:#EDE4D3 !important; }
#page-volunteer .vol-panel.is-sage{ background:#F4F8F2 !important; border-color:#DEE8D9 !important; }
#page-volunteer .vol-figs{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:14px; }
#page-volunteer .vol-fig{
  background:#fff !important; border:1px solid #EAE6DD !important; border-radius:18px;
  padding:20px 18px; text-align:center; min-width:0;
}
#page-volunteer .vol-fv{
  display:block; font-family:'Playfair Display',Georgia,serif !important;
  font-size:clamp(1.7rem,3.4vw,2.4rem); font-weight:700; line-height:1;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#page-volunteer .vol-fl{
  display:block; margin:9px 0 0; font-size:.76rem; font-weight:700; letter-spacing:.06em;
  color:#6A727D !important; -webkit-text-fill-color:#6A727D !important;
}
#page-volunteer .vol-rows{ display:flex; flex-direction:column; gap:11px; }
#page-volunteer .vol-row{
  display:flex; align-items:center; gap:14px; width:100%; text-align:left; font:inherit;
  background:#fff !important; border:1px solid #EAE6DD !important; border-radius:18px;
  padding:15px 18px; min-height:64px;
}
#page-volunteer .vol-row-t{ flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
#page-volunteer .vol-row-n{ font-size:.96rem; font-weight:800;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#page-volunteer .vol-row-m{ font-size:.83rem; line-height:1.55;
  color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important; }
#page-volunteer .vol-x{
  flex:none; width:44px; height:44px; min-height:44px; border-radius:50%; cursor:pointer; font:inherit; font-size:.9rem;
  background:#fff !important; border:1px solid #EAE6DD !important;
  color:#6A727D !important; -webkit-text-fill-color:#6A727D !important;
}
#page-volunteer .vol-x:hover{ background:#F5F3EE !important; }
#page-volunteer .vol-empty{
  margin:0; padding:26px 20px; text-align:center; border-radius:18px;
  border:1px dashed #E2DDD2 !important; background:#FCFBF8 !important;
  font-size:.92rem; line-height:1.65; color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important;
}

/* ---- opportunity cards ----------------------------------------------------- */
#page-volunteer .vol-opps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:18px; }
#page-volunteer .vol-opp{
  display:flex; flex-direction:column;
  background:#fff !important; border:1px solid #EAE6DD !important; border-radius:22px; overflow:hidden;
  box-shadow:0 2px 14px rgba(36,52,71,.04);
}
#page-volunteer .vol-opp-top{ display:flex; align-items:center; gap:14px; padding:20px 22px 0; }
#page-volunteer .vol-logo{
  width:52px; height:52px; border-radius:16px; flex:none; display:flex; align-items:center; justify-content:center;
  font-family:'Playfair Display',Georgia,serif; font-size:1.15rem; font-weight:700;
}
#page-volunteer .vol-opp-b{ padding:16px 22px 20px; display:flex; flex-direction:column; gap:9px; flex:1; }
#page-volunteer .vol-opp-n{ font-family:'Playfair Display',Georgia,serif !important;
  font-size:1.2rem !important; font-weight:700 !important; margin:0 !important;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#page-volunteer .vol-opp-o{ font-size:.85rem; font-weight:700;
  color:#5F7350 !important; -webkit-text-fill-color:#5F7350 !important; }
#page-volunteer .vol-meta{ display:flex; gap:14px; flex-wrap:wrap; font-size:.83rem; font-weight:700;
  color:#4A5462 !important; -webkit-text-fill-color:#4A5462 !important; }
#page-volunteer .vol-meta span{ display:inline-flex; align-items:center; gap:6px; }
#page-volunteer .vol-meta svg{ width:15px; height:15px; stroke:#5F7350; fill:none; stroke-width:1.8;
  stroke-linecap:round; stroke-linejoin:round; }
#page-volunteer .vol-opp-d{ font-size:.9rem; line-height:1.62;
  color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important; }
#page-volunteer .vol-chips{ display:flex; gap:7px; flex-wrap:wrap; }
#page-volunteer .vol-chip{
  display:inline-block; font-size:.74rem; font-weight:700; padding:5px 12px; border-radius:99px;
  background:#F2F5F0 !important; color:#4A5644 !important; -webkit-text-fill-color:#4A5644 !important;
}
#page-volunteer .vol-opp-f{ display:flex; gap:9px; flex-wrap:wrap; margin-top:auto; padding-top:6px; }

/* ---- filters ---------------------------------------------------------------- */
#page-volunteer .vol-filters{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin:0 0 22px; }
#page-volunteer .vol-f{ display:block; }
#page-volunteer .vol-fl2, #volSheet .vol-fl2{
  display:block; margin:0 0 6px; font-size:.75rem; font-weight:800; letter-spacing:.05em;
  color:#4A5462 !important; -webkit-text-fill-color:#4A5462 !important;
}
#page-volunteer .vol-i, #volSheet .vol-i{
  width:100%; box-sizing:border-box; min-height:48px; padding:12px 15px; border-radius:14px; font:inherit; font-size:.92rem;
  background:#fff !important; border:1px solid #E2DDD2 !important;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#page-volunteer .vol-i:focus, #volSheet .vol-i:focus{ outline:none; border-color:#A9C4A2 !important;
  box-shadow:0 0 0 3px rgba(125,158,119,.18); }
#page-volunteer textarea.vol-i, #volSheet textarea.vol-i{ min-height:96px; resize:vertical; }
#volSheet .vol-fgrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:13px; }

/* ---- causes ---------------------------------------------------------------- */
#page-volunteer .vol-causes{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px; }
#page-volunteer .vol-cause{
  position:relative; cursor:pointer; font:inherit; text-align:left; min-height:112px;
  border:1px solid #EAE6DD !important; border-radius:20px; padding:20px 20px 18px;
  display:flex; flex-direction:column; justify-content:flex-end; gap:5px;
  transition:transform .16s ease, box-shadow .16s ease;
}
#page-volunteer .vol-cause:hover{ transform:translateY(-2px); box-shadow:0 12px 26px rgba(36,52,71,.08); }
#page-volunteer .vol-cause.is-on{ border-color:#B9CDB1 !important; box-shadow:0 0 0 2px rgba(125,158,119,.22); }
#page-volunteer .vol-cause-n{ font-size:1rem; font-weight:800; line-height:1.3;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
/* 4.32 on the pastel cause washes rather than on white — the tint is enough
   to push it under AA, so this one is deeper than the grey used elsewhere */
#page-volunteer .vol-cause-m{ font-size:.79rem; font-weight:700;
  color:#5A6270 !important; -webkit-text-fill-color:#5A6270 !important; }

/* ---- wishlist -------------------------------------------------------------- */
#page-volunteer .vol-wish{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; }
#page-volunteer .vol-w{
  display:flex; align-items:center; gap:13px; width:100%; text-align:left; font:inherit; cursor:pointer;
  background:#fff !important; border:1px solid #EAE6DD !important; border-radius:18px;
  padding:16px 18px; min-height:66px;
}
#page-volunteer .vol-w:hover{ border-color:#CFDDC8 !important; background:#FBFCFA !important; }
#page-volunteer .vol-w.is-done{ background:#F4F8F2 !important; border-color:#DEE8D9 !important; }
#page-volunteer .vol-tick{
  flex:none; width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:2px solid #CBD3C4 !important; background:#fff !important;
  font-size:.85rem; font-weight:800; color:#4E6640 !important; -webkit-text-fill-color:#4E6640 !important;
}
#page-volunteer .vol-w.is-done .vol-tick{ background:#5F7350 !important; border-color:#5F7350 !important;
  color:#fff !important; -webkit-text-fill-color:#fff !important; }
#page-volunteer .vol-w-n{ font-size:.92rem; font-weight:700; line-height:1.4;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#page-volunteer .vol-w.is-done .vol-w-n{ color:#4A5644 !important; -webkit-text-fill-color:#4A5644 !important; }

/* ---- memories -------------------------------------------------------------- */
#page-volunteer .vol-mems{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; }
#page-volunteer .vol-mem{
  background:#fff !important; border:1px solid #EAE6DD !important; border-radius:22px; overflow:hidden;
  display:flex; flex-direction:column; box-shadow:0 2px 14px rgba(36,52,71,.04);
}
#page-volunteer .vol-mem-img{
  aspect-ratio:16/10; display:flex; align-items:center; justify-content:center; position:relative;
}
#page-volunteer .vol-mem-img svg{ width:46px; height:46px; stroke:rgba(36,52,71,.34); fill:none;
  stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
#page-volunteer .vol-mem-b{ padding:18px 20px 20px; display:flex; flex-direction:column; gap:8px; flex:1; }
#page-volunteer .vol-mem-q{
  font-family:'Playfair Display',Georgia,serif; font-style:italic; font-size:.98rem; line-height:1.62;
  color:#3F4A55 !important; -webkit-text-fill-color:#3F4A55 !important;
}

/* ---- status words ---------------------------------------------------------- */
#page-volunteer .vol-st{
  display:inline-flex; align-items:center; gap:5px;
  font-size:.73rem; font-weight:800; padding:4px 11px; border-radius:99px;
  background:#F0F3EE !important; color:#44503E !important; -webkit-text-fill-color:#44503E !important;
}
#page-volunteer .vol-st.is-soon{ background:#FBF2DF !important; color:#775618 !important; -webkit-text-fill-color:#775618 !important; }
#page-volunteer .vol-st.is-out{ background:#F8ECEE !important; color:#8A2F3B !important; -webkit-text-fill-color:#8A2F3B !important; }
#page-volunteer .vol-st svg{ width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:2.2;
  stroke-linecap:round; stroke-linejoin:round; }

/* ---- the closing brand moment ---------------------------------------------- */
#page-volunteer .vol-quote{ text-align:center; padding:clamp(46px,7vw,84px) 0 0; }
#page-volunteer .vol-quote-h{
  font-family:'Playfair Display',Georgia,serif !important;
  font-size:clamp(1.7rem,4.4vw,2.8rem) !important; font-weight:700 !important; line-height:1.2;
  margin:0 auto 22px !important; max-width:20ch;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#page-volunteer .vol-quote-p{
  margin:0 auto; max-width:38ch; font-size:1.02rem; line-height:2;
  color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important;
}

/* ---- sheet ------------------------------------------------------------------ */
#volSheet{
  position:fixed; inset:0; z-index:9400; display:none; align-items:center; justify-content:center; padding:16px;
  background:rgba(30,32,28,.44); font-family:'Nunito',system-ui,sans-serif;
}
#volSheet.is-open{ display:flex; }
#volSheet .vol-box{
  width:100%; max-width:600px; max-height:calc(100dvh - 40px); overflow-y:auto;
  background:#fff !important; border-radius:26px; padding:24px clamp(18px,4vw,28px) 26px;
  box-shadow:0 26px 64px rgba(30,32,28,.26);
}
#volSheet .vol-box-h{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin:0 0 6px; }
#volSheet .vol-box-t{
  font-family:'Playfair Display',Georgia,serif !important; font-size:1.4rem !important; font-weight:700 !important;
  margin:0 !important; color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#volSheet .vol-box-x{
  flex:none; width:44px; height:44px; min-height:44px; border-radius:50%; cursor:pointer; font:inherit; font-size:1.05rem;
  background:#F5F3EE !important; border:1px solid #EAE6DD !important;
  color:#3D4A3A !important; -webkit-text-fill-color:#3D4A3A !important;
}
#volSheet .vol-box-b{ font-size:.94rem; line-height:1.7;
  color:#3F4A55 !important; -webkit-text-fill-color:#3F4A55 !important; }
#volSheet .vol-box-b > p{ margin:0 0 14px; color:#3F4A55 !important; -webkit-text-fill-color:#3F4A55 !important; }
#volSheet .vol-box-f{ display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap; margin:20px 0 0; }
#volSheet .vol-f{ display:block; margin:0 0 15px; }
#volSheet .vol-moods{ display:flex; gap:9px; flex-wrap:wrap; }
#volSheet .vol-mood{
  flex:1 1 92px; min-height:78px; border-radius:16px; cursor:pointer; font:inherit;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px;
  background:#fff !important; border:1px solid #E2DDD2 !important;
  font-size:.76rem; font-weight:800;
  color:#4A5462 !important; -webkit-text-fill-color:#4A5462 !important;
}
#volSheet .vol-mood svg{ width:24px; height:24px; stroke:#5F7350; fill:none; stroke-width:1.7;
  stroke-linecap:round; stroke-linejoin:round; }
#volSheet .vol-mood[aria-pressed="true"]{
  background:#EFF4EC !important; border-color:#A9C4A2 !important;
  color:#33452C !important; -webkit-text-fill-color:#33452C !important;
}
#volSheet .vol-mood[aria-pressed="true"]::after{ content:'\2713'; font-size:.8rem; }

/* ---- toast ------------------------------------------------------------------ */
#volToast{
  position:fixed; left:50%; bottom:26px; transform:translate(-50%,14px); z-index:9600;
  background:#243447 !important; color:#fff !important; -webkit-text-fill-color:#fff !important;
  padding:14px 24px; border-radius:999px; font-family:'Nunito',system-ui,sans-serif;
  font-size:.88rem; font-weight:700; opacity:0; pointer-events:none;
  transition:opacity .2s, transform .2s; max-width:calc(100vw - 32px); text-align:center;
}
#volToast.on{ opacity:1; transform:translate(-50%,0); }

/* ---- responsive -------------------------------------------------------------- */
@media (max-width:960px){
  #page-volunteer .vol-hub{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:620px){
  #page-volunteer .vol-hub{ grid-template-columns:1fr; }
  #page-volunteer .vol-figs{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  #page-volunteer .vol-causes{ grid-template-columns:1fr; }
  #page-volunteer .vol-wish{ grid-template-columns:1fr; }
  #page-volunteer .vol-acts .vol-b{ flex:1 1 auto; }
  #page-volunteer .vol-filters{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:430px){
  #page-volunteer .vol-figs{ grid-template-columns:1fr; }
  #page-volunteer .vol-row{ flex-wrap:wrap; }
}

