:root {
  /* Reading Room palette */
  --gg-bg-paper: #F4ECD8;
  --gg-bg-card: #FAFCD7;
  --gg-bg-alt: #F2EDE5;
  --gg-accent-light: #FEF3B4;
  --gg-ink: #244D86;
  --gg-ink-soft: #598BBD;
  --gg-muted: #5F5645;
  --gg-rule: #DAD9D5;
  --gg-wood-1: #7C5F44;
  --gg-wood-2: #5D4634;
  --gg-ok: #2F6F4E;
  --gg-warn: #8A6D1D;
  --gg-bad: #8A2E2E;

  /* Typography */
  --gg-font-base: 14px;
  --gg-scale: 1.25;
  --gg-xs: calc(var(--gg-font-base) / var(--gg-scale));
  --gg-sm: var(--gg-font-base);
  --gg-md: calc(var(--gg-font-base) * var(--gg-scale));
  --gg-lg: calc(var(--gg-md) * var(--gg-scale));
  --gg-xl: calc(var(--gg-lg) * var(--gg-scale));
  --gg-2xl: calc(var(--gg-xl) * var(--gg-scale));
  --gg-display: calc(var(--gg-2xl) * var(--gg-scale));

  --gg-font-body: "Atkinson Hyperlegible", system-ui, sans-serif;
  --gg-font-heading: "Atkinson Hyperlegible", system-ui, sans-serif;
}

body.gg-library-child.gg-reading-room {
  background: var(--gg-bg-paper);
  color: var(--gg-ink);
  font-family: var(--gg-font-body);
  font-size: var(--gg-sm);
  line-height: 1.6;
}

body.gg-library-child.gg-reading-room,
body.gg-library-child.gg-reading-room p,
body.gg-library-child.gg-reading-room li,
body.gg-library-child.gg-reading-room label,
body.gg-library-child.gg-reading-room input,
body.gg-library-child.gg-reading-room select,
body.gg-library-child.gg-reading-room textarea,
body.gg-library-child.gg-reading-room button,
body.gg-library-child.gg-reading-room .button {
  font-size: var(--gg-sm);
}

body.gg-library-child.gg-reading-room .content-bg,
body.gg-library-child.gg-reading-room.content-style-unboxed .site,
body.gg-library-child.gg-reading-room .site {
  background: var(--gg-bg-paper) !important;
}

body.gg-library-child.gg-reading-room h1,
body.gg-library-child.gg-reading-room h2,
body.gg-library-child.gg-reading-room h3,
body.gg-library-child.gg-reading-room h4 {
  font-family: var(--gg-font-heading);
  line-height: 1.25;
  letter-spacing: 0.02em;
  color: var(--gg-ink);
}

body.gg-library-child.gg-reading-room h1 {
  font-size: var(--gg-2xl);
}

body.gg-library-child.gg-reading-room h2 {
  font-size: var(--gg-xl);
  color: var(--gg-ink-soft);
}

body.gg-library-child.gg-reading-room h3 {
  font-size: var(--gg-lg);
}

body.gg-library-child.gg-reading-room a {
  color: var(--gg-ink);
  text-decoration-thickness: 2px;
}

body.gg-library-child.gg-reading-room a:hover {
  color: var(--gg-ink-soft);
}

body.gg-library-child.gg-reading-room :focus-visible {
  outline: 3px solid var(--gg-ink-soft);
  outline-offset: 2px;
}

/* Primary nav cohesion */
body.gg-library-child.gg-reading-room #masthead,
body.gg-library-child.gg-reading-room .site-main-header-wrap .site-header-row-container-inner,
body.gg-library-child.gg-reading-room .site-mobile-header-wrap {
  background: var(--gg-bg-card) !important;
  border-bottom: 1px solid var(--gg-rule);
}

body.gg-library-child.gg-reading-room .main-navigation .primary-menu-container > ul > li > a,
body.gg-library-child.gg-reading-room .mobile-navigation ul li > a,
body.gg-library-child.gg-reading-room .mobile-navigation .drawer-nav-drop-wrap > a {
  font-family: var(--gg-font-mono);
  font-size: calc(var(--gg-sm) + 2px);
  letter-spacing: 0.05em;
  color: var(--gg-ink) !important;
}

body.gg-library-child.gg-reading-room .site-branding .site-description,
body.gg-library-child.gg-reading-room .site-description {
  font-size: calc(var(--gg-sm) + 2px);
  color: var(--gg-ink);
  letter-spacing: 0.02em;
}

body.gg-library-child.gg-reading-room .main-navigation .primary-menu-container > ul > li > a:hover,
body.gg-library-child.gg-reading-room .main-navigation .primary-menu-container > ul > li.current-menu-item > a,
body.gg-library-child.gg-reading-room .mobile-navigation ul li.current-menu-item > a {
  color: var(--gg-ink-soft) !important;
}

