.ca-sc { --ca-navy:#002147; --ca-ink:#002147; --ca-muted:#53677d; --ca-soft:#f2f3f4; --ca-field:#edf0f2; --ca-line:#c7ced8; --ca-action:#005bb8; --ca-action-dark:#004892; --ca-blue:#005bb8; box-sizing:border-box; }
.ca-sc *, .ca-sc *::before, .ca-sc *::after { box-sizing:border-box; }
.ca-programme-form-section {
  padding-top:clamp(.75rem,1.125vw,1rem);
}

.ca-programme-page--gnaas .ca-booking-group > .ca-gnaas-donation-field,
.ca-programme-page--gnaas .ca-booking-group > .ca-gnaas-additional-field {
  clear:both;
  width:100%;
  margin:1.25rem 0 0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}

.ca-programme-page--gnaas .ca-gnaas-donation-field + .ca-booking-note,
.ca-programme-page--gnaas .ca-gnaas-additional-field + .ca-booking-note {
  margin-top:1rem;
}

.ca-programme-page--gnaas .ca-booking-field-card--wide > label {
  margin-bottom:.9rem;
}

.ca-programme-overview,
.ca-programme-how { padding:clamp(4rem,7vw,6rem) 0; }
.ca-programme-how { background:var(--ca-soft); }

.ca-programme-section-heading { max-width:760px; margin:0 0 2.5rem; }
.ca-programme-section-heading--center { margin-inline:auto; text-align:center; }
#content .ca-programme-section-heading h2,
#content .ca-programme-form-header h2 { margin:0; color:var(--ca-navy); font-size:clamp(2rem,4vw,3.3rem); line-height:1.1; }
.ca-programme-section-heading > p { margin:1rem 0 0; color:var(--ca-muted); line-height:1.7; }

.ca-programme-benefits {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}

.ca-programme-benefits > div {
  min-height:170px;
  padding:1.5rem;
  border:1px solid rgba(0,33,71,.06);
  border-radius:1rem;
  background:#fff;
  box-shadow:0 10px 24px rgba(0,33,71,.06);
}

.ca-programme-benefits strong,
.ca-programme-benefits span { display:block; }
.ca-programme-benefits strong { margin:0 0 .65rem; color:var(--ca-navy); font-size:1rem; }
.ca-programme-benefits span { color:var(--ca-muted); font-size:.8rem; line-height:1.6; }

.ca-programme-steps {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
  margin:0;
  padding:0;
  list-style:none;
}

.ca-programme-steps li {
  display:flex;
  align-items:flex-start;
  gap:1rem;
  padding:1.35rem;
  border-radius:1rem;
  background:#fff;
}

.ca-programme-steps li > span {
  display:grid;
  width:38px;
  height:38px;
  flex:0 0 38px;
  place-items:center;
  border-radius:50%;
  background:var(--ca-navy);
  color:#fff;
  font-weight:800;
}

.ca-programme-steps strong { display:block; margin:.15rem 0 .35rem; color:var(--ca-navy); }
.ca-programme-steps p { margin:0; color:var(--ca-muted); font-size:.76rem; line-height:1.55; }

.ca-business-stock-note {
  margin:1.5rem 0 0;
  color:var(--ca-muted);
}

.ca-business-stock-section {
  padding:clamp(3.5rem,6vw,5rem) 0;
  background:var(--ca-sky);
}

.ca-business-stock-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}

.ca-business-stock-grid > div {
  padding:1.4rem;
  border:1px solid rgba(0,33,71,.08);
  border-radius:1rem;
  background:#fff;
}

.ca-business-stock-grid strong,
.ca-business-stock-grid span { display:block; }
.ca-business-stock-grid strong { margin-bottom:.45rem; color:var(--ca-navy); }
.ca-business-stock-grid span { color:var(--ca-muted); font-size:.85rem; line-height:1.6; }

@media (max-width:800px) {
  .ca-business-stock-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:640px) {
  .ca-business-stock-grid { grid-template-columns:1fr; }
}

.ca-business-guidance-section {
  padding:clamp(3.5rem,6vw,5rem) 0;
  background:var(--ca-sky);
}

