/* ============================================================================
   HBM FOUNDATION — custom.css
   ============================================================================
   Consolidated from every page's separate "00-shared-styles.html" file:
     about-us, volunteer-registration, membership-registration, contact-us,
     home-why-hbm, home-our-objectives, donate.

   MERGE POLICY — whenever a new page/section gets its own
   00-shared-styles.html from here on, its CSS gets folded into this file
   too, following the same pattern: shared/identical rules dedupe into the
   sections below, anything that reuses a common class name (.btn, .wrap,
   etc.) with page-specific values gets scoped under that page's modifier
   class instead of overwriting the site-wide default (see Donate, §10,
   for the pattern: its wrapper carries `class="hbmab hbmab-donate"` so
   its maroon buttons don't leak onto pink-themed pages).

   HOW TO USE
   ----------
   Enqueue this ONE file site-wide instead of pasting a "00-shared-styles"
   Raw HTML block on every page — e.g. via a child theme's style.css
   @import, a wp_enqueue_style() call in functions.php, or by pasting the
   contents (without this comment block) into Appearance → Customize →
   Additional CSS. Once it's loaded globally you can remove the old
   00-shared-styles.html block from each WPBakery page — the numbered
   content files (01-..., 02-..., etc.) don't need any changes, they just
   keep using the same class names.

   VALUES UNIFIED DURING MERGE
   ----------------------------
   A handful of values differed slightly from page to page in the original
   per-page files. They've been standardized here into one consistent
   design system:
     - section vertical padding   → 64px everywhere      (was 30/56/64px)
     - .btn-primary hover colour  → green everywhere      (was pink-deep on
                                     About Us / Contact Us, green on
                                     Volunteer / Membership)
     - hero title size            → the larger clamp()    (was smaller on
                                     Volunteer Registration only)
     - form textarea min-height   → 120px everywhere      (was 88–130px)
     - h1/h2/h3 line-height       → 1.2 everywhere         (was 1.15/1.2)
   If any page needs to keep its old value instead, say which page and
   I'll split it back out into a page-scoped override.

   TABLE OF CONTENTS
   -----------------
     1. Fonts
     2. Design tokens (CSS variables)
     3. Base / typography / global utilities (every page)
     4. Shared form components (Volunteer Reg / Membership Reg / Contact Us)
     5. About Us — page-specific
     6. Membership Registration — page-specific (fee tiles, contact strip)
     7. Contact Us — page-specific (details column)
     8. Homepage — "Why HBM Took This Up" + "Our Ambitious Projects"
     9. Homepage — "Our Objectives"
     10. Donate — page-specific (needs `hbmab-donate` modifier class, see §10)
     11. Donation Refund & Cancellation Policy — page-specific
============================================================================ */

/* ---------- 1. Fonts ---------- */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;800&family=Poppins:wght@400;500;600;700&display=swap');
/* For best performance also add these two tags once in your theme's <head>:
   <link rel="preconnect" href="https://fonts.googleapis.com">
   <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
*/

/* ---------- 2. Design tokens ---------- */
.hbmab{
  --navy:#1B2A63;
  --navy-deep:#101A45;
  --brown:#7A4419;
  --pink:#D81B72;
  --pink-deep:#B01260;
  --green:#4C7A2F;
  --olive:#707C33;
  --cream:#FDF3EC;
  --blush:#FBE2DC;
  --maroon:#4A0E2A;
  --gold:#C9A227;
  --ink:#2A2118;
  --ink-soft:#5C5247;
  --line:rgba(42,33,24,0.18);
  /* extra accents — used only by the "Our Objectives" section */
  --purple:#5B3A8E;
  --orange:#C1662F;
  --blue:#1E5FA8;
  --font-display:'Playfair Display', Georgia, serif;
  --font-body:'Poppins', 'Segoe UI', Arial, sans-serif;

  font-family:var(--font-body);
  color:var(--ink);
  line-height:1.6;
}