body.gg-library-child.gg-reading-room .header-navigation .header-menu-container ul ul.sub-menu,
body.gg-library-child.gg-reading-room .header-navigation .header-menu-container ul ul.submenu,
body.gg-library-child.gg-reading-room .drawer-navigation {
  background: var(--gg-bg-card);
  border: 1px solid var(--gg-rule);
}

/* Shared GG public surfaces */
body.page-id-15108 .ggfc-surface,
body.page-id-15517 .gg-events-browser,
body.page-id-15517 .gg-event-detail,
body.page-id-15515 .gg-events-browser,
body.page-id-15156 .gg-events-browser {
  background: var(--gg-bg-paper);
  border: 1px solid var(--gg-rule);
  box-shadow: none;
}

body.page-id-15517 .gg-events-browser,
body.page-id-15515 .gg-events-browser,
body.page-id-15156 .gg-events-browser {
  padding: 1.1rem;
}

/* Reader layout surfaces */
body.page-id-15156 .entry-content,
body.page-id-267 .entry-content,
body.page-id-15032 .entry-content {
  max-width: 980px;
  margin: 0 auto;
}

body.gg-library-child.gg-reading-room .gg-reader-surface,
body.page-id-15156 .gg-events-browser {
  max-width: 940px;
  margin: 1rem auto;
  background: linear-gradient(180deg, #f8f2e0 0%, #f4ecd8 100%);
  border: 1px solid var(--gg-rule);
  box-shadow: 0 14px 28px rgba(27, 40, 59, 0.08);
  padding: 1.2rem;
}

body.page-id-15517 .gg-data-hash-note,
body.page-id-15108 .ggfc-data-note,
body.page-id-15515 .gg-data-hash-note,
body.page-id-15156 .gg-data-hash-note {
  background: var(--gg-bg-card);
  border: 1px solid var(--gg-rule);
  color: var(--gg-ink);
  font-size: var(--gg-sm);
}

/* Events list + detail */
body.page-id-15517 .gg-events-header h2,
body.page-id-15517 .gg-page-title,
body.page-id-15517 .gg-event-detail h2,
body.page-id-15517 .gg-event-detail h3 {
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gg-ink);
}

body.page-id-15517 .gg-event-detail--library-card {
  background: var(--gg-bg-paper);
  border: 1px solid var(--gg-rule);
  border-radius: 0;
  box-shadow: none;
  color: var(--gg-ink);
  font-family: var(--gg-font-body);
}

body.page-id-15517 .gg-event-detail--library-card .gg-event-stamp {
  font-family: var(--gg-font-heading);
  color: var(--gg-ink);
  border-bottom: 1px solid var(--gg-rule);
  letter-spacing: 0.12em;
}

body.page-id-15517 .gg-event-detail--library-card .gg-record-meta,
body.page-id-15517 .gg-event-detail--library-card .gg-record-provenance,
body.page-id-15517 .gg-event-detail--library-card .gg-event-docs {
  background: var(--gg-bg-card);
  border-color: var(--gg-rule);
}

body.page-id-15517 .gg-event-detail--library-card .gg-hash-value {
  color: var(--gg-ink);
  border-color: var(--gg-rule);
  background: #fffef8;
  font-size: var(--gg-sm);
}

body.page-id-15517 .gg-event-detail--library-card .gg-btn,
body.page-id-15517 .gg-events-browser .gg-btn,
body.page-id-15515 .gg-events-browser .gg-btn,
body.page-id-15156 .gg-events-browser .gg-btn {
  font-family: var(--gg-font-heading);
  font-size: var(--gg-sm);
  background: var(--gg-bg-card);
  border-color: var(--gg-rule);
  color: var(--gg-ink);
}

body.page-id-15517 .gg-event-detail--library-card .gg-btn--primary {
  background: var(--gg-ink-soft);
  border-color: var(--gg-ink-soft);
  color: var(--gg-bg-paper);
}

body.page-id-15517 .gg-events-items,
body.page-id-15515 .gg-events-items,
body.page-id-15156 .gg-events-items {
  border-top-color: var(--gg-rule);
}

body.page-id-15517 .gg-event-item,
body.page-id-15515 .gg-event-item,
body.page-id-15156 .gg-event-item {
  border-bottom-color: var(--gg-rule);
}

body.page-id-15517 .gg-chip,
body.page-id-15515 .gg-chip,
body.page-id-15156 .gg-chip {
  border-color: var(--gg-rule);
  color: var(--gg-ink);
  background: var(--gg-bg-card);
  font-size: var(--gg-sm);
}

body.page-id-15517 .gg-hash-badge,
body.page-id-15515 .gg-hash-badge,
body.page-id-15156 .gg-hash-badge {
  font-size: var(--gg-sm);
}

