/*
Theme Name: New Albany Borough
Theme URI: https://newalbanyboroughpa.com/
Author: New Albany Borough
Description: An accessible, responsive civic theme for New Albany Borough, Pennsylvania.
Version: 1.23.12
Requires at least: 6.4
Tested up to: 6.6
Requires PHP: 7.4
Text Domain: new-albany-borough
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: custom-logo, custom-menu, featured-images, one-column, two-columns, accessibility-ready, block-styles, wide-blocks
*/

.emergency-callout {
	background: var(--navy);
	color: #fff;
	border-left: 6px solid var(--gold);
	border-radius: var(--radius);
	padding: clamp(1.25rem, 3vw, 2rem);
	margin-bottom: 2rem;
}
.emergency-callout h2 { color: #fff; margin-top: 0; }
.emergency-callout .button { display: inline-flex; background: var(--gold); color: var(--navy); }
.emergency-services-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr)); gap: 18px; }
.emergency-service-card { min-width: 0; display: flex; flex-direction: column; padding: 22px; background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius); }
.emergency-service-card h3 { margin: 0 0 9px; color: var(--navy); font-family: Georgia,serif; font-size: 1.18rem; line-height: 1.25; }
.emergency-service-card address { margin: 0 0 14px; color: var(--ink); font-size: .78rem; font-style: normal; line-height: 1.55; }
.emergency-service-card p { color: var(--muted); font-size: .84rem; }
.emergency-service-action { margin-top: auto; margin-bottom: 0; padding-top: 13px; border-top: 1px solid #d8d0c1; }
.emergency-service-card a { min-height: 44px; display: inline-flex; align-items: center; color: var(--blue); font-size: .78rem; font-weight: 800; }
.emergency-services-note { margin-top: 1.5rem; }
.emergency-services-additional { border-top: 1px solid rgba(13,37,56,.18); margin-top: 2rem; padding-top: 1rem; }
@media (max-width: 700px) { .emergency-services-grid { grid-template-columns: 1fr; } }

:root {
  --navy: #16324a;
  --navy-deep: #0d2538;
  --blue: #176b87;
  --blue-light: #dceff2;
  --cream: #f6f1e7;
  --paper: #fffdf8;
  --gold: #d6a84b;
  --ink: #1b2a32;
  --muted: #59676f;
  --line: #d9dedc;
  --white: #fff;
  --shadow: 0 18px 50px rgba(13, 37, 56, .10);
  --radius: 18px;
  --content: 1180px;
  --reading-content: 760px;
  --base-font-size: 18px;
  --mobile-font-size: 17px;
  --section-space: 96px;
  --mobile-section-space: 64px;
  --page-header-space: 44px;
  --mobile-page-header-space: 32px;
  --news-columns: 3;
  --motion-duration: 550ms;
  --motion-distance: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 140px; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Segoe UI", Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: var(--base-font-size);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
}
body.admin-bar .site-header { top: 32px; }
img { max-width: 100%; height: auto; }
a { color: var(--blue); text-underline-offset: .2em; }
a:hover { color: var(--navy); }
button, input, textarea, select { font: inherit; }
:focus-visible { outline: 3px solid #f4c963; outline-offset: 3px; box-shadow: 0 0 0 5px var(--navy-deep); }
main:focus, nav:focus, footer:focus { outline: none; box-shadow: none; }
input[type="checkbox"], input[type="radio"] { min-width: 20px; min-height: 20px; }
[id] { scroll-margin-top: 140px; }
.container { width: min(calc(100% - 40px), var(--content)); margin-inline: auto; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { top: 8px; left: 8px; z-index: 100000; width: auto; height: auto; padding: 12px 16px; clip: auto; background: var(--white); color: var(--navy); font-weight: 800; }
.skip-links .skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 1000000; width: auto; height: auto; margin: 0; padding: 12px 16px; clip: auto; color: var(--navy-deep); background: var(--white); border: 3px solid var(--gold); border-radius: 6px; }

/* Visitor accessibility preferences */
.accessibility-tools { position: fixed; right: 18px; bottom: 18px; z-index: 99990; }
.accessibility-tools-left { right: auto; left: 18px; }
.accessibility-tools-toggle { min-height: 48px; display: inline-flex; align-items: center; gap: 9px; padding: 9px 15px; color: var(--white); background: var(--navy-deep); border: 2px solid var(--white); border-radius: 999px; box-shadow: 0 6px 24px rgba(0,0,0,.25); font-size: .76rem; font-weight: 850; cursor: pointer; }
.accessibility-tools-symbol { width: 27px; height: 27px; display: grid; place-items: center; color: var(--navy-deep); background: var(--gold); border-radius: 50%; font-family: Georgia,serif; font-size: .9rem; font-weight: 900; }
.accessibility-tools-panel { position: absolute; right: 0; bottom: calc(100% + 10px); width: min(370px,calc(100vw - 24px)); max-height: calc(100vh - 90px); overflow: auto; padding: 20px; color: var(--ink); background: var(--paper); border: 2px solid var(--navy); border-radius: 14px; box-shadow: 0 16px 48px rgba(0,0,0,.28); }
.accessibility-tools-left .accessibility-tools-panel { right: auto; left: 0; }
.accessibility-tools-panel[hidden] { display: none !important; }
.accessibility-tools-panel header { display: flex; align-items: start; justify-content: space-between; gap: 18px; margin-bottom: 10px; }
.accessibility-tools-panel h2 { margin: 0; color: var(--navy); font-family: Georgia,serif; font-size: 1.5rem; line-height: 1.1; }
.accessibility-tools-kicker { margin: 0 0 4px; color: var(--blue); font-size: .64rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.accessibility-tools-close { min-width: 44px; min-height: 44px; display: grid; place-items: center; padding: 0; color: var(--navy); background: var(--white); border: 1px solid var(--line); border-radius: 50%; font-size: 1.5rem; cursor: pointer; }
.accessibility-tools-status { margin: 0 0 15px; color: var(--muted); font-size: .74rem; line-height: 1.5; }
.accessibility-tools-panel fieldset { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; }
.accessibility-tools-panel legend { margin-bottom: 7px; color: var(--navy); font-size: .75rem; font-weight: 900; }
.accessibility-tools-panel fieldset label { min-height: 44px; display: grid; grid-template-columns: 24px minmax(0,1fr); align-items: center; gap: 9px; padding: 8px 10px; background: var(--white); border: 1px solid var(--line); border-radius: 8px; font-size: .78rem; font-weight: 750; cursor: pointer; }
.accessibility-tools-panel fieldset label:has(input:disabled) { cursor: default; opacity: .78; }
.accessibility-tools-panel input { margin: 0; }
.accessibility-tools-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 16px; }
.accessibility-tools-actions button { min-height: 44px; padding: 7px 12px; color: var(--navy); background: var(--white); border: 1px solid var(--navy); border-radius: 7px; font-size: .72rem; font-weight: 800; cursor: pointer; }
.accessibility-tools-actions a { font-size: .72rem; font-weight: 800; }
.accessibility-tools-note { margin: 14px 0 0; color: var(--muted); font-size: .65rem; line-height: 1.45; }
html.nab-a11y-large-text body { font-size: calc(var(--base-font-size) * 1.2); }
html.nab-a11y-readable-spacing body { line-height: 1.85; }
html.nab-a11y-readable-spacing body :where(p,li,dd,dt,label,input,textarea,select,button) { letter-spacing: .035em; word-spacing: .12em; }
html.nab-a11y-readable-spacing body :where(p,ul,ol,dl) { margin-bottom: 1.5em; }
html.nab-a11y-underline-links a:not(.button):not(.accessibility-tools-toggle) { text-decoration: underline !important; text-decoration-thickness: .12em; }
html.nab-a11y-high-contrast { --navy: #00192b; --navy-deep: #000; --blue: #004e69; --blue-light: #e8f8ff; --cream: #fff; --paper: #fff; --gold: #ffd34e; --ink: #000; --muted: #242424; --line: #454545; --white: #fff; --shadow: 0 0 0 2px #000; }
html.nab-a11y-high-contrast :focus-visible { outline: 4px solid #ffbf00; outline-offset: 4px; box-shadow: 0 0 0 7px #000; }
html.nab-a11y-high-contrast .button, html.nab-a11y-high-contrast button, html.nab-a11y-high-contrast input, html.nab-a11y-high-contrast select, html.nab-a11y-high-contrast textarea { border-width: 2px; }
html.nab-a11y-reduce-motion { scroll-behavior: auto; }
html.nab-a11y-reduce-motion *, html.nab-a11y-reduce-motion *::before, html.nab-a11y-reduce-motion *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
html.nab-a11y-reduce-motion .reveal-on-scroll { opacity: 1 !important; transform: none !important; }

/* Header */
.utility-bar { color: #dce8ed; background: var(--navy-deep); font-size: .82rem; }
.weather-alert-bar { color: #fff; background: #8b1e1e; border-bottom: 2px solid #5e1010; }
.weather-alert-bar-test { background: #614b08; border-bottom-color: #3e3005; }
.event-venue-information { margin: 24px 0; padding: 20px; border-left: 4px solid var(--blue); background: var(--cream); }
.event-venue-information h2 { margin-top: 0; }
.weather-alert-inner { min-height: 50px; display: flex; align-items: center; gap: 16px; padding-block: 8px; }
.weather-alert-badge { flex: 0 0 auto; padding: 5px 9px; color: #8b1e1e; background: #fff; border-radius: 5px; font-size: .72rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.weather-alert-inner p { flex: 1 1 auto; margin: 0; line-height: 1.35; }
.weather-alert-inner p span { margin-left: 5px; }
.weather-alert-inner a { flex: 0 0 auto; min-height: 44px; display: inline-flex; align-items: center; color: #fff; font-size: .8rem; font-weight: 850; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.site-access-notice { padding: 12px 0; color: #632323; background: #f9dede; border-bottom: 2px solid #bd3f3f; font-weight: 800; text-align: center; }
.utility-inner { min-height: 40px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.utility-bar p { margin: 0; }
.utility-actions { display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
.utility-links { display: flex; flex-wrap: wrap; gap: 20px; margin: 0; padding: 0; list-style: none; }
.utility-links a { color: var(--white); text-decoration: none; }
.utility-account-access, .utility-login-form, .utility-account-links { display: flex; align-items: center; gap: 8px; }
.utility-login-form input { width: 132px; min-height: 30px; padding: 4px 8px; color: var(--ink); background: var(--white); border: 1px solid rgba(255,255,255,.35); border-radius: 5px; font-size: .72rem; }
.utility-login-form button, .utility-register-button { min-height: 30px; display: inline-flex; align-items: center; justify-content: center; padding: 4px 11px; color: var(--white); background: var(--blue); border: 1px solid rgba(255,255,255,.25); border-radius: 999px; font-size: .7rem; font-weight: 800; text-decoration: none; white-space: nowrap; cursor: pointer; }
.utility-register-button { color: var(--navy-deep); background: var(--gold); border-color: var(--gold); }
.utility-login-form button:hover { background: #288ca1; }
.utility-register-button:hover { color: var(--navy-deep); background: #edc76c; }
.utility-account-links { flex-wrap: wrap; justify-content: center; color: #dce8ed; font-size: .72rem; }
.utility-account-links a { min-height: 30px; display: inline-flex; align-items: center; justify-content: center; padding: 4px 11px; color: var(--white); background: transparent; border: 1px solid rgba(255,255,255,.45); border-radius: 999px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.utility-account-links a:hover, .utility-account-links a:focus-visible { color: var(--navy-deep); background: var(--white); border-color: var(--white); }
.utility-account-links .utility-register-button { color: var(--navy-deep); background: var(--gold); border-color: var(--gold); }
.utility-account-links .utility-register-button:hover, .utility-account-links .utility-register-button:focus-visible { color: var(--navy-deep); background: #edc76c; border-color: #edc76c; }
.utility-account-links .utility-staff-dashboard-link { min-height: 30px; display: inline-flex; align-items: center; padding: 4px 11px; color: var(--white); background: var(--blue); border: 1px solid rgba(255,255,255,.35); border-radius: 999px; }
.utility-account-links .utility-staff-dashboard-link:hover, .utility-account-links .utility-staff-dashboard-link:focus-visible { color: var(--navy-deep); background: var(--gold); border-color: var(--gold); }
.site-header { position: sticky; top: 0; z-index: 1000; background: rgba(255,253,248,.96); border-bottom: 1px solid rgba(22,50,74,.12); backdrop-filter: blur(14px); }
.branding-row { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-branding { display: flex; align-items: center; gap: 14px; color: var(--navy); text-decoration: none; }
.site-branding .custom-logo { width: 58px; max-height: 68px; object-fit: contain; }
.brand-mark { width: 54px; height: 62px; display: grid; place-items: center; flex: none; color: var(--white); background: var(--navy); border-radius: 6px 6px 20px 20px; box-shadow: inset 0 -5px 0 var(--gold); }
.brand-mark svg { width: 32px; }
.brand-kicker { display: block; color: var(--blue); font-size: .68rem; font-weight: 800; letter-spacing: .18em; line-height: 1.2; text-transform: uppercase; }
.brand-name { display: block; margin-top: 3px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.25rem, 2.2vw, 1.75rem); font-weight: 700; line-height: 1.1; }
.site-nav { display: flex; align-items: center; gap: 22px; }
.primary-menu { display: flex; align-items: center; gap: 24px; margin: 0; padding: 0; list-style: none; }
.primary-menu > li, .header-action-menu { position: relative; flex: none; }
.primary-menu > li > a { white-space: nowrap; }
.primary-menu > .menu-item-has-children > a::after { display: inline-block; margin-left: 7px; content: "▾"; font-size: .72em; line-height: 1; transform: translateY(-1px); }
.primary-menu a { color: var(--ink); font-size: .9rem; font-weight: 700; text-decoration: none; }
.primary-menu a:hover, .primary-menu .current-menu-item > a { color: var(--blue); }
.primary-menu .sub-menu { position: absolute; top: calc(100% + 12px); left: -16px; z-index: 20; min-width: 230px; margin: 0; padding: 9px; visibility: hidden; opacity: 0; list-style: none; background: var(--white); border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); transform: translateY(-5px); transition: opacity .16s, transform .16s, visibility .16s; }
.primary-menu .sub-menu::before { position: absolute; left: 0; right: 0; bottom: 100%; height: 14px; content: ""; }
.primary-menu li:hover > .sub-menu, .primary-menu li:focus-within > .sub-menu { visibility: visible; opacity: 1; transform: none; }
@media (min-width: 981px) { .primary-menu li.is-submenu-dismissed > .sub-menu { visibility: hidden; opacity: 0; transform: translateY(-5px); } }
.primary-menu .sub-menu a { display: block; min-height: 44px; padding: 10px 12px; border-radius: 7px; }
.primary-menu .sub-menu a:hover, .primary-menu .sub-menu a:focus-visible { color: var(--white); background: var(--blue); }
.header-action-menu { margin: 0; padding: 0; list-style: none; }
.header-action-menu a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 18px; color: var(--white); background: var(--blue); border-radius: 999px; font-size: .85rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.header-action-menu a:hover { color: var(--white); background: var(--navy); }
.mobile-utility-menu { display: none; }
.menu-toggle { display: none; width: 46px; height: 46px; padding: 0; color: var(--navy); background: transparent; border: 1px solid var(--line); border-radius: 50%; cursor: pointer; }
.menu-toggle .menu-toggle-line, .menu-toggle::before, .menu-toggle::after { display: block; width: 20px; height: 2px; margin: 5px auto; background: currentColor; content: ""; transition: .2s; }

/* Hero */
.hero { position: relative; overflow: hidden; color: var(--white); background: var(--navy); }
.hero::before { position: absolute; inset: 0; z-index: 1; background: radial-gradient(circle at 75% 0, rgba(38,146,166,.5), transparent 38%), linear-gradient(90deg, rgba(13,37,56,.98) 0%, rgba(22,50,74,.90) 55%, rgba(22,50,74,.58) 100%); content: ""; }
.hero.has-hero-background::before { background: radial-gradient(circle at 75% 0, rgba(38,146,166,.38), transparent 38%), linear-gradient(90deg, rgba(13,37,56,.86) 0%, rgba(22,50,74,.84) 58%, rgba(22,50,74,.72) 100%); }
.hero::after { position: absolute; right: -8vw; bottom: -170px; z-index: 1; width: 680px; height: 340px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; box-shadow: 0 0 0 50px rgba(255,255,255,.025), 0 0 0 100px rgba(255,255,255,.02); content: ""; }
.hero-background-image { position: absolute; inset: 0; z-index: 0; overflow: hidden; background: var(--navy); pointer-events: none; }
.hero-background-image img { width: 100%; height: 100%; display: block; opacity: var(--hero-background-opacity,.55); object-fit: cover; object-position: var(--hero-background-position,center); }
.hero-inner { position: relative; z-index: 2; min-height: 570px; display: grid; grid-template-columns: minmax(0,1.35fr) minmax(280px,.65fr); align-items: center; gap: 80px; padding-block: 78px 110px; }
.hero-inner.hero-single { grid-template-columns: minmax(0, 820px); }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 16px; color: var(--blue); font-size: .72rem; font-weight: 850; letter-spacing: .18em; text-transform: uppercase; }
.hero .eyebrow, .page-header .eyebrow { color: var(--gold); }
.eyebrow::before { width: 28px; height: 2px; background: currentColor; content: ""; }
.hero h1 { max-width: 760px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(3rem, 7vw, 5.8rem); font-weight: 400; letter-spacing: -.045em; line-height: .97; }
.hero h1 em { color: #bde2e6; font-style: italic; }
.hero-copy { max-width: 640px; margin: 24px 0 32px; color: #deeaee; font-size: 1.08rem; }
.hero-content::after { display: block; clear: both; content: ""; }
.hero-content > :first-child { margin-top: 0; }
.hero-content > :last-child { margin-bottom: 0; }
.hero-content img { max-width: min(100%,360px); height: auto; border-radius: calc(var(--radius) * .65); }
.hero-content img.alignleft { float: left; margin: 4px 22px 14px 0; }
.hero-content img.alignright { float: right; margin: 4px 0 14px 22px; }
.hero-content img.aligncenter { display: block; margin: 16px auto; }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 11px 22px; border: 2px solid transparent; border-radius: 999px; font-size: .86rem; font-weight: 850; text-decoration: none; transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: var(--navy); background: var(--gold); }
.button-primary:hover { color: var(--navy); background: #edc76c; }
.button-outline { color: var(--white); border-color: rgba(255,255,255,.55); }
.button-outline:hover { color: var(--navy); background: var(--white); }
.hero-sidebar { display: grid; align-content: center; gap: 18px; }
.meeting-card { position: relative; padding: 28px; color: var(--ink); background: rgba(255,253,248,.97); border-radius: var(--radius); box-shadow: var(--shadow); }
.meeting-card::before { position: absolute; top: 0; left: 28px; width: 52px; height: 5px; background: var(--gold); content: ""; }
.meeting-label { margin: 0 0 14px; color: var(--blue); font-size: .7rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.meeting-card h2 { margin: 0; color: var(--navy); font-family: Georgia, serif; font-size: 1.55rem; line-height: 1.2; }
.meeting-details { margin: 18px 0 0; padding: 18px 0 0; border-top: 1px solid var(--line); }
.meeting-details p { margin: 5px 0; color: var(--muted); font-size: .88rem; }
.meeting-details strong { color: var(--ink); }
.meeting-card a { font-size: .86rem; font-weight: 800; }

/* Quick links */
.quick-links-wrap { position: relative; z-index: 2; margin-top: -38px; }
.quick-links { display: grid; grid-template-columns: repeat(4,1fr); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }
.quick-link { min-height: 132px; display: flex; align-items: center; gap: 16px; padding: 24px; color: var(--navy); text-decoration: none; border-right: 1px solid var(--line); }
.quick-link:last-child { border-right: 0; }
.quick-link:hover { color: var(--blue); background: #f7fbfa; }
.quick-icon { width: 44px; height: 44px; display: grid; place-items: center; flex: none; color: var(--blue); background: var(--blue-light); border-radius: 50%; font-weight: 900; }
.quick-link span:last-child { font-size: .9rem; font-weight: 850; line-height: 1.25; }
.quick-link small { display: block; margin-top: 5px; color: var(--muted); font-size: .7rem; font-weight: 500; }

/* Main sections */
.section { padding-block: var(--section-space); }
.section-soft { background: var(--cream); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 38px; }
.section-heading h2 { margin: 0; color: var(--navy); font-family: Georgia, serif; font-size: clamp(2.2rem, 4vw, 3.5rem); font-weight: 400; letter-spacing: -.035em; line-height: 1; }
.section-heading p { max-width: 530px; margin: 12px 0 0; color: var(--muted); }
.home-weather-widget { max-width: 540px; padding: 17px 19px; color: var(--ink); background: rgba(255,253,248,.97); border: 1px solid rgba(255,255,255,.7); border-radius: var(--radius); box-shadow: 0 10px 28px rgba(4,24,37,.24); }
.hero-sidebar .home-weather-widget { max-width: none; }
.weather-widget-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.weather-widget-label { margin: 0 0 2px; color: var(--blue); font-size: .66rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.home-weather-widget h2 { margin: 0; color: var(--navy); font-family: Georgia, serif; font-size: 1.12rem; line-height: 1.2; }
.weather-widget-header a { flex: none; font-size: .75rem; font-weight: 850; }
.weather-icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.weather-widget-periods { display: grid; grid-template-columns: 1fr; gap: 0; margin-top: 12px; border-top: 1px solid var(--line); }
.weather-widget-periods[hidden], .weather-widget-source[hidden], .weather-widget-unavailable[hidden] { display: none; }
.weather-widget-period { min-width: 0; display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 11px; padding: 10px 0; }
.weather-widget-period + .weather-widget-period { border-top: 1px solid var(--line); }
.weather-art-stack { position: relative; width: 42px; height: 42px; display: block; }
.weather-art { position: absolute; inset: 0; width: 42px; height: 42px; color: var(--navy); object-fit: contain; filter: drop-shadow(0 2px 2px rgba(13,37,56,.12)); }
.weather-art-official { z-index: 1; }
.weather-art-official[hidden] { display: none; }
.weather-widget-period-copy { min-width: 0; }
.weather-widget-period p { margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.35; }
.weather-widget-period p:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 3px; color: var(--navy); }
.weather-widget-period p:first-child span { overflow: hidden; font-size: .72rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.weather-widget-period strong { flex: none; font-family: Georgia, serif; font-size: 1.35rem; }
.weather-widget-source { margin: 10px 0 0; color: var(--muted); font-size: .68rem; }
.weather-widget-unavailable { margin: 12px 0 0; padding-top: 11px; border-top: 1px solid var(--line); font-size: .8rem; }
.text-link { font-size: .82rem; font-weight: 850; white-space: nowrap; }
.news-grid { display: grid; grid-template-columns: repeat(var(--news-columns),1fr); gap: 24px; }
.home-updates-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(300px,.65fr); align-items: start; gap: 36px; }
.home-updates-grid.is-single { grid-template-columns: 1fr; }
.home-updates-panel { min-width: 0; }
.home-updates-panel-header { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 18px; padding-bottom: 13px; border-bottom: 1px solid #d8d0c1; }
.home-updates-panel-header h3 { margin: 0; color: var(--navy); font-family: Georgia,serif; font-size: 1.55rem; font-weight: 400; }
.home-updates-news .news-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.home-updates-grid.is-single .home-updates-news .news-grid { grid-template-columns: repeat(var(--news-columns),minmax(0,1fr)); }
.home-updates-events .home-event-grid { grid-template-columns: 1fr; }
.home-updates-grid.is-single .home-updates-events .home-event-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.home-updates-events .event-card { grid-template-columns: 58px minmax(0,1fr); align-items: center; gap: 14px; padding: 14px 16px; }
.home-updates-events .event-date-badge { width: 56px; height: 60px; border-radius: 10px; }
.home-updates-events .event-date-badge strong { font-size: .62rem; }
.home-updates-events .event-date-badge span { font-size: 1.45rem; }
.home-updates-events .event-card h4 { margin: 0; font-size: 1.08rem; line-height: 1.25; }
.home-updates-events .event-card h4 a { display: block; }
.home-updates-events .event-details-link { min-height: 44px; display: inline-flex; align-items: center; margin-top: 1px; }
.post-card { min-width: 0; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; transition: transform .25s, box-shadow .25s; }
.post-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.post-card-image { aspect-ratio: 16/9; display: block; overflow: hidden; background: var(--blue-light); }
.post-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.post-card:hover .post-card-image img { transform: scale(1.035); }
.post-card-placeholder { height: 100%; display: grid; place-items: center; color: var(--blue); background: linear-gradient(135deg, var(--blue-light), #eef5ec); }
.post-card-placeholder svg { width: 70px; opacity: .7; }
.post-card-body { padding: 25px; }
.post-meta { margin: 0 0 10px; color: var(--blue); font-size: .69rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.post-card h2, .post-card h3, .post-card h4 { margin: 0 0 10px; color: var(--navy); font-family: Georgia, serif; font-size: 1.38rem; line-height: 1.25; }
.post-card h2 a, .post-card h3 a, .post-card h4 a { color: inherit; text-decoration: none; }
.post-excerpt { margin: 0; color: var(--muted); font-size: .86rem; }
.empty-state { grid-column: 1/-1; padding: 36px; background: var(--white); border: 1px dashed #aab6b5; border-radius: var(--radius); text-align: center; }

.services-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
#resident-services { padding-block: clamp(46px, 6vw, 68px); }
#resident-services .section-heading { margin-bottom: 24px; }
.service-link { min-height: 104px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 18px; padding: 19px 25px; color: var(--ink); background: var(--white); text-decoration: none; border-bottom: 1px solid var(--line); }
.service-link:nth-child(odd) { border-right: 1px solid var(--line); }
.service-link:last-child, .service-link:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
.service-link:hover { background: #f5faf9; }
.service-link h3 { margin: 0 0 4px; color: var(--navy); font-family: Georgia, serif; font-size: 1.24rem; }
.service-link p { margin: 0; color: var(--muted); font-size: .78rem; }
.service-arrow { color: var(--blue); font-size: 1.4rem; }

.external-resources-page { padding-block: clamp(48px,6vw,76px); }
.resource-tab-list { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 30px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.resource-tab-list a { min-width: 0; min-height: 46px; display: inline-flex; flex: 1 1 170px; align-items: center; justify-content: center; padding: 10px 18px; color: var(--navy); background: var(--paper); border: 2px solid var(--blue); border-radius: 999px; font-size: .86rem; font-weight: 850; text-align: center; text-decoration: none; }
.resource-tab-list a:hover, .resource-tab-list a[aria-selected="true"] { color: var(--white); background: var(--blue); }
.resource-tab-panel { scroll-margin-top: 130px; }
.resource-tab-panel + .resource-tab-panel { margin-top: 48px; padding-top: 38px; border-top: 1px solid var(--line); }
.resource-tabs.is-enhanced .resource-tab-panel + .resource-tab-panel { margin-top: 0; padding-top: 0; border-top: 0; }
.agency-resource-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr)); gap: 18px; }
.agency-resource-card { min-width: 0; display: flex; flex-direction: column; padding: 22px; background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius); }
.agency-resource-card h3 { margin: 0 0 9px; color: var(--navy); font-family: Georgia,serif; font-size: 1.18rem; line-height: 1.25; }
.agency-resource-description { margin: 0 0 15px; color: var(--muted); font-size: .84rem; }
.agency-resource-card address { margin: auto 0 14px; color: var(--ink); font-size: .78rem; font-style: normal; line-height: 1.55; }
.agency-resource-actions { display: flex; flex-wrap: wrap; gap: 8px 18px; padding-top: 13px; border-top: 1px solid #d8d0c1; }
.agency-resource-actions a { min-height: 44px; display: inline-flex; align-items: center; color: var(--blue); font-size: .78rem; font-weight: 800; }
.contact-page-content { max-width: var(--content); padding-block: 68px 92px; }
.contact-page-content .entry-content { max-width: none; }
.borough-contact-card { padding: 28px; background: var(--navy); border-radius: var(--radius); color: var(--white); }
.entry-content .borough-contact-card h2 { margin: 0 0 14px; color: var(--white); }
.borough-contact-card p, .borough-contact-card address { margin: 0 0 10px; color: #eef5f6; font-style: normal; }
.borough-contact-card .contact-methods a { color: var(--white); }
.contact-directory-section > h2 { margin-top: 1.7em; }
.contact-directory-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,260px),1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.contact-directory-card { height: 100%; display: flex; flex-direction: column; padding: 22px; background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius); }
.entry-content .contact-directory-card h3 { margin: 0 0 8px; }
.contact-directory-card p, .contact-directory-card address { margin: 0 0 13px; font-size: .82rem; font-style: normal; }
.contact-organization { color: var(--navy); font-weight: 800; }
.contact-methods { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: auto 0 0; padding: 13px 0 0; border-top: 1px solid #d8d0c1; list-style: none; }
.contact-methods a { min-height: 44px; display: inline-flex; align-items: center; font-size: .78rem; font-weight: 800; overflow-wrap: anywhere; }
.contact-additional-content { margin-top: 44px; padding-top: 24px; border-top: 1px solid var(--line); }
.external-resources-additional { max-width: var(--reading-content); margin-top: 48px; padding-top: 34px; border-top: 1px solid var(--line); }
.external-resources-additional > h2 { color: var(--navy); font-family: Georgia,serif; }

.notice-band { color: var(--white); background: var(--blue); }
.notice-inner { min-height: 118px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 24px; }
.notice-badge { padding: 7px 11px; color: var(--navy); background: var(--gold); border-radius: 5px; font-size: .64rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.notice-text h2 { margin: 0; font-family: Georgia, serif; font-size: 1.32rem; }
.notice-text p { margin: 3px 0 0; color: #d9f0f2; font-size: .84rem; }
.notice-band a { color: var(--white); font-size: .82rem; font-weight: 850; }

.community-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 80px; }
.community-art { position: relative; min-height: 430px; overflow: hidden; background: linear-gradient(145deg,#c9e2e1,#e8e3c9); border-radius: 45% 45% 8px 8px; }
.community-art svg { position: absolute; inset: auto 0 0; width: 100%; height: 78%; }
.community-copy h2 { margin: 0 0 20px; color: var(--navy); font-family: Georgia, serif; font-size: clamp(2.5rem,4.5vw,4.2rem); font-weight: 400; letter-spacing: -.04em; line-height: 1.03; }
.community-copy p { color: var(--muted); }
.facts { display: flex; flex-wrap: wrap; gap: 38px; margin: 30px 0; padding: 24px 0; border-block: 1px solid var(--line); }
.fact strong { display: block; color: var(--navy); font-family: Georgia,serif; font-size: 1.55rem; }
.fact span { color: var(--muted); font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }

/* Content templates */
.page-header { padding: var(--page-header-space) 0; color: var(--white); background: var(--navy); }
.page-header h1 { max-width: 850px; margin: 0; color: var(--white); font-family: Georgia,serif; font-size: clamp(2.3rem,4.8vw,4rem); font-weight: 400; letter-spacing: -.04em; line-height: 1.04; }
.gallery-page-header h1.is-long-title, .gallery-photo-header h1.is-long-title { max-width: none; font-size: clamp(2.25rem,4vw,3.25rem); letter-spacing: -.035em; }
.gallery-page-header h1.is-very-long-title, .gallery-photo-header h1.is-very-long-title { max-width: none; font-size: clamp(2rem,3.2vw,2.7rem); letter-spacing: -.025em; text-wrap: balance; }
.breadcrumbs { margin: 0 0 15px; color: #c4d9df; font-size: .74rem; }
.breadcrumbs a { color: var(--white); }
.content-layout { display: grid; grid-template-columns: minmax(0, var(--reading-content)) 1fr; gap: 75px; padding-block: 76px; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content h2, .entry-content h3 { color: var(--navy); font-family: Georgia,serif; line-height: 1.2; }
.entry-content h2 { margin-top: 2em; font-size: 2rem; }
.entry-content h3 { margin-top: 1.7em; font-size: 1.4rem; }
.entry-content blockquote { margin: 2em 0; padding: 20px 28px; background: var(--cream); border-left: 5px solid var(--gold); }
.entry-content .wp-block-button__link { background: var(--blue); border-radius: 999px; }
.entry-content a:not(.button), .document-body a:not(.button) { text-decoration-thickness: .1em; }
.nab-about-figure { max-width: 900px; margin: 28px 0 38px; }
.nab-about-figure-current { max-width: 720px; }
.nab-about-figure img { display: block; width: 100%; height: auto; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 14px 34px rgba(15,49,74,.12); }
.nab-about-figure figcaption { margin-top: 11px; color: var(--muted); font-size: .84rem; line-height: 1.55; }
.nab-about-figure figcaption a { font-weight: 700; }
.table-scroll-region { max-width: 100%; overflow-x: auto; border-radius: 4px; -webkit-overflow-scrolling: touch; }
.table-scroll-region:focus-visible { outline-offset: 2px; }
.entry-content table { width: 100%; border-collapse: collapse; }
.entry-content th, .entry-content td { padding: 12px; border: 1px solid var(--line); text-align: left; }
.sidebar-card { padding: 28px; background: var(--cream); border-radius: var(--radius); }
.sidebar-card h2 { margin-top: 0; color: var(--navy); font-family: Georgia,serif; font-size: 1.3rem; }
.sidebar-card ul { margin: 0; padding: 0; list-style: none; }
.sidebar-card li + li { margin-top: 12px; padding-top: 12px; border-top: 1px solid #d7d3c9; }
.sidebar-card a { font-size: .86rem; font-weight: 750; }
.archive-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; padding-block: 70px; }
.archive-intro { max-width: 720px; margin: 14px 0 0; color: #d7e5e9; }
.pagination { grid-column: 1/-1; margin-top: 30px; background: transparent; border: 0; box-shadow: none; }
.pagination .nav-links, .pagination ul.page-numbers { display: flex; flex-wrap: wrap; gap: 8px; background: transparent; border: 0; box-shadow: none; }
.pagination ul.page-numbers { margin: 0; padding: 0; list-style: none; }
.pagination a.page-numbers, .pagination span.page-numbers { min-width: 42px; min-height: 42px; display: grid; place-items: center; padding: 5px; background: transparent; border: 1px solid var(--line); border-radius: 7px; text-decoration: none; }
.pagination .page-numbers.current { color: var(--white); background: var(--navy); }
.error-page { padding-block: 110px; text-align: center; }
.error-page h1 { margin: 0; color: var(--navy); font-family: Georgia,serif; font-size: clamp(4rem,10vw,8rem); line-height: 1; }

/* Borough officials and staff */
.officials-directory { padding-block: 68px 96px; }
.officials-page-content { max-width: var(--reading-content); margin-bottom: 48px; }
.officials-role-section + .officials-role-section { margin-top: 68px; padding-top: 54px; border-top: 1px solid var(--line); }
.officials-role-section > h2 { margin: 0 0 26px; color: var(--navy); font-family: Georgia,serif; font-size: clamp(1.8rem,3vw,2.6rem); }
.officials-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.official-card { display: grid; grid-template-columns: 62px minmax(0,1fr); gap: 20px; padding: 26px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.official-initials { width: 62px; height: 62px; display: grid; place-items: center; color: var(--white); background: var(--navy); border-radius: 50%; font-family: Georgia,serif; font-size: 1.55rem; }
.official-card h3 { margin: 0; color: var(--navy); font-family: Georgia,serif; font-size: 1.35rem; line-height: 1.2; }
.official-title { margin: 6px 0 0; color: var(--blue); font-size: .78rem; font-weight: 800; }
.official-contact { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 16px 0 0; padding: 0; list-style: none; }
.official-contact a { font-size: .78rem; font-weight: 750; overflow-wrap: anywhere; }
.official-bio { margin: 17px 0 0; color: var(--muted); font-size: .86rem; }

/* Community events */
.event-archive-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,.52fr); gap: 48px; align-items: start; padding-block: 68px 96px; }
.event-grid { display: grid; gap: 18px; }
.event-card { display: grid; grid-template-columns: 78px minmax(0,1fr); gap: 22px; padding: 25px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 8px 28px rgba(13,37,56,.05); }
.event-card > div:last-child { min-width: 0; overflow-wrap: anywhere; }
.event-date-badge { width: 72px; height: 78px; display: grid; place-content: center; color: var(--white); background: var(--navy); border-radius: 13px; text-align: center; }
.event-date-badge strong { color: var(--gold); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.event-date-badge span { font-family: Georgia,serif; font-size: 1.8rem; line-height: 1.05; }
.event-card-meta { margin: 0; color: var(--blue); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.event-card h2 { margin: 6px 0 8px; font-family: Georgia,serif; font-size: 1.45rem; }
.event-card h2 a, .event-card h3 a, .event-card h4 a { color: var(--navy); text-decoration: none; }
.event-card h3, .event-card h4 { margin: 6px 0 8px; font-family: Georgia,serif; font-size: 1.3rem; }
.event-card p:not(.event-card-meta) { margin: 0; color: var(--muted); font-size: .84rem; }
.event-details-link { display: inline-block; margin-top: 13px; font-size: .76rem; font-weight: 800; }
.home-event-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.event-submission-panel { position: sticky; top: 125px; padding: 28px; background: var(--cream); border: 1px solid #ddd4c3; border-radius: var(--radius); }
.event-submission-panel > h2 { margin: 0; color: var(--navy); font-family: Georgia,serif; font-size: 1.8rem; }
.event-submission-panel > p:not(.eyebrow) { color: var(--muted); font-size: .84rem; }
.event-submission-form { display: grid; gap: 14px; margin-top: 22px; }
.event-submission-form label { display: grid; gap: 6px; color: var(--navy); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.event-submission-form input, .event-submission-form textarea, .event-submission-form select { width: 100%; min-height: 46px; padding: 9px 11px; color: var(--ink); background: var(--white); border: 1px solid #aab3b4; border-radius: 8px; font-weight: 400; text-transform: none; }
.event-submission-form textarea { resize: vertical; }
.event-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.event-recurrence-fields { min-width: 0; margin: 2px 0; padding: 15px; border: 1px solid var(--line); border-radius: 10px; }
.event-recurrence-fields legend { padding-inline: 6px; color: var(--navy); font-size: .82rem; font-weight: 800; }
.event-recurrence-fields small { display: block; color: var(--muted); font-size: .72rem; font-weight: 400; line-height: 1.45; text-transform: none; }
.staff-form-card > .event-recurrence-fields { margin: 0; }
.event-submission-panel .staff-alert { margin: 18px 0; padding: 13px 15px; background: var(--white); border-left: 4px solid var(--blue); border-radius: 7px; font-size: .8rem; }
.event-submission-panel .staff-alert-success { color: #215a35; border-color: #2b9652; }
.event-submission-panel .staff-alert-error { color: #812d2d; border-color: #c84545; }
.event-address { padding: 18px 20px; background: var(--cream); border-radius: 9px; }

/* Civic records */

/* Moderated photo gallery */
.gallery-archive-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(300px,.42fr); gap: 42px; align-items: start; padding-block: 68px 96px; }
.gallery-archive-layout.is-album-view { grid-template-columns: 1fr; }
.gallery-album-nav { margin: 0 0 30px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.gallery-album-nav ul { display: flex; flex-wrap: wrap; gap: 9px; margin: 0; padding: 0; list-style: none; }
.gallery-album-nav a { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; padding: 8px 14px; color: var(--navy); background: var(--white); border: 2px solid var(--navy); border-radius: 999px; font-size: .75rem; font-weight: 800; text-decoration: none; }
.gallery-album-nav a:hover, .gallery-album-nav a[aria-current="page"] { color: var(--white); background: var(--navy); }
.gallery-album-nav a span { display: inline-grid; min-width: 22px; height: 22px; place-items: center; padding-inline: 5px; color: inherit; background: rgba(127,127,127,.18); border-radius: 999px; font-size: .65rem; }
.gallery-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.gallery-card { min-width: 0; overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.gallery-card-image { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--blue-light); }
.gallery-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.gallery-card-image:hover img { transform: scale(1.025); }
.gallery-card-body { padding: 19px 20px 22px; }
.gallery-card-body h2 { margin: 0; font-family: Georgia,serif; font-size: 1.2rem; line-height: 1.25; }
.gallery-card-album { display: inline-block; margin-bottom: 7px; color: var(--blue); font-size: .65rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.gallery-card-body h2 a { color: var(--navy); text-decoration: none; }
.gallery-card-body p { margin: 9px 0 0; color: var(--muted); font-size: .8rem; }
.gallery-viewer { width: min(1100px,calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 32px); margin: auto; padding: 0; overflow: hidden; color: var(--ink); background: var(--white); border: 0; border-radius: var(--radius); box-shadow: 0 24px 80px rgba(0,0,0,.42); }
.gallery-viewer::backdrop { background: rgba(5,18,35,.82); }
.gallery-viewer-panel { display: grid; max-height: calc(100dvh - 32px); grid-template-rows: auto minmax(0,1fr) auto; }
.gallery-viewer-header, .gallery-viewer-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 20px; }
.gallery-viewer-header { border-bottom: 1px solid var(--line); }
.gallery-viewer-header h2 { margin: 2px 0 0; color: var(--navy); font-family: Georgia,serif; font-size: clamp(1.1rem,2vw,1.45rem); }
.gallery-viewer-count { margin: 0; color: var(--muted); font-size: .75rem; font-weight: 750; }
.gallery-viewer-close { display: inline-grid; min-width: 44px; min-height: 44px; flex: 0 0 auto; place-items: center; padding: 0; color: var(--navy); background: var(--cream); border: 2px solid var(--navy); border-radius: 999px; font-size: 1.7rem; line-height: 1; cursor: pointer; }
.gallery-viewer-figure { display: grid; min-height: 0; margin: 0; padding: 18px; overflow: auto; place-items: center; background: #091522; }
.gallery-viewer-figure img { display: block; width: auto; max-width: 100%; height: auto; max-height: calc(100dvh - 240px); object-fit: contain; }
.gallery-viewer-figure figcaption { width: 100%; max-width: 780px; margin-top: 12px; color: #fff; text-align: center; }
.gallery-viewer-footer { border-top: 1px solid var(--line); }
.gallery-viewer-details { color: var(--blue); font-weight: 800; text-align: center; }
.gallery-viewer button:disabled { opacity: .48; cursor: not-allowed; }
.gallery-submission-panel { position: sticky; top: 125px; padding: 28px; background: var(--cream); border: 1px solid #ddd4c3; border-radius: var(--radius); }
.gallery-submission-panel > h2 { margin: 0; color: var(--navy); font-family: Georgia,serif; font-size: 1.8rem; }
.gallery-submission-panel > p:not(.eyebrow) { color: var(--muted); font-size: .84rem; }
.gallery-submission-form { display: grid; gap: 9px; margin-top: 22px; }
.gallery-submission-form label { margin-top: 7px; color: var(--navy); font-size: .72rem; font-weight: 800; }
.gallery-submission-form input, .gallery-submission-form textarea { width: 100%; min-height: 46px; padding: 9px 11px; color: var(--ink); background: var(--white); border: 1px solid #aab3b4; border-radius: 8px; }
.gallery-submission-form input[type="file"] { min-height: 52px; padding: 11px; }
.gallery-submission-form small { color: var(--muted); font-size: .7rem; }
.gallery-submission-form .event-form-grid label { display: block; }
.gallery-submission-form .gallery-permission-confirm { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 10px; align-items: start; margin-top: 12px; font-size: .76rem; font-weight: 650; line-height: 1.45; }
.gallery-submission-form .gallery-permission-confirm input { width: 20px; min-height: 20px; margin: 2px 0 0; }
.gallery-submission-form .button { margin-top: 13px; }
.gallery-action-bar { display: flex; align-items: center; justify-content: flex-end; gap: 16px; margin-bottom: 24px; }
.gallery-action-bar .staff-alert { flex: 1; margin: 0; }
.gallery-upload-dialog { width: min(960px,calc(100% - 28px)); max-height: calc(100dvh - 28px); padding: 0; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 28px 80px rgba(8,27,42,.32); }
.gallery-upload-dialog::backdrop { background: rgba(8,27,42,.72); backdrop-filter: blur(3px); }
.gallery-upload-wizard { display: grid; grid-template-rows: auto auto minmax(0,1fr) auto; max-height: calc(100dvh - 30px); }
.gallery-wizard-header, .gallery-wizard-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 24px; }
.gallery-wizard-header { border-bottom: 1px solid var(--line); }
.gallery-wizard-header h2 { margin: 0; color: var(--navy); font-family: Georgia,serif; font-size: clamp(1.7rem,3vw,2.35rem); }
.gallery-wizard-header .eyebrow { margin-bottom: 4px; }
.gallery-wizard-close { width: 44px; height: 44px; display: grid; place-items: center; flex: none; color: var(--navy); background: transparent; border: 1px solid var(--line); border-radius: 50%; font-size: 1.8rem; line-height: 1; cursor: pointer; }
.gallery-wizard-progress { margin: 0; padding: 12px 24px; color: var(--navy); background: var(--blue-light); font-size: .78rem; font-weight: 850; }
.gallery-wizard-body { overflow: auto; padding: 26px 24px; }
.gallery-wizard-body h3 { margin: 0 0 10px; color: var(--navy); font-family: Georgia,serif; font-size: 1.65rem; }
.gallery-drop-zone { min-height: 180px; display: grid; place-content: center; gap: 8px; margin: 22px 0 14px; padding: 24px; color: var(--navy); background: var(--cream); border: 3px dashed #78909a; border-radius: 14px; text-align: center; cursor: pointer; }
.gallery-drop-zone strong { font-size: 1.15rem; }
.gallery-drop-zone.is-dragging { background: var(--blue-light); border-color: var(--blue); }
.gallery-file-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.gallery-selected-files { display: grid; gap: 7px; margin: 16px 0; padding: 0; list-style: none; }
.gallery-selected-files li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; background: var(--cream); border-radius: 8px; }
.gallery-selected-files span { overflow-wrap: anywhere; }
.gallery-remove-file { min-width: 44px; min-height: 44px; color: #812d2d; background: transparent; border: 0; font-weight: 800; text-decoration: underline; cursor: pointer; }
.gallery-photo-detail-layout { display: grid; grid-template-columns: minmax(240px,.72fr) minmax(0,1.28fr); gap: 28px; align-items: start; }
.gallery-photo-preview { width: 100%; max-height: 430px; object-fit: contain; background: var(--cream); border: 1px solid var(--line); border-radius: 12px; }
.gallery-photo-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.gallery-wizard-field:first-child, .gallery-wizard-field:nth-child(2), .gallery-wizard-field:nth-child(3), .gallery-wizard-field:last-child { grid-column: 1/-1; }
.gallery-wizard-field label { display: block; margin-bottom: 6px; color: var(--navy); font-size: .72rem; font-weight: 850; }
.gallery-wizard-field input, .gallery-wizard-field textarea { width: 100%; min-height: 48px; padding: 9px 11px; color: var(--ink); background: var(--white); border: 1px solid #8d9a9d; border-radius: 8px; }
.gallery-wizard-field textarea { min-height: 86px; resize: vertical; }
.gallery-permission-confirm { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 10px; align-items: start; margin-top: 22px; line-height: 1.5; }
.gallery-permission-confirm input { width: 20px; height: 20px; margin-top: 2px; }
.gallery-wizard-footer { border-top: 1px solid var(--line); }
.gallery-wizard-footer > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.gallery-upload-dialog :focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.gallery-photo-layout { max-width: var(--reading-content); padding-block: 60px 92px; }
.gallery-photo-full { margin: 0; }
.gallery-photo-stage { position: relative; display: grid; isolation: isolate; place-items: center; }
.gallery-photo-full img { display: block; width: auto; max-width: 100%; height: auto; max-height: calc(100vh - 96px); max-height: calc(100dvh - 96px); object-fit: contain; border-radius: var(--radius); }
.gallery-photo-full figcaption { padding: 15px 4px 0; color: var(--muted); font-size: .85rem; }
.gallery-photo-meta { display: flex; flex-wrap: wrap; gap: 22px 45px; margin: 30px 0; padding: 22px 25px; background: var(--cream); border-radius: var(--radius); }
.gallery-photo-meta dt { color: var(--muted); font-size: .65rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.gallery-photo-meta dd { margin: 3px 0 0; color: var(--navy); font-weight: 750; }
.gallery-photo-navigation { --gallery-navigation-left-edge: 0px; --gallery-navigation-right-edge: 0px; position: absolute; z-index: 2; inset: 0; pointer-events: none; }
.gallery-photo-navigation a { position: absolute; top: 50%; width: 48px; min-width: 48px; height: 48px; min-height: 48px; display: inline-grid; box-sizing: border-box; place-items: center; padding: 0; color: var(--navy); background: rgba(255,255,255,.96); border: 2px solid var(--navy); border-radius: 50%; box-shadow: 0 3px 14px rgba(0,0,0,.28); text-decoration: none; pointer-events: auto; }
.gallery-photo-navigation svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.gallery-photo-navigation .gallery-photo-previous { left: var(--gallery-navigation-left-edge); transform: translate(-50%,-50%); }
.gallery-photo-navigation .gallery-photo-previous svg { transform: rotate(180deg); }
.gallery-photo-navigation .gallery-photo-next { right: var(--gallery-navigation-right-edge); transform: translate(50%,-50%); }
.gallery-photo-sequence { margin: 18px 0 24px; padding-top: 16px; border-top: 1px solid var(--line); }
.gallery-photo-sequence > p { margin: 0 0 12px; color: var(--muted); font-size: .8rem; font-weight: 750; }
.gallery-photo-sequence > .gallery-photo-current-title { margin: 0; color: var(--navy); font-family: Georgia,serif; font-size: 1.1rem; font-weight: 700; overflow-wrap: anywhere; }
.gallery-photo-sequence + .gallery-photo-meta { margin-top: 0; }

@media (min-width: 701px) {
	.gallery-page-header h1.is-long-title, .gallery-photo-header h1.is-long-title { white-space: nowrap; }
}

.record-library { padding-block: 65px 90px; }
.record-search { margin-bottom: 42px; padding: 26px; background: var(--cream); border-radius: var(--radius); }
.record-search label { display: block; margin-bottom: 8px; color: var(--navy); font-size: .78rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.record-search > div { display: flex; gap: 10px; }
.record-search input[type="search"] { width: 100%; min-height: 52px; padding: 10px 16px; background: var(--white); border: 1px solid #a9b3b3; border-radius: 9px; }
.record-list { border-top: 1px solid var(--line); }
.record-row { display: grid; grid-template-columns: 115px 1fr; gap: 35px; padding: 32px 12px; border-bottom: 1px solid var(--line); }
.record-date { width: 90px; height: 90px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--navy); background: var(--cream); border-radius: 50%; text-align: center; }
.record-date span { font-family: Georgia, serif; font-size: 1.75rem; line-height: 1; }
.record-date small { margin-top: 5px; color: var(--muted); font-size: .58rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.record-row-main h2 { margin: 5px 0 8px; color: var(--navy); font-family: Georgia, serif; font-size: 1.55rem; line-height: 1.2; }
.record-row-main h2 a { color: inherit; text-decoration: none; }
.record-row-main h2 a:hover { color: var(--blue); }
.record-row-main h3 { margin: 5px 0 8px; color: var(--navy); font-family: Georgia, serif; font-size: 1.55rem; line-height: 1.2; }
.record-row-main h3 a { color: inherit; text-decoration: none; }
.record-row-main h3 a:hover { color: var(--blue); }
.record-row-main p { margin: 0; color: var(--muted); font-size: .86rem; }
.record-kicker { color: var(--blue); font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.status-badge { display: inline-flex; align-items: center; min-height: 24px; margin-left: 8px; padding: 3px 9px; color: #1f5133; background: #dff1e4; border-radius: 999px; font-family: "Segoe UI", sans-serif; font-size: .62rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.status-amended { color: #74520b; background: #f8eccd; }
.status-repealed { color: #7a2a2a; background: #f6dddd; }
.record-links { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 15px; }
.record-links a { font-size: .76rem; font-weight: 850; }
.meeting-schedule-callout { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-bottom: 50px; padding: 30px 34px; color: var(--white); background: var(--navy); border-radius: var(--radius); }
.meeting-schedule-callout h2 { margin: 5px 0; color: var(--white); font-family: Georgia, serif; font-size: 1.55rem; }
.meeting-schedule-callout p { margin: 0; color: #c9dbe0; }
.meeting-archive-section + .meeting-archive-section { margin-top: 72px; }
.meeting-archive-heading { max-width: 760px; margin-bottom: 24px; }
.meeting-archive-heading h2 { margin: 5px 0 8px; color: var(--navy); font-family: Georgia,serif; font-size: clamp(1.9rem,3.5vw,2.8rem); }
.meeting-archive-heading > p:last-child { margin: 0; color: var(--muted); }
.meeting-search-form { margin: 30px 0 54px; padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: var(--white); }
.meeting-search-form > label { display: block; margin-bottom: 10px; color: var(--navy); font-family: Georgia,serif; font-size: 1.15rem; font-weight: 700; }
.meeting-search-form > div { display: flex; flex-wrap: wrap; gap: 10px; }
.meeting-search-form input[type="search"] { flex: 1 1 340px; min-width: 0; min-height: 48px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 6px; font: inherit; }
.meeting-search-form > p { margin: 10px 0 0; color: var(--muted); font-size: .86rem; }
.meeting-search-results { margin-top: 0; }
.meeting-search-match { margin: 10px 0 0; padding: 9px 12px; color: var(--navy); background: var(--cream); border-left: 3px solid var(--gold); font-size: .82rem; }
.meeting-materials { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 14px 0 0; padding: 0; list-style: none; }
.meeting-materials li { position: relative; padding-left: 18px; color: var(--muted); font-size: .72rem; font-weight: 750; }
.meeting-materials li::before { position: absolute; left: 0; content: '—'; font-weight: 900; }
.meeting-materials .is-available { color: var(--blue); }
.meeting-materials .is-available::before { content: '✓'; }
.record-layout { grid-template-columns: minmax(0, 800px) 1fr; }
.record-summary { margin-bottom: 22px; padding: 24px 28px; background: var(--cream); border: 1px solid #e1daca; border-radius: var(--radius); }
.record-summary dl { display: flex; flex-wrap: wrap; gap: 28px 50px; margin: 0; }
.record-summary dt { margin-bottom: 3px; color: var(--muted); font-size: .65rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.record-summary dd { margin: 0; color: var(--navy); font-weight: 750; }
.record-summary .status-badge { margin-left: 0; }
.ordinance-relationships { margin: 0 0 22px; padding: 20px 24px; background: #f2f6f7; border: 1px solid #cbd8dc; border-left: 4px solid var(--blue); border-radius: var(--radius); }
.ordinance-relationships h2 { margin: 0 0 10px; font-size: 1.2rem; }
.ordinance-relationships p { margin: 8px 0; }
.ordinance-relationships ul { margin: 8px 0 0; }
.record-pdf-embed { margin-top: 36px; padding-top: 28px; border-top: 2px solid var(--line); }
.record-pdf-embed h2 { margin-top: 0; }
.record-pdf-embed iframe { width: 100%; min-height: clamp(520px,75vh,920px); display: block; background: var(--cream); border: 1px solid #9aa8ad; border-radius: 12px; }
.record-pdf-fallback { margin: 12px 0 0; font-weight: 750; }
.record-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 36px; }
.meeting-record-actions { gap: 8px; }
.meeting-record-actions .button { min-height: 42px; padding: 7px 13px; font-size: .74rem; white-space: nowrap; }
.record-action-icon { margin-right: 6px; font-size: 1rem; font-weight: 500; line-height: 1; }
.button-secondary { color: var(--navy); background: var(--white); border-color: var(--navy); cursor: pointer; }
.button-secondary:hover { color: var(--white); background: var(--navy); }
.record-note { padding: 16px 20px; color: #6b541c; background: #fbf2d8; border-left: 4px solid var(--gold); font-size: .85rem; }
.document-body, .document-section { margin-top: 38px; }
.document-section + .document-section { margin-top: 60px; padding-top: 42px; border-top: 1px solid var(--line); }
.document-section > h2:first-child { margin-top: 0; }
.meeting-document-list { display: grid; gap: 10px; margin: 20px 0 0; padding: 0; list-style: none; }
.meeting-document-list li { padding: 14px 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); }
.meeting-document-list a { font-weight: 700; }
.meeting-document-meta { color: var(--text-muted); font-size: .85rem; }
.staff-meeting-material-list { display: grid; gap: 14px; margin: 18px 0; }
.staff-meeting-material-row { display: grid; grid-template-columns: minmax(240px, 2fr) minmax(120px, 1fr) auto; align-items: end; gap: 16px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; }
.staff-material-remove { align-self: center; }
.staff-meeting-material-search { grid-column: 1 / -1; }
.staff-event-scope fieldset, .nab-event-series-scope { margin: 0; padding: 0; border: 0; }
.staff-event-scope legend, .nab-event-series-scope legend { margin-bottom: 12px; color: var(--navy); font-family: Georgia,serif; font-size: 1.15rem; font-weight: 700; }
.staff-event-scope label { display: flex; align-items: flex-start; gap: 10px; margin-top: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; }
.staff-event-scope label span, .staff-event-scope label small { display: block; }
.staff-event-scope label small { margin-top: 3px; color: var(--muted); }

/* Accessible, privacy-conscious social sharing */
.social-sharing { margin-top: 48px; padding: 26px 28px; background: var(--cream); border: 1px solid #ddd4c3; border-radius: var(--radius); }
.social-sharing h2 { margin: 0 0 17px; color: var(--navy); font-family: Georgia,serif; font-size: 1.35rem; }
.social-sharing-list { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; padding: 0; list-style: none; }
.social-sharing-list li { margin: 0; }
.social-share-link { display: inline-flex; min-width: 48px; min-height: 48px; align-items: center; justify-content: center; gap: 9px; padding: 10px; color: var(--navy); background: var(--white); border: 2px solid currentColor; border-radius: 999px; font: inherit; font-size: .76rem; font-weight: 800; line-height: 1.2; text-decoration: none; cursor: pointer; }
.social-sharing-with-labels .social-share-link { padding-inline: 15px; }
.social-share-icon { display: block; flex: 0 0 24px; width: 24px; height: 24px; fill: currentColor; }
.social-share-label { white-space: nowrap; }
.social-share-facebook { color: #145dbf; }
.social-share-x { color: #111; }
.social-share-linkedin, .social-share-bluesky { color: #075a9c; }
.social-share-link:hover, .social-share-link:focus-visible { color: var(--white); background: var(--navy); border-color: var(--navy); }
.social-share-link[hidden] { display: none; }
.social-sharing-status { min-height: 1.4em; margin: 12px 0 0; color: var(--muted); font-size: .78rem; }

/* Optional motion system. Content remains visible until JavaScript is ready. */
.nab-motion-ready .nab-motion-enabled .reveal-on-scroll {
  opacity: 0;
  transition: opacity var(--motion-duration) cubic-bezier(.22,1,.36,1), transform var(--motion-duration) cubic-bezier(.22,1,.36,1);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.nab-motion-ready .nab-motion-enabled.nab-motion-fade-up .reveal-on-scroll { transform: translate3d(0,var(--motion-distance),0); }
.nab-motion-ready .nab-motion-enabled.nab-motion-fade .reveal-on-scroll { transform: none; }
.nab-motion-ready .nab-motion-enabled.nab-motion-slide .reveal-on-scroll { transform: translate3d(var(--motion-distance),0,0); }
.nab-motion-ready .nab-motion-enabled.nab-motion-scale .reveal-on-scroll { transform: scale(.965); }
.nab-motion-ready .nab-motion-enabled .reveal-on-scroll.is-revealed { opacity: 1; transform: none; will-change: auto; }
.nab-motion-enabled .button, .nab-motion-enabled .quick-link, .nab-motion-enabled .service-link { transition: transform .25s cubic-bezier(.22,1,.36,1), background-color .25s, color .25s, box-shadow .25s; }
.nab-motion-enabled .quick-link:hover, .nab-motion-enabled .service-link:hover { transform: translateY(-3px); }
.nab-header-static .site-header { position: relative; top: auto; }

/* Footer */
.site-footer { color: #dbe5e9; background: var(--navy-deep); }
.footer-main { display: grid; grid-template-columns: 1.05fr 1.35fr .8fr; gap: 70px; padding-block: 65px; }
.footer-brand { color: var(--white); font-family: Georgia,serif; font-size: 1.55rem; }
.footer-about { max-width: 430px; color: #aebfc7; font-size: .82rem; }
.footer-heading { margin: 0 0 16px; color: var(--gold); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; }
.footer-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 24px; margin: 0; padding: 0; list-style: none; }
.footer-links a, .footer-contact a { color: var(--white); font-size: .82rem; text-decoration: none; }
.footer-links a { min-height: 44px; display: inline-flex; align-items: center; }
.footer-contact p { margin: 0 0 9px; color: #dbe5e9; font-size: .82rem; }
.footer-bottom { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: #91a7b1; border-top: 1px solid rgba(255,255,255,.12); font-size: .7rem; }
.footer-bottom a { color: #c8d6dc; }

@media (max-width: 1180px) {
	.utility-inner > p { display: none; }
	.utility-inner { justify-content: center; }
	.branding-row { gap: 14px; }
	.site-nav { gap: 12px; }
	.primary-menu { gap: 14px; }
	.primary-menu a { font-size: .82rem; }
	.header-action-menu a { padding-inline: 14px; }
}
@media (max-width: 980px) {
  .utility-links { display: none; }
	.weather-alert-inner { align-items: flex-start; flex-wrap: wrap; gap: 7px 12px; }
	.weather-alert-inner p { min-width: calc(100% - 150px); }
	.weather-alert-inner a { margin-left: auto; }
	.utility-actions { gap: 0; }
  .menu-toggle { display: block; }
  .site-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 24px 20px 30px; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: var(--shadow); }
  .site-nav.is-open { display: block; }
  .primary-menu { display: block; }
  .primary-menu li + li { margin-top: 5px; }
  .primary-menu a { display: block; padding: 10px 0; }
	.primary-menu .sub-menu { position: static; min-width: 0; margin: 4px 0 8px 18px; padding: 0 0 0 14px; visibility: visible; opacity: 1; background: transparent; border: 0; border-left: 3px solid var(--line); border-radius: 0; box-shadow: none; transform: none; }
	.primary-menu .sub-menu a { padding: 9px 10px; }
  .mobile-utility-menu { display: block; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
  .mobile-utility-links { margin: 0; padding: 0; list-style: none; }
  .mobile-utility-links a { display: block; padding: 9px 0; color: var(--blue); font-size: .85rem; font-weight: 700; text-decoration: none; }
  .header-action-menu { margin-top: 15px; }
  .header-action-menu a { justify-content: center; width: 100%; }
  .hero-inner { grid-template-columns: 1fr; gap: 42px; }
  .hero-sidebar { max-width: 540px; }
  .quick-links { grid-template-columns: 1fr 1fr; }
  .quick-link:nth-child(2) { border-right: 0; }
  .quick-link:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .news-grid, .archive-grid { grid-template-columns: 1fr 1fr; }
  .community-grid { gap: 45px; }
  .content-layout { grid-template-columns: 1fr; gap: 35px; }
	.officials-grid { grid-template-columns: 1fr; }
	.event-archive-layout { grid-template-columns: 1fr; }
	.gallery-archive-layout { grid-template-columns: 1fr; }
	.gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.gallery-submission-panel { position: static; }
	.gallery-photo-detail-layout { grid-template-columns: 1fr; }
	.home-event-grid { grid-template-columns: 1fr; }
	.home-updates-grid { grid-template-columns: 1fr; gap: 44px; }
	.home-updates-news .news-grid { grid-template-columns: 1fr 1fr; }
	.home-updates-grid.is-single .home-updates-events .home-event-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.agency-resource-grid, .emergency-services-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.event-submission-panel { position: static; }
}

@media (max-width: 700px) {
  body { font-size: var(--mobile-font-size); line-height: 1.62; }
  body.admin-bar .site-header { top: 46px; }
  .container { width: min(calc(100% - 28px), var(--content)); }
	.utility-inner { min-height: 0; flex-direction: column; justify-content: center; gap: 7px; padding-block: 8px; text-align: center; }
	.weather-alert-inner { display: grid; grid-template-columns: 1fr; justify-items: start; gap: 5px; padding-block: 12px; }
	.weather-alert-inner p { min-width: 0; }
	.weather-alert-inner p span { display: block; margin: 3px 0 0; }
	.weather-alert-inner a { margin-left: 0; }
	.utility-login-form { flex-wrap: wrap; justify-content: center; }
	.utility-login-form input { width: min(150px,calc(50vw - 22px)); }
	.officials-directory { padding-block: 48px 68px; }
	.officials-role-section + .officials-role-section { margin-top: 48px; padding-top: 40px; }
	.official-card { grid-template-columns: 48px minmax(0,1fr); gap: 15px; padding: 20px; }
	.official-initials { width: 48px; height: 48px; font-size: 1.2rem; }
	.event-archive-layout { padding-block: 48px 68px; }
	.gallery-archive-layout { padding-block: 48px 68px; }
	.gallery-grid { grid-template-columns: 1fr; }
	.gallery-viewer-header, .gallery-viewer-footer { padding: 12px; }
	.gallery-viewer-footer { display: grid; grid-template-columns: 1fr 1fr; }
	.gallery-viewer-details { grid-column: 1 / -1; grid-row: 1; }
	.gallery-viewer-footer .button { width: 100%; }
	.gallery-viewer-figure { padding: 10px; }
	.gallery-viewer-figure img { max-height: calc(100dvh - 270px); }
	.gallery-action-bar, .gallery-wizard-header, .gallery-wizard-footer { align-items: stretch; flex-direction: column; }
	.gallery-action-bar .button, .gallery-wizard-footer .button { width: 100%; }
	.gallery-wizard-header { position: relative; padding-right: 72px; }
	.gallery-wizard-close { position: absolute; top: 16px; right: 16px; }
	.gallery-wizard-footer > div, .gallery-file-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
	.gallery-photo-fields { grid-template-columns: 1fr; }
	.gallery-photo-navigation a { width: 44px; min-width: 44px; height: 44px; min-height: 44px; }
	.gallery-photo-navigation svg { width: 20px; height: 20px; }
	.gallery-wizard-field { grid-column: auto !important; }
	.event-card { grid-template-columns: 60px minmax(0,1fr); gap: 15px; padding: 19px 16px; }
	.event-date-badge { width: 58px; height: 65px; }
	.event-form-grid { grid-template-columns: 1fr; }
  .branding-row { min-height: 78px; }
  .brand-mark { width: 46px; height: 52px; }
  .hero-inner { min-height: auto; gap: 34px; padding-block: 54px 82px; }
  .hero h1 { font-size: clamp(2.8rem,15vw,4.4rem); }
  .hero-content img.alignleft, .hero-content img.alignright { float: none; display: block; margin: 16px auto; }
  .quick-links { grid-template-columns: 1fr; }
	.staff-meeting-material-row { grid-template-columns: 1fr; align-items: stretch; }
  .quick-link { min-height: 100px; border-right: 0; border-bottom: 1px solid var(--line); }
  .quick-link:nth-child(3) { border-bottom: 1px solid var(--line); }
  .section { padding-block: var(--mobile-section-space); }
  .section-heading { display: block; }
  .section-heading .text-link { display: inline-block; margin-top: 18px; }
  .news-grid, .archive-grid, .services-grid, .community-grid, .agency-resource-grid { grid-template-columns: 1fr; }
  .home-updates-news .news-grid, .home-updates-grid.is-single .home-updates-news .news-grid { grid-template-columns: 1fr; }
  .home-updates-grid.is-single .home-updates-events .home-event-grid { grid-template-columns: 1fr; }
  .home-updates-panel-header { align-items: flex-start; flex-direction: column; gap: 8px; }
  .service-link, .service-link:nth-child(odd), .service-link:nth-last-child(-n+2) { border-right: 0; border-bottom: 1px solid var(--line); }
  .service-link:last-child { border-bottom: 0; }
  .notice-inner { grid-template-columns: 1fr; gap: 10px; padding-block: 24px; }
  .notice-badge { width: max-content; }
  .community-art { min-height: 320px; order: 2; }
  .facts { gap: 25px; }
  .footer-main { grid-template-columns: 1fr; gap: 35px; }
  .footer-bottom { padding-block: 18px; flex-direction: column; align-items: start; }
  .record-search > div, .meeting-schedule-callout { align-items: stretch; flex-direction: column; }
  .record-row { grid-template-columns: 1fr; gap: 18px; padding-inline: 0; }
  .record-date { width: 76px; height: 76px; }
  .record-summary dl { display: grid; grid-template-columns: 1fr 1fr; }
	.social-sharing { padding: 22px 18px; }
	.social-sharing-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
	.social-share-link { width: 100%; }
	.social-sharing-icons-only .social-sharing-list { display: flex; }
	.social-sharing-icons-only .social-share-link { width: 48px; }

  /* Mobile reading and touch improvements */
  .button-row, .record-actions { display: grid; grid-template-columns: 1fr; }
  .button-row .button, .record-actions .button { width: 100%; min-height: 52px; }
	.meeting-record-actions .button { width: auto; min-height: 44px; flex: 1 1 auto; padding: 8px 11px; }
  .quick-link { padding: 20px; }
  .quick-link, .service-link, .primary-menu a, .footer-links a { min-height: 48px; }
  #resident-services { padding-block: 42px; }
  #resident-services .section-heading { margin-bottom: 20px; }
  .service-link { grid-template-columns: minmax(0,1fr) auto; gap: 14px; padding: 17px 18px; }
  .service-link h3 { font-size: 1.15rem; }
  .service-link p { font-size: .82rem; }
  .external-resources-page { padding-block: 42px; }
  .page-header { padding: var(--mobile-page-header-space) 0; }
  .page-header h1 { overflow-wrap: anywhere; }
  .content-layout { gap: 28px; padding-block: 52px; }
  .entry-content { min-width: 0; overflow-wrap: anywhere; }
  .entry-content h2 { font-size: 1.7rem; }
  .entry-content h3 { font-size: 1.3rem; }
  .entry-content table { max-width: 100%; }
  .entry-content pre { max-width: 100%; overflow-x: auto; }
  .entry-content iframe { max-width: 100%; }
  .record-search { padding: 20px; }
  .record-search input[type="search"] { font-size: 16px; }
  .record-row-main h2, .record-row-main h3 { font-size: 1.35rem; }
  .record-links { gap: 12px 20px; }
  .record-links a { min-height: 44px; display: inline-flex; align-items: center; }
  .meeting-schedule-callout { padding: 24px; }
  .sidebar-card { padding: 24px; }
}

@media (max-width: 430px) {
  .weather-widget-header { align-items: flex-start; }
  .container { width: min(calc(100% - 22px), var(--content)); }
  .brand-kicker { letter-spacing: .1em; }
  .brand-name { font-size: 1.15rem; }
  .hero h1 { font-size: clamp(2.55rem,14vw,3.6rem); }
  .hero-copy { font-size: 1rem; }
  .quick-icon { width: 40px; height: 40px; }
  .record-summary dl { grid-template-columns: 1fr; gap: 18px; }
  .record-date { width: 68px; height: 68px; }
	.social-sharing-list { grid-template-columns: 1fr; }
  .facts { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .footer-main { padding-block: 48px; }
	.footer-links { grid-template-columns: 1fr; }
	.accessibility-tools { right: 10px; bottom: 10px; }
	.accessibility-tools-left { right: auto; left: 10px; }
	.accessibility-tools-toggle { padding: 8px 12px; }
	.accessibility-tools-panel { max-height: calc(100vh - 76px); padding: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .reveal-on-scroll { opacity: 1 !important; transform: none !important; }
	.gallery-card-image img { transition: none; }
}

@media (forced-colors: active) {
	:focus-visible { outline: 3px solid Highlight; box-shadow: none; }
	.button, .menu-toggle, .quick-link, .service-link, .event-card, .gallery-card, .gallery-submission-panel, .gallery-album-nav a, .gallery-upload-dialog, .gallery-viewer, .gallery-viewer-close, .gallery-drop-zone, .post-card, .record-row, .sidebar-card, .staff-alert, .weather-alert-bar, .weather-alert-badge, .resource-tab-list a, .agency-resource-card, .borough-contact-card, .contact-directory-card { border: 1px solid ButtonText; }
	.status-badge, .notice-badge, .event-date-badge { border: 1px solid CanvasText; }
	.primary-menu .sub-menu { border: 1px solid CanvasText; }
	.accessibility-tools-toggle, .accessibility-tools-panel, .accessibility-tools-panel fieldset label { border: 2px solid CanvasText; }
	.social-sharing, .social-share-link { border: 2px solid ButtonText; }
}

@media (prefers-contrast: more) {
	a { text-decoration-thickness: .12em; }
	:focus-visible { outline-width: 4px; }
	.post-excerpt { color: var(--ink); }
}
