:root {
  --bg:#fbfaf7;
  --surface:#fff;
  --soft:#f0f4ef;
  --text:#22392f;
  --muted:#5c6b61;
  --primary:#175b53;
  --primary-dark:#10443d;
  --border:#dce3dc;
  --accent:#edcb70;
  --focus:#9a4c0b;
  --base-size:17px;
  --line-height:1.6;
  --spacing:0em;
  --radius:18px;
}
* {
  box-sizing:border-box;
}
html {
  font-size:var(--base-size);
  scroll-behavior:smooth;
  scroll-padding-top:110px;
}
body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:var(--line-height);
  letter-spacing:var(--spacing);
}
[hidden] {
  display:none!important;
}
a {
  color:var(--primary);
  text-underline-offset:4px;
}
a:hover {
  color:var(--primary-dark);
}
button,input,select {
  font:inherit;
}
button,a,input,select {
  -webkit-tap-highlight-color:transparent;
}
button {
  cursor:pointer;
}
button:disabled {
  opacity:.5;
  cursor:not-allowed;
}
button,input,select {
  color:var(--text);
}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible {
  outline:3px solid var(--focus);
  outline-offset:4px;
}
button,a {
  touch-action:manipulation;
}
h1,h2,h3 {
  margin:0;
  line-height:1.14;
  letter-spacing:-.04em;
}
h1 {
  font-size:clamp(2.4rem,5.3vw,4.7rem);
  font-weight:750;
  max-width:16ch;
  text-wrap:balance;
}
h2 {
  font-size:clamp(1.65rem,3vw,2.55rem);
  font-weight:720;
  text-wrap:balance;
}
h3 {
  font-size:1.16rem;
  letter-spacing:-.02em;
}
p {
  margin:0 0 1rem;
}
svg {
  display:block;
}
.icon {
  width:25px;
  height:25px;
  flex:none;
}
.container {
  width:min(1200px,calc(100% - 64px));
  margin-inline:auto;
}
.visually-hidden {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  margin:-1px!important;
  padding:0!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.skip-link {
  position:fixed;
  top:12px;
  left:16px;
  transform:translateY(-180%);
  z-index:100;
  background:var(--primary);
  color:#fff;
  padding:12px 20px;
  border-radius:8px;
}
.skip-link:focus {
  transform:none;
  color:#fff;
}
.site-header {
  position:sticky;
  top:0;
  z-index:40;
  background:var(--bg);
  border-bottom:1px solid var(--border);
}
.header-inner {
  display:flex;
  align-items:center;
  gap:24px;
  min-height:90px;
  position:relative;
}
.brand {
  display:flex;
  gap:11px;
  align-items:center;
  text-decoration:none;
  color:var(--text);
  font-weight:780;
  letter-spacing:-.04em;
  flex-shrink:0;
}
.brand-mark {
  width:43px;
  height:45px;
  display:grid;
  place-items:center;
  background:var(--primary);
  color:#fff;
  font-size:1.45rem;
  border-radius:13px;
  position:relative;
  letter-spacing:-.1em;
  padding-right:3px;
}
.brand-mark>span {
  position:absolute;
  width:8px;
  height:8px;
  right:5px;
  top:5px;
  background:var(--accent);
  border-radius:50%;
}
.brand small {
  font-weight:450;
  font-size:.65rem;
  letter-spacing:.01em;
  display:block;
  margin-top:1px;
  color:var(--muted);
}
.main-nav {
  display:flex;
  align-items:center;
  gap:6px;
  margin-left:auto;
}
.main-nav a {
  padding:10px 12px;
  color:var(--text);
  font-size:.82rem;
  font-weight:600;
  text-decoration:none;
  border-radius:8px;
  white-space:nowrap;
}
.main-nav a:hover,.main-nav a[aria-current] {
  background:var(--soft);
  color:var(--primary);
}
.main-nav a[aria-current] {
  box-shadow:inset 0 -2px var(--primary);
}
.accessibility-button,.menu-toggle {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface);
  padding:9px 12px;
  font-size:.76rem;
  white-space:nowrap;
}
.accessibility-button>span:first-child {
  font-weight:750;
}
.menu-toggle {
  display:none;
}
.accessibility-panel {
  background:var(--soft);
  border-bottom:1px solid var(--border);
}
.accessibility-inner {
  display:flex;
  align-items:center;
  gap:25px;
  padding-block:22px;
}
.accessibility-inner p {
  font-size:.78rem;
  margin:4px 0 0;
  color:var(--muted);
}
.accessibility-controls {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.accessibility-controls button {
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:8px;
  min-height:44px;
  padding:8px 13px;
  font-size:.8rem;
}
.accessibility-controls button[aria-pressed=true] {
  background:var(--primary);
  color:#fff;
}
.hero {
  padding:64px 0 70px;
  background:radial-gradient(ellipse at 85% 30%,#edf1e9 0,transparent 55%);
}
.hero-grid {
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(0,.88fr);
  gap:65px;
  align-items:center;
}
.eyebrow {
  font-size:.67rem;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-weight:750;
  color:var(--primary);
  margin:0 0 18px;
  display:flex;
  align-items:center;
  gap:9px;
}
.dot {
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--primary);
}
.hero-lead {
  font-size:1.05rem;
  color:var(--muted);
  max-width:58ch;
  margin:24px 0 28px;
  line-height:1.7;
}
.search-box {
  margin-top:32px;
}
.search-box label {
  display:block;
  font-weight:650;
  font-size:.85rem;
  margin-bottom:10px;
}
.search-row {
  display:flex;
  gap:8px;
  background:var(--surface);
  padding:7px;
  border:1px solid var(--border);
  border-radius:13px;
  box-shadow:0 8px 25px #22392f07;
}
.search-row input {
  flex:1;
  min-width:0;
  border:0;
  border-radius:7px;
  background:var(--surface);
  padding:12px 13px;
  font-size:.86rem;
}
.button {
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  border:1px solid transparent;
  border-radius:9px;
  padding:12px 20px;
  font-weight:650;
  font-size:.84rem;
  text-decoration:none;
  transition:background .15s;
}
.button.primary {
  background:var(--primary);
  color:#fff;
}
.button.primary:hover {
  background:var(--primary-dark);
}
.button.secondary {
  background:var(--surface);
  border-color:var(--border);
  color:var(--primary);
}
.button.secondary:hover {
  border-color:var(--primary);
}
.quick-search {
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  font-size:.71rem;
  margin-top:14px;
}
.quick-search>span {
  color:var(--muted);
  margin-right:2px;
}
.quick-search a {
  border:1px solid var(--border);
  border-radius:20px;
  padding:6px 11px;
  min-height:34px;
  text-decoration:none;
  background:var(--surface);
  color:var(--muted);
}
.quick-search a:hover {
  border-color:var(--primary);
  color:var(--primary);
}
.start-panel {
  background:var(--primary-dark);
  color:#fff;
  border-radius:24px;
  padding:30px;
  position:relative;
  box-shadow:10px 12px 0 #e9eade;
}
.panel-heading {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin-bottom:30px;
}
.panel-heading .eyebrow {
  margin:0;
  color:#d8e6dc;
  font-size:.6rem;
}
.panel-heading .icon {
  color:var(--accent);
}
.start-panel h2 {
  font-size:2rem;
  line-height:1.2;
  letter-spacing:-.045em;
}
.start-panel>p {
  font-size:.82rem;
  color:#d8e6dc;
  margin:15px 0 24px;
}
.start-panel>a {
  display:flex;
  gap:13px;
  align-items:center;
  border-top:1px solid #ffffff29;
  color:#fff;
  text-decoration:none;
  padding:16px 0;
}
.start-panel>a:hover {
  color:var(--accent);
}
.start-panel>a>span:last-child {
  margin-left:auto;
}
.start-icon {
  width:40px;
  height:40px;
  background:#ffffff12;
  border-radius:10px;
  display:grid;
  place-items:center;
  flex:none;
}
.start-icon .icon {
  width:21px;
  height:21px;
}
.start-panel strong {
  font-size:.85rem;
  display:block;
  font-weight:600;
  letter-spacing:-.01em;
}
.start-panel small {
  display:block;
  font-size:.68rem;
  color:#d8e6dc;
  margin-top:3px;
}
.panel-foot {
  font-size:.66rem;
  color:#d8e6dc;
  border-top:1px solid #ffffff29;
  padding-top:20px;
}
.panel-foot strong {
  display:inline;
  color:#fff;
  font-size:inherit;
}
.section {
  padding:72px 0;
}
.section-soft {
  background:var(--soft);
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:25px;
  margin-bottom:32px;
}
.section-heading .eyebrow {
  margin-bottom:12px;
}
.section-heading>p {
  font-size:.86rem;
  color:var(--muted);
  margin:0;
}
.text-link {
  font-size:.83rem;
  font-weight:650;
}
.category-grid {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:13px;
}
.category-card {
  display:flex;
  flex-direction:column;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:22px 18px;
  color:var(--text);
  text-decoration:none;
  transition:border-color .15s,transform .15s;
}
.category-card:hover {
  border-color:var(--primary);
  transform:translateY(-3px);
  color:var(--text);
}
.category-icon {
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  background:var(--soft);
  color:var(--primary);
  border-radius:12px;
  margin-bottom:24px;
}
.category-card:nth-child(3n+2) .category-icon {
  background:#fcf1d6;
  color:#785515;
}
.category-card:nth-child(3n) .category-icon {
  background:#eef0fa;
  color:#535e88;
}
.category-card h3 {
  font-size:.93rem;
  line-height:1.32;
  letter-spacing:-.025em;
  min-height:2.6em;
  overflow-wrap:anywhere;
}
.category-card p {
  font-size:.73rem;
  color:var(--muted);
  margin:12px 0 22px;
  line-height:1.6;
}
.category-count {
  margin-top:auto;
  font-size:.68rem;
  font-weight:600;
  display:flex;
  justify-content:space-between;
  color:var(--primary);
}
.resource-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.resource-card {
  min-width:0;
  display:flex;
  flex-direction:column;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:23px;
  transition:border-color .15s;
}
.resource-card:hover {
  border-color:#91aca0;
}
.resource-top {
  display:flex;
  align-items:start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:20px;
  min-height:36px;
}
.topic {
  font-size:.64rem;
  font-weight:650;
  color:var(--muted);
  line-height:1.5;
  letter-spacing:.025em;
  max-width:85%;
  padding-top:8px;
}
.save-button {
  min-width:38px;
  min-height:38px;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--primary);
  border-radius:50%;
  font-size:1.25rem;
  line-height:1;
  flex:none;
}
.save-button:hover,.save-button[aria-pressed=true] {
  background:var(--soft);
  border-color:var(--primary);
}
.resource-card h3 a {
  color:var(--text);
  text-decoration:none;
  overflow-wrap:anywhere;
}
.resource-card h3 a:hover {
  text-decoration:underline;
  color:var(--primary);
}
.resource-card>p {
  font-size:.84rem;
  line-height:1.65;
  color:var(--muted);
  margin:14px 0 22px;
}
.resource-meta {
  display:flex;
  align-items:start;
  gap:8px;
  flex-direction:column;
  margin-top:auto;
  padding-bottom:19px;
}
.access-tag {
  font-size:.62rem;
  border:1px solid var(--border);
  border-radius:6px;
  padding:4px 8px;
  color:var(--muted);
  background:var(--bg);
}
.access-tag.gratuito {
  background:#edf6ee;
  color:#285530;
  border-color:#c5dfca;
}
.access-tag.freemium {
  background:#fff6e4;
  color:#77551d;
  border-color:#e8d8b5;
}
.resource-meta small {
  font-size:.61rem;
  color:var(--muted);
}
.resource-open {
  padding-top:15px;
  border-top:1px solid var(--border);
  display:flex;
  justify-content:space-between;
  font-size:.77rem;
  font-weight:700;
  text-decoration:none;
  min-height:44px;
}
.project-band {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  border-top:1px solid var(--border);
  padding-top:48px;
}
.project-band p:not(.eyebrow) {
  color:var(--muted);
  font-size:.95rem;
  margin-bottom:22px;
}
.site-footer {
  background:#eaf0e9;
  padding:48px 0 20px;
  border-top:1px solid var(--border);
}
.footer-grid {
  display:grid;
  grid-template-columns:1.3fr .8fr 1fr;
  gap:60px;
}
.footer-grid p {
  font-size:.76rem;
  color:var(--muted);
  margin:17px 0 0;
}
.footer-grid nav {
  display:flex;
  flex-direction:column;
  gap:8px;
}
.footer-grid nav a {
  font-size:.8rem;
  min-height:30px;
}
.footer-grid>div>strong {
  font-size:.9rem;
}
.footer-bottom {
  margin-top:40px;
  padding-top:18px;
  border-top:1px solid #cdd8cd;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:.7rem;
  color:var(--muted);
}
.footer-bottom a {
  font-size:.7rem;
}
.page-hero {
  padding:32px 0 42px;
  background:var(--soft);
  border-bottom:1px solid var(--border);
}
.breadcrumbs {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  font-size:.72rem;
  color:var(--muted);
  margin:0 0 32px;
}
.page-hero .eyebrow {
  margin-bottom:14px;
}
.page-hero h1 {
  font-size:clamp(2rem,4vw,3.6rem);
  max-width:24ch;
}
.page-hero .hero-lead {
  margin:18px 0 0;
}
.page-actions {
  display:flex;
  gap:22px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:25px;
}
.count-pill {
  background:var(--surface);
  border:1px solid var(--border);
  padding:6px 12px;
  border-radius:20px;
  font-size:.73rem;
  font-weight:650;
}
.category-resources {
  padding-top:42px;
}
.resource-group+ .resource-group {
  margin-top:46px;
}
.resource-group>h2 {
  font-size:1.35rem;
  letter-spacing:-.025em;
  margin-bottom:20px;
}
.catalog-section {
  padding-top:30px;
}
.catalog-filters {
  display:grid;
  grid-template-columns:1.4fr 1fr .85fr;
  gap:16px;
  padding:24px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
}
.filter-field {
  min-width:0;
}
.filter-field label {
  font-size:.72rem;
  font-weight:650;
  display:block;
  margin-bottom:8px;
}
.filter-field input,.filter-field select,.sort-label select {
  width:100%;
  padding:12px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--bg);
  min-height:46px;
  font-size:.8rem;
  min-width:0;
}
.filter-actions {
  grid-column:1/-1;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid var(--border);
  padding-top:12px;
  gap:15px;
}
.check-label {
  font-size:.76rem;
  display:flex;
  align-items:center;
  gap:8px;
  min-height:44px;
}
.check-label input {
  width:19px;
  height:19px;
  accent-color:var(--primary);
}
.text-button {
  background:none;
  border:0;
  padding:8px;
  min-height:44px;
  color:var(--primary);
  text-decoration:underline;
  text-underline-offset:4px;
  font-size:.76rem;
}
.results-bar {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  margin:22px 0;
}
.results-bar p {
  font-size:.8rem;
  color:var(--muted);
  margin:0;
}
.sort-label {
  font-size:.72rem;
  display:flex;
  gap:8px;
  align-items:center;
  white-space:nowrap;
}
.sort-label select {
  width:auto;
  padding:7px 10px;
}
.no-results {
  padding:45px 25px;
  text-align:center;
  border:1px dashed var(--border);
  border-radius:var(--radius);
  background:var(--surface);
}
.no-results h2 {
  font-size:1.5rem;
  margin-bottom:16px;
}
.no-results p {
  max-width:55ch;
  margin:0 auto 24px;
  color:var(--muted);
}
.catalog-note {
  color:var(--muted);
  font-size:.72rem;
  margin-top:25px;
  max-width:85ch;
}
.notice {
  border:1px solid var(--border);
  padding:18px;
  border-radius:12px;
  background:var(--soft);
}
.prose {
  max-width:820px;
}
.prose h2 {
  font-size:1.55rem;
  margin:30px 0 18px;
}
.prose h2:first-child {
  margin-top:0;
}
.prose p {
  color:var(--muted);
}
.error-page {
  min-height:60vh;
}
.error-page p:not(.eyebrow) {
  margin-top:24px;
}
.hero-actions {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:25px;
}
/* About: editable HTML content uses the same visual system. */
main>.container>.breadcrumbs {
  padding-top:24px;
  margin-bottom:26px;
}
.category-hero {
  padding:20px 0 0;
}
.category-hero h1 {
  font-size:clamp(2.3rem,4vw,3.6rem);
}
.category-hero .lead {
  max-width:70ch;
  color:var(--muted);
  margin-top:20px;
}
.about-layout {
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr);
  gap:30px;
  align-items:start;
}
.about-story,.about-highlight {
  border:1px solid var(--border);
  background:var(--surface);
  border-radius:var(--radius);
  padding:30px;
  min-width:0;
}
.about-story h2,.about-highlight h2 {
  font-size:1.65rem;
  margin-bottom:22px;
  overflow-wrap:anywhere;
}
.about-story p,.about-highlight p {
  font-size:.9rem;
  color:var(--muted);
}
.about-story p:last-child,.about-highlight p:last-child {
  margin-bottom:0;
}
.about-icon {
  display:grid;
  place-items:center;
  background:var(--primary);
  color:white;
  border-radius:12px;
  width:50px;
  height:50px;
  font-weight:bold;
  margin-bottom:24px;
}
.section-muted {
  background:var(--soft);
}
.section-muted>.container>h2 {
  margin-bottom:30px;
}
.about-credit {
  margin-top:30px;
  color:var(--muted);
  font-size:.85rem;
}
body.extra-spacing {
  --line-height:1.9;
  --spacing:.035em;
}
body.extra-spacing p {
  line-height:1.9;
}
body.contrast {
  --bg:#fff;
  --surface:#fff;
  --soft:#f2f2f2;
  --text:#000;
  --muted:#202020;
  --primary:#003d31;
  --primary-dark:#002d23;
  --border:#686868;
  --focus:#9b3700;
}
body.contrast .hero {
  background:var(--bg);
}
body.contrast .site-footer {
  background:var(--soft);
}
body.contrast .topic,body.contrast .access-tag {
  color:#111;
}
body.contrast .category-icon {
  background:var(--soft);
  color:var(--primary);
}
@media(min-width:1400px) {
  .hero {
    padding-top:80px;
    padding-bottom:80px;
  }
}
@media(max-width:1120px) {
  .header-inner {
    gap:15px;
  }
  .brand {
    font-size:.91rem;
  }
  .main-nav a {
    padding:10px 9px;
  }
  .access-label {
    display:none;
  }
  .hero-grid {
    gap:35px;
  }
  .category-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .category-card h3 {
    min-height:0;
  }
  .start-panel {
    padding:24px;
  }
  .footer-grid {
    gap:30px;
  }
}
@media(max-width:900px) {
  .container {
    width:calc(100% - 40px);
  }
  .header-inner {
    min-height:78px;
    flex-wrap:wrap;
    gap:10px;
    padding-block:12px;
  }
  .main-nav {
    width:100%;
    order:4;
    margin:0;
    flex-wrap:wrap;
  }
  .js-ready .main-nav {
    display:none;
  }
  .js-ready .main-nav.open {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    background:var(--surface);
    padding:14px;
    border:1px solid var(--border);
    border-radius:0 0 14px 14px;
    box-shadow:0 12px 24px #22392f12;
    max-height:calc(100dvh - 100px);
    overflow:auto;
  }
  .main-nav a {
    font-size:.9rem;
    min-height:46px;
  }
  .menu-toggle {
    display:flex;
    margin-left:auto;
  }
  .accessibility-button {
    margin-left:0;
  }
  .hero-grid {
    grid-template-columns:minmax(0,1.15fr) minmax(0,.9fr);
    gap:25px;
  }
  .hero {
    padding:40px 0 48px;
  }
  .hero h1 {
    font-size:2.8rem;
  }
  .hero-lead {
    font-size:.93rem;
  }
  .start-panel h2 {
    font-size:1.6rem;
  }
  .start-panel {
    padding:22px;
    box-shadow:5px 7px 0 #e9eade;
  }
  .start-panel strong {
    font-size:.76rem;
  }
  .start-panel small {
    font-size:.65rem;
  }
  .search-row {
    flex-wrap:wrap;
  }
  .search-row input {
    flex-basis:100%;
  }
  .search-row .button {
    width:100%;
  }
  .resource-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .catalog-filters {
    grid-template-columns:1fr 1fr;
  }
  .search-field {
    grid-column:1/-1;
  }
  .about-layout {
    grid-template-columns:1fr;
  }
  .accessibility-inner {
    flex-direction:column;
    align-items:start;
    gap:14px;
  }
  .project-band {
    gap:35px;
  }
  .footer-grid {
    grid-template-columns:1.3fr 1fr;
  }
  .footer-grid>div:last-child {
    grid-column:1/-1;
  }
  .footer-grid>div:last-child p {
    margin-top:8px;
  }
}
@media(max-width:680px) {
  html {
    scroll-padding-top:90px;
  }
  .container {
    width:calc(100% - 32px);
  }
  .header-inner {
    min-height:72px;
  }
  .brand small {
    display:none;
  }
  .brand {
    font-size:.93rem;
    gap:8px;
  }
  .brand-mark {
    width:35px;
    height:38px;
    border-radius:10px;
    font-size:1.2rem;
  }
  .brand-mark>span {
    width:6px;
    height:6px;
    top:4px;
    right:4px;
  }
  .menu-toggle,.accessibility-button {
    padding:8px 10px;
  }
  .menu-label {
    display:none;
  }
  .hero-grid {
    grid-template-columns:1fr;
    gap:35px;
  }
  .hero {
    padding-top:34px;
  }
  .hero h1 {
    font-size:clamp(2.45rem,10vw,3.4rem);
    max-width:17ch;
  }
  .hero .eyebrow {
    font-size:.6rem;
    margin-bottom:18px;
  }
  .hero-lead {
    margin:20px 0 22px;
    font-size:.94rem;
  }
  .search-box {
    margin-top:20px;
  }
  .search-row {
    flex-wrap:nowrap;
  }
  .search-row input {
    flex-basis:auto;
    width:100%;
    font-size:.82rem;
  }
  .search-row .button {
    width:auto;
    gap:6px;
    padding:12px 15px;
  }
  .search-row .button span {
    display:none;
  }
  .start-panel {
    box-shadow:none;
    border-radius:18px;
    padding:24px;
  }
  .panel-heading {
    margin-bottom:16px;
  }
  .start-panel h2 {
    font-size:1.65rem;
  }
  .start-panel h2 br {
    display:none;
  }
  .start-panel>p {
    margin-bottom:18px;
  }
  .start-panel strong {
    font-size:.84rem;
  }
  .start-panel small {
    font-size:.7rem;
  }
  .panel-foot {
    padding-top:14px;
  }
  .section {
    padding:48px 0;
  }
  .section-heading {
    display:block;
    margin-bottom:24px;
  }
  .section-heading>p,.section-heading>.text-link {
    margin-top:16px;
    display:block;
  }
  .section-heading>p br {
    display:none;
  }
  .category-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  .category-card {
    padding:18px 15px;
  }
  .category-icon {
    margin-bottom:17px;
  }
  .category-card h3 {
    font-size:.85rem;
  }
  .category-card p {
    font-size:.71rem;
    margin-bottom:18px;
  }
  .category-count {
    font-size:.64rem;
  }
  .resource-grid {
    grid-template-columns:1fr;
  }
  .resource-card {
    padding:23px;
  }
  .resource-card>p {
    font-size:.87rem;
  }
  .resource-card h3 {
    font-size:1.25rem;
  }
  .project-band {
    grid-template-columns:1fr;
    gap:25px;
    padding-top:30px;
  }
  .footer-grid {
    grid-template-columns:1fr;
    gap:28px;
  }
  .footer-grid>div:last-child {
    grid-column:auto;
  }
  .site-footer {
    padding-top:36px;
  }
  .footer-grid nav {
    gap:12px;
  }
  .footer-bottom {
    gap:16px;
    align-items:start;
  }
  .page-hero {
    padding:24px 0 30px;
  }
  .page-hero .breadcrumbs {
    font-size:.69rem;
    margin-bottom:24px;
  }
  .page-hero .hero-lead {
    font-size:.92rem;
    margin-top:16px;
  }
  .page-actions {
    gap:14px;
  }
  .page-actions .text-link {
    font-size:.75rem;
  }
  .catalog-filters {
    padding:18px;
    gap:14px;
    grid-template-columns:1fr;
  }
  .search-field {
    grid-column:auto;
  }
  .filter-actions {
    flex-wrap:wrap;
    gap:0;
  }
  .results-bar {
    align-items:start;
    flex-direction:column;
    gap:10px;
  }
  .sort-label {
    width:100%;
    justify-content:space-between;
  }
  .sort-label select {
    flex:1;
    max-width:190px;
  }
  .resource-group+ .resource-group {
    margin-top:35px;
  }
  .about-story,.about-highlight {
    padding:23px;
  }
  .about-story h2,.about-highlight h2 {
    font-size:1.45rem;
  }
  .about-story p,.about-highlight p {
    font-size:.87rem;
  }
  .accessibility-controls {
    gap:7px;
  }
  .accessibility-controls button {
    font-size:.78rem;
  }
  .hero-actions {
    flex-direction:column;
    align-items:stretch;
  }
}
@media(max-width:360px) {
  .brand {
    font-size:.8rem;
  }
  .header-inner {
    gap:7px;
  }
  .accessibility-button,.menu-toggle {
    padding:7px 9px;
  }
  .category-grid {
    grid-template-columns:1fr;
  }
  .category-card {
    display:grid;
    grid-template-columns:45px 1fr;
    column-gap:15px;
  }
  .category-icon {
    grid-row:1/4;
    margin:0;
  }
  .category-card p {
    margin:8px 0 14px;
  }
  .category-count {
    grid-column:2;
  }
  .search-row {
    flex-wrap:wrap;
  }
  .search-row .button {
    width:100%;
  }
  .search-row input {
    flex-basis:100%;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important;
  }
}
@media print {
  .site-header,.site-footer,.accessibility-panel,.save-button,.catalog-filters,.sort-label,.quick-search {
    display:none!important;
  }
  .container {
    width:100%;
  }
  .resource-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .resource-card {
    break-inside:avoid;
  }
  .section {
    padding:20px 0;
  }
  body {
    background:#fff;
    color:#000;
    font-size:12pt;
  }
}
