/* County-specific enhancements layered on Aroostook.ME's shared stylesheet. */
.hero { background-position: center 48%; }
.todo-hero { background: linear-gradient(105deg,rgba(7,27,19,.94),rgba(7,27,19,.42)),url('/photos/county-hero.jpg') center 48%/cover,var(--pine-900); }
.todo-card--feature { background: linear-gradient(180deg,rgba(12,36,26,.1),rgba(12,36,26,.94)),url('/photos/county-hero.jpg') center/cover,var(--pine-900); }
.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.town-search-row { display:flex; align-items:stretch; gap:10px; }
.town-search-row #town-search { flex:1; min-width:0; margin:0; }
.town-search-clear { flex:0 0 auto; padding:0 18px; border:1.5px solid var(--pine-600); border-radius:999px; background:#fff; color:var(--pine-700); font:600 .95rem Inter,system-ui,sans-serif; cursor:pointer; }
.town-search-clear:hover { background:var(--sand); }
.town-search-clear:disabled { opacity:.5; cursor:not-allowed; }
.search-hint { min-height:1.4em; }
.town-empty { margin:22px 0; padding:20px; border:1px dashed var(--line); border-radius:var(--radius); background:#fff; color:var(--muted); }
.town-links a .town-kind { margin-left:6px; color:var(--muted); font-size:.72rem; }
.region-block h2 { display:flex; align-items:center; gap:12px; padding-bottom:10px; margin-bottom:0; border-bottom:2px solid var(--line); font-size:1.25rem; }
.region-block h2 .cnt { font:600 .75rem Inter,system-ui,sans-serif; background:var(--pine-700); color:#fff; border-radius:999px; padding:3px 10px; }
.town-chip.is-hidden,.region-block.is-hidden { display:none; }
.unorganized-list { display:flex; flex-wrap:wrap; gap:9px; }
.unorganized-list a { display:inline-flex; align-items:center; gap:8px; padding:8px 13px; border:1px dashed var(--line); border-radius:999px; background:#fff; color:var(--pine-800); font-size:.9rem; text-decoration:none; }
.unorganized-list a:hover { border-color:var(--pine-700); color:var(--pine-700); }
.unorganized-list small { font-size:.72rem; color:var(--muted); }
.town-data-note { margin-top:22px; padding:14px 18px; border-left:4px solid var(--gold); border-radius:0 var(--radius-sm) var(--radius-sm) 0; background:var(--sand); color:#4a4433; font-size:.9rem; }
.footer-grid h2 { color:#fff; font-size:1rem; font-family:Inter,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.1em; margin:0 0 14px; }
.site-footer p a { text-decoration:underline; text-underline-offset:.18em; }
.photo-grid figure img { width:100%; height:310px; object-fit:cover; }
.source-note { margin-top:18px; color:var(--muted); font-size:.85rem; }
[hidden] { display:none!important; }
@media(max-width:560px) { .town-search-row { align-items:stretch; flex-direction:column; } .town-search-clear { min-height:44px; } .photo-grid figure img { height:240px; } }
/* Multi-TLD branding: keep long domain-style brands (CumberlandCounty.website) fitting. */
.brand b.me { font-size:.75em; letter-spacing:.02em; }
@media(max-width:560px) { .brand { font-size:1rem; max-width:70vw; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } }
