/* ---- Page + container ---- */
.gb-page{background:#f7fbfd; padding:24px 0 56px;}
.gb-container{max-width:980px;margin:0 auto;padding:0 18px;}

.gb-header h1{margin:0 0 6px;font-weight:900;letter-spacing:.2px;color:#10364c}
.gb-header .lede{color:#5b7486;margin:0}

/* ---- Card sections ---- */
.card{
  background:#fff; border:1px solid #e6edf4; border-radius:14px;
  margin:16px 0; box-shadow:0 10px 26px rgba(0,0,0,.06);
}
.card__head{
  background:#f4f7fb; border-bottom:1px solid #e6edf4;
  border-radius:14px 14px 0 0; padding:12px 14px;
}
.card__head h2{margin:0;font-weight:800;color:#153a4d;font-size:clamp(1.1rem,.8vw + .9rem,1.35rem)}
.card__body{padding:12px 14px 16px}

/* ---- Grid helpers ---- */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
@media (max-width:860px){.grid-2,.grid-3{grid-template-columns:1fr;}}

/* ---- Field blocks ---- */
.field{margin:10px 0}
.field label{display:block;margin:0 0 6px;font-weight:700;color:#1f3646}
.field .hint{display:block;margin-top:4px;color:#5a768a;font-size:.875rem}
.field.check label{display:flex;align-items:center;gap:.55rem;font-weight:700}

/* ---- Inputs / selects / textarea ---- */
#referral-form :where(input[type="text"],input[type="email"],input[type="tel"],select,textarea){
  width:100%; box-sizing:border-box; height:48px; padding:.72rem .85rem;
  border:1.5px solid #ced9e4; border-radius:10px; background:#fff; font:inherit;
  transition:border-color .15s ease, box-shadow .15s ease;
}
#referral-form textarea{min-height:120px;height:auto;resize:vertical;}
#referral-form :where(input,select,textarea):focus{
  outline:0; border-color:#007bbe; box-shadow:0 0 0 3px rgba(0,123,190,.28);
}

/* Larger checkboxes/radios */
#referral-form input[type="checkbox"],#referral-form input[type="radio"]{
  inline-size:1.05rem; block-size:1.05rem; margin-right:.55rem; accent-color:#007bbe;
}

/* ---- Services as cards ---- */
.service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;margin-top:6px}
.checkcard{
  display:block;border:1.5px solid #e6edf4;border-radius:12px;padding:1rem;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.04)
}
.checkcard:hover{box-shadow:0 8px 22px rgba(0,0,0,.08)}
.checkcard > input{margin-right:.55rem}
.checkcard > span{font-weight:800;color:#0f2c3e;font-size:1.05rem;display:block;margin-bottom:0.3rem;}
.checkcard small{display:block;margin-left:1.7rem;margin-top:.4rem;color:#4a6578;line-height:1.4;}

/* ---- Accordions (details/summary) ---- */
.acc{border:1px solid #e6edf4;border-radius:12px;background:#fff;margin:14px 0;box-shadow:0 6px 16px rgba(0,0,0,.06)}
.acc > summary{display:flex;align-items:center;gap:.6rem;list-style:none;cursor:pointer;padding:.85rem 1rem;font-weight:800;color:#102a3a;background:#f4f7fb;border-bottom:1px solid #e6edf4}
.acc > summary::-webkit-details-marker{display:none}
.acc > summary::after{content:"";width:10px;height:10px;border-right:2px solid #5a7a8f;border-bottom:2px solid #5a7a8f;transform:rotate(-45deg);margin-left:auto;transition:transform .2s}
.acc[open] > summary::after{transform:rotate(45deg)}
.acc .chip{margin-left:.6rem;background:rgba(0,123,190,.12);padding:.22rem .55rem;border-radius:999px;font-size:.8rem;font-weight:800}
.acc .acc-body{padding:.9rem 1rem 1rem}

/* ---- Actions / Buttons ---- */
.actions{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}
.btn{
  --b1:#007bbe;--b2:#63b4e6;color:#fff;background:linear-gradient(90deg,var(--b1),var(--b2));
  border:0;border-radius:999px;padding:.85rem 1.4rem;font-weight:900;letter-spacing:.2px;
  box-shadow:0 10px 28px rgba(0,123,190,.18);cursor:pointer;transition:transform .1s, box-shadow .2s
}
.btn:hover{transform:translateY(-1px);box-shadow:0 16px 36px rgba(0,123,190,.24)}
.btn--light{--b1:#e8f4fb;--b2:#f2f8fd;color:#0b2330;background:linear-gradient(90deg,var(--b1),var(--b2));box-shadow:0 6px 16px rgba(0,0,0,.08)}

/* ---- Child cards ---- */
.child-card{border:1.5px solid #e6edf4;border-radius:12px;padding:1rem;background:#f9fbff;margin-bottom:14px}
.stack-md > * + *{margin-top:1rem}

/* ---- Error styling ---- */
.error-summary{max-width:980px;margin:1rem auto;padding:1rem;border-left:6px solid #c62828;background:#fff5f5;border-radius:10px}
.error-summary a{text-decoration:underline}
.error-text{color:#c62828;margin:.35rem 0 0;font-size:.85rem;font-weight:600}
.req{color:#c62828;margin-left:2px}

/* ---- Criteria ---- */
.criteria-grid ul{list-style:none;margin:0;padding:0;columns:2;column-gap:1.4rem}
.criteria-grid li{break-inside:avoid;margin:.35rem 0}
@media (max-width:760px){.criteria-grid ul{columns:1}}
