/* Shared component tokens and interactive states for every public template. */
:root {
  --space-1: .5rem;
  --space-2: .75rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2rem;
  --space-6: 3rem;
  --content-readable: 52rem;
  --control-height: 3rem;
  --radius-sm: .75rem;
  --radius-md: 1.25rem;
  --focus-ring: 3px solid #1768b5;
  --focus-offset: 3px;
}

.content-wrap { max-width: var(--content-readable); }
.card { border-radius: var(--radius-md); }
.btn-primary,
.btn-secondary,
.nav-cta { min-height: var(--control-height); }

button,
input,
select,
textarea { font: inherit; }

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
  width: 100%;
  min-height: var(--control-height);
  padding: var(--space-2) var(--space-3);
  color: var(--ink);
  background: var(--white);
  border: 1px solid #627486;
  border-radius: var(--radius-sm);
}

textarea { min-height: 8rem; resize: vertical; }
label { display: inline-block; margin-bottom: var(--space-1); font-weight: 700; }
::placeholder { color: #5d6878; opacity: 1; }

.skip-link {
  position: fixed;
  z-index: 1000;
  top: var(--space-2);
  left: var(--space-3);
  padding: var(--space-2) var(--space-4);
  color: var(--blue-dark);
  background: #fff;
  border: 2px solid var(--blue);
  border-radius: var(--radius-sm);
  transform: translateY(calc(-100% - 2rem));
}

.skip-link:focus,
.skip-link:focus-visible { transform: translateY(0); }

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

:where(.site-footer, .cta-band) :focus-visible,
.mobile-care-bar a:first-child:focus-visible { outline-color: #fff; }
:where(.nav-cta, .btn-primary, .mobile-care-bar a:last-child):focus-visible { outline-color: #172033; }
.card:focus-within { box-shadow: 0 0 0 3px #1768b5, var(--shadow); }

:where(.site-nav a, .mobile-care-bar a, .site-footer a, .card-link, .breadcrumb a, summary) {
  min-height: 44px;
}

:where(.site-footer a, .card-link, .breadcrumb a, summary) {
  display: inline-flex;
  align-items: center;
}

.breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.breadcrumb li + li::before {
  content: "/";
  margin-right: .45rem;
  color: #627083;
}

.breadcrumb [aria-current="page"] { font-weight: 700; }

:where(button, input, select, textarea):disabled {
  cursor: not-allowed;
  opacity: .62;
}

.field-error { color: #9b1c1c; font-weight: 700; }
.status-success { color: #17603a; }
.status-error { color: #9b1c1c; }
.action-row-spaced,
.hero-actions-spaced { margin-top: 26px; }
.section-title-spaced { margin-top: 40px; }

@media (max-width: 560px) {
  .btn-primary,
  .btn-secondary { min-height: 44px; }
}

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