/* Shared public sections. Uses the existing site palette and inherited typeface. */
.rapn-redesign { --rapn-rule:#dce0e4; --rapn-muted:#6c757d; margin:32px auto 44px; max-width:1140px; color:var(--rapn-muted); }
.rapn-redesign * { box-sizing:border-box; }
.rapn-redesign [hidden] { display:none!important; }
.rapn-redesign a { color:var(--main-color); text-decoration:none; text-underline-offset:4px; }
.rapn-redesign a:hover { text-decoration:underline; }
.rapn-redesign h1 { font-size:28px; font-weight:400; margin:0 0 24px; }
.rapn-redesign button,.rapn-redesign select { font:inherit; }
.rapn-publication-grid,.rapn-event-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.rapn-publication-section,.rapn-event-card { border:3px solid var(--main-color); padding:20px; min-width:0; background:#fff; }
.rapn-publication-section { position:relative; padding:0; width:100%; aspect-ratio:1; min-height:0; align-self:start; }
.rapn-publication-content { position:absolute; inset:20px; display:flex; flex-direction:column; min-height:0; }
.rapn-publication-section h2 { font-size:23px; line-height:1.3; font-weight:400; margin:0; padding:0 0 14px; flex:none; }
.rapn-publication-section h2 a { display:flex; align-items:center; justify-content:space-between; gap:18px; color:var(--rapn-muted); }
.rapn-publication-section h2 a > :last-child { color:var(--main-color); }
.rapn-publication-items { list-style:none; padding:6px 0 0; margin:0; border-top:1px solid var(--rapn-rule); flex:1; min-height:0; overflow:auto; }
.rapn-autofill .rapn-publication-items { overflow:hidden; }
.rapn-publication-items li { padding:4px 0; margin:0; overflow-wrap:anywhere; }
.rapn-publication-items li:not([hidden]) ~ li:not([hidden]) { margin-top:3px; }
.rapn-publication-items a { display:block; font-size:16px; line-height:1.55; }
.rapn-publication-author { font-size:14px; line-height:1.45; margin:3px 0 0; }
.rapn-publication-count { flex:none; font-size:12px; margin-top:10px; }
.rapn-library-news { margin-bottom:28px; }
.rapn-library-news h2 { font-size:23px; font-weight:400; }
.rapn-library-news ul { list-style:none; padding:0; }
.rapn-library-news li { margin-bottom:12px; }
.rapn-tabs { display:flex; gap:24px; border-bottom:1px solid var(--rapn-rule); margin-bottom:20px; }
.rapn-tabs a { color:var(--rapn-muted); padding-bottom:13px; border-bottom:3px solid transparent; margin-bottom:-1px; }
.rapn-tabs a[aria-selected=true] { color:var(--main-color); border-bottom-color:var(--main-color); }
.rapn-tabs span { font-size:12px; margin-left:5px; }
.rapn-region-detail { position:relative; display:flex; align-items:center; justify-content:space-between; gap:14px; background:#f6f8fa; padding:16px 54px 16px 16px; margin-bottom:19px; min-height:76px; scroll-margin-top:16px; }
.rapn-region-detail.is-popover { position:fixed; z-index:1050; width:340px; max-width:calc(100vw - 32px); max-height:calc(100vh - 32px); overflow:auto; flex-direction:column; align-items:flex-start; margin:0; border:2px solid var(--main-color); background:white; box-shadow:0 8px 26px #162b4c26; }
.rapn-region-close { position:absolute; right:4px; top:4px; width:40px; height:40px; font-size:26px!important; line-height:1; border:0; background:transparent; color:var(--rapn-muted); cursor:pointer; }
.rapn-region-detail strong { display:block; font-weight:500; color:#303b43; }
.rapn-region-detail [data-region-status] { font-size:12px; margin-top:3px; }
.rapn-region-detail a { flex:none; font-size:14px; }
.rapn-region-map { display:grid; grid-template-columns:repeat(19,minmax(0,1fr)); gap:3px; align-items:start; }
.rapn-district { display:contents; }
.rapn-district h2 { display:none; }
.rapn-region-tile { grid-column:var(--col); grid-row:var(--row); aspect-ratio:1; min-width:0; width:100%; border:0; border-radius:3px; background:#e5e8eb; color:#58636b; font:500 11px/1 Arial,sans-serif!important; padding:0; cursor:pointer; }
.rapn-region-tile[data-active=true] { background:var(--main-color); color:#fff; }
.rapn-region-tile:hover { filter:brightness(.92); }
.rapn-region-tile[aria-pressed=true] { box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 4px var(--main-color); }
.rapn-map-legend { display:flex; gap:20px; flex-wrap:wrap; font-size:12px; margin-top:20px; }
.rapn-map-legend span { display:flex; align-items:center; gap:7px; }
.rapn-region-swatch { width:13px; height:13px; border-radius:2px; background:var(--main-color); }
.rapn-region-swatch.is-inactive { background:#e5e8eb; }
.rapn-committee-list { list-style:none; margin:0; padding:0; }
.rapn-committee-list a { display:flex; align-items:baseline; gap:14px; padding:13px 0; border-bottom:1px solid var(--rapn-rule); overflow-wrap:anywhere; }
.rapn-committee-list span { color:var(--rapn-muted); font-size:12px; min-width:46px; flex:none; }
.rapn-event-filters { display:flex; flex-wrap:wrap; gap:22px; border-bottom:1px solid var(--rapn-rule); margin-bottom:24px; }
.rapn-event-filters a { color:var(--rapn-muted); font-size:14px; padding:8px 0 12px; border-bottom:2px solid transparent; }
.rapn-event-filters a[aria-current=true] { color:var(--main-color); border-bottom-color:var(--main-color); }
.rapn-event-select { display:none; }
.rapn-event-controls { display:flex; align-items:center; justify-content:flex-end; gap:16px; margin-bottom:24px; }
.rapn-events-enhanced .rapn-event-apply { display:none; }
.rapn-page-size { display:flex; align-items:center; gap:10px; flex:none; font-size:14px; }
.rapn-page-size select { min-height:44px; min-width:76px; border:1px solid #b7bfc8; padding:8px; color:var(--rapn-muted); background:white; font-size:16px; }
.rapn-button { border:1px solid var(--main-color); background:var(--main-color); color:white; min-height:44px; padding:8px 20px; }
.rapn-redesign :is(a,button,input,select,[tabindex]):focus-visible { outline:2px solid var(--main-color); outline-offset:3px; }
.rapn-catalog-controls { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.rapn-catalog-search { display:flex; flex:1; min-width:260px; max-width:660px; }
.rapn-catalog-search input { flex:1; width:0; min-width:0; min-height:44px; border:1px solid #b7bfc8; border-right:0; padding:8px 12px; font:inherit; font-size:16px; }
.rapn-catalog-summary { display:flex; align-items:center; flex-wrap:wrap; gap:16px; font-size:14px; margin:20px 0 8px; }
.rapn-catalog-list { padding:0; margin:0; list-style:none; }
.rapn-catalog-list li { display:grid; grid-template-columns:100px minmax(0,1fr); gap:22px; padding:18px 0; border-bottom:1px solid var(--rapn-rule); }
.rapn-catalog-list time { font-size:14px; padding-top:2px; }
.rapn-catalog-list a { line-height:1.5; overflow-wrap:anywhere; }
.rapn-catalog-list p { margin:5px 0 0; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.rapn-catalog-pagination { display:flex; justify-content:center; flex-wrap:wrap; gap:4px; margin-top:24px; }
.rapn-catalog-pagination a { display:flex; align-items:center; justify-content:center; min-width:40px; min-height:44px; padding:8px; border:1px solid var(--rapn-rule); }
.rapn-catalog-pagination a[aria-current=page] { background:var(--main-color); color:white; border-color:var(--main-color); }
.rapn-catalog-pagination span { padding:10px 2px; }
#rapn-home-publications { max-width:none; }
#rapn-home-publications h2 { margin:0 0 24px; font-size:28px; font-weight:400; }
#rapn-home-publications h2 a { color:var(--rapn-muted); }
.rapn-home-publication-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.rapn-home-publication-card { position:relative; aspect-ratio:1; min-width:0; border:3px solid var(--main-color); background:white; }
.rapn-home-publication-content { position:absolute; inset:16px; display:flex; flex-direction:column; min-height:0; }
.rapn-home-publication-card h3 { font-size:19px; line-height:1.3; font-weight:400; margin:0 0 12px; }
.rapn-home-publication-card h3 a { color:var(--rapn-muted); }
.rapn-home-publication-source { flex:1; min-height:0; overflow:auto; }
.rapn-autofill .rapn-home-publication-source { overflow:hidden; }
.rapn-home-publication-source time { display:block; font-size:12px; margin-bottom:7px; }
.rapn-home-publication-title { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; overflow:hidden; font-size:15px; line-height:1.45; }
.rapn-home-publication-source p { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; font-size:13px; line-height:1.4; margin:8px 0 0; }
.rapn-home-publication-all { border-top:1px solid var(--rapn-rule); padding-top:10px; margin-top:12px; font-size:13px; flex:none; }
@media(max-width:1199px) {
    .rapn-home-publication-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .rapn-home-publication-title { font-size:17px; -webkit-line-clamp:6; }
    .rapn-home-publication-card h3 { font-size:22px; }
}
.rapn-event-card { display:flex; flex-direction:column; }
.rapn-event-top { display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; padding-bottom:14px; border-bottom:1px solid var(--rapn-rule); margin-bottom:14px; }
.rapn-event-date { color:var(--main-color); font-size:22px; line-height:1.3; font-weight:500; }
.rapn-event-kind { font-size:12px; }
.rapn-event-card h2 { font-size:20px; font-weight:400; line-height:1.4; margin:0 0 12px; overflow-wrap:anywhere; }
.rapn-event-summary { font-size:14px; line-height:1.5; margin:0 0 18px; overflow-wrap:anywhere; }
.rapn-event-footer { margin-top:auto; }
.rapn-event-location { font-size:14px; margin-bottom:12px; overflow-wrap:anywhere; }
.rapn-event-location img { width:16px; height:16px; margin-right:6px; vertical-align:middle; }
.rapn-event-registration { border-top:1px solid var(--rapn-rule); padding-top:12px; font-size:13px; }
.rapn-event-registration .btn { color:#fff; border-radius:0; background:var(--main-color); border-color:var(--main-color); }
.rapn-event-more { display:block; width:fit-content; border:1px solid var(--main-color); padding:10px 20px; margin:24px auto 0; text-align:center; }
.rapn-event-more[aria-disabled=true] { opacity:.65; pointer-events:none; }
.rapn-empty { padding:20px 0; }
.rapn-event-error { margin-top:16px; }
@media(max-width:800px) {
    .rapn-publication-grid,.rapn-event-grid { gap:20px; }
    .rapn-publication-section h2 { font-size:21px; }
    .rapn-publication-items a { font-size:15px; line-height:1.5; }
}
@media(max-width:767px), (pointer:coarse) and (max-width:1100px) {
    .rapn-region-map { display:block; }
    .rapn-district { display:grid; grid-template-columns:repeat(auto-fit,minmax(44px,1fr)); gap:5px; margin-bottom:16px; }
    .rapn-district h2 { display:block; grid-column:1/-1; font-size:12px; font-weight:500; margin:0 0 4px; }
    .rapn-region-tile { grid-column:auto; grid-row:auto; min-height:44px; max-width:64px; font-size:12px!important; }
}
@media(max-width:767px) {
    .rapn-home-publication-grid { grid-template-columns:1fr; }
}
@media(max-width:374px) {
    .rapn-home-publication-card h3 { font-size:20px; }
    .rapn-home-publication-title { font-size:15px; -webkit-line-clamp:4; }
    .rapn-home-publication-source p { -webkit-line-clamp:1; }
}
@media(max-width:620px) {
    .rapn-redesign { margin-top:24px; margin-bottom:28px; }
    .rapn-publication-grid,.rapn-event-grid { grid-template-columns:1fr; gap:18px; }
    .rapn-event-card { padding:16px; }
    .rapn-publication-content { inset:16px; }
    .rapn-publication-section h2 { font-size:20px; }
    .rapn-publication-items a { font-size:14px; line-height:1.45; min-height:44px; }
    .rapn-tabs { gap:16px; }
    .rapn-tabs a { flex:1; font-size:14px; }
    .rapn-region-detail { align-items:flex-start; flex-direction:column; gap:8px; }
    .rapn-event-filters { gap:10px 16px; }
    .rapn-events-enhanced .rapn-event-filters { display:none; }
    .rapn-events-enhanced .rapn-event-select { display:block; width:100%; }
    .rapn-event-controls { justify-content:flex-start; flex-wrap:wrap; }
    .rapn-event-select select { width:100%; min-height:44px; border:1px solid #b7bfc8; padding:8px; color:var(--rapn-muted); background:#fff; font-size:16px; }
    .rapn-event-date { font-size:20px; }
    .rapn-catalog-search { min-width:0; flex-basis:100%; }
    .rapn-catalog-list li { grid-template-columns:1fr; gap:6px; }
    .rapn-home-publication-grid { grid-template-columns:1fr; gap:18px; }
}
