/* Niles Connect accessibility foundation: WCAG 2.2 AA target */
:root { --nc-a11y-focus:#ffbf47; --nc-a11y-focus-dark:#1b1b1b; }
html { scroll-padding-top: 7rem; }
body { overflow-wrap:anywhere; }
main, [id] { scroll-margin-top:7rem; }

/* Strong, consistent keyboard focus. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline:3px solid var(--nc-a11y-focus) !important;
  outline-offset:3px !important;
  box-shadow:0 0 0 1px var(--nc-a11y-focus-dark) !important;
}
:where(a,button,input,select,textarea,summary,[tabindex]):focus:not(:focus-visible) { outline:none; }
.skip-link:focus {
  position:fixed; left:1rem; top:1rem; z-index:1000000;
  display:inline-flex; align-items:center; min-height:44px;
  background:#fff; color:#071f3d; border:3px solid #071f3d;
  border-radius:8px; padding:.65rem 1rem; font-weight:800;
  clip:auto; clip-path:none; width:auto; height:auto; margin:0; overflow:visible;
}

/* Minimum practical control sizing and spacing. */
:where(.nc-page,.site-header,.site-footer) :where(a,button,input[type="button"],input[type="submit"],input[type="reset"],summary) { min-height:24px; }
:where(.nc-button,.nc-v4-btn,.nc-header-share,.nc-header-login,.nc-header-register,.menu-toggle,.search-submit,.nc-mobile-bottom-nav a) {
  min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center;
}
input,select,textarea,button { font:inherit; }
input[type="checkbox"],input[type="radio"] { min-width:24px; min-height:24px; }

/* Links remain recognizable without color alone. */
.entry-content p a,.entry-content li a,.nc-v4-doc-content a,.nc-v4-panel__body p a,.nc-v4-panel__body li a {
  text-decoration:underline; text-decoration-thickness:.11em; text-underline-offset:.18em;
}
a:hover { text-decoration-thickness:.16em; }

/* Forms and errors. */
label { font-weight:650; }
:where(input,select,textarea)[aria-invalid="true"], .has-error :where(input,select,textarea) { border-color:#9b1c1c !important; border-width:2px !important; }
:where(.error,.errors,.cbs-error,.dwcf-error,.form-error,[role="alert"]) { color:#721c24; background:#fff1f2; border-left:5px solid #b42318; padding:.8rem 1rem; }
:where(.notice,.alert,.cbs-message,.dwcf-message,[role="status"]) { max-width:100%; }
::placeholder { color:#59636f; opacity:1; }

/* Text reflow and spacing resilience. */
.nc-v4-intro__copy,.nc-v4-panel,.nc-v4-doc-content,.nc-v4-toc,.entry-content { min-width:0; }
.nc-v4-doc-content p,.nc-v4-doc-content li,.entry-content p,.entry-content li { max-width:75ch; }
.nc-v4-panel__head { flex-wrap:wrap; }
.nc-v4-panel__head > a { white-space:normal; }
pre,code { white-space:pre-wrap; word-break:break-word; }
table { width:100%; border-collapse:collapse; }
caption { text-align:left; font-weight:800; margin-bottom:.5rem; }
th { text-align:left; }
th,td { padding:.65rem; border:1px solid #aeb8c2; vertical-align:top; }

/* Disclosure widgets. */
summary { cursor:pointer; padding:.75rem 0; font-weight:800; }
summary::marker { font-size:1.1em; }
details[open] > summary { margin-bottom:.5rem; }

/* Prevent sticky regions from hiding keyboard targets. */
:target { scroll-margin-top:7rem; }

/* Motion preferences. */
@media (prefers-reduced-motion: reduce) {
  html:focus-within { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

/* Reflow at high zoom and narrow viewports. */
@media (max-width: 760px) {
  .nc-v4-dashboard,.nc-v4-doc-layout,.nc-v4-contact-grid,.nc-v4-share-grid { grid-template-columns:minmax(0,1fr) !important; }
  .nc-v4-intro,.nc-v4-panel__head,.nc-footer-bottom { align-items:flex-start; }
  .nc-v4-intro__actions { width:100%; }
  .nc-v4-intro__actions > * { width:100%; }
  .nc-mobile-bottom-nav a { min-width:0; }
}
@media (max-width: 400px) {
  .container { width:min(100% - 20px,1160px); }
  .nc-v4-panel,.single-page { padding:1rem; }
}

/* Windows forced-colors support. */
@media (forced-colors: active) {
  :where(a,button,input,select,textarea,summary):focus-visible { outline:3px solid Highlight !important; box-shadow:none !important; }
  .nc-v4-btn,.nc-button,.nc-header-share { border:1px solid ButtonText; }
}