.ca-business-guidance__links {
  display:grid;
  gap:.75rem;
  margin-top:1.75rem;
}

.ca-business-guidance__links > strong {
  display:block;
  color:var(--ca-navy);
  font-size:.9rem;
}

.ca-business-guidance__links > a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.8rem 0;
  border-bottom:1px solid rgba(0,86,179,.18);
  color:var(--ca-action);
  font-size:.82rem;
  font-weight:700;
  text-decoration:none;
}

.ca-business-guidance__links > a:hover,
.ca-business-guidance__links > a:focus-visible {
  color:var(--ca-action-dark);
}

.ca-business-guidance__links > a span {
  flex:0 0 auto;
  margin-left:auto;
}

.ca-business-guidance__links > small {
  display:block;
  margin-top:.25rem;
  color:var(--ca-muted);
  font-size:.72rem;
  line-height:1.5;
}

.ca-programme-form-section {
  padding:clamp(4rem,7vw,6rem) 0;
  background:#fff;
}

.ca-programme-form-wrap { max-width:1040px; }
.ca-programme-form-header { max-width:780px; margin:0 auto 2.5rem; text-align:center; }
.ca-programme-form-header p { margin:1rem 0 0; color:var(--ca-muted); line-height:1.65; }

.ca-programme-form { display:grid; gap:1.25rem; }

.ca-programme-form-card {
  min-width:0;
  margin:0;
  padding:clamp(1.5rem,3vw,2.25rem);
  border:1px solid rgba(0,33,71,.08);
  border-radius:1.25rem;
  background:var(--ca-soft);
}

.ca-programme-form-card > legend {
  display:flex;
  float:left;
  width:100%;
  align-items:center;
  gap:.75rem;
  margin:0 0 1rem;
  padding:0;
  color:var(--ca-navy);
  font-family:"Plus Jakarta Sans",sans-serif;
  font-size:1.15rem;
  font-weight:800;
}

.ca-programme-form-card > legend > span {
  display:grid;
  width:32px;
  height:32px;
  place-items:center;
  border-radius:50%;
  background:var(--ca-navy);
  color:#fff;
  font-size:.78rem;
}

.ca-programme-form-card > legend + * {
  clear:both;
}

.ca-programme-fields {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.1rem;
  margin-top:0;
}

.ca-programme-form .ca-form-field { margin:0; }
/* Keep controls aligned when a label in the same form row wraps. */
@media (min-width:641px) {
  @supports (grid-template-rows:subgrid) {
    .ca-programme-form .ca-programme-fields > .ca-form-field:not(.ca-form-field--full),
    .ca-unified-form .ca-form-row > .ca-form-field {
      display:grid;
      grid-template-rows:subgrid;
      row-gap:0;
    }
    .ca-programme-form .ca-programme-fields > .ca-form-field:not(.ca-form-field--full) { grid-row:span 3; }
    .ca-unified-form .ca-form-row > .ca-form-field { grid-row:span 2; }
  }
  @supports not (grid-template-rows:subgrid) {
    .ca-programme-form .ca-programme-fields > .ca-form-field:not(.ca-form-field--full) > label,
    .ca-unified-form .ca-form-row > .ca-form-field > .ca-form-field__label { min-height:2lh; }
  }
}
@media (min-width:641px) and (max-width:760px) {
  @supports not (grid-template-rows:subgrid) {
    .ca-programme-form .ca-programme-fields > .ca-form-field:not(.ca-form-field--full) > label,
    .ca-unified-form .ca-form-row > .ca-form-field > .ca-form-field__label { min-height:3lh; }
  }
}
@media (min-width:761px) {
  @supports (grid-template-rows:subgrid) {
    .ca-booking-page-content #clothes_aid_booking_form .ca-booking-fields--two > label,
    .ca-booking-page-content #clothes_aid_booking_form .ca-booking-fields--three > label,
    .ca-booking-page-content #clothes_aid_booking_form .ca-booking-fields--collection > label,
    .ca-booking-page-content #clothes_aid_booking_form .ca-booking-fields--collection > .ca-booking-quantity {
      display:grid;
      grid-row:span 2;
      grid-template-rows:subgrid;
      row-gap:0;
    }
  }
  @supports not (grid-template-rows:subgrid) {
    .ca-booking-page-content #clothes_aid_booking_form .ca-booking-fields > label > span,
    .ca-booking-page-content #clothes_aid_booking_form .ca-booking-fields--collection > .ca-booking-quantity > label { min-height:2lh; }
  }
}
.ca-programme-form .ca-form-field--full { grid-column:1 / -1; }

