/* Shared public navigation, archive discovery and sharing. */
[hidden] { display: none !important; }
html { scroll-padding-top: 90px; }
.skip-link { position: fixed; top: -90px; left: 16px; z-index: 100; padding: 12px 18px; color: #172229; background: #fffaf0; font: 700 16px Arial, sans-serif; }
.skip-link:focus { top: 12px; }
.topbar { gap: 20px; }
.topbar .brand { flex: 0 0 auto; }
.topbar .desktop-nav { gap: 18px; }
.topbar nav a[aria-current="page"] { color: #f2ca84; text-decoration: underline; text-underline-offset: 7px; }
.topbar nav a { white-space: nowrap; }
.topbar .brand span { font-size: .92rem; }
.topbar .mobile-nav nav a { white-space: normal; }
.discovery-wrap { width: min(1160px, 100%); margin: 0 auto; padding: 48px clamp(20px, 5vw, 60px); }
.archive-hero { color: #fffdf8; background: #172229; border-bottom: 5px solid #bd8b45; }
.archive-hero h1 { max-width: 900px; margin: 0 0 18px; font-size: clamp(2.4rem, 5vw, 4.5rem); line-height: 1.08; font-weight: 500; letter-spacing: -.025em; }
.archive-hero p:not(.eyebrow) { max-width: 760px; margin: 0; font-size: 1.18rem; color: #e7e2d8; }
.archive-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 25px; font: 700 .88rem Arial, sans-serif; }
.archive-tabs a { padding: 11px 16px; border: 1px solid #7d8b90; text-decoration: none; }
.archive-tabs a[aria-current="page"], .archive-tabs a:hover { color: #172229; background: #f4ead5; border-color: #f4ead5; }
.archive-tools { margin: 0 0 28px; padding: 24px; border: 1px solid #b6a991; background: #fffaf0; }
.archive-tools label { display: block; margin: 0 0 6px; color: #172229; font: 700 .85rem Arial, sans-serif; }
.archive-search-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; }
.archive-tools input, .archive-tools select { width: 100%; min-height: 48px; padding: 11px 13px; color: #172229; background: #fffdf8; border: 1px solid #7b817e; border-radius: 0; font: 16px Arial, sans-serif; }
.archive-filters { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 16px; margin-top: 17px; }
.archive-tools button, .discovery-button { min-height: 48px; padding: 11px 19px; border: 1px solid #782f2b; color: #fffdf8; background: #782f2b; font: 700 .9rem Arial, sans-serif; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
.archive-tools button:hover, .discovery-button:hover { background: #963c35; }
.archive-tools .reset-filter { color: #172229; background: transparent; border-color: #7b817e; }
.archive-result-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 15px; margin-bottom: 22px; }
.archive-result-row p { margin: 0; font: 700 .9rem Arial, sans-serif; }
.archive-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.archive-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; color: #172229; background: #fffaf0; border: 1px solid #d1c5ad; }
.archive-card > a { display: flex; flex-direction: column; flex: 1; color: inherit; text-decoration: none; }
.archive-card a:hover h2 { color: #782f2b; text-decoration: underline; text-underline-offset: 4px; }
.archive-image { width: 100%; aspect-ratio: 16/10; object-fit: cover; background: #294354; }
.archive-image.document { object-fit: contain; }
.archive-art { display: flex; align-items: center; justify-content: center; min-height: 160px; aspect-ratio: 16/10; color: #f4ead5; background: #294354; border-bottom: 5px solid #bd8b45; font: 500 clamp(2.2rem,4vw,3.6rem) Georgia, serif; }
.archive-card-copy { display: flex; flex: 1; flex-direction: column; padding: 23px; }
.archive-card small { display: block; margin-bottom: 10px; color: #782f2b; font: 700 .72rem/1.5 Arial, sans-serif; letter-spacing: .05em; text-transform: uppercase; }
.archive-card h2 { margin: 0 0 12px; font-size: 1.5rem; line-height: 1.2; font-weight: 500; }
.archive-card p { margin: 0 0 18px; font-size: .98rem; line-height: 1.6; }
.archive-card .archive-open { margin-top: auto; font: 700 .82rem Arial, sans-serif; color: #782f2b; }
.archive-credit { padding: 0 23px 17px; font: .71rem/1.45 Arial, sans-serif; color: #4b5353; }
.archive-empty { padding: 30px; border: 1px solid #bd8b45; background: #fffaf0; }
.archive-empty h2 { margin-top: 0; }
.archive-invite { margin-top: 35px; padding: 28px; background: #dfcfaf; border-left: 5px solid #782f2b; }
.archive-invite h2 { margin: 0 0 9px; font-size: 1.8rem; line-height: 1.2; font-weight: 500; }
.archive-invite p { margin: 0 0 16px; }
.home-search { color: #172229; background: #dfcfaf; border-bottom: 1px solid #b6a991; }
.home-search .discovery-wrap { padding-top: 27px; padding-bottom: 27px; }
.home-search form { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 16px; }
.home-search label { font: 700 1rem Arial, sans-serif; }
.home-search input { width: 100%; min-width: 0; min-height: 50px; padding: 12px 15px; color: #172229; background: #fffdf8; border: 1px solid #7b817e; font-size: 16px; }
.home-search .search-hint { margin: 9px 0 0; font: .82rem/1.5 Arial, sans-serif; }
.home-paths { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.home-paths a { display: block; padding: 21px; color: #172229; background: #fffaf0; border-bottom: 3px solid #bd8b45; text-decoration: none; }
.home-paths strong { display: block; margin: 0 0 7px; font-size: 1.3rem; line-height: 1.2; font-weight: 500; }
.home-paths span { font: .88rem/1.5 Arial, sans-serif; }
.home-paths a:hover strong { color: #782f2b; text-decoration: underline; }
.home-paths-wrap { padding-top: 28px; padding-bottom: 28px; }
.hero-trust { line-height: 1.6; }
.hero .hero-trust { color: #d9dcd8; }
.latest-stories .latest-story-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.latest-stories .latest-story-card.featured { grid-column: auto; }
.latest-stories .latest-story-card img { width: 100%; height: 195px; aspect-ratio: auto; object-fit: cover; }
.latest-stories .latest-story-card h3 { font-size: 1.6rem; }
.latest-stories .latest-story-copy { padding: 23px; }
.latest-stories .latest-story-copy p { font-size: 1rem; }
.latest-stories .section-head { align-items: end; }
.latest-stories .section-head p { max-width: 410px; }
.archive-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 25px; }
.archive-actions .discovery-secondary { color: #172229; border-color: #7b817e; background: transparent; }
.home-directory-details { max-width: 1040px; margin: 0 auto 35px; padding: 20px; background: #fffaf0; border: 1px solid #b6a991; }
.home-directory-details > summary { cursor: pointer; font-size: 1.35rem; font-weight: 500; }
.home-directory-details .home-case-index { padding: 28px 0 0; }
.page-share { width: min(1040px,calc(100% - 40px)); margin: 38px auto; padding: 25px; color: #172229; background: #dfcfaf; border-left: 5px solid #782f2b; }
.page-share h2 { margin: 0 0 7px; font-size: 1.6rem; font-weight: 500; line-height: 1.2; }
.page-share p { margin: 0 0 17px; font-size: 1rem; }
.share-controls { display: flex; flex-wrap: wrap; gap: 10px; }
.share-controls button, .share-controls a { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 10px 16px; border: 1px solid #576262; color: #172229; background: #fffaf0; cursor: pointer; text-decoration: none; font: 700 .84rem Arial, sans-serif; }
.share-controls button:hover, .share-controls a:hover { border-color: #782f2b; background: #fffdf8; }
.share-feedback { margin-top: 12px !important; font: .87rem/1.5 Arial, sans-serif; overflow-wrap: anywhere; }
.next-reads { width: min(1040px,calc(100% - 40px)); margin: 35px auto 50px; }
.next-reads h2 { font-size: 1.9rem; font-weight: 500; line-height: 1.2; }
.next-read-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 17px; }
.next-read-grid a { padding: 22px; color: #172229; background: #fffaf0; border: 1px solid #cfc3aa; text-decoration: none; }
.next-read-grid small { display: block; margin-bottom: 8px; color: #782f2b; font: 700 .73rem Arial,sans-serif; text-transform: uppercase; }
.next-read-grid strong { font-size: 1.23rem; font-weight: 500; line-height: 1.3; }
.next-read-grid a:hover strong { text-decoration: underline; }
.share-kit-card { margin: 25px 0; padding: 27px; border: 1px solid #b6a991; background: #fffaf0; }
.share-kit-card h2 { margin-top: 0; font-size: 1.8rem; line-height: 1.2; font-weight: 500; }
.share-kit-card blockquote { margin: 20px 0; padding: 18px; border-left: 3px solid #bd8b45; background: #f4ead5; font-size: 1.04rem; }
.place-filter-status { margin: 16px 0; font: 700 .9rem Arial,sans-serif; }
footer { gap: 15px 22px; flex-wrap: wrap; }
footer a { min-height: 32px; display: inline-flex; align-items: center; }
@media (max-width: 1180px) {
  .topbar .desktop-nav { display: none; }
  .topbar .mobile-nav { display: block; }
}
@media (max-width: 850px) {
  .archive-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .latest-stories .latest-story-grid { grid-template-columns: 1fr; }
  .latest-stories .latest-story-card { grid-template-columns: minmax(0,.7fr) minmax(0,1fr); grid-template-rows: 1fr; }
  .latest-stories .latest-story-card img { height: 100%; min-height: 230px; }
  .home-search form { grid-template-columns: 1fr auto; }
  .home-search label { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .archive-grid, .archive-filters, .home-paths, .next-read-grid { grid-template-columns: 1fr; }
  .archive-tools { padding: 19px; }
  .archive-search-row, .home-search form { grid-template-columns: 1fr; }
  .archive-search-row button { width: 100%; }
  .archive-hero .discovery-wrap { padding-top: 35px; padding-bottom: 35px; }
  .archive-result-row .discovery-button { width: 100%; }
  .home-paths a { padding: 19px; }
  .latest-stories .latest-story-card { display: flex; flex-direction: column; }
  .latest-stories .latest-story-card img { height: 195px; min-height: 0; }
  .topbar { padding: 10px 16px; gap: 12px; }
  .topbar .brand { gap: 8px; }
  .topbar .brand span { font-size: .82rem; }
  .topbar .brand img { width: 38px; height: 38px; }
  .share-controls > * { flex: 1 1 135px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