body.page-id-15517 .gg-hash-badge--present,
body.page-id-15515 .gg-hash-badge--present,
body.page-id-15156 .gg-hash-badge--present {
  color: var(--gg-ok);
  border-color: #b9d4c4;
  background: #eef8f2;
}

body.page-id-15517 .gg-hash-badge--missing,
body.page-id-15515 .gg-hash-badge--missing,
body.page-id-15156 .gg-hash-badge--missing {
  color: var(--gg-warn);
  border-color: #eadcaf;
  background: #fff7de;
}

/* Calendar pinup wall style (Legistar feed via ggfc endpoint) */
body.page-id-15108 .ggfc-surface {
  background:
    linear-gradient(rgba(36, 77, 134, 0.04), rgba(36, 77, 134, 0.04)),
    linear-gradient(180deg, #f4ecd8, #f9f4e8);
  border: 1px solid var(--gg-rule);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  padding: 0.9rem;
}

body.page-id-15108 .fc,
body.page-id-15108 .fc * {
  font-family: var(--gg-font-body);
  font-size: var(--gg-sm);
}

body.page-id-15108 .ggfc-filter-bar,
body.page-id-15108 .fc .fc-toolbar {
  background: var(--gg-bg-card);
  border: 1px solid var(--gg-rule);
  border-bottom: 1px solid var(--gg-rule);
  padding: 1rem;
}

body.page-id-15108 .fc .fc-toolbar-title {
  font-family: var(--gg-font-heading);
  font-size: var(--gg-xl);
  letter-spacing: 0.03em;
  color: var(--gg-ink);
}

body.page-id-15108 .fc .fc-col-header-cell {
  background: var(--gg-bg-card);
  font-family: var(--gg-font-heading);
  font-size: var(--gg-sm);
  color: var(--gg-ink);
  padding: 0.75rem 0.5rem;
  border-bottom: 1px solid var(--gg-rule);
}

body.page-id-15108 .fc-daygrid-day,
body.page-id-15108 .fc-theme-standard td,
body.page-id-15108 .fc-theme-standard th {
  border-color: var(--gg-rule);
}

body.page-id-15108 .fc .fc-daygrid-day-frame {
  min-height: 160px;
  padding: 0.6rem;
}

body.page-id-15108 .fc .fc-daygrid-day-number {
  font-family: var(--gg-font-heading);
  font-size: var(--gg-sm);
  color: var(--gg-ink);
}

body.page-id-15108 .fc .fc-daygrid-day-events {
  margin-top: 0.45rem;
}

body.page-id-15108 .fc-daygrid-event {
  background: transparent;
  border: 1px solid var(--gg-rule);
  color: var(--gg-ink);
  font-family: var(--gg-font-body);
  font-size: var(--gg-sm);
  padding: 2px 6px;
  margin-top: 4px;
  border-radius: 3px;
  white-space: normal;
  line-height: 1.35;
}

body.page-id-15108 .fc .fc-button {
  background: var(--gg-bg-card);
  color: var(--gg-ink);
  border: 1px solid var(--gg-rule);
}

body.page-id-15108 .fc .fc-button:hover,
body.page-id-15108 .fc .fc-button:focus,
body.page-id-15108 .fc-daygrid-event:hover,
body.page-id-15108 .fc-daygrid-event:focus-visible {
  border-color: var(--gg-ink-soft);
  outline: 2px solid var(--gg-ink-soft);
  outline-offset: 1px;
  color: var(--gg-ink);
}

/* Records + library-test card rhythm */
body.page-id-15515 .gg-record-stream-item,
body.page-id-15156 .gg-record-stream-item {
  background: var(--gg-bg-card);
  border: 1px solid var(--gg-rule);
  padding: 1rem;
  margin-bottom: 0.9rem;
}

body.page-id-15515 .gg-record-stream-item .gg-event-title,
body.page-id-15156 .gg-record-stream-item .gg-event-title {
  font-family: var(--gg-font-heading);
  font-size: var(--gg-md);
  color: var(--gg-ink);
}

/* B10 contrast refinement (2026-03-08) */
body.page-id-15515 .gg-event-meta-row,
body.page-id-15156 .gg-event-meta-row,
body.page-id-15515 .gg-event-location,
body.page-id-15156 .gg-event-location {
  color: #5f5645;
  font-size: var(--gg-sm);
}

/* District maps parchment style */
body.page-id-15490 .glass-gov-district-lookup {
  position: relative;
  background:
    linear-gradient(rgba(36, 77, 134, 0.06), rgba(36, 77, 134, 0.06)),
    repeating-linear-gradient(
      90deg,
      rgba(0, 0, 0, 0) 0,
      rgba(0, 0, 0, 0) 220px,
      rgba(36, 77, 134, 0.05) 221px,
      rgba(0, 0, 0, 0) 222px
    ),
    repeating-linear-gradient(
      0deg,
      rgba(0, 0, 0, 0) 0,
      rgba(0, 0, 0, 0) 260px,
      rgba(36, 77, 134, 0.05) 261px,
      rgba(0, 0, 0, 0) 262px
    ),
    linear-gradient(#f2e0c9, #f4ecd8);
  border: 1px solid var(--gg-rule);
  border-radius: 6px;
  box-shadow: 0 6px 18px rgba(44, 33, 20, 0.08);
  padding: 1rem;
  color: var(--gg-ink);
}

body.page-id-15490 .glass-gov-district-lookup::after {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px dashed rgba(36, 77, 134, 0.16);
  pointer-events: none;
}

body.page-id-15490 .glass-gov-search,
body.page-id-15490 .glass-gov-controls,
body.page-id-15490 .glass-gov-results,
body.page-id-15490 .glass-gov-privacy {
  color: var(--gg-ink);
  background: rgba(250, 252, 215, 0.65);
  border: 1px solid var(--gg-rule);
}

body.page-id-15490 .glass-gov-map-wrapper,
body.page-id-15490 .glass-gov-map {
  background: rgba(250, 252, 215, 0.75);
  border: 1px solid var(--gg-rule);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

body.page-id-15490 .glass-gov-district-lookup input[type="text"],
body.page-id-15490 .glass-gov-district-lookup input[type="search"],
body.page-id-15490 .glass-gov-district-lookup #addressInput,
body.page-id-15490 .glass-gov-district-lookup input#addressInput.glass-gov-input {
  background: var(--gg-bg-alt) !important;
  color: var(--gg-ink) !important;
  border: 1px solid var(--gg-rule) !important;
  -webkit-text-fill-color: var(--gg-ink) !important;
  caret-color: var(--gg-ink) !important;
  font-size: var(--gg-sm) !important;
}

body.page-id-15490 .glass-gov-district-lookup input::placeholder,
body.page-id-15490 .glass-gov-district-lookup #addressInput::placeholder {
  color: var(--gg-muted) !important;
  opacity: 1;
}

body.page-id-15490 .glass-gov-district-lookup input:focus,
body.page-id-15490 .glass-gov-district-lookup #addressInput:focus {
  outline: 3px solid var(--gg-ink-soft) !important;
  outline-offset: 2px;
  border-color: var(--gg-ink-soft) !important;
}