.ca-programme-form label:not(.ca-choice),
.ca-programme-form .ca-choice-group > legend {
  display:block;
  margin:0 0 .45rem;
  color:var(--ca-navy);
  font-family:"Lexend",sans-serif;
  font-size:.72rem;
  font-weight:700;
  line-height:1.45;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.ca-programme-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.ca-programme-form select,
.ca-programme-form textarea {
  display:block;
  width:100%;
  min-height:48px;
  margin:0;
  padding:.8rem .95rem;
  border:1px solid var(--ca-line);
  border-radius:.7rem;
  background-color:var(--ca-field);
  box-shadow:none;
  color:var(--ca-ink);
  font-size:.9rem;
}

.ca-programme-form select {
  padding-right:3rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%23002147' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-position:right 1rem center;
  background-repeat:no-repeat;
  background-size:14px 9px;
  appearance:none;
}

.ca-programme-form textarea { min-height:130px; resize:vertical; }
.ca-programme-form input:focus,
.ca-programme-form select:focus,
.ca-programme-form textarea:focus { border-color:var(--ca-blue); outline:0; box-shadow:0 0 0 4px rgba(0,86,179,.13); }
.ca-programme-form input[aria-invalid="true"],
.ca-programme-form select[aria-invalid="true"],
.ca-programme-form textarea[aria-invalid="true"] { border-color:#b42318; }
.ca-programme-form .ca-form-field small { display:block; margin:.4rem 0 0; color:var(--ca-muted); font-size:.7rem; line-height:1.45; }

.ca-form-section-note { margin:.85rem 0 0; color:var(--ca-muted); font-size:.8rem; }
.ca-choice-group { min-width:0; margin:1.35rem 0 0; padding:0; border:0; }
.ca-choice-group > legend { width:100%; padding:0; }
.ca-choice-grid { display:flex; flex-wrap:wrap; gap:.65rem; }
.ca-choice-grid--wide { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.ca-choice-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }

.ca-school-form-section--collections > .ca-programme-fields,
.ca-school-form-section--storage > .ca-choice-row,
.ca-school-form-section--storage > .ca-form-field {
  margin-top:1.25rem;
}
.ca-school-form-section--storage > .ca-choice-row .ca-choice-group { margin-top:0; }

.ca-programme-form .ca-choice {
  display:flex;
  min-height:44px;
  align-items:flex-start;
  gap:.55rem;
  margin:0;
  padding:.7rem .85rem;
  border:1px solid rgba(0,33,71,.09);
  border-radius:.7rem;
  background:var(--ca-field);
  color:var(--ca-ink);
  font-family:"Lexend",sans-serif;
  font-size:.78rem;
  font-weight:600;
  line-height:1.4;
  letter-spacing:0;
  text-transform:none;
  cursor:pointer;
}

.ca-programme-form .ca-choice:focus-within {
  border-color:var(--ca-blue);
  box-shadow:0 0 0 3px rgba(0,86,179,.1);
}

/* Keep native controls beside their labels instead of the legacy sprite's page-top position. */
.ca-sc input[type="checkbox"],
.ca-sc input[type="radio"] {
  position:static;
  inset:auto;
  opacity:1;
  z-index:auto;
  overflow:visible;
  appearance:auto;
}
.ca-sc .ca-programme-form .ca-choice:has(input:checked),
#content .ca-sc .ca-programme-form .ca-choice:has(input:checked) {
  border-color:var(--ca-blue);
  background:var(--ca-blue);
  color:#fff;
  box-shadow:0 0 0 3px rgba(0,86,179,.1);
}
.ca-sc .ca-programme-form .ca-choice:has(input:checked) input { accent-color:#fff; }
.ca-programme-form .ca-choice input { width:1.1rem; height:1.1rem; flex:0 0 1.1rem; margin:.05rem 0 0; accent-color:var(--ca-blue); }
.ca-consent-list { display:grid; gap:.75rem; margin:1.5rem 0 0; }
.ca-consent-list .ca-choice { width:100%; }

/* Override the legacy ID-scoped form controls whenever a field is active. */
#content form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="file"]):focus,
#content form select:focus,
#content form textarea:focus {
  border-color:var(--ca-blue);
  outline:0;
  box-shadow:0 0 0 4px rgba(0,86,179,.13);
}

.ca-conditional-panel {
  margin:1.25rem 0 0;
  padding:1.25rem;
  border-left:4px solid var(--ca-blue);
  border-radius:0 .8rem .8rem 0;
  background:#fff;
}
.ca-champion-form-section--plain-details > .ca-conditional-panel {
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
.ca-champion-form-section--plain-details > .ca-conditional-panel > .ca-choice-group:first-child {
  margin-top:0;
}
.ca-conditional-panel h3 { margin:0 0 1rem; color:var(--ca-navy); font-size:1rem; }
.ca-programme-form [hidden],
.ca-programme-confirmation[hidden],
.ca-form-error-summary[hidden] { display:none!important; }

.ca-address-lookup { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.65rem; }
.ca-programme-form .ca-address-lookup button {
  min-height:48px;
  padding:.75rem 1rem;
  border:0;
  border-radius:.7rem;
  background:var(--ca-navy);
  color:#fff;
  font-size:.76rem;
  font-weight:700;
  cursor:pointer;
}
.ca-programme-form .ca-address-lookup button:hover,
.ca-programme-form .ca-address-lookup button:focus-visible {
  background:var(--ca-action-dark);
  color:#fff;
}
.ca-form-status { margin:.55rem 0 0; color:var(--ca-blue); font-size:.74rem; }
.ca-field-error { display:block; margin:.4rem 0 0; color:#b42318; font-size:.72rem; font-weight:700; }

.ca-form-error-summary {
  margin:0 0 1.25rem;
  padding:1rem 1.2rem;
  border:1px solid rgba(180,35,24,.3);
  border-radius:.8rem;
  background:#fff4f2;
  color:#7a271a;
  font-weight:700;
}

.ca-programme-form .ca-form-actions { display:flex; justify-content:flex-end; margin:.5rem 0 0; }
.ca-programme-form .ca-form-actions button[type="submit"] { min-height:50px; padding:.85rem 1.5rem; border:0; border-radius:.75rem; background:var(--ca-action); box-shadow:0 12px 24px rgba(0,86,179,.16); color:#fff; font-size:.82rem; font-weight:800; cursor:pointer; }
.ca-programme-page--schools .ca-form-actions button[type="submit"],
.ca-programme-page--business .ca-form-actions button[type="submit"],
.ca-programme-page--champions .ca-form-actions button[type="submit"] { font-size:1rem!important; }
.ca-business-opening-hours,
.ca-business-form-notes { margin-top:1.25rem; }
.ca-programme-form .ca-form-actions button[type="submit"]:hover,
.ca-programme-form .ca-form-actions button[type="submit"]:focus-visible { background:var(--ca-action-dark); color:#fff; }
.ca-programme-form .ca-form-actions button[disabled] { cursor:wait; opacity:.7; transform:none; }


.ca-sc .ca-container { width:calc(100% - 3rem); max-width:1040px; margin:auto; }
.ca-sc input,.ca-sc select,.ca-sc textarea {font:inherit;}
.ca-sc .ca-form-actions button[type=submit] {font-size:1rem!important;}
@media(max-width:640px){.ca-sc .ca-programme-fields,.ca-sc .ca-choice-grid--wide {grid-template-columns:1fr;} .ca-sc .ca-container {width:calc(100% - 2rem);}}
