.ir77-ui .ir77-nav { position: relative; } /* Keep focused fields and labels clear at enlarged text sizes. */
#pupil-main { overflow-wrap: anywhere; container-type: inline-size; }
#pupil-main :is(a, button, input) { scroll-margin-block: 2lh; }
@container (max-width: 55ch) {
  #pupil-main .ir77-hero { grid-template-columns: minmax(0, 1fr); }
}
.ir77-ui .ir77-crosslink { flex-direction: row; flex-wrap: wrap; }
.ir77-ui .ir77-crosslink > div { flex: 1 1 24ch; min-width: min(100%, 24ch); }
.ir77-ui .ir77-crosslink > a { max-width: 100%; }
@media (min-width: 761px) {
  #pupil-main .ir77-feature-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 20ch), 1fr)); }
}
/* Keep the address readable while availability and email steps change. */
#claim { scroll-margin-top: 24px; overflow-wrap: anywhere; }
#claim-startup[hidden], #claim-fields[hidden] { display: none; }
#claim-startup h3 { margin: 0 0 12px; font-size: 18px; line-height: 1.4; }
#claim-startup p { margin: 0 0 16px; color: #a5a5bb; font-size: 14px; line-height: 1.65; }
#claim-startup nav { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.ir77-ui #claim-startup a { min-height: 44px; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
/* Keep enough room to type when larger text makes the prefix wider. */
#claim .pupil-handle-field { flex-wrap: wrap; }
#claim .pupil-handle-prefix { max-width: 100%; }
#claim #claim-input { flex: 1 1 10ch; min-width: min(100%, 10ch); }
.pupil-claim-help { margin: 10px 0 0; color: #a5a5bb; font-size: 12px; line-height: 1.65; }
#claim-status { min-height: 40px; padding-block: 8px; overflow-wrap: anywhere; }
#claim-status[data-state="free"] { color: #8bdfbb; }
#claim-status[data-state="unavailable"], #claim-status[data-state="error"] { color: #ffb1bf; }
.ir77-ui #claim #claim-btn { width: 100%; min-height: 44px; font-size: 14px; }
#claim .pupil-promo { margin-top: 20px; }
.pupil-claim-error { color: #ffb1bf; background: #f43f5e0b; border: 1px solid #f43f5e30; padding: 12px; border-radius: 8px; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.pupil-claim-done:focus-visible { outline: 2px solid #b79aff; outline-offset: 6px; border-radius: 4px; }
.ir77-ui a.pupil-profile-address { color: #f0f0f8; gap: 16px; min-height: 44px; max-width: 100%; }
.ir77-ui a.pupil-profile-address:hover { border-color: #b79aff; background: #8b5cf60b; }
.pupil-claim-heading { flex-wrap: wrap; }
.pupil-claim-heading > div { flex: 1; min-width: min(100%, 12ch); }
#claim .pupil-claim-symbol { flex-shrink: 0; width: auto; height: auto; min-width: 45px; min-height: 45px; padding-inline: .15em; }
@media (max-width: 760px) {
  #pupil-main .ir77-hero { padding-top: 2.5rem; gap: 2rem; }
}
