[hidden] { display: none !important; }
html { scroll-padding-top: 105px; }
:focus-visible { outline: 3px solid #207ba9; outline-offset: 4px; }
.hero :focus-visible, .project :focus-visible, .tools-section :focus-visible,
.contact :focus-visible, footer :focus-visible { outline-color: #f0ce80; }
.skip-link {
  position: fixed;
  z-index: 90;
  top: 8px;
  left: 12px;
  transform: translateY(-180%);
  padding: 10px 16px;
  background: white;
  color: #064995;
  border-radius: 5px;
}
.skip-link:focus { transform: none; }
header .nav { gap: clamp(8px, 2vw, 24px); }
.nav-actions { display: flex; align-items: center; gap: 10px; }
.navlinks a[aria-current="location"] {
  color: var(--blue);
  text-decoration: underline;
  text-decoration-color: var(--green);
  text-underline-offset: 6px;
}
.quick-access { background: var(--pale); border-bottom: 1px solid #deebf2; }
.quick-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 20px 0;
}
.quick-link {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 15px 17px;
  background: white;
  border: 1px solid #dae8f0;
  border-radius: 8px;
  transition: background .2s, border-color .2s, transform .2s;
}
.quick-link:hover, .quick-link:focus-visible {
  background: #eaf6f4;
  border-color: #6db8aa;
  transform: translateY(-2px);
}
.quick-link strong { color: var(--navy); font-size: 14px; }
.quick-link small { display: block; color: #526b80; margin-top: 4px; font-size: 12px; }
.quick-icon {
  color: #12685e;
  background: #e4f1f0;
  border-radius: 5px;
  padding: 7px;
  font-size: 11px;
  font-weight: 800;
}
.quick-arrow { color: var(--blue); }
.pillar ul {
  display: grid;
  gap: 12px;
  margin: 24px 0 0;
  padding: 20px 0 0;
  border-top: 1px solid #e5edf4;
  list-style: none;
}
.pillar li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  color: #314b65;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
}
.axis-icon {
  width: 34px;
  height: 34px;
  padding: 7px;
  border-radius: 8px;
  background: #e9f2fb;
  color: #14528e;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pillar:nth-child(2) .axis-icon { background: #e4f1f0; color: #12685e; }
.pillar:nth-child(3) .axis-icon { background: #f9f0dd; color: #805519; }
.filter-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 0; }
.filter-row button {
  border: 1px solid #bcd3e4;
  border-radius: 24px;
  background: white;
  color: var(--navy);
  padding: 9px 15px;
  font-weight: 700;
  font-size: 13px;
}
.filter-row button:hover { background: #eaf3f9; }
.filter-row button[aria-pressed="true"] { color: white; background: var(--blue); border-color: var(--blue); }
.filter-row + .project-grid { margin-top: 22px; }
.project-grid.filtered { grid-template-columns: 1fr; }
.project .small-link { margin-right: 18px; }
.project .small-link:hover, .tool-links a:hover, .contact-social a:hover, footer a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.tool-links { display: grid; justify-items: start; gap: 10px; margin-top: 18px; }
.tool-links a, .contact-social a { color: white; font-weight: 800; font-size: 13px; }
.contact-social { margin-top: 14px; }
.team-search { max-width: 460px; margin-top: 24px; }
.team-search label { display: block; font-size: 14px; font-weight: 800; margin-bottom: 7px; }
.team-search input {
  width: 100%;
  min-height: 44px;
  padding: 9px 13px;
  border: 1px solid #abc5d9;
  border-radius: 6px;
  color: var(--ink);
  background: white;
  font: inherit;
}
.team-search p { margin-top: 6px; font-size: 13px; color: #476478; }
.footer-top nav { flex-wrap: wrap; }
@media (max-width: 760px) {
  html { scroll-padding-top: 90px; }
  .quick-grid { grid-template-columns: 1fr; gap: 8px; }
  .quick-link { padding: 12px 14px; }
  header .navlinks.open { max-height: calc(100dvh - var(--header-height)); overflow-y: auto; }
}
@media (prefers-reduced-motion: reduce) {
  html:root { scroll-behavior: auto; }
  .quick-link, .btn { transition: none; }
  .quick-link:hover, .quick-link:focus-visible, .btn:hover { transform: none; }
}

.strategy-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
  margin: 2rem 0 -1.5rem;
}
.strategy-overview > div {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .45rem .8rem;
  min-width: 0;
  padding: .65rem .85rem;
  border-radius: .6rem;
  background: #e3eef6;
  color: #16446a;
  font-weight: 750;
  font-size: .86rem;
}
.strategy-overview strong { font-size: 1.55rem; line-height: 1; }
.pillar .index { color: #486781; }
.pillar li { display: block; }
.axis-card { border: 1px solid #dae7ee; border-radius: .65rem; background: #f8fbfd; }
.axis-card summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .55rem;
  padding: .58rem;
  min-height: 56px;
  list-style: none;
  cursor: pointer;
}
.axis-card summary::-webkit-details-marker { display: none; }
.axis-card summary:hover { background: #eef6fb; border-radius: .65rem; }
.axis-heading small { display: block; color: #526c83; font-size: .69rem; }
.axis-toggle { color: #185883; font-size: 1.1rem; }
.axis-toggle::before { content: '+'; }
.axis-card[open] .axis-toggle::before { content: '−'; }
.axis-body { padding: .3rem .7rem .8rem; }
.axis-body p { margin: .5rem 0; font-weight: 400; line-height: 1.5; }
.axis-unit,.axis-link,.statutes-link { color: #09538a; text-decoration: underline; text-underline-offset: 3px; }
.axis-unit { display: inline-block; padding: .22rem .4rem; background: #e4f0f7; border-radius: .35rem; font-size: .75rem; }
.axis-link,.statutes-link { font-size: .87rem; font-weight: 800; }
.statutes-link { display: inline-block; margin-top: .9rem; }
.place:target,.project:target,.tool:target { outline: 3px solid #19a887; outline-offset: 4px; }
@media (max-width: 480px) {
  .strategy-overview > div { align-content: start; padding-inline: .52rem; font-size: .72rem; }
  .strategy-overview strong { width: 100%; }
}

.logo-story { margin-top: 24px; }
.hero .logo-question { color: white; font-size: 16px; font-weight: 700; }
.logo-story details { margin-top: 10px; }
.logo-story summary {
  cursor: pointer;
  list-style: none;
  text-align: left;
}
.logo-story summary::-webkit-details-marker { display: none; }
.logo-story summary::after { content: ""; width: 7px; height: 7px; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.logo-story details[open] summary::after { transform: rotate(225deg); }
.logo-story-panel {
  max-width: 600px;
  margin-top: 12px;
  padding: 16px 20px;
  border: 1px solid #ffffff70;
  border-radius: 5px;
  background: #0a332b;
}
.hero .logo-story-panel p { color: #fff; font-size: 15px; }
.logo-story-panel p + p { margin-top: 8px; }