body.page-id-15490 .glass-gov-district-lookup .glass-gov-button:hover,
body.page-id-15490 .glass-gov-district-lookup .glass-gov-button:focus-visible {
  border-color: var(--gg-ink-soft);
  outline: 2px solid var(--gg-ink-soft);
  outline-offset: 2px;
}

/* HTML upload tool wrappers */
body.gg-library-child.gg-reading-room .gg-tool-shell {
  background: #f8f2e0;
  border: 1px solid var(--gg-rule);
  box-shadow: 0 12px 26px rgba(22, 34, 53, 0.08);
  padding: 1rem;
  margin: 1rem auto 1.25rem;
}

body.gg-library-child.gg-reading-room .gg-tool-shell__toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
  border-bottom: 1px solid var(--gg-rule);
  margin-bottom: 0.75rem;
  padding-bottom: 0.6rem;
}

body.gg-library-child.gg-reading-room .gg-tool-shell__title {
  margin: 0;
  color: var(--gg-ink);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

body.gg-library-child.gg-reading-room .gg-tool-shell__description {
  margin: 0 0 0.75rem;
  color: var(--gg-muted);
  font-size: var(--gg-sm);
}

body.gg-library-child.gg-reading-room .gg-tool-shell__open {
  font-family: var(--gg-font-heading);
  font-size: var(--gg-sm);
}

body.gg-library-child.gg-reading-room .gg-tool-shell__frame-wrap {
  border: 1px solid var(--gg-rule);
  background: #fffef8;
  min-height: 70vh;
}

body.gg-library-child.gg-reading-room .gg-tool-shell__frame {
  width: 100%;
  min-height: 70vh;
  border: 0;
  background: #fffef8;
}

body.gg-library-child.gg-reading-room .gg-tool-shell--error {
  color: var(--gg-bad);
  border-color: #cfb7b0;
}

/* Bookshelf homepage */
body.home .gg-bookshelf-home .entry-content {
  padding: 0.9rem 0.95rem 1.1rem;
  background:
    repeating-linear-gradient(
      0deg,
      rgba(255, 255, 255, 0) 0 44px,
      rgba(84, 61, 43, 0.08) 45px,
      rgba(255, 255, 255, 0) 46px
    ),
    linear-gradient(180deg, rgba(114, 83, 60, 0.14), rgba(114, 83, 60, 0.06) 34%, rgba(114, 83, 60, 0.12) 100%);
  border: 1px solid rgba(86, 61, 45, 0.26);
  border-radius: 2px;
}

body.home .gg-bookshelf-intro {
  background: var(--gg-bg-card);
  border: 1px solid var(--gg-rule);
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
}

body.home .gg-bookshelf-intro__title {
  margin: 0 0 0.3rem;
  color: var(--gg-ink);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

body.home .gg-bookshelf-intro__lead {
  margin: 0;
  color: var(--gg-ink);
  font-size: var(--gg-sm);
}

body.home .gg-bookshelf-shelf {
  margin-bottom: 1.5rem;
}

body.home .gg-bookshelf-shelf__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.8rem;
  margin-bottom: 0.5rem;
}

body.home .gg-bookshelf-shelf__title {
  margin: 0;
  color: var(--gg-ink);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

body.home .gg-bookshelf-shelf__note {
  margin: 0;
  color: var(--gg-muted);
  font-size: var(--gg-sm);
}

body.home .gg-bookshelf-grid {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 0.9rem;
  margin: 0;
  padding: 0;
}

body.home .gg-bookshelf-item {
  margin: 0;
}

body.home .gg-book {
  position: relative;
  display: block;
  min-height: 230px;
  padding: 1rem 0.9rem;
  border: 1px solid #435f87;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0) 26%),
    linear-gradient(180deg, #f2d4a7 0%, #ddb27f 100%);
  color: #173961;
  text-decoration: none;
  box-shadow: 0 3px 0 rgba(36, 77, 134, 0.14);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease, background-color 220ms ease;
}

body.home .gg-book::before {
  content: "";
  position: absolute;
  left: 0.55rem;
  right: 0.55rem;
  top: 0.75rem;
  height: 2px;
  background: rgba(36, 77, 134, 0.42);
  transition: background-color 220ms ease;
}

body.home .gg-book::after {
  content: "";
  position: absolute;
  inset: 0;
  border-left: 4px solid rgba(255, 243, 180, 0.55);
  pointer-events: none;
}

body.home .gg-book--left {
  --gg-book-tilt: -1deg;
}

body.home .gg-book--right {
  --gg-book-tilt: 1deg;
}

body.home .gg-book:hover,
body.home .gg-book:focus-visible {
  transform: translateY(-8px) rotate(var(--gg-book-tilt));
  box-shadow: 0 10px 18px rgba(36, 77, 134, 0.24);
  border-color: var(--gg-ink-soft);
}

body.home .gg-book:hover::before,
body.home .gg-book:focus-visible::before {
  background: rgba(36, 77, 134, 0.75);
}

body.home .gg-book:focus-visible {
  outline: 3px solid var(--gg-ink-soft);
  outline-offset: 3px;
}

body.home .gg-book__category {
  display: inline-block;
  margin: 0 0 1rem;
  font-size: var(--gg-sm);
  font-family: var(--gg-font-heading);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #1c4476;
}

body.home .gg-book__title {
  display: block;
  margin: 0 0 0.65rem;
  font-size: var(--gg-md);
  font-family: var(--gg-font-heading);
  color: #143b68;
  line-height: 1.25;
}

body.home .gg-book__desc {
  display: block;
  font-size: var(--gg-sm);
  color: #1d406f;
  line-height: 1.45;
}

body.home .gg-bookshelf-rail {
  height: 16px;
  margin-top: 0.55rem;
  border-radius: 1px;
  border: 1px solid rgba(45, 32, 22, 0.18);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.22) 0%, rgba(255, 255, 255, 0.02) 36%),
    linear-gradient(90deg, var(--gg-wood-1), var(--gg-wood-2));
}

body.home .gg-bookshelf-empty {
  background: var(--gg-bg-card);
  border: 1px solid var(--gg-rule);
  color: var(--gg-ink);
  font-size: var(--gg-sm);
  padding: 0.9rem 1rem;
}

/* Civic tools bookshelf hub */
body.page-id-267 .gg-civic-tools-hub {
  padding: 0.9rem 0.95rem 1.1rem;
  background:
    repeating-linear-gradient(
      0deg,
      rgba(255, 255, 255, 0) 0 44px,
      rgba(84, 61, 43, 0.08) 45px,
      rgba(255, 255, 255, 0) 46px
    ),
    linear-gradient(180deg, rgba(114, 83, 60, 0.14), rgba(114, 83, 60, 0.06) 34%, rgba(114, 83, 60, 0.12) 100%);
  border: 1px solid rgba(86, 61, 45, 0.26);
  border-radius: 2px;
}

body.page-id-267 .gg-civic-tools-hub .gg-bookshelf-intro {
  background: var(--gg-bg-card);
  border: 1px solid var(--gg-rule);
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
}

body.page-id-267 .gg-civic-tools-hub .gg-bookshelf-intro__title {
  margin: 0 0 0.3rem;
  color: var(--gg-ink);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

body.page-id-267 .gg-civic-tools-hub .gg-bookshelf-intro__lead {
  margin: 0;
  color: var(--gg-ink);
  font-size: var(--gg-sm);
}

body.page-id-267 .gg-civic-tools-hub .gg-bookshelf-grid {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 0.9rem;
  margin: 0;
  padding: 0;
}

body.page-id-267 .gg-civic-tools-hub .gg-bookshelf-item {
  margin: 0;
}

body.page-id-267 .gg-civic-tools-hub .gg-book {
  position: relative;
  display: block;
  min-height: 230px;
  padding: 1rem 0.9rem;
  border: 1px solid #435f87;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0) 26%),
    linear-gradient(180deg, #f2d4a7 0%, #ddb27f 100%);
  color: #173961;
  text-decoration: none;
  box-shadow: 0 3px 0 rgba(36, 77, 134, 0.14);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease, background-color 220ms ease;
}

body.page-id-267 .gg-civic-tools-hub .gg-book::before {
  content: "";
  position: absolute;
  left: 0.55rem;
  right: 0.55rem;
  top: 0.75rem;
  height: 2px;
  background: rgba(36, 77, 134, 0.42);
  transition: background-color 220ms ease;
}

body.page-id-267 .gg-civic-tools-hub .gg-book::after {
  content: "";
  position: absolute;
  inset: 0;
  border-left: 4px solid rgba(255, 243, 180, 0.55);
  pointer-events: none;
}

body.page-id-267 .gg-civic-tools-hub .gg-book:hover,
body.page-id-267 .gg-civic-tools-hub .gg-book:focus-visible {
  transform: translateY(-8px) rotate(var(--gg-book-tilt, 1deg));
  box-shadow: 0 10px 18px rgba(36, 77, 134, 0.24);
  border-color: var(--gg-ink-soft);
}

body.page-id-267 .gg-civic-tools-hub .gg-book:hover::before,
body.page-id-267 .gg-civic-tools-hub .gg-book:focus-visible::before {
  background: rgba(36, 77, 134, 0.75);
}

body.page-id-267 .gg-civic-tools-hub .gg-book:focus-visible {
  outline: 3px solid var(--gg-ink-soft);
  outline-offset: 3px;
}

body.page-id-267 .gg-civic-tools-hub .gg-book__category {
  display: inline-block;
  margin: 0 0 1rem;
  font-size: var(--gg-sm);
  font-family: var(--gg-font-heading);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #1c4476;
}

body.page-id-267 .gg-civic-tools-hub .gg-book__title {
  display: block;
  margin: 0 0 0.65rem;
  font-size: var(--gg-md);
  font-family: var(--gg-font-heading);
  color: #143b68;
  line-height: 1.25;
}

body.page-id-267 .gg-civic-tools-hub .gg-book__desc {
  display: block;
  font-size: var(--gg-sm);
  color: #1d406f;
  line-height: 1.45;
}

body.page-id-267 .gg-civic-tools-hub .gg-bookshelf-rail {
  height: 16px;
  margin-top: 0.55rem;
  border-radius: 1px;
  border: 1px solid rgba(45, 32, 22, 0.18);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.22) 0%, rgba(255, 255, 255, 0.02) 36%),
    linear-gradient(90deg, var(--gg-wood-1), var(--gg-wood-2));
}

/* Police data table readability */
body.page-id-15032 .police-data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--gg-sm) !important;
  line-height: 1.65 !important;
  background: #fcf7ea;
  border: 1px solid var(--gg-rule);
}