/* ---------- 3. Base / typography / global utilities ---------- */
.hbmab *{ box-sizing:border-box; }
.hbmab h1, .hbmab h2, .hbmab h3{
  font-family:var(--font-display);
  color:var(--navy);
  margin:0;
  line-height:1.2;
}
.hbmab p{ margin:0; }
.hbmab a{ text-decoration:none; }
.hbmab .wrap{ max-width:1350px; margin:0 auto; padding:0 24px; }
.hbmab .eyebrow{
  display:inline-block;
  font-family:var(--font-body);
  font-weight:700;
  font-size:0.78rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--olive);
}
.hbmab section{ padding:64px 0; }
.hbmab .bg-cream{ background:var(--cream); }
.hbmab .bg-blush{ background:linear-gradient(180deg,var(--blush),var(--cream)); }
.hbmab .bg-white{ background:#fff; }
.hbmab .pb-0{ padding-bottom:0px !important; }

.hbmab .btn{
  display:inline-block;
  font-family:var(--font-body);
  font-weight:600;
  font-size:1rem;
  padding:15px 34px;
  border-radius:999px;
  border:2px solid var(--pink);
  color:var(--pink-deep);
  background:transparent;
  cursor:pointer;
  transition:transform .15s ease, background .15s ease, color .15s ease;
}
.hbmab .btn:hover{ transform:translateY(-2px); }
.hbmab .btn-primary{
  background:var(--pink) !important;
  border-color:var(--pink) !important;
  color:#fff;
  box-shadow:0 8px 20px rgba(216,27,114,0.28);
}
.hbmab .btn-primary:hover{
  background:var(--green) !important;
  border-color:var(--green) !important;
}
.hbmab .btn:disabled{ opacity:0.6; cursor:not-allowed; transform:none; }

/* About Us — quote/tagline dot-strip + generic card */
.hbmab .dot-strip{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-top:18px;
}
.hbmab .dot-strip span{
  font-family:var(--font-display);
  font-weight:700;
  font-size:1rem;
  color:var(--navy);
}
.hbmab .dot-strip i{
  width:7px; height:7px; border-radius:50%;
  background:var(--pink);
  display:inline-block;
}
.hbmab .card{
  background:#fff;
  border-radius:14px;
  box-shadow:0 10px 30px rgba(27,42,99,0.08);
  border-top:3px solid var(--gold);
}

/* Shared masthead title/sub — Volunteer Reg / Membership Reg / Contact Us */
.hbmab-hero-title{ font-size:clamp(2rem,4.4vw,3.1rem); margin-top:12px; }
.hbmab-hero-sub{ margin-top:16px !important; font-size:1.02rem; color:var(--ink-soft); }

@media (max-width:700px){
  .hbmab .wrap{ padding:0 18px; }
  .hbmab .btn{ width:100%; text-align:center; }
}

/* ============================================================================
   4. SHARED FORM COMPONENTS
   Used by: Volunteer Registration, Membership Registration, Contact Us
============================================================================ */
.hbmab-form-card{
  background:#fff;
  border-radius:16px;
  box-shadow:0 10px 34px rgba(27,42,99,0.09);
  border-top:4px solid var(--gold);
  padding:32px clamp(20px,4vw,40px);
  margin-bottom:28px;
}
.hbmab-section-head{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:26px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
}
.hbmab-section-badge{
  flex:none;
  width:40px; height:40px;
  border-radius:50%;
  background:var(--navy);
  color:#fff;
  font-family:var(--font-display);
  font-weight:700;
  font-size:1.05rem;
  display:flex; align-items:center; justify-content:center;
}
.hbmab-section-head h2{ font-size:1.25rem; }
.hbmab-section-head .eyebrow{ display:block; margin-bottom:2px; }

/* ---------- field layout ---------- */
.hbmab-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.hbmab-field-row.hbmab-cols-3{ grid-template-columns:1fr 1fr 1fr; }
.hbmab-field{ display:flex; flex-direction:column; gap:7px; margin-bottom:22px; }
.hbmab-field:last-child{ margin-bottom:0; }
.hbmab-field--tight{ margin-bottom:0; }
.hbmab-field label{ font-weight:600; font-size:0.92rem; color:var(--ink); }
.hbmab-field .hbmab-hint{ font-size:0.78rem; color:var(--ink-soft); font-weight:400; }
.hbmab-field .req{ color:var(--pink); }
.hbmab-sublabel{ font-weight:600; font-size:0.9rem; }

.hbmab-field input[type="text"],
.hbmab-field input[type="email"],
.hbmab-field input[type="tel"],
.hbmab-field input[type="number"],
.hbmab-field input[type="url"],
.hbmab-field select,
.hbmab-field textarea{
  font-family:var(--font-body);
  font-size:0.96rem;
  color:var(--ink);
  background:#fff;
  border:1.5px solid var(--line);
  border-radius:9px;
  padding:13px 14px;
  width:100%;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.hbmab-field textarea{ resize:vertical; min-height:120px; }
.hbmab-field input:focus,
.hbmab-field select:focus,
.hbmab-field textarea:focus{
  outline:none;
  border-color:var(--pink);
  box-shadow:0 0 0 3px rgba(216,27,114,0.14);
}

/* ---------- choice groups (radio / checkbox) ---------- */
.hbmab-choice-grid{ display:grid; grid-template-columns:1fr 1fr; gap:4px 24px; }
.hbmab-choice-grid.hbmab-choice-3col{ grid-template-columns:repeat(3,1fr); }
.hbmab-choice{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:9px 4px;
  cursor:pointer;
}
.hbmab-choice input[type="radio"],
.hbmab-choice input[type="checkbox"]{
  accent-color:var(--pink);
  width:18px; height:18px;
  margin-top:2px;
  flex:none;
  cursor:pointer;
}
.hbmab-choice span{ font-size:0.94rem; }

.hbmab-other-input{ margin:6px 0 4px 28px; max-width:340px; }
.hbmab-other-input[hidden]{ display:none; }

.hbmab-group-error{
  display:none;
  color:var(--pink-deep);
  font-size:0.82rem;
  font-weight:600;
  margin-top:8px;
}
.hbmab-field.has-error .hbmab-group-error{ display:block; }
.hbmab-field.has-error .hbmab-choice-grid{
  outline:1.5px solid var(--pink);
  outline-offset:8px;
  border-radius:8px;
}

/* ---------- declaration box ---------- */
.hbmab-declaration{
  background:var(--blush);
  border:1.5px solid var(--gold);
  border-radius:12px;
  padding:22px 24px;
  margin-top:8px;
}
.hbmab-declaration p{ font-size:0.94rem; color:var(--ink-soft); margin-bottom:14px; }
.hbmab-declaration .hbmab-choice{ padding:0; font-weight:600; color:var(--ink); }
.hbmab-declare-list{
  margin:0 0 20px;
  padding-left:20px;
  color:var(--ink-soft);
  font-size:0.92rem;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.hbmab-submit-row{ text-align:center; margin-top:8px; }
.hbmab-submit-row .hbmab-hint{ display:block; margin-top:12px; font-size:0.8rem; color:var(--ink-soft); }

/* ---------- honeypot (hidden anti-spam field) ---------- */
.hbmab-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* ---------- submit result popup (<dialog>) ---------- */
.hbmab-modal{
  border:none;
  border-radius:16px;
  padding:0;
  max-width:420px;
  width:calc(100% - 40px);
  box-shadow:0 20px 60px rgba(16,10,6,0.25);
  font-family:var(--font-body);
  color:var(--ink);
}
.hbmab-modal::backdrop{ background:rgba(42,33,24,0.55); }
.hbmab-modal-body{ padding:36px 30px 30px; text-align:center; }
.hbmab-modal-icon{
  width:56px; height:56px;
  border-radius:50%;
  margin:0 auto 18px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-display);
  font-size:1.6rem;
  font-weight:700;
  color:#fff;
}
.hbmab-modal.is-success .hbmab-modal-icon{ background:var(--green); }
.hbmab-modal.is-error .hbmab-modal-icon{ background:var(--pink); }
.hbmab-modal h3{ font-size:1.3rem; margin-bottom:10px; }
.hbmab-modal p{ font-size:0.95rem; color:var(--ink-soft); margin-bottom:22px; }

@media (max-width:700px){
  .hbmab-form-card{ padding:24px 18px; }
  .hbmab-field-row,
  .hbmab-field-row.hbmab-cols-3,
  .hbmab-choice-grid,
  .hbmab-choice-grid.hbmab-choice-3col{ grid-template-columns:1fr !important; gap:14px; }
}

/* ============================================================================
   5. ABOUT US — page-specific
============================================================================ */
/* grid containers use classes instead of inline grid-template-columns, so
   the breakpoints below can actually take effect (inline style="" always
   beats a stylesheet rule) */
.hbmab-grid-who{ display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:start; }
.hbmab-grid-leaders{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.hbmab-grid-mission{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.hbmab-grid-join{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }

/* leadership: photo on top, text below, centered — on every screen size */
.hbmab-leader{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:18px;
}
.hbmab-leader img{
  flex:none;
  width:250px !important;
  height:250px !important;
}
.hbmab-leader-photo{
  border-radius:50%;
  object-fit:cover;
  border:3px solid var(--gold);
}

@media (max-width:900px){
  .hbmab-grid-mission{ grid-template-columns:repeat(2,1fr) !important; }
  .hbmab-grid-who,
  .hbmab-grid-leaders,
  .hbmab-grid-join{ grid-template-columns:1fr !important; }
  .hbmab-leader img{ width:110px; height:110px; }
}
@media (max-width:600px){
  /* mission stays 2-up on phones, per request — do not collapse to 1 */
  .hbmab-grid-mission{ grid-template-columns:repeat(2,1fr) !important; gap:14px; }
  .hbmab .card{ padding:20px 16px !important; }
  .hbmab-leader img{ width:96px; height:96px; }
  .hbmab h1{ max-width:none !important; }
}

/* ============================================================================
   6. MEMBERSHIP REGISTRATION — page-specific
============================================================================ */
.hbmab-tagline{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-top:0px;
}
.hbmab-tagline span{
  font-family:var(--font-display);
  font-weight:700;
  font-size:1.05rem;
  color:var(--navy);
}
.hbmab-tagline i{
  width:7px; height:7px; border-radius:50%;
  background:var(--pink);
  display:inline-block;
}

/* ---------- fee tiles ---------- */
.hbmab-fee-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:8px; }
.hbmab-fee-tile{
  background:var(--blush);
  border:1.5px solid var(--gold);
  border-radius:14px;
  padding:22px 24px;
  text-align:center;
}
.hbmab-fee-tile .amount{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.8rem;
  color:var(--maroon);
  display:block;
}
.hbmab-fee-tile .label{
  display:block;
  margin-top:4px;
  font-size:0.85rem;
  color:var(--ink-soft);
  text-transform:uppercase;
  letter-spacing:0.06em;
}

/* ---------- closing tagline band + contact strip ---------- */
.hbmab-tagline-band{
  background:var(--maroon);
  color:var(--gold);
  text-align:center;
  padding:22px 0;
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(0.95rem,2.2vw,1.3rem);
  letter-spacing:0.04em;
}
.hbmab-contact-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:8px;
}
.hbmab-contact-tile{
  background:#fff;
  border-radius:14px;
  border-top:3px solid var(--gold);
  box-shadow:0 10px 30px rgba(27,42,99,0.08);
  padding:22px 20px;
}
.hbmab-contact-tile .label{
  display:block;
  font-size:0.78rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--olive);
  font-weight:700;
  margin-bottom:6px;
}
.hbmab-contact-tile .value{ font-size:0.98rem; color:var(--ink); font-weight:600; }
.hbmab-contact-tile .value a{ color:var(--navy); }

@media (max-width:700px){
  .hbmab-fee-grid,
  .hbmab-contact-grid{ grid-template-columns:1fr !important; gap:14px; }
}

/* ============================================================================
   7. CONTACT US — page-specific
============================================================================ */
.hbmab-grid-contact{ display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }

.hbmab-detail-block{ margin-bottom:26px; padding-bottom:22px; border-bottom:1px dashed var(--line); }
.hbmab-detail-block:last-child{ margin-bottom:0; padding-bottom:0; border-bottom:none; }
.hbmab-detail-block .eyebrow{ display:block; margin-bottom:10px; }
.hbmab-detail-block address{ font-style:normal; color:var(--ink-soft); line-height:1.75; }

.hbmab-person-row{ display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.hbmab-person-row:last-child{ margin-bottom:0; }
.hbmab-person-avatar{
  flex:none;
  width:44px; height:44px;
  border-radius:50%;
  background:var(--navy);
  color:#fff;
  font-family:var(--font-display);
  font-weight:700;
  font-size:1rem;
  display:flex; align-items:center; justify-content:center;
}
.hbmab-person-row .name{ display:block; font-weight:700; color:var(--navy); font-size:0.95rem; }
.hbmab-person-row .value a{ color:var(--ink-soft); font-size:0.94rem; }
.hbmab-person-row .value a:hover{ color:var(--pink-deep); }

.hbmab-reg-list{
  margin:0;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:8px 14px;
  font-size:0.9rem;
}
.hbmab-reg-list dt{ margin:0; font-weight:600; color:var(--ink); }
.hbmab-reg-list dd{ margin:0; color:var(--ink-soft); }

@media (max-width:900px){
  .hbmab-grid-contact{ grid-template-columns:1fr !important; }
}

/* ============================================================================
   8. HOMEPAGE — "Why HBM Took This Up" + "Our Ambitious Projects"
============================================================================ */
.hbmab .hbmwhy-head{ text-align:center; max-width:760px; margin:0 auto 44px; }
.hbmab .hbmwhy-head h2{ font-size:clamp(1.7rem,3.4vw,2.4rem); margin-top:12px; }
.hbmab .hbmwhy-head p{ margin-top:14px; color:var(--ink-soft); font-size:1.02rem; }

/* ---------- two-column "why" panel ---------- */
.hbmwhy-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:stretch; }
.hbmwhy-card{
  background:#fff;
  border-radius:18px;
  padding:36px clamp(22px,3.5vw,40px);
  box-shadow:0 10px 34px rgba(27,42,99,0.09);
  border-top:4px solid var(--gold);
  position:relative;
}
.hbmwhy-card-head{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.hbmwhy-card .hbmwhy-mark{
  font-family:var(--font-display);
  font-size:2.6rem;
  line-height:1;
  color:var(--pink);
  opacity:0.4;
  flex:none;
}
.hbmwhy-card h3{ font-size:1.32rem; }
.hbmwhy-card p{ color:var(--ink-soft); font-size:1rem; }
.hbmwhy-card--alt{ border-top-color:var(--green); }
.hbmwhy-card--alt .hbmwhy-mark{ color:var(--green); }

/* ---------- ambitious projects grid ---------- */
.hbmwhy-projects{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.hbmwhy-proj{
  background:#fff;
  border-radius:16px;
  padding:30px 26px;
  box-shadow:0 8px 26px rgba(27,42,99,0.08);
  border:1px solid var(--line);
  position:relative;
  transition:transform .18s ease, box-shadow .18s ease;
}
.hbmwhy-proj:hover{ transform:translateY(-4px); box-shadow:0 14px 34px rgba(27,42,99,0.14); }

.hbmwhy-proj-top{ display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.hbmwhy-proj-icon{
  flex:none;
  width:56px; height:56px;
  border-radius:50%;
  background:var(--navy);
  display:flex; align-items:center; justify-content:center;
  color:#fff;
}
.hbmwhy-proj-icon svg{ width:26px; height:26px; stroke:#fff; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.hbmwhy-proj-num{
  flex:none;
  width:30px; height:30px;
  border-radius:50%;
  background:var(--gold);
  color:#fff;
  font-family:var(--font-display);
  font-weight:700;
  font-size:0.92rem;
  display:flex; align-items:center; justify-content:center;
  margin-left:auto;
}
.hbmwhy-proj h3{ font-size:1.14rem; margin-bottom:10px; }
.hbmwhy-proj p{ color:var(--ink-soft); font-size:0.95rem; }

/* alternate icon colors for visual rhythm */
.hbmwhy-proj:nth-child(3n+2) .hbmwhy-proj-icon{ background:var(--pink); }
.hbmwhy-proj:nth-child(3n+3) .hbmwhy-proj-icon{ background:var(--olive); }

/* 7th project — featured, full-width horizontal card on tablet/desktop */
.hbmwhy-proj--featured{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  gap:28px;
  background:#fff;
  border:1px solid var(--line);
  border-left:5px solid var(--gold);
}
.hbmwhy-proj--featured .hbmwhy-proj-top{ margin-bottom:0; flex:none; }
.hbmwhy-proj--featured .hbmwhy-proj-icon{ background:var(--gold); width:68px; height:68px; }
.hbmwhy-proj--featured .hbmwhy-proj-icon svg{ width:32px; height:32px; }
.hbmwhy-proj--featured h3{ color:var(--navy); }
.hbmwhy-proj--featured p{ color:var(--ink-soft); }

@media (max-width:900px){
  .hbmwhy-grid{ grid-template-columns:1fr; }
  .hbmwhy-projects{ grid-template-columns:repeat(2,1fr) !important; }
  .hbmwhy-proj--featured{ grid-column:1 / -1; flex-direction:column; align-items:flex-start; text-align:left; }
}
@media (max-width:600px){
  .hbmwhy-projects{ grid-template-columns:1fr !important; }
  /* match the plain project-card style on mobile — no featured/full-width treatment */
  .hbmwhy-proj--featured{
    flex-direction:column;
    align-items:stretch;
    text-align:left;
    border:1px solid var(--line) !important;
  }
  .hbmwhy-proj--featured .hbmwhy-proj-top{ margin-bottom:16px; }
  .hbmwhy-proj--featured .hbmwhy-proj-icon{ width:56px; height:56px; }
  .hbmwhy-proj--featured .hbmwhy-proj-icon svg{ width:26px; height:26px; }
}

/* ============================================================================
   9. HOMEPAGE — "Our Objectives"
============================================================================ */
.hbmobj-head{ text-align:center; max-width:760px; margin:0 auto 46px; }
.hbmobj-head h2{ font-size:clamp(1.9rem,4vw,2.6rem); margin-top:10px; letter-spacing:0.01em; }
.hbmobj-head .hbmobj-rule{
  display:flex; align-items:center; justify-content:center; gap:12px;
  margin-bottom:10px;
}
.hbmobj-head .hbmobj-rule::before,
.hbmobj-head .hbmobj-rule::after{
  content:"";
  width:46px; height:1px;
  background:var(--gold);
}
.hbmobj-head p{ margin-top:16px; font-size:1.05rem; color:var(--ink-soft); }
.hbmobj-head .hl-pink{ color:var(--pink-deep); font-weight:600; }
.hbmobj-head .hl-green{ color:var(--green); font-weight:600; }
.hbmobj-head .hl-blue{ color:var(--blue); font-weight:600; }

.hbmobj-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px 28px; }
.hbmobj-card{
  display:flex;
  align-items:flex-start;
  gap:18px;
  background:#fff;
  border:1.5px solid var(--c, var(--line));
  border-radius:20px;
  padding:22px 24px;
  box-shadow:0 8px 24px rgba(27,42,99,0.07);
  transition:transform .18s ease, box-shadow .18s ease;
}
.hbmobj-card:hover{ transform:translateY(-3px); box-shadow:0 14px 32px rgba(27,42,99,0.13); }

.hbmobj-icon{
  flex:none;
  width:60px; height:60px;
  border-radius:50%;
  background:var(--c-tint, var(--blush));
  display:flex; align-items:center; justify-content:center;
}
.hbmobj-icon svg{
  width:28px; height:28px;
  stroke:var(--c, var(--navy));
  fill:none;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.hbmobj-card h3{ font-size:1.08rem; color:var(--c, var(--navy)); margin-bottom:8px; letter-spacing:0.01em; }
.hbmobj-card p{ font-size:0.93rem; color:var(--ink-soft); }

/* per-card accent — mirrors the reference infographic's colour rhythm */
.hbmobj-card.c-purple{ --c:var(--purple); --c-tint:#ECE7F4; }
.hbmobj-card.c-orange{ --c:var(--orange); --c-tint:#F7E6D8; }
.hbmobj-card.c-maroon{ --c:var(--maroon); --c-tint:#F0DDE2; }
.hbmobj-card.c-green{ --c:var(--green); --c-tint:#E4EDDD; }
.hbmobj-card.c-blue{ --c:var(--blue); --c-tint:#DDE7F3; }
.hbmobj-card.c-brown{ --c:var(--brown); --c-tint:#EFE2D6; }

/* ---------- closing quote + tagline band ---------- */
.hbmobj-quote{
  text-align:center;
  margin:46px auto 0 !important;
  font-family:var(--font-display);
  font-style:italic;
  font-size:1.15rem;
  color:var(--maroon);
  line-height:1.55;
}
.hbmobj-band{
  margin-top:40px;
  background:linear-gradient(135deg,var(--maroon),#33081d);
  border-top:3px solid var(--gold);
  border-bottom:3px solid var(--gold);
  padding:26px 20px;
  text-align:center;
}
.hbmobj-band h3{ color:#fff; font-size:1.3rem; letter-spacing:0.04em; margin-bottom:10px; }
.hbmobj-band .hbmobj-dots{
  display:flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-body);
  font-weight:600;
  font-size:0.82rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold);
}
.hbmobj-band .hbmobj-dots span.dot{ width:5px; height:5px; border-radius:50%; background:var(--gold); }

/* ---------- CTA buttons ---------- */
.hbmobj-cta-row{ display:flex; justify-content:center; align-items:center; gap:18px; flex-wrap:wrap; margin-top:36px; }
.hbmobj-btn{
  display:inline-block;
  font-family:var(--font-body);
  font-weight:600;
  font-size:1rem;
  padding:15px 36px;
  border-radius:999px;
  text-decoration:none;
  text-align:center;
  border:2px solid transparent;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.hbmobj-btn:hover{ transform:translateY(-2px); }
.hbmobj-btn-volunteer{ background:var(--green); color:#fff; box-shadow:0 8px 20px rgba(76,122,47,0.28); }
.hbmobj-btn-volunteer:hover{ background:#3e6626; }
.hbmobj-btn-donate{ background:var(--pink); color:#fff; box-shadow:0 8px 20px rgba(216,27,114,0.28); }
.hbmobj-btn-donate:hover{ background:var(--pink-deep); }

@media (max-width:800px){
  .hbmobj-grid{ grid-template-columns:1fr; }
}
@media (max-width:600px){
  .hbmobj-card{ padding:20px; }
}
@media (max-width:480px){
  .hbmobj-cta-row{ flex-direction:column; width:100%; }
  .hbmobj-btn{ width:100%; }
}

/* ============================================================================
   10. DONATE — page-specific
   ----------------------------------------------------------------------------
   This page uses a MAROON button theme instead of the site-wide pink, so
   its wrapper needs the extra `hbmab-donate` modifier class:
     <div class="hbmab hbmab-donate"> ... </div>
   (already set in donate/01-donate-form.html). Without that class the
   Donate page's Donate Now button just falls back to the default pink
   .btn-primary from §3 — everything else here is uniquely-named
   (.hbmdon-*) and needs no scoping.
============================================================================ */
.hbmab.hbmab-donate .btn{ border-color:var(--maroon) !important; color:var(--maroon) !important; }
.hbmab.hbmab-donate .btn-primary{
  background:var(--maroon) !important;
  border-color:var(--maroon) !important;
  color:#fff !important;
  box-shadow:0 8px 20px rgba(74,14,42,0.28) !important;
}
.hbmab.hbmab-donate .btn-primary:hover{ background:#33081d !important; border-color:#33081d !important; }

/* ---------- 50/50 layout ---------- */
.hbmdon-grid{ display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:start; }

/* ---------- left column: "where it goes" info list ---------- */
.hbmdon-info h2{ font-size:1.6rem; margin-bottom:10px; }
.hbmdon-info > p{ color:var(--ink-soft); margin-bottom:0px; font-size:1.02rem; }

.hbmdon-cause{ display:flex; align-items:flex-start; gap:16px; padding:14px 0; border-bottom:1px dashed var(--line); }
.hbmdon-cause:last-child{ border-bottom:none; }
.hbmdon-cause-icon{
  flex:none;
  width:46px; height:46px;
  border-radius:50%;
  background:var(--blush);
  display:flex; align-items:center; justify-content:center;
}
.hbmdon-cause-icon svg{ width:22px; height:22px; stroke:var(--maroon); fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.hbmdon-cause-text{ padding-top:4px; }
.hbmdon-cause-text .name{ display:block; font-weight:700; color:var(--navy); font-size:0.98rem; margin-bottom:2px; }
.hbmdon-cause-text .desc{ font-size:0.88rem; color:var(--ink-soft); }

/* "Show more" toggle — only does anything on mobile; on tablet/desktop
   all 10 causes are always visible and this button stays hidden */
.hbmdon-show-more{
  display:none;
  align-items:center;
  justify-content:center;
  gap:6px;
  width:fit-content;
  margin:10px auto 0;
  padding:0;
  border:none;
  background:none;
  cursor:pointer;
  font-family:var(--font-body);
  font-weight:700;
  font-size:0.92rem;
  color:var(--maroon);
}
.hbmdon-show-more .chev{ stroke:var(--maroon); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .15s ease; }
.hbmdon-show-more[aria-expanded="true"] .chev{ transform:rotate(180deg); }

/* ---------- right column: form cards ---------- */
/* the three cards are children of the <form>, not of .hbmdon-form-col itself */
.hbmdon-form-col form{ display:flex; flex-direction:column; gap:5px; }
.hbmdon-card{
  background:#fff;
  border-radius:18px;
  box-shadow:0 10px 34px rgba(27,42,99,0.09);
  border:1px solid var(--line);
  padding:28px clamp(20px,3vw,32px);
}
.hbmdon-card h3{ font-size:1.2rem; margin-bottom:20px; }

/* preset amount pills — !important throughout: the theme's own generic
   input/button styling (higher specificity or loaded after this file)
   was overriding these on the live site */
.hbmdon-amount-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.hbmdon-amount{
  display:flex !important; align-items:center !important; justify-content:center !important;
  height:52px !important;
  border-radius:999px !important;
  border:1.5px solid var(--line) !important;
  background:#fff !important;
  box-shadow:none !important;
  font-family:var(--font-body) !important;
  font-weight:700 !important;
  font-size:1rem !important;
  color:var(--ink) !important;
  cursor:pointer;
  transition:background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
.hbmdon-amount:hover{ transform:translateY(-2px); border-color:var(--maroon) !important; }
.hbmdon-amount.is-selected{
  background:var(--maroon) !important;
  border-color:var(--maroon) !important;
  color:#fff !important;
}
.hbmdon-amount.is-custom{ color:var(--ink-soft) !important; font-weight:600 !important; }
.hbmdon-amount.is-custom.is-selected{ color:#fff !important; }

.hbmdon-custom-wrap{ margin-top:14px; }
.hbmdon-custom-wrap[hidden]{ display:none; }
.hbmdon-custom-wrap input{
  width:100% !important;
  font-family:var(--font-body) !important;
  font-size:1rem !important;
  padding:13px 14px !important;
  border:1.5px solid var(--line) !important;
  border-radius:9px !important;
  background:#fff !important;
  box-shadow:none !important;
}
.hbmdon-custom-wrap input:focus{ outline:none !important; border-color:var(--maroon) !important; box-shadow:0 0 0 3px rgba(74,14,42,0.12) !important; }

/* "Contribute To" dropdown, sits below the amount grid */
.hbmdon-cause-select{ margin-top:20px; }
.hbmdon-cause-select label{ display:block; font-weight:600; font-size:0.9rem; margin-bottom:8px; color:var(--ink); }
.hbmdon-cause-select select{
  width:100% !important;
  font-family:var(--font-body) !important;
  font-size:0.96rem !important;
  color:var(--ink) !important;
  background:#fff !important;
  border:1.5px solid var(--line) !important;
  border-radius:9px !important;
  padding:13px 14px !important;
  box-shadow:none !important;
}
.hbmdon-cause-select select:focus{ outline:none !important; border-color:var(--maroon) !important; box-shadow:0 0 0 3px rgba(74,14,42,0.12) !important; }

/* underline-style personal-info fields, matching the reference look */
.hbmdon-uline{ margin-bottom:26px; }
.hbmdon-uline:last-child{ margin-bottom:0; }
.hbmdon-uline label{ display:block; font-weight:600; font-size:0.9rem; color:var(--olive); margin-bottom:10px; }
.hbmdon-uline input,
.hbmdon-uline select{
  width:100% !important;
  border:none !important;
  border-bottom:1.5px solid var(--line) !important;
  border-radius:0 !important;
  padding:6px 2px 12px !important;
  font-family:var(--font-body) !important;
  font-size:1rem !important;
  color:var(--ink) !important;
  background:transparent !important;
  box-shadow:none !important;
}
.hbmdon-uline input:focus,
.hbmdon-uline select:focus{ outline:none !important; border-bottom-color:var(--maroon) !important; }
.hbmdon-uline .req{ color:var(--pink); }

.hbmdon-80g-extra{ display:flex; flex-direction:column; }
.hbmdon-80g-extra[hidden]{ display:none; }

.hbmdon-consent{ display:flex; align-items:flex-start; gap:10px; margin-top:6px; }
.hbmdon-consent input[type="checkbox"]{ accent-color:var(--maroon); width:18px; height:18px; margin-top:2px; flex:none; }
.hbmdon-consent span{ font-size:0.9rem; color:var(--ink-soft); }

/* total + submit row */
.hbmdon-total-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  padding:8px 4px;
}
.hbmdon-total-row .label{ font-size:0.95rem; color:var(--ink-soft); display:block; margin-bottom:4px; }
.hbmdon-total-row .amount{ font-family:var(--font-display); font-weight:800; font-size:1.9rem; color:var(--navy); }

@media (max-width:900px){
  .hbmdon-grid{ grid-template-columns:1fr; }
  /* mobile-only "show first 3, then Show more" behaviour */
  .hbmdon-cause-more{ display:none; }
  .hbmdon-cause-more.is-expanded{ display:block; }
  .hbmdon-show-more{ display:flex; }
}
@media (max-width:600px){
  .hbmdon-card{ padding:22px 18px; }
  .hbmdon-amount-grid{ gap:10px; }
  .hbmdon-total-row{ flex-direction:column; align-items:flex-start; }
  .hbmdon-total-row .btn{ width:100%; text-align:center; }
}

/* ============================================================================
   11. DONATION REFUND & CANCELLATION POLICY — page-specific
   ----------------------------------------------------------------------------
   Plain legal/policy document layout — no cards, no grids, just a single
   centered content column. Uses only tokens already defined in §2.
============================================================================ */
.hbmab-policy-wrap{ max-width:1350px; margin:0 auto; padding:30px 0px; }
.hbmab-policy-wrap h1{
  font-size:clamp(1.8rem,3.6vw,2.5rem);
  padding-bottom:22px;
  margin-bottom:26px;
  border-bottom:1px solid var(--line);
}
.hbmab-policy-intro{
  color:var(--ink-soft);
  font-size:1.02rem;
  line-height:1.75;
  margin-bottom:38px;
}

.hbmab-policy-item{ margin-bottom:32px; }
.hbmab-policy-item:last-child{ margin-bottom:0; }
.hbmab-policy-item h2{ font-size:1.28rem; margin-bottom:10px; }
.hbmab-policy-item p{ color:var(--ink-soft); font-size:1rem; line-height:1.75; }

@media (max-width:600px){
  .hbmab-policy-wrap{ padding:40px 18px; }
}
