body{background:var(--paper)}
.libraries{max-width:1120px;margin:auto;padding:24px 24px 60px;line-height:1.6}
.libraries nav{display:flex;gap:12px 24px;flex-wrap:wrap;margin-bottom:38px}
.libraries a{color:#914014;text-underline-offset:3px}
.libraries h1{font-size:clamp(32px,5vw,52px);line-height:1.12;max-width:760px;margin:8px 0 18px}
.libraries h2{font-size:25px;margin:30px 0 4px;line-height:1.25}
.libraries h3{font-size:23px;line-height:1.25;margin:8px 0}
.eyebrow,.town{text-transform:uppercase;letter-spacing:.09em;font-size:12px;font-weight:700}
.eyebrow{color:#914014}.intro{max-width:760px;font-size:18px}
.library-filters{display:flex;align-items:end;flex-wrap:wrap;gap:14px;margin:28px 0 18px;padding:22px;background:#fff;border:1px solid #ded7ca;border-radius:18px}
.library-filters label{display:flex;flex:1;min-width:130px;flex-direction:column;gap:5px;font-size:14px;font-weight:700}
.library-filters select{font:inherit;width:100%;min-height:46px;border:1px solid #adad9d;border-radius:8px;padding:8px;background:#fff;color:#172e3d}
.library-filters button{min-height:46px;padding:10px 19px;border:0;border-radius:9px;background:#233f39;color:white;font:inherit;font-weight:700;cursor:pointer}
.reset{padding:10px 0}.schedule-note{background:#f3ebda;border-left:4px solid #987044;padding:16px 20px;font-size:14px;border-radius:0 9px 9px 0}
.result-context{margin:8px 0 22px;color:#56605e}.library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.library-card{background:white;border:1px solid #d7ded8;border-radius:16px;padding:24px;min-width:0;box-shadow:0 3px 12px #182c2310}
.card-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}.card-heading p{margin:0}.town{padding-top:8px;color:#57675e}
.opening{font-size:25px;font-weight:700;color:#244f3e;text-align:right;line-height:1.15}.opening small{display:block;font-size:11px;font-weight:400;line-height:1.5;max-width:155px;margin-top:4px}
.address,.review-date{font-size:13px;color:#5f6767}.review-date{margin-top:-6px}.exception{background:#f6f3ec;padding:12px 14px;border-radius:8px;font-size:14px}
.actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;margin:20px 0}.program-link{font-weight:700}
.library-card details{border-top:1px solid #e3e5de;padding-top:14px;font-size:14px}.library-card summary{cursor:pointer;font-weight:600;padding:4px 0}
.weekly{display:grid;grid-template-columns:1fr 1fr;gap:4px}.weekly dd{margin:0;text-align:right}.sources{padding-left:18px}.sources li{margin:9px 0;overflow-wrap:anywhere}
.library-empty{padding:25px;background:white;border:1px solid #ded7ca;border-radius:14px}.uncertain .opening{color:#8b4c19;font-size:20px}
.libraries footer{border-top:1px solid #d5d6ca;margin-top:38px;padding-top:20px;font-size:14px;color:#56605e}
.libraries :focus-visible{outline:3px solid #a64916;outline-offset:4px}
@media(max-width:650px){.libraries{padding:20px 16px 40px}.libraries nav{margin-bottom:26px;font-size:14px}.library-grid{grid-template-columns:1fr}.library-filters{padding:16px;gap:12px}.library-filters label:last-of-type{flex-basis:100%}.library-filters button{flex:1}.library-card{padding:20px}.intro{font-size:16px}.schedule-note{padding:13px 15px}.opening{font-size:23px}}