body.page-id-15032 .police-data-table th,
body.page-id-15032 .police-data-table td {
  padding: 0.75rem !important;
  border: 1px solid var(--gg-rule) !important;
  vertical-align: top;
  color: var(--gg-ink);
}

body.page-id-15032 .police-data-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #efe3ca !important;
}

body.page-id-15032 .police-data-table tbody tr:nth-child(even) td {
  background: #faf2df;
}

body.page-id-15032 .police-data-table a {
  color: var(--gg-ink);
  font-weight: 700;
}

body.page-id-15032 .police-disclaimer {
  color: var(--gg-muted) !important;
  font-size: var(--gg-sm) !important;
}

@media (prefers-reduced-motion: reduce) {
  body.home .gg-book {
    transition: none;
  }

  body.home .gg-book:hover,
  body.home .gg-book:focus-visible {
    transform: none;
  }

  body.page-id-267 .gg-civic-tools-hub .gg-book,
  body.page-id-267 .gg-civic-tools-hub .gg-book:hover,
  body.page-id-267 .gg-civic-tools-hub .gg-book:focus-visible {
    transform: none;
    transition: none;
  }
}

@media (max-width: 900px) {
  body.home .gg-bookshelf-shelf__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
  }

  body.home .gg-bookshelf-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.page-id-267 .gg-civic-tools-hub .gg-bookshelf-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  body.home .gg-bookshelf-grid {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  body.home .gg-book {
    min-height: auto;
  }

  body.home .gg-bookshelf-rail {
    height: 12px;
  }

  body.page-id-267 .gg-civic-tools-hub .gg-bookshelf-grid {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  body.page-id-267 .gg-civic-tools-hub .gg-book {
    min-height: auto;
  }

  body.page-id-267 .gg-civic-tools-hub .gg-bookshelf-rail {
    height: 12px;
  }

  body.gg-library-child.gg-reading-room .main-navigation .primary-menu-container > ul > li > a,
  body.gg-library-child.gg-reading-room .mobile-navigation ul li > a,
  body.gg-library-child.gg-reading-room .mobile-navigation .drawer-nav-drop-wrap > a,
  body.gg-library-child.gg-reading-room .site-branding .site-description,
  body.gg-library-child.gg-reading-room .site-description {
    font-size: calc(var(--gg-sm) + 1px);
  }

  body.page-id-15108 .fc,
  body.page-id-15108 .fc * {
    font-size: 14px;
  }

  body.page-id-15108 .fc .fc-daygrid-day-frame {
    min-height: 110px;
  }

  body.page-id-15517 .gg-event-detail--library-card,
  body.page-id-15517 .gg-events-browser,
  body.page-id-15515 .gg-events-browser,
  body.page-id-15156 .gg-events-browser {
    padding: 0.9rem;
  }
}


/* 2026-03-02 warm home bookshelf pass */
body.home .gg-home-banner {
  margin: 0 0 1rem;
  padding: 0.95rem 1rem;
  background:
    linear-gradient(180deg, rgba(251, 240, 214, 0.95) 0%, rgba(244, 228, 193, 0.95) 100%),
    repeating-linear-gradient(90deg, rgba(78, 53, 37, 0.06) 0 2px, rgba(255, 255, 255, 0.05) 2px 9px);
  border: 1px solid rgba(92, 62, 43, 0.33);
  box-shadow: 0 3px 0 rgba(66, 44, 28, 0.16);
}

body.home .gg-home-banner__label {
  margin: 0 0 0.25rem;
  font-family: var(--gg-font-heading);
  font-size: var(--gg-sm);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #5a3e29;
}

body.home .gg-home-banner__title {
  margin: 0 0 0.3rem;
  color: #2a4d75;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

body.home .gg-home-banner__lead {
  margin: 0;
  color: #4b3d30;
  font-size: var(--gg-sm);
  line-height: 1.5;
}

body.home .gg-bookshelf-grid {
  align-items: end;
}

body.home .gg-bookshelf-item:nth-child(3n + 1) .gg-book {
  transform: translateY(3px) rotate(-0.75deg);
}

body.home .gg-bookshelf-item:nth-child(3n + 2) .gg-book {
  transform: translateY(-4px) rotate(0.65deg);
}

body.home .gg-bookshelf-item:nth-child(3n) .gg-book {
  transform: translateY(1px) rotate(-0.25deg);
}

body.home .gg-book {
  background:
    radial-gradient(circle at 72% 18%, rgba(255, 255, 255, 0.34), transparent 33%),
    repeating-linear-gradient(180deg, rgba(92, 60, 38, 0.05) 0 1px, rgba(0, 0, 0, 0) 1px 8px),
    linear-gradient(180deg, #f0c995 0%, #d59b66 100%);
  border-color: #5f4330;
  box-shadow: 0 3px 0 rgba(63, 42, 28, 0.18), inset 0 0 0 1px rgba(255, 244, 220, 0.22);
}

body.home .gg-book::after {
  border-left: 5px solid rgba(255, 242, 205, 0.63);
  background: linear-gradient(90deg, rgba(70, 45, 30, 0.08), transparent 20%);
}

body.home .gg-book:hover,
body.home .gg-book:focus-visible {
  transform: translateY(-8px) rotate(var(--gg-book-tilt));
}

@media (max-width: 900px) {
  body.home .gg-bookshelf-item .gg-book,
  body.home .gg-bookshelf-item:nth-child(3n + 1) .gg-book,
  body.home .gg-bookshelf-item:nth-child(3n + 2) .gg-book,
  body.home .gg-bookshelf-item:nth-child(3n) .gg-book {
    transform: none;
  }
}

/* 2026-03-11 cleaner homepage pass */
body.home .gg-homepage-entry {
  box-shadow: none;
}

body.home .gg-homepage {
  background: linear-gradient(180deg, rgba(251, 247, 235, 0.98) 0%, rgba(241, 236, 221, 0.98) 100%);
  border: 1px solid var(--gg-rule);
  box-shadow: none;
  color: var(--gg-ink);
  margin: 0 auto;
}

body.home .gg-homepage__shell {
  margin: 0 auto;
  max-width: 72rem;
  padding: 2.25rem 1rem 2.75rem;
}

body.home .gg-homepage__hero {
  margin-bottom: 2rem;
  max-width: 48rem;
}

body.home .gg-homepage__eyebrow,
body.home .gg-homepage__section-label {
  border-bottom: 1px solid var(--gg-rule);
  color: var(--gg-muted);
  display: inline-block;
  font-family: var(--gg-font-mono);
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin: 0 0 0.55rem;
  padding-bottom: 0.18rem;
  text-transform: uppercase;
}

body.home .gg-homepage__title {
  color: var(--gg-ink);
  font-family: var(--gg-font-heading);
  font-size: clamp(2rem, 1.55rem + 1.6vw, 3rem);
  line-height: 1.1;
  margin: 0 0 0.8rem;
}

body.home .gg-homepage__lede {
  color: var(--gg-muted);
  font-size: 1.06rem;
  line-height: 1.6;
  margin: 0;
  max-width: 40rem;
}

body.home .gg-homepage__section {
  border-top: 1px solid var(--gg-rule);
  margin-top: 1.6rem;
  padding-top: 1.2rem;
}

body.home .gg-homepage__section-title {
  color: var(--gg-ink);
  font-family: var(--gg-font-heading);
  font-size: clamp(1.35rem, 1.18rem + 0.65vw, 1.8rem);
  line-height: 1.2;
  margin: 0 0 1rem;
}

body.home .gg-homepage__grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.home .gg-homepage__grid--compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.home .gg-homepage__card {
  background: rgba(255, 252, 244, 0.96);
  border: 1px solid var(--gg-rule);
  min-height: 100%;
}

body.home .gg-homepage__card--archive {
  background: rgba(250, 248, 241, 0.96);
}

body.home .gg-homepage__card-link {
  color: inherit;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  height: 100%;
  min-height: 15rem;
  padding: 1rem 1rem 1.1rem;
  text-decoration: none;
}

body.home .gg-homepage__card-title {
  color: var(--gg-ink);
  font-family: var(--gg-font-heading);
  font-size: 1.25rem;
  line-height: 1.25;
  margin: 0;
}

body.home .gg-homepage__card-description {
  color: var(--gg-muted);
  flex: 1;
  font-size: 1rem;
  line-height: 1.55;
  margin: 0;
}

body.home .gg-homepage__card-cta {
  color: var(--gg-ink-soft);
  font-family: var(--gg-font-mono);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

body.home .gg-homepage__card-link:hover .gg-homepage__card-title,
body.home .gg-homepage__card-link:focus-visible .gg-homepage__card-title {
  color: var(--gg-ink-soft);
}

body.home .gg-homepage__card-link:hover .gg-homepage__card-cta,
body.home .gg-homepage__card-link:focus-visible .gg-homepage__card-cta {
  color: var(--gg-ink);
}

body.home .gg-homepage__principles {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: 1.6rem 0 0;
  padding: 0;
}

body.home .gg-homepage__principles li {
  background: rgba(255, 252, 244, 0.96);
  border: 1px solid var(--gg-rule);
  padding: 1rem;
}

body.home .gg-homepage__principles strong {
  color: var(--gg-ink);
  display: block;
  font-family: var(--gg-font-heading);
  font-size: 1rem;
  margin-bottom: 0.35rem;
}

body.home .gg-homepage__principles span {
  color: var(--gg-muted);
  display: block;
  font-size: 0.98rem;
  line-height: 1.5;
}

@media (max-width: 1024px) {
  body.home .gg-homepage__grid,
  body.home .gg-homepage__grid--compact,
  body.home .gg-homepage__principles {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 782px) {
  body.home .gg-homepage__shell {
    padding: 1.6rem 0.85rem 2rem;
  }

  body.home .gg-homepage__card-link {
    min-height: auto;
  }
}

/* 2026-03-11 small-text readability patch: homepage utility text + events calendar */
body.home .gg-homepage__card-label,
body.home .gg-homepage__card-cta {
  font-size: 0.98rem;
  line-height: 1.45;
}

body.home .gg-homepage__card-label {
  letter-spacing: 0.02em;
}

body.page-id-15108 .fc .fc-daygrid-day-number,
body.page-id-15108 .fc .fc-col-header-cell-cushion {
  font-size: 0.9rem;
  line-height: 1.3;
}
