/* Town of Talala — civic design system (Claude layout, maroon recast) */
:root{
  --navy-900:#2a0706; --navy-800:#481008; --navy-700:#5c1410; --navy-600:#6e1a14; --maroon:#481008; --punch:#B81218;
  --gold:#B81218; --gold-light:#ff8a8e; --gold-dark:#9E1018;
  --ink:#161216; --ink-2:#2e2624; --ink-3:#4a3f3c;
  --paper:#f7f2eb; --paper-2:#f3ede5; --paper-3:#e8e0d6;
  --line:#e2dad4; --line-2:#ece6e0;
  --red:#B81218; --green:#1d6b45;
  --shadow-s:0 1px 2px rgba(72,16,8,.07),0 2px 6px rgba(72,16,8,.07);
  --shadow-m:0 2px 4px rgba(72,16,8,.07),0 8px 24px rgba(72,16,8,.10);
  --radius:10px; --maxw:min(1520px,100%);
  --sans:"Atkinson Hyperlegible",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --serif:"Archivo",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --display:"Archivo",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-size:17px;line-height:1.65;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy-600);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
a:hover{color:var(--navy-800)}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:3px}
h1,h2,h3,h4{font-family:var(--display);line-height:1.2;margin:0 0 .5em;font-weight:800;letter-spacing:-.01em;color:var(--navy-800)}
h1{font-size:clamp(1.85rem,4vw,2.6rem)}
h2{font-size:clamp(1.35rem,2.5vw,1.7rem);margin-top:2.2rem;padding-bottom:.35rem;border-bottom:2px solid var(--paper-3)}
h3{font-size:1.13rem}
p{margin:0 0 1.1em}
.wrap{max-width:var(--maxw);width:100%;margin:0 auto;padding:0 clamp(16px,3vw,36px);box-sizing:border-box}
.skip{position:absolute;left:-9999px;top:0;background:var(--punch);color:#fff;padding:12px 20px;z-index:999;font-weight:700}
.skip:focus{left:0}
.muted{color:var(--ink-3)}
.visually-hidden,.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- Utility bar ---------- */
.utilbar{background:var(--navy-900);color:#c3d0e0;font-size:.82rem}
.utilbar .wrap{display:flex;gap:20px;align-items:center;min-height:38px;flex-wrap:wrap}
.utilbar a{color:#dce5f0;text-decoration:none}
.utilbar a:hover{color:#fff;text-decoration:underline}
.utilbar .sep{flex:1}
.utilbar .ub-alert{color:var(--gold-light);font-weight:600}
.utilbar .ub-town{
  font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#fff;
  padding:4px 10px;border-radius:3px;text-decoration:none;
}
.utilbar .ub-town:hover,.utilbar .ub-town:focus-visible{
  background:var(--punch);color:#fff;text-decoration:none;
}

/* ---------- Header (Skiatook-style: white bar, every tab is a full-width mega) ---------- */
.site-head{background:#fff;color:var(--ink);border-bottom:0;position:relative;z-index:80;box-shadow:0 1px 0 rgba(0,0,0,.10)}
.site-head > .utilbar{box-shadow:none}
.head-bar{display:flex;align-items:stretch;min-height:84px;background:#fff}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy-800);flex:0 0 auto;background:transparent;padding:12px 14px 12px 16px;border-radius:8px;transition:color .15s ease,background .15s ease}
.brand:hover,.brand:focus-visible{color:var(--punch);background:#f7f4f0}
.brand:hover .brand-name,.brand:focus-visible .brand-name{color:var(--punch)}
.brand:hover .brand-sub,.brand:focus-visible .brand-sub{color:var(--gold-dark)}
.brand:hover .brand-seal,
.brand:focus-visible .brand-seal{
  outline: 3px solid var(--punch);
  outline-offset: 3px;
  border-radius: 50%;
  transform: scale(1.04);
}
.brand-seal,.seal{width:56px;height:56px;flex:0 0 auto;transition: transform .15s ease, outline-offset .15s ease}
.brand-txt{min-width:0;color:var(--navy-800);transition:color .15s ease}
.brand-name{display:block;font-size:1.35rem;font-weight:800;letter-spacing:.015em;line-height:1.05;color:#111;text-transform:uppercase;transition:color .15s ease}
.brand-sub{display:block;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--punch);margin-top:4px;font-weight:700;max-width:18rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.head-actions{display:none}
.navtoggle{display:none;background:transparent;border:1.5px solid #cfcfcf;color:#111;border-radius:8px;padding:9px 12px;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;align-items:center;gap:8px;margin:12px 16px 12px auto}
.navtoggle:hover{background:#f4f4f4}

/* ---------- Primary nav / mega menus ---------- */
.mainnav{flex:1;display:flex;align-items:stretch;background:#fff;position:static;min-width:0}
.mainnav ul{list-style:none;margin:0;padding:0}
.nav-tabs{display:flex;align-items:stretch;flex:1;min-width:0;overflow-x:auto;scrollbar-width:thin}
.nav-tabs>li{position:static;display:flex}
.nav-tabs>li>a{display:flex;align-items:center;position:relative;padding:0 9px;color:#111;text-decoration:none;font-weight:800;font-size:.82rem;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}
.nav-tabs>li>a:hover,.nav-tabs>li>a:focus,.has-mega:hover>a,.has-mega:focus-within>a,.nav-tabs>li>a[aria-current="true"],.has-mega.open>a{
  background:var(--navy-900);color:#fff;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px
}
.nav-tabs>li>a::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:transparent}
.has-mega:hover>a::before,.has-mega:focus-within>a::before,.nav-tabs>li>a[aria-current="true"]::before,.has-mega.open>a::before{background:var(--punch)}
/* Every tab: full-viewport 4-column mega */
.mega{display:none;position:absolute;left:0;right:0;top:100%;width:100%;background:var(--navy-900);color:#fff;padding:36px 4vw 48px;z-index:90;box-shadow:0 18px 36px rgba(0,0,0,.32);grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 40px;box-sizing:border-box}
.has-mega:hover>.mega,.has-mega:focus-within>.mega,.has-mega.open>.mega{display:grid}
.mega-col{min-width:0}
.mega a{color:#fff;text-decoration:none;display:block;padding:3px 0;line-height:1.35}
.mega a:hover,.mega a:focus{text-decoration:underline;color:#fff}
.mega-open{font-size:.95rem;font-weight:400;font-style:italic;margin:0 0 18px;opacity:.95}
.mega-open em{font-style:italic;font-weight:400}
.mega-h{display:block;font-size:1.28rem;font-weight:800;margin:14px 0 4px;letter-spacing:-.01em;color:#fff}
.mega-col>.mega-h:first-child,.mega-col>.mega-open+.mega-h{margin-top:0}
.mega-sub{font-size:.92rem;font-weight:400;padding-left:0;opacity:.96;margin:0}
.mega-ord{text-decoration:underline;text-underline-offset:4px}

.nav-search{position:relative;display:flex;align-items:center;margin-left:auto;padding:0 14px 0 6px;flex:0 0 auto}
.nav-search input{width:160px;border:0;background:#481008;color:#fff;border-radius:999px;padding:9px 44px 9px 16px;font:inherit;font-size:.88rem}
.nav-search input::placeholder{color:#c8c8c8}
.nav-search input:focus{outline:2px solid var(--punch);outline-offset:2px;background:#2a0706}
.nav-search-btn{position:absolute;right:22px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;border-radius:50%;background:var(--punch);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.nav-search-btn:hover{background:var(--gold-dark)}
.nav-search .results{left:8px;right:18px;top:calc(100% - 8px)}

/* ---------- Hero ---------- */
.hero{background:linear-gradient(150deg,var(--navy-800) 0%,var(--navy-900) 62%,#040f1f 100%);color:#fff;padding:56px 0 48px;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-90px;top:-70px;width:430px;height:430px;border-radius:50%;background:radial-gradient(circle,rgba(235,28,36,.16),transparent 68%)}
.hero-in{position:relative;z-index:2;max-width:730px}
.hero .eyebrow{font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-light);font-weight:700;margin-bottom:12px}
.hero h1{color:#fff;font-size:clamp(2rem,5vw,3.1rem);margin-bottom:.35em}
.hero p{font-size:1.1rem;color:#c9d6e6;max-width:60ch;margin-bottom:1.6em}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap}

/* ---------- Photo hero (Town Hall) ---------- */
.hero.hero-photo{
  position:relative;
  min-height:460px;
  padding:0;
  background:var(--navy-900);
  overflow:hidden;
}
.hero.hero-photo::after{display:none}
.hero-photo .hero-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  /* Mild zoom toward the tower / TALALA lettering — nudged up for more tower */
  object-position:center 84%;
  transform:scale(1.12);
  transform-origin:center 78%;
}
.hero-photo::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  /* Lighter overlay so TALALA on the tower reads clearer; still readable text on the left */
  background:linear-gradient(105deg,rgba(42,7,6,.72) 0%,rgba(72,16,8,.45) 42%,rgba(72,16,8,.12) 100%);
}
.hero-photo .hero-in{
  position:relative;
  z-index:2;
  padding-top:64px;
  padding-bottom:56px;
  max-width:640px;
}
.hero-photo .hero-in p{color:#e8dcd8}
@media (max-width:760px){
  .hero.hero-photo{min-height:380px}
  .hero-photo .hero-in{padding-top:42px;padding-bottom:38px}
}

/* ---------- Search ---------- */
.searchbox{position:relative;max-width:560px;margin-top:26px}
.hero-photo .searchbox{margin-top:2.25rem}
.searchbox input{width:100%;padding:14px 16px;font:inherit;font-size:1rem;border:2px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;border-radius:8px}
.searchbox input::placeholder{color:#9fb2c9}
.searchbox input:focus{background:#fff;color:var(--ink);border-color:var(--gold)}
.searchbox input:focus::placeholder{color:var(--ink-3)}
.results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border-radius:8px;box-shadow:var(--shadow-m);max-height:340px;overflow:auto;z-index:70;display:none}
.results.on{display:block}
.results a{display:block;padding:11px 16px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line-2)}
.results a:last-child{border-bottom:0}
.results a:hover,.results a.sel{background:var(--paper-2)}
.results strong{display:block;color:var(--navy-800);font-size:.96rem}
.results span{font-size:.83rem;color:var(--ink-3)}
.results .none{padding:14px 16px;color:var(--ink-3);font-size:.9rem}

/* ---------- Buttons ---------- */
.btn{display:inline-block;padding:12px 22px;border-radius:8px;font-weight:700;font-size:.95rem;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:.15s}
.btn-primary{background:var(--punch);color:#fff;border-color:var(--punch)}
.btn-primary:hover{background:#c4141c;color:#fff}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.btn-ghost:hover{background:rgba(255,255,255,.13);color:#fff}
main .btn-ghost{color:var(--navy-700);border-color:var(--navy-700)}
main .btn-ghost:hover{background:var(--navy-700);color:#fff}
/* Hero lives inside <main> for landmarks — keep ghost CTAs white on the photo */
main .hero .btn-ghost,.hero .btn-ghost{color:#fff;border-color:rgba(255,255,255,.72);background:rgba(0,0,0,.28)}
main .hero .btn-ghost:hover,.hero .btn-ghost:hover{background:rgba(255,255,255,.18);color:#fff;border-color:#fff}
.btn.is-disabled,.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;pointer-events:none}
.btn-sm{padding:8px 15px;font-size:.85rem}

/* ---------- Action tiles ---------- */
.actions{padding:44px 0}
.actions h2{margin-top:0;border:0;font-size:1.1rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:16px;margin:20px 0 8px}
.tile{display:block;background:#fff;border:1px solid var(--line);border-left:4px solid var(--navy-600);border-radius:var(--radius);padding:20px;text-decoration:none;box-shadow:var(--shadow-s);transition:.15s}
.tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-m);border-left-color:var(--gold)}
.tile h3{margin:0 0 5px;color:var(--navy-800);font-size:1.05rem}
.tile p{margin:0;font-size:.9rem;color:var(--ink-2)}
.tile-accent{border-left-color:var(--gold);background:linear-gradient(180deg,#fffdf7,#fff)}
.tile-ext h3::after{content:" ↗";font-size:.8em;color:var(--ink-3)}

/* ---------- Layout ---------- */
.page{padding:34px 0 60px}
.page-grid{display:grid;grid-template-columns:1fr;gap:0;align-items:start}
.sidebar{display:none!important}
.content{min-width:0;max-width:100%}
.sidebar h2{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);border:0;margin:0 0 10px;padding:0}
.sidebar ul{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}
.sidebar a{display:block;padding:7px 14px;font-size:.92rem;text-decoration:none;color:var(--ink-2);margin-left:-2px;border-left:2px solid transparent}
.sidebar a:hover{color:var(--navy-800);border-left-color:var(--line)}
.sidebar a[aria-current="page"]{color:var(--navy-800);font-weight:700;border-left-color:var(--gold)}
.content{min-width:0;max-width:none;width:100%}
.crumbs{font-size:.84rem;color:var(--ink-3);margin-bottom:14px}
.crumbs a{color:var(--ink-3)}
.crumbs span{margin:0 7px;opacity:.6}
.lede{font-size:1.13rem;color:var(--ink-2);border-left:4px solid var(--gold);padding-left:18px;margin:0 0 1.8em}

/* Talala PD department motto — stylized, not a plain lede */

.pd-motto-banner{margin:0 0 .7rem;border:0;box-shadow:none;background:transparent}
.pd-motto-banner img{width:100%;height:auto;display:block;border-radius:10px;border:1px solid var(--line)}

.pd-motto{
  font-family:var(--display);
  font-size:clamp(1.35rem, 2.8vw, 1.95rem);
  font-weight:700;
  font-style:italic;
  letter-spacing:.015em;
  line-height:1.3;
  color:var(--navy-800);
  border-left:5px solid var(--gold);
  padding:.35rem 0 .35rem 1.15rem;
  margin:.15em 0 1.7em;
  max-width:28ch;
}
.pd-motto-kicker{
  display:block;
  font-style:normal;
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-3);
  margin-bottom:.28rem;
}
.pd-motto-line{display:block}


/* ---------- Content blocks ---------- */
.callout{background:var(--paper-2);border:1px solid var(--line);border-left:4px solid var(--navy-600);padding:16px 20px;border-radius:0 8px 8px 0;margin:1.5em 0}
.callout-warn{background:#fdf8ee;border-left-color:var(--gold-dark)}
.callout-strong{background:#fdeeee;border-left-color:var(--punch);border-color:#e8b4b4}
blockquote{margin:1.5em 0;padding:18px 24px;background:var(--paper-2);border-left:4px solid var(--gold);border-radius:0 8px 8px 0;font-family:var(--serif);font-size:1.04rem;color:var(--ink-2)}
.addr-block{font-style:normal;background:var(--paper-2);padding:14px 18px;border-radius:8px;display:inline-block;margin:0 0 1.1em;line-height:1.5}
.notice-empty{background:var(--paper-2);border:1px dashed var(--line);border-radius:var(--radius);padding:30px;text-align:center;margin:1.4em 0}
.notice-empty h3{margin-top:0;color:var(--ink-2)}
.notice-empty p{color:var(--ink-3);margin-bottom:.6em}
.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:1.4em 0}
.plea-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-s)}
.plea-card h3{margin-top:0}
.plea-ok{border-top:4px solid var(--green)}
.plea-no{border-top:4px solid var(--red)}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(212px,1fr));gap:14px;margin:1.4em 0}
.contact-card{background:var(--paper-2);border-radius:var(--radius);padding:16px 18px}
.contact-card h3{font-size:.74rem;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);margin:0 0 6px}
.contact-card p{margin:0;font-size:.98rem;line-height:1.5}
.util-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 22px;margin:1em 0;box-shadow:var(--shadow-s)}
.util-card h3{margin-top:0}
.provider-list{list-style:none;padding:0;margin:1em 0}
.provider-list li{padding:11px 0;border-bottom:1px solid var(--line-2)}
.provider-list li:last-child{border-bottom:0}
.steps{padding-left:1.2em}
.steps li{margin-bottom:.6em}
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:1.4em 0}
.feature{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-s);max-width:100%;min-width:0}
@media (max-width:900px){.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.feature-grid{grid-template-columns:1fr}}
.feature h3{margin-top:0}
.feature p{font-size:.94rem;margin-bottom:0;color:var(--ink-2)}
.feature-tag{display:inline-block;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--gold-dark);margin-bottom:8px}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:1.5em 0}
.stat{background:var(--navy-800);color:#fff;border-radius:var(--radius);padding:20px;text-align:center}
.stat-num{display:block;font-size:1.9rem;font-weight:800;color:var(--gold-light);line-height:1}
.stat-label{display:block;font-size:.8rem;color:#b9c7da;margin-top:7px}
table{width:100%;border-collapse:collapse;margin:1.2em 0;font-size:.95rem}
th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line-2)}
thead th{background:var(--navy-800);color:#fff;font-size:.78rem;letter-spacing:.07em;text-transform:uppercase}
.hours-table th{width:40%;color:var(--navy-800)}
tbody tr:nth-child(even){background:var(--paper-2)}
.faq details{border:1px solid var(--line);border-radius:8px;margin-bottom:10px;background:#fff}
.faq summary{padding:14px 18px;font-weight:700;cursor:pointer;color:var(--navy-800);list-style:none;position:relative;padding-right:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:18px;top:12px;font-size:1.35rem;color:var(--gold-dark);font-weight:400}
.faq details[open] summary::after{content:"–"}
.faq details[open] summary{border-bottom:1px solid var(--line-2)}
.faq details>*:not(summary){padding:0 18px}
.faq details>p:last-child{padding-bottom:14px}
.faq table{margin:0 18px 14px;width:calc(100% - 36px)}
.job-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-s);margin-bottom:1.5em}
.job-card h2{margin-top:.2em;border:0;padding:0}
.job-tag{display:inline-block;background:#e8f4ec;color:var(--green);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 11px;border-radius:99px}

/* ---------- Emergency bar ---------- */
.emergency-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2px;margin:0 0 1.8em;border-radius:var(--radius);overflow:hidden}
.emerg-main{background:var(--red);color:#fff;padding:20px 24px}
.emerg-alt{background:var(--navy-800);color:#fff;padding:20px 24px}
.emerg-label{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#fff}
.emerg-num,.emerg-num2{display:block;font-size:1.7rem;font-weight:800;color:#fff;text-decoration:none;line-height:1.2;margin:2px 0}
.emerg-alt .emerg-num2{color:var(--gold-light)}
.emerg-main .emerg-num2{color:#fff}
.emerg-sub{display:block;font-size:.82rem;color:#fff}

/* ---------- Members ---------- */
.member-list{display:grid;gap:16px;margin:1.4em 0}
.member{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow-s);display:grid;grid-template-columns:56px 1fr;gap:18px;align-items:start}
.member-initials{width:56px;height:56px;border-radius:50%;background:var(--navy-800);color:var(--gold-light);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.05rem;letter-spacing:.02em}
.member h3{margin:0 0 2px;font-size:1.1rem}
.member .role{font-size:.76rem;letter-spacing:.11em;text-transform:uppercase;color:var(--gold-dark);font-weight:700;margin-bottom:.7em;display:block}
.member p{font-size:.94rem;color:var(--ink-2);margin:0}
.roster-list .member h3{letter-spacing:.01em}
.roster-list .roster-links{margin:.55em 0 0;font-size:.88rem}
.roster-list .roster-links a{margin-right:.15em}
.roster-list .roster-links a:not(:last-child)::after{content:" ·";margin:0 .55em 0 .15em;color:var(--ink-3)}
blockquote p{margin:0 0 .85em}
blockquote p:last-of-type{margin-bottom:0}
blockquote footer{margin-top:.9em}

/* ---------- Schedules ---------- */
.sched{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin:1.3em 0;box-shadow:var(--shadow-s)}
.sched h3{margin-top:0}
.sched .when{font-size:.94rem;color:var(--ink-2);margin-bottom:1em}
.date-chips{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0;margin:0}
.date-chips li{background:var(--paper-2);border:1px solid var(--line);border-radius:99px;padding:5px 13px;font-size:.85rem;color:var(--ink-2)}
.date-chips li.past{opacity:.42}
.date-chips li.next{background:var(--navy-800);border-color:var(--navy-800);color:#fff;font-weight:700}

/* ---------- News ---------- */
.news-list{list-style:none;padding:0;margin:1.4em 0}
.news-item{border-bottom:1px solid var(--line-2);padding:20px 0}
.news-item:first-child{padding-top:0}
.news-item time{font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;color:var(--gold-dark);font-weight:700}
.news-item h3{margin:5px 0 6px;font-size:1.15rem}
.news-item h3 a{text-decoration:none}
.news-item p{margin:0;color:var(--ink-2);font-size:.95rem}
.home-cols{display:grid;grid-template-columns:1.4fr 1fr;gap:44px;padding:10px 0 50px;align-items:start}
.panel{background:var(--paper-2);border-radius:var(--radius);padding:24px}
.panel h2{margin-top:0;border:0;padding:0;font-size:1.05rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.panel dl{margin:0}
.panel dt{font-weight:700;color:var(--navy-800);font-size:.95rem;margin-top:1em}
.panel dt:first-child{margin-top:0}
.panel dd{margin:2px 0 0;font-size:.94rem;color:var(--ink-2)}
.upcoming{list-style:none;padding:0;margin:0}
.upcoming li{display:grid;grid-template-columns:56px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.upcoming li:last-child{border-bottom:0}
.up-date{background:#fff;border:1px solid var(--line);border-radius:8px;text-align:center;padding:6px 0;line-height:1.1}
.up-mo{display:block;font-size:.63rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red);font-weight:800}
.up-day{display:block;font-size:1.2rem;font-weight:800;color:var(--navy-800)}
.up-what{font-size:.94rem}
.up-what strong{display:block;color:var(--navy-800)}
.up-what span{color:var(--ink-3);font-size:.86rem}

/* ---------- Footer ---------- */
.site-foot{background:var(--navy-900);color:#b8c6d8;margin-top:auto;border-top:4px solid var(--gold)}
.site-foot .muted{color:#d8dde6}
.foot-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:34px;padding:46px 0 32px}
.foot-grid h3{color:#fff;font-size:.76rem;letter-spacing:.13em;text-transform:uppercase;margin:0 0 12px}
.foot-grid ul{list-style:none;margin:0;padding:0}
.foot-grid li{margin-bottom:7px}
.foot-grid a{color:#b8c6d8;text-decoration:none;font-size:.9rem}
.foot-grid a:hover{color:#fff;text-decoration:underline}
.foot-brand p{font-size:.9rem;margin-bottom:.8em}
.foot-seal{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.foot-seal .brand-name{font-size:1.1rem;color:#fff}
.foot-bottom{border-top:1px solid rgba(255,255,255,.11);padding:18px 0;font-size:.82rem;display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.foot-bottom .sep{flex:1}
.badge-temp{background:var(--punch);color:#fff;font-weight:800;padding:3px 10px;border-radius:99px;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .page-grid{grid-template-columns:1fr;gap:24px}
  .home-cols{grid-template-columns:1fr;gap:28px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:26px}
}
@media (max-width:1180px){
  .head-bar{flex-wrap:nowrap;background:#fff;align-items:center;min-height:64px}
  .brand{min-width:0;flex:1;padding:8px 10px 8px 12px}
  .brand-seal,.site-head .brand-seal{width:44px;height:44px}
  .brand-seal.brand-patch,.site-head .brand-seal.brand-patch,img.brand-patch{width:auto;height:50px}
  .brand-name{font-size:1rem;letter-spacing:.01em}
  .navtoggle{display:inline-flex;margin:0 12px 0 0;min-height:44px;min-width:44px;justify-content:center;position:relative;z-index:220;background:#fff}
  .site-head{position:sticky;top:0;z-index:200}
  .mainnav{
    display:none !important;
    position:fixed !important;
    left:0;right:0;bottom:0;
    top:108px;
    flex:none;flex-direction:column;align-items:stretch;
    background:var(--navy-900) !important;
    color:#fff !important;
    border-top:3px solid #B81218;
    box-shadow:none;
    max-height:none !important;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    z-index:210;
  }
  .mainnav.open{display:flex !important}
  body.nav-open{overflow:hidden;touch-action:none}
  .nav-tabs{flex-direction:column}
  .nav-tabs>li{flex-direction:column}
  .nav-tabs>li>a{
    min-height:52px;padding:16px 20px;
    border-bottom:1px solid #4a4a4a !important;
    font-size:1.08rem !important;
    color:#fff !important;
    background:transparent !important;
    letter-spacing:.06em;
  }
  .nav-tabs>li>a:hover,.has-mega:hover>a,.has-mega:focus-within>a,.has-mega.open>a{
    background:#1a1a1a !important;color:#fff !important;
  }
  .mega{
    position:static !important;display:none !important;
    padding:4px 16px 18px 24px !important;
    box-shadow:none !important;
    grid-template-columns:1fr !important;
    gap:0;width:auto !important;
    left:auto !important;right:auto !important;top:auto !important;
    background:#1a1a1a !important;color:#fff !important;
  }
  .has-mega:hover>.mega,.has-mega:focus-within>.mega{display:none !important}
  .has-mega.open>.mega,.has-mega.open:hover>.mega{display:grid !important}
  .mega-h{font-size:1.12rem;margin:12px 0 2px;color:#fff !important}
  .mega-open{font-size:1rem;margin:8px 0 10px;color:#ffd6d8 !important}
  .mega-sub{font-size:1rem;padding:8px 0;color:#fff !important}
  .mega a{padding:10px 0;color:#fff !important;font-size:1rem}
  .nav-search{margin:0;padding:14px 16px 22px;background:#1a1a1a;width:100%}
  .nav-search input{width:100%;max-width:none;min-height:44px}
  .nav-search-btn{right:26px}
  .utilbar .wrap{font-size:.78rem;gap:12px}
  .utilbar .hide-sm{display:none}
  .hero{padding:38px 0 34px}
  .hero.hero-photo{min-height:320px}
  .hero-photo .hero-in{padding-top:28px;padding-bottom:24px}
  .hero-photo .hero-in p{display:none}
  .hero .eyebrow{font-size:.84rem;letter-spacing:.12em}
  .utilbar{font-size:.9rem}
  .utilbar .wrap{font-size:.9rem;min-height:42px}
  .up-mo{font-size:.78rem}
  .news-item time{font-size:.86rem}
  .foot-grid h3{font-size:.88rem;letter-spacing:.08em}
  .tile-grid{gap:12px}
  .actions{padding:28px 0}
  .hero-cta .btn{min-height:44px}
  .searchbox{margin-top:16px}
  .tile-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .member{grid-template-columns:1fr}
  .member-initials{display:none}
  .pd-marks{float:none;justify-content:center;margin:0 auto 1.4em}
}

@media print{
  .utilbar,.mainnav,.navtoggle,.site-foot,.searchbox,.sidebar,.hero-cta{display:none!important}
  body{font-size:12pt}
  a{text-decoration:none;color:#000}
}

/* ---------- Mobile header refinements ---------- */
@media (max-width:760px){
  .head-inner{padding:11px 0;gap:10px}
  .seal{width:42px;height:42px}
  .brand-name{font-size:1.08rem}
  .brand-sub{font-size:.64rem;letter-spacing:.1em}
  .head-actions{gap:8px;flex:0 0 auto}
  .navtoggle{padding:8px 11px}
}
@media (max-width:460px){
  .head-actions .btn-primary{display:none}
  .brand-sub{display:block;font-size:.58rem;letter-spacing:.08em;max-width:11rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .brand-name{font-size:1.15rem}
  .wrap{padding:0 18px}
  .emerg-num{font-size:1.5rem}
  .hero h1{font-size:1.85rem}
  .hero-cta .btn{padding:12px 16px}
}

/* ---------- Motion & type polish ---------- */
h1,h2,h3,.hero h1{text-wrap:balance}
.lede,.hero p{text-wrap:pretty}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .tile:hover{transform:none}
}


/* ---------- Real seal + wordmark on maroon header ---------- */
.brand-seal, .foot-seal-img{
  width:54px;height:54px;flex:0 0 auto;display:block;border-radius:50%;
}
.foot-seal-img{background:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.18)}
.site-head .brand-seal{background:transparent;box-shadow:none}

/* PD header patch — shield, transparent PNG, no outline/halo */
.brand-seal.brand-patch,
img.brand-patch{
  width:auto;
  height:58px;
  max-width:none;
  object-fit:contain;
  object-position:center;
  border-radius:0;
  background:transparent !important;
  box-shadow:none !important;
  filter:none;
  outline:none;
}
.brand:hover .brand-seal.brand-patch,
.brand:focus-visible .brand-seal.brand-patch{
  border-radius:0;
  outline:none;
  transform:scale(1.05);
}
.site-head .brand-seal.brand-patch{
  background:transparent;
  box-shadow:none;
  border-radius:0;
}
.foot-seal-img{width:48px;height:48px}
.wordmark{height:46px;width:auto;display:block;flex:0 0 auto}
.wordmark-foot{height:40px}
.brand{gap:12px}
.brand-txt{min-width:0}

/* ---------- Page photos (interior, not full-bleed hero) ---------- */
.page-photo{margin:0 0 1.6em;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-s)}
.page-photo img{width:100%;height:auto;display:block;aspect-ratio:16/8;object-fit:cover;object-position:center 55%}
.page-photo img.render-focus-right{object-position:right 55%}

/* Library bicycle-sign: compact on the library page front */
.page-photo.library-hero{
  max-width:420px;
  margin-left:auto;
  margin-right:auto;
}
.page-photo.library-hero img{
  object-position:center 32%;
  aspect-ratio:4/3;
}
.page-photo.library-collections-shot{max-width:360px;margin-left:auto;margin-right:auto;}
@media (max-width:640px){
  .page-photo.library-collections-shot{max-width:280px}
}

.page-photo.photo-contain img{aspect-ratio:auto;object-fit:contain;object-position:center top;background:#f7f4f0}
.award-img{max-width:420px;margin:0 auto 1.2em;display:block}

/* TPWA award news callout (compact, top of department hub) */
.tpwa-award-news{
  display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:16px 20px;
  align-items:center;margin:1.2em 0 1.8em;padding:14px 16px;
  background:#fff;border:1px solid var(--line);border-left:4px solid var(--punch);
  border-radius:var(--radius);box-shadow:var(--shadow-s);
}
.tpwa-award-news-media{margin:0;display:block;text-decoration:none;color:inherit}
.tpwa-award-news-media img{
  width:100%;height:auto;display:block;border-radius:8px;
  aspect-ratio:3/2;object-fit:contain;object-position:center;
  background:#1a1a1a;
}
.tpwa-award-kicker{
  margin:0 0 .35em;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  font-weight:800;color:var(--gold-dark);
}
.tpwa-award-title{
  margin:0 0 .45em;font-size:1.15rem;border:0;padding:0;line-height:1.25;
}
.tpwa-award-title a{color:inherit;text-decoration:none}
.tpwa-award-title a:hover{text-decoration:underline}
.tpwa-award-news-body p{margin:0;font-size:.95rem;color:var(--ink-2)}
.tpwa-award-news-body a{font-weight:700}
.tpwa-award-detail-photo{margin:0 0 1.6em}
.tpwa-award-detail-photo img{
  width:100%;max-width:960px;height:auto;border-radius:var(--radius);display:block;
}
@media (max-width:640px){
  .tpwa-award-news{grid-template-columns:1fr;padding:12px}
  .tpwa-award-news-media img{max-width:280px;margin:0 auto}
}

.page-photo figcaption{padding:10px 14px;font-size:.86rem;color:var(--ink-3);background:var(--paper-2)}
.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 1.6em}
.photo-pair .page-photo{margin:0}

/* ---------- Member photos ---------- */
.member.has-photo{grid-template-columns:80px 1fr}
.member-photo{width:80px;height:80px;border-radius:50%;object-fit:cover;object-position:center top;background:var(--paper-3);border:2px solid var(--line)}
/* Rebecca Brinton — CSS-only face framing (keep original file quality) */
.member-photo-roberson{object-position:center 18%}
.member-photo-rebecca{
  object-fit:cover;
  object-position:center 28%;
}

.member blockquote{margin:.8em 0 0;padding:12px 16px;font-size:.95rem}
.member cite{display:block;font-size:.8rem;color:var(--ink-3);font-style:normal;margin-top:.4em}

/* ---------- Doc lists (agendas / notices) ---------- */
.sched-kicker{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:.2em 0 .7em}
.doc-list{list-style:none;padding:0;margin:1em 0 0}
.doc-list li{padding:8px 0;border-bottom:1px solid var(--line-2);font-size:.94rem}
.doc-list li:last-child{border-bottom:0}
.doc-list a{text-decoration:none;font-weight:600}
.doc-list a:hover{text-decoration:underline}
.file-type{display:inline-block;margin-left:8px;font-size:.68rem;letter-spacing:.08em;font-weight:700;color:var(--navy-800);border:1px solid var(--line);border-radius:99px;padding:1px 7px;vertical-align:middle}
.year-fold{margin-top:12px;border:1px solid var(--line);border-radius:8px;padding:8px 14px 10px;background:var(--paper-2)}
.year-fold summary{cursor:pointer;font-weight:700;color:var(--navy-800);font-size:.92rem;padding:6px 0}
.month-fold{margin:8px 0;border:1px solid var(--line);border-radius:8px;padding:6px 12px 8px;background:#fff}
.month-fold summary{cursor:pointer;font-weight:650;color:var(--ink);font-size:.9rem;padding:4px 0}
.month-fold[open]{background:var(--paper-2)}
.agenda-latest{margin:0 0 .8rem}
.notice-year{font-size:1rem;margin:1.4em 0 .2em;color:var(--navy-800);border:0;padding:0}

/* ---------- PD patch ---------- */
.pd-patch-wrap{float:right;margin:.15em 0 1.2em 1.6em;max-width:168px}
.pd-patch{width:168px;height:auto;display:block;filter:drop-shadow(0 2px 8px rgba(72,16,8,.28))}

/* ---------- Calendar ---------- */
.cal{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:16px 18px;margin:1.2em 0;box-shadow:var(--shadow-s)}
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.cal-head h3{margin:0;border:0;padding:0;font-size:1.05rem}
.cal-nav{display:flex;gap:8px}
.cal-nav button{background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 12px;font:inherit;font-weight:700;cursor:pointer;color:var(--navy-800)}
.cal-nav button:hover{background:var(--paper-2)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cal-dow{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:700;padding:6px 0}
.cal-day{padding:10px 0;border-radius:8px;font-size:.9rem;background:var(--paper-2);min-height:38px}
.cal-day.empty{background:transparent}
.cal-day.blocked{background:#f8d4d4;color:var(--navy-800);font-weight:700}
.cal-day.today{box-shadow:inset 0 0 0 2px var(--punch)}
.cal-legend{font-size:.88rem;margin-top:12px;color:var(--ink-2)}
.cal-legend .swatch{display:inline-block;width:12px;height:12px;background:#f8d4d4;border-radius:2px;margin-right:6px;vertical-align:middle}
.blocked-list{list-style:none;padding:0;margin:.6em 0 0}
.blocked-list li{padding:8px 0;border-bottom:1px solid var(--line-2);font-size:.92rem}
.sample-tag{display:inline-block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--punch);border:1px solid var(--punch);border-radius:99px;padding:1px 7px;margin-left:6px;vertical-align:middle}

/* ---------- Forms ---------- */
.civic-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;margin:1.3em 0;box-shadow:var(--shadow-s)}
.civic-form label{display:block;font-weight:700;font-size:.88rem;margin:1em 0 .35em;color:var(--navy-800)}
.civic-form label:first-of-type{margin-top:0}
.civic-form input,.civic-form textarea,.civic-form select{
  width:100%;padding:10px 12px;font:inherit;border:1.5px solid var(--line);border-radius:8px;background:#fff
}

/* Radios/checkboxes must not inherit civic-form width:100% */
.civic-form input[type="radio"],
.civic-form input[type="checkbox"],
.rate-option-choice input[type="radio"]{
  width:auto !important;
  max-width:none;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  flex:0 0 auto;
}

.civic-form input:focus,.civic-form textarea:focus,.civic-form select:focus{border-color:var(--navy-800);outline:3px solid rgba(235,28,36,.25)}
.civic-form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sig-block{margin-top:1.6em}
.sig-line{border-bottom:1px solid var(--ink);height:42px;margin:4px 0 14px}
.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:1.4em}
.print-only{display:none}
.contract{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;margin:1.4em 0}
.contract h2{margin-top:1.4em}

/* ---------- Ordinances index ---------- */
.ord-search{margin:1.4em 0 1em}
.ord-search input{width:100%;padding:14px 16px;font:inherit;font-size:1.05rem;border:2px solid var(--navy-800);border-radius:8px;background:#fff}
.ord-item{background:#fff;border:1px solid var(--line);border-left:4px solid var(--navy-600);border-radius:var(--radius);padding:16px 20px;margin:10px 0;box-shadow:var(--shadow-s)}
.ord-item h3{margin:0 0 4px;border:0;padding:0;font-size:1.08rem}
.ord-item p{margin:0;font-size:.92rem;color:var(--ink-2)}
.ord-status{display:block;font-size:.8rem;color:var(--ink-3);margin-top:6px}
.topic-list{list-style:none;padding:0;margin:1em 0}
.topic-list li{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin:0 0 10px}
.topic-list h3{margin:0 0 4px;border:0;padding:0;font-size:1.02rem}

/* ---------- Draft / legal ---------- */
.callout-draft{background:#fdf8ee;border-left-color:var(--punch)}
.legal-kicker{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-weight:700;margin:0 0 .6em}

/* ---------- Footer legal ---------- */
.foot-legal{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.85rem}
.foot-legal a{color:#d8c8c4;text-decoration:none}
.foot-legal a:hover{color:#fff;text-decoration:underline}

/* ---------- Tips ---------- */
.tip-list{display:grid;gap:14px;margin:1.4em 0}
.tip-list.tip-drop{grid-template-columns:1fr}
@media (min-width:720px){
  .tip-list.tip-drop{grid-template-columns:1fr 1fr}
  .tip-list.tip-drop .tip-wide{grid-column:1/-1}
}
.tip{background:#fff;border:1px solid var(--line);border-left:4px solid var(--punch);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-s)}
.tip h3{margin:0 0 6px;border:0;padding:0}
.tip-kicker{display:inline-block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--punch);margin:0 0 .4em}
.form-success{background:#eef6f0;border:1px solid #1d6b45;border-left:4px solid #1d6b45;padding:18px 20px;border-radius:0 8px 8px 0;margin:1.5em 0}
.form-success h2{margin:0 0 .4em;border:0;padding:0;color:#145c3a;font-size:1.2rem}
.form-success ul{margin:.4em 0 0.8em}
.form-error{color:#c4141c;font-weight:700;margin:.8em 0 0}
.civic-form .check-stack{margin:.35em 0 1em}
.civic-form .check-stack label{display:flex;align-items:flex-start;gap:10px;font-weight:600;margin:.5em 0;line-height:1.4}
.civic-form .check-stack label input{margin-top:.22em}
.civic-form input[type="file"]{padding:8px 0;border:0;background:transparent}
.civic-form .field-error{color:#c4141c;font-weight:700;font-size:.88rem;margin:.35em 0 0}
.civic-form .field-error:empty{display:none}
.civic-form fieldset.check-set{border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:1rem 0}
.civic-form fieldset.check-set legend{font-family:var(--sans);font-size:.88rem;font-weight:700;color:var(--navy-800);padding:0 6px}

/* ---------- Alert slot (hidden by default) ---------- */
.site-alert{display:none;background:var(--punch);color:#fff;font-size:.92rem;font-weight:600}
.site-alert:not([hidden]){display:block}
.site-alert[hidden]{display:none!important}
.site-alert .wrap{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.site-alert p{margin:0}
.site-alert a{color:#fff;font-weight:800}

/* ---------- Sidebar Town Hall photo ---------- */
.panel-photo{margin:0 0 12px;border-radius:8px;overflow:hidden}
.panel-photo img{width:100%;height:auto;display:block;aspect-ratio:16/10;object-fit:cover}

@media (max-width:900px){
  .photo-pair{grid-template-columns:1fr}
  .civic-form .row{grid-template-columns:1fr}
}
@media (max-width:760px){
  .pd-patch-wrap{float:none;margin:0 auto 1.4em}
  .member.has-photo{grid-template-columns:1fr}
  .member-photo{width:96px;height:96px}
  .wordmark{height:38px}
  .brand-seal{width:42px;height:42px}
  .brand-seal.brand-patch,img.brand-patch{width:auto;height:46px}
}
@media (max-width:460px){
  .wordmark{height:32px}
}
@media print{
  .utilbar,.mainnav,.navtoggle,.site-foot,.searchbox,.sidebar,.hero-cta,.cal-nav,.form-actions .no-print,.site-alert{display:none!important}
  .print-only{display:block}
  .civic-form,.contract{border:0;box-shadow:none;padding:0}
  body{background:#fff}
  a{color:#000}
  .page-grid{grid-template-columns:1fr}
}


.pd-marks{display:flex;gap:22px;align-items:flex-start;justify-content:flex-end;float:right;margin:.15em 0 1.2em 1.6em}
.pd-patch-wrap{float:none;margin:0;max-width:168px}
.pd-patch{width:168px;height:auto;display:block;filter:drop-shadow(0 2px 8px rgba(72,16,8,.28))}
.pd-badge-wrap{margin:0;max-width:168px}
.pd-badge{width:168px;height:auto;display:block;filter:drop-shadow(0 2px 8px rgba(72,16,8,.28))}
@media (max-width:760px){
  .pd-marks{float:none;justify-content:center;margin:0 auto 1.4em}
  .pd-patch{width:168px}
  .pd-badge{width:168px}
}
/* ---------- Civic hub pages ---------- */
.content-wide{max-width:none}
.dir-table{font-size:.92rem}
.dir-table td{vertical-align:top}
.dir-table td:first-child{font-weight:700;color:var(--navy-800)}
.doc-hall{font-weight:700;color:var(--navy-800)}
.sitemap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px 28px;margin:1.5em 0}
.sitemap-grid h2{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);border:0;padding:0;margin:0 0 .6em}
.sitemap-grid ul{list-style:none;padding:0;margin:0}
.sitemap-grid li{padding:4px 0;font-size:.94rem}
.sitemap-grid a{text-decoration:none}
.sitemap-grid a:hover{text-decoration:underline}


/* Phone drawer — must win over earlier mega rules */
@media (max-width:980px){
  .mainnav.open{display:flex !important;background:var(--navy-900) !important;color:#fff !important}
  .mainnav .nav-tabs>li>a{color:#fff !important}
  .mainnav .mega,.mainnav .mega a,.mainnav .mega-h,.mainnav .mega-sub{color:#fff !important}
}

/* ---- Park cinematic ---- */
.park-hero{
  position:relative;min-height:min(72vh,640px);margin:0 0 0;overflow:hidden;
  background:#1a0c0a;color:#fff;
}
.park-hero-slides{position:absolute;inset:0}
.park-hero-slides img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;
  opacity:0;transform:scale(1.06);transition:opacity 1.4s ease, transform 8s ease;
  pointer-events:none;
}
.park-hero-slides img.is-on{opacity:1;transform:scale(1);pointer-events:auto}
.park-hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,8,6,.15) 0%,rgba(20,8,6,.25) 45%,rgba(20,8,6,.72) 100%);
  pointer-events:none;z-index:1;
}
.park-hero-in{
  position:relative;z-index:2;max-width:720px;padding:min(18vh,140px) 4vw 48px;
}
.park-hero-in .eyebrow{color:#f5c4c0;letter-spacing:.18em;font-size:.72rem;font-weight:700;text-transform:uppercase;margin:0 0 12px}
.park-hero-in h1{color:#fff;font-size:clamp(2.2rem,5.5vw,3.4rem);margin:0 0 .35em;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.park-hero-in p{color:#f3e8e5;font-size:1.12rem;max-width:38ch;margin:0;line-height:1.45}
.park-stage{margin:0;padding:0}
.park-panel{
  position:relative;min-height:min(58vh,520px);overflow:hidden;background:#140a08;color:#fff;
  margin:0;
}
.park-panel img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.03);transition:transform 12s ease;
}
.park-panel:hover img{transform:scale(1.08)}
.park-panel::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(18,8,6,.78) 0%,rgba(18,8,6,.35) 42%,rgba(18,8,6,.12) 100%);
}
.park-panel.from-right::after{
  background:linear-gradient(270deg,rgba(18,8,6,.78) 0%,rgba(18,8,6,.35) 42%,rgba(18,8,6,.12) 100%);
}
.park-panel-copy{
  position:relative;z-index:2;max-width:420px;padding:clamp(36px,8vw,72px) 4vw;
}
.park-panel.from-right .park-panel-copy{margin-left:auto;text-align:right}
.park-panel-copy h2{color:#fff;font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 .4em}
.park-panel-copy p{color:#f0e4e0;margin:0;font-size:1.05rem;line-height:1.5}
.park-rest{padding:2.2rem 0 3rem}
.park-rest .lede{margin-top:0}
.park-pair{
  display:grid;grid-template-columns:1.15fr .85fr;gap:14px;margin:1.6em 0 0;
}
.park-pair .page-photo{margin:0;border:0;box-shadow:none;border-radius:14px}
.park-pair .page-photo img{aspect-ratio:4/3;object-position:center}
@media (max-width:900px){
  .park-hero{min-height:52vh}
  .park-panel{min-height:46vh}
  .park-pair{grid-template-columns:1fr}
  .park-panel.from-right .park-panel-copy{text-align:left}
}
@media (prefers-reduced-motion:reduce){
  .park-hero-slides img,.park-panel img{transition:none;transform:none}
}

/* Parks hours + partner thanks */
.park-hours{margin-top:.85rem;display:inline-block;padding:.45rem .85rem;border-radius:999px;background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.25);font-size:.95rem;letter-spacing:.01em}
.park-hours strong{font-weight:700}
.park-thanks{padding:1.4rem 1.5rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-2);box-shadow:var(--shadow-s)}
.park-thanks h2{margin:0 0 .35rem;font-size:1.45rem}
.park-thanks-list{list-style:none;margin:1.1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.65rem .9rem}
.park-thanks-list li{margin:0;padding:.75rem .9rem;background:var(--paper);border:1px solid var(--line);border-radius:10px;font-weight:600;line-height:1.35;color:var(--ink)}

/* Nest swing: bias crop downward so the seat shows, not just ropes */
.park-hero-slides img.park-focus-low,
.park-panel img.park-focus-low{
  object-position:center 78%;
}
.park-hero-slides img.park-focus-mid,
.park-panel img.park-focus-mid{
  object-position:center 53%;
}
.park-hero-slides img.park-focus-high,
.park-panel img.park-focus-high,
.park-pair .page-photo img.park-focus-high{
  object-position:center 28%;
}


/* Hero: slight pull-back (less zoomed) for selected slides */
.park-hero-slides img.park-pull-back{
  transform:scale(1.03);
}
.park-hero-slides img.park-pull-back.is-on{
  transform:scale(0.92);
}
/* Playground green: nudge down a little — less sky, not a big jump */
.park-hero-slides img.park-focus-soft-low{
  object-position:center 58%;
}

.park-hero-slides img.park-focus-museum{
  object-position:center 63%;
}

.park-hero-slides img.park-pull-back-far{
  transform:scale(1.02);
  object-fit:contain;
  object-position:center 45%;
  background:#1a0c0a;
}
.park-hero-slides img.park-pull-back-far.is-on{
  transform:scale(0.78);
  object-fit:contain;
}


/* Side-by-side full photos (bike + gazebo) — no full-bleed crop */
.park-duo{
  display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0;background:#120a08;color:#fff;
}
.park-duo-card{
  margin:0;display:flex;flex-direction:column;background:#1a0c0a;min-width:0;
}
.park-duo-card img{
  width:100%;height:auto;display:block;object-fit:contain;background:#1a0c0a;
  aspect-ratio:auto;max-height:min(70vh,640px);margin:0 auto;
}
.park-duo-card figcaption{
  padding:1.1rem 1.25rem 1.35rem;border-top:1px solid rgba(255,255,255,.12);
}
.park-duo-card h2{color:#fff;font-size:clamp(1.25rem,2.2vw,1.65rem);margin:0 0 .35em}
.park-duo-card p{color:#f0e4e0;margin:0;font-size:.98rem;line-height:1.45}
@media (max-width:800px){
  .park-duo{grid-template-columns:1fr}
}

.park-hero-slides img.park-focus-mild-low,
.park-panel img.park-focus-mild-low,
.park-pair .page-photo img.park-focus-mild-low{
  object-position:center 48%;
}

/* —— Community Room rental —— */
.rental-brand{
  display:flex;align-items:center;gap:14px;margin:0 0 1.1rem;
}
.rental-brand img{
  width:72px;height:72px;display:block;flex-shrink:0;
  border-radius:50%;object-fit:cover;
}
.rental-brand .rental-brand-txt{
  font-weight:800;color:var(--navy-800);font-size:1.05rem;line-height:1.25;
}
.rental-brand .rental-brand-txt span{
  display:block;font-weight:600;font-size:.88rem;color:var(--ink-2);
}
.rate-cards{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:1.2em 0 1.6em;max-width:48rem;width:100%;
}
.rate-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:18px 20px;box-shadow:var(--shadow-s);
}
.rate-card h3{margin:0 0 .4em;border:0;padding:0;font-size:1.05rem;color:var(--navy-800)}
.rate-card .rate-price{
  font-size:1.55rem;font-weight:800;color:var(--punch);letter-spacing:-.02em;margin:.15em 0;
}
.rate-card p{margin:.4em 0 0;color:var(--ink-2);font-size:.95rem}

/* Rate option radios — avoid fieldset/legend right-shift on wide layouts */
.rate-option{margin:1.1rem 0 0;max-width:42rem;width:100%}
.rate-option-label{font-weight:700;font-size:.88rem;color:var(--navy-800);margin:0 0 .35rem}
.civic-form .rate-option-choice,
.rate-option-choice{
  display:flex !important;gap:10px;align-items:flex-start;font-weight:600;
  margin:.55rem 0;max-width:100%;width:100%;box-sizing:border-box
}
.rate-option-choice input[type="radio"]{margin-top:.35em;flex:0 0 auto}
.rate-option-choice span{flex:1 1 auto;min-width:0;line-height:1.4}
/* Keep rate cards from stretching edge-to-edge on wide screens */
.rate-cards{max-width:48rem;width:100%}
.rental-rate-note{max-width:42rem}

.policy-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin:1em 0 1.4em;
}
.policy-grid li{margin:0}
.rental-path-cards{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:1.2em 0;
}
.rental-path-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 22px;box-shadow:var(--shadow-s);display:flex;flex-direction:column;gap:10px;
}
.rental-path-card h3{margin:0;border:0;padding:0;font-size:1.1rem}
.rental-path-card p{margin:0;color:var(--ink-2);flex:1}
.rental-path-card .btn{align-self:flex-start}
.rental-path-card.is-primary{
  border-color:var(--navy-600);box-shadow:0 0 0 1px var(--navy-600), var(--shadow-s);
}
.rental-panel{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 24px;margin:1.3em 0;box-shadow:var(--shadow-s);
}
.rental-panel h3{margin-top:0}
.agreement-scroll{
  max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:8px;
  padding:14px 16px;background:var(--paper-2);font-size:.92rem;line-height:1.45;
  margin:1em 0;
}
.agreement-scroll h4{margin:1em 0 .35em;font-size:.98rem;color:var(--navy-800)}
.agreement-scroll h4:first-child{margin-top:0}
.agreement-scroll ul{margin:.35em 0 .8em;padding-left:1.2em}
.sig-pad-wrap{
  border:1px solid var(--line);border-radius:8px;background:#fff;touch-action:none;
  margin:.6em 0 0;
}
.sig-pad-wrap canvas{
  display:block;width:100%;height:160px;cursor:crosshair;border-radius:8px;
}
.rental-status{
  margin:1em 0 0;padding:12px 14px;border-radius:8px;font-weight:600;font-size:.95rem;
}
.rental-status--ok{background:#e8f6ea;color:#1a4d22;border:1px solid #b7dfbe}
.rental-status--error{background:#fdecea;color:#7a1f16;border:1px solid #f0b8b0}
.rental-status--info{background:#eef3f8;color:var(--navy-800);border:1px solid #c5d4e4}
.rental-step-label{
  display:inline-block;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;
  font-weight:800;color:var(--ink-3);margin-bottom:.5rem;
}
.amenities-list{columns:2;column-gap:1.5rem;margin:0.6em 0 1.2em}
.cr-hub-links{display:flex;flex-wrap:wrap;gap:10px;margin:1rem 0 1.6rem}
.cr-subnav{display:flex;flex-wrap:wrap;gap:.35rem .9rem;margin:0 0 1.2rem;font-size:.92rem}
.cr-subnav a{white-space:nowrap}
.addon-choice{
  display:flex;gap:10px;align-items:flex-start;font-weight:600;
  margin:1rem 0 0;max-width:42rem;width:100%;
}
.addon-choice input[type="checkbox"]{margin-top:.35em;flex:0 0 auto;width:auto}
.addon-choice span{flex:1 1 auto;min-width:0;line-height:1.4;font-weight:600}
.addon-choice .addon-note{display:block;font-weight:400;color:var(--ink-2);margin-top:.2em}
.rate-card.is-addon{border-color:var(--navy-600)}
@media (max-width:800px){
  .rate-cards,.rental-path-cards,.policy-grid{grid-template-columns:1fr}
  .amenities-list{columns:1}
}



/* Post-sign booking calendar */
.rental-book-cal{
  margin:1rem 0 .6rem;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--paper-2,#f7f3ee);
}
.rental-book-cal-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;
}
.rental-book-cal-head .rental-cal-nav{padding:.25rem .7rem;min-width:2.4rem}
.rental-book-cal-grid{
  display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center;
}
.rental-book-dow{font-size:.72rem;font-weight:800;color:var(--ink-3);padding:.2rem 0;letter-spacing:.04em}
.rental-book-empty{min-height:2.2rem}
.rental-book-day{
  appearance:none;border:1px solid transparent;background:#fff;border-radius:8px;
  min-height:2.35rem;font-weight:700;cursor:pointer;color:var(--ink);
}
.rental-book-day:hover:not([disabled]){border-color:var(--navy-600);color:var(--navy-800)}
.rental-book-day.is-today{box-shadow:inset 0 0 0 1px var(--navy-600)}
.rental-book-day.is-selected{background:var(--navy-800);color:#fff;border-color:var(--navy-800)}
.rental-book-day.is-blocked,
.rental-book-day.is-past{
  background:#f6d6d8;color:#8a3a3a;cursor:not-allowed;opacity:.85;
}
.rental-book-day[disabled]{cursor:not-allowed}
.rental-book-legend{margin:.7rem 0 0;font-size:.85rem;color:var(--ink-2)}
.rental-book-legend .swatch{
  display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-1px;margin-right:4px;
  border:1px solid var(--line);
}
.rental-book-legend .swatch.blocked{background:#f6d6d8}
.rental-book-legend .swatch.selected{background:var(--navy-800);border-color:var(--navy-800)}
.rental-book-chips{display:flex;flex-wrap:wrap;gap:8px;min-height:2rem}
.rental-chip{
  appearance:none;border:1px solid var(--navy-600);background:#eef3f8;color:var(--navy-800);
  border-radius:999px;padding:.35rem .75rem;font-weight:700;font-size:.88rem;cursor:pointer;
}
.rental-chip:hover{background:var(--navy-800);color:#fff}
.rental-confirm-summary{
  display:grid;gap:10px;margin:1rem 0;padding:14px 16px;border:1px solid var(--line);
  border-radius:var(--radius);background:#fff;
}
.rental-confirm-summary > div{display:grid;grid-template-columns:8.5rem 1fr;gap:8px;align-items:start}
.rental-confirm-summary dt{margin:0;font-weight:800;color:var(--ink-3);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
.rental-confirm-summary dd{margin:0;font-weight:600}
.rental-rate-note{
  margin:0 0 1rem;padding:12px 14px;border-radius:8px;background:#eef3f8;
  border:1px solid #c5d4e4;color:var(--navy-800);font-size:.95rem;line-height:1.45;
}
.rental-rate-note p{margin:0}
@media (max-width:800px){
  .rental-confirm-summary > div{grid-template-columns:1fr}
}

/* Archive flyer — quarter display size */
.archive-flyer-sm{max-width:min(25%,240px);margin-left:0;margin-right:auto}
.archive-flyer-sm img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}




.bookings-frame {
  margin: 0.5rem 0 1.5rem;
  border: 1px solid var(--line, #d8d0c8);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  line-height: 0;
}
.bookings-frame:empty {
  display: none;
}
.bookings-frame iframe {
  width: 100%;
  height: 720px;
  min-height: 720px;
  border: 0;
  display: block;
  background: #fff;
}


/* Community Room feedback — desktop-friendly layout */
.feedback-page {
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 1.5rem;
  padding-bottom: 3rem;
}
.feedback-content {
  width: 100%;
  max-width: 820px;
}
.feedback-form.civic-form {
  padding: 28px 32px 32px;
  margin: 1.75rem 0 2rem;
}
.feedback-form .row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 24px;
  margin-bottom: 0.35rem;
}
.feedback-form .rating-fieldset {
  border: 1px solid var(--line, #d8d0c8);
  border-radius: 10px;
  padding: 16px 18px 18px;
  margin: 1.35rem 0;
  background: var(--paper-2, #faf8f5);
}
.feedback-form .rating-fieldset legend {
  padding: 0 8px;
  font-weight: 700;
  font-size: 1rem;
  color: var(--navy-800, #1a365d);
}
.feedback-form .rating-scale {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.35rem;
  align-items: center;
  margin-top: 0.65rem;
  padding-left: 0.15rem;
}
.feedback-form .rating-scale label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  font-weight: 700;
  font-size: 1rem;
  color: var(--ink, #1a1a1a);
  cursor: pointer;
}
.feedback-form .rating-scale input[type="radio"] {
  width: 1.15rem;
  height: 1.15rem;
  margin: 0;
  display: inline-block;
  accent-color: var(--navy-800, #1a365d);
}
.feedback-form textarea {
  min-height: 7rem;
}
.feedback-form .form-actions {
  margin-top: 1.75rem;
}
@media (max-width: 640px) {
  .feedback-form.civic-form { padding: 18px 16px 22px; }
  .feedback-form .row { grid-template-columns: 1fr; gap: 0; }
  .feedback-form .rating-scale { gap: 0.55rem 1rem; }
}

/* —— Community Room public availability (homegrown) —— */
.room-availability{
  margin:1rem 0 1.5rem;
}
.room-avail-toolbar{
  margin:0 0 1rem;
}
.room-avail-search label{
  display:block;font-weight:700;font-size:.88rem;margin:0 0 .35em;color:var(--navy-800);
}
.room-avail-search-row{
  display:flex;flex-wrap:wrap;gap:10px;align-items:center;
}
.room-avail-search-row input[type="date"]{
  font:inherit;padding:.55rem .7rem;border:1px solid var(--line);border-radius:8px;
  min-width:11rem;background:#fff;
}
.room-avail-hint{margin:.55rem 0 0;font-size:.9rem}
.room-avail-cal{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 16px;box-shadow:var(--shadow-s);
}
.room-avail-day.is-available{
  background:#e8f6ea;border-color:#b7dfbe;color:#1a4d22;font-weight:700;
}
.room-avail-day.is-available:hover:not([disabled]){
  border-color:#1a4d22;color:#143b1a;
}
.room-avail-day.is-unavailable{
  background:#f6d6d8;border-color:#e8b0b4;color:#7a1f16;font-weight:700;
}
.room-avail-day.is-unavailable:hover:not([disabled]){
  border-color:#7a1f16;
}
.room-avail-day.is-out,
.room-avail-day.is-out[disabled]{
  background:#f3f1ee;color:var(--ink-3);opacity:.7;
}
.room-avail-legend{
  margin:.75rem 0 0;font-size:.85rem;color:var(--ink-2);
}
.room-avail-legend .swatch{
  display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid var(--line);
  vertical-align:middle;margin-right:2px;
}
.room-avail-legend .swatch.available{background:#e8f6ea;border-color:#b7dfbe}
.room-avail-legend .swatch.unavailable{background:#f6d6d8;border-color:#e8b0b4}
.room-avail-legend .swatch.muted-swatch{background:#f3f1ee}
.room-avail-busy-list{margin:.5rem 0 0;padding-left:1.2rem}
.room-avail-detail{margin-top:1rem}

.book-progress{
  list-style:none;display:flex;flex-wrap:wrap;gap:8px 14px;padding:0;margin:0 0 1.4rem;
}
.book-progress li{
  display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.9rem;color:var(--ink-3);
}
.book-progress li span{
  display:inline-flex;align-items:center;justify-content:center;
  width:1.6rem;height:1.6rem;border-radius:50%;font-size:.8rem;
  background:#eee;color:var(--ink-3);border:1px solid var(--line);
}
.book-progress li.is-current{color:var(--navy-800)}
.book-progress li.is-current span{background:var(--navy-800);color:#fff;border-color:var(--navy-800)}
.book-progress li.is-done{color:#1a4d22}
.book-progress li.is-done span{background:#e8f6ea;color:#1a4d22;border-color:#b7dfbe}
.book-step h2{color:var(--navy-800)}
@media (max-width:640px){
  .room-avail-search-row{flex-direction:column;align-items:stretch}
}

/* —— Citation pay (Municipal Court) —— */
.cit-form-h{
  margin:1.6rem 0 .55rem;font-size:1.15rem;border:0;padding:0;color:var(--navy-800);
}
.cit-pay-form .req{color:var(--punch);font-weight:800}
.citation-lines{
  display:flex;flex-direction:column;gap:12px;margin:.4rem 0 1rem;
}
.citation-line{
  display:grid;grid-template-columns:1.4fr minmax(7.5rem, .7fr);gap:14px;align-items:end;
}
.citation-line .cit-amt{
  max-width:100%;
  font-variant-numeric:tabular-nums;
}
.cit-addr-row{
  display:grid;grid-template-columns:1.4fr .5fr .7fr;gap:14px;
}
.cit-pay-form .cit-addr-row.row{grid-template-columns:1.4fr .5fr .7fr}
.cit-total-line{
  margin:1rem 0 .2rem;font-size:1.1rem;
}
.cit-pay-total{
  font-variant-numeric:tabular-nums;font-weight:800;color:var(--navy-800);margin-left:.25rem;
}
.fee-table{
  display:grid;gap:8px;margin:.4rem 0 0;
}
.fee-table > div{
  display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline;
  padding:8px 10px;background:#fff;border:1px solid var(--line);border-radius:8px;
}
.fee-table dt{font-weight:600;color:var(--navy-800);margin:0}
.fee-table dd{margin:0;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.cit-notice-list{margin:.5em 0 0;padding-left:1.2em}
.cit-notice-list li{margin:.35em 0}
.cit-terms-box{
  background:var(--paper-2);border:1px solid var(--line);border-radius:8px;
  padding:12px 16px;margin:.5rem 0 1rem;font-size:.92rem;
}
.cit-terms-box ul{margin:.4em 0 0;padding-left:1.2em}
.cit-ack-label{
  display:flex !important;gap:10px;align-items:flex-start;font-weight:600 !important;
  margin:1em 0 !important;cursor:pointer;
}
.cit-ack-label input[type="checkbox"]{
  margin-top:.35em;flex-shrink:0;
}
.cit-pay-confirm{margin:1.3em 0}
.cit-confirm-list{margin:.35em 0 0;padding-left:1.2em}
.cit-fee-callout strong{display:block;margin-bottom:.15em}
@media (max-width:640px){
  .citation-line{grid-template-columns:1fr}
  .cit-pay-form .cit-addr-row.row,
  .cit-addr-row{grid-template-columns:1fr}
  .fee-table > div{grid-template-columns:1fr;gap:2px}
}

/* —— Citation pay layout + ticket guide —— */
.cit-pay-layout{
  display:grid;
  gap:1.5rem;
  margin:1.25rem 0 0;
}
.cit-pay-main{min-width:0}
.cit-pay-guide{
  background:var(--paper-2,#f7f5f1);
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px 14px 16px;
  min-width:0;
}
.cit-guide-h{
  margin:0 0 .4rem;font-size:1.05rem;border:0;padding:0;color:var(--navy-800);
}
.cit-guide-lede{margin:0 0 .75rem;font-size:.88rem;line-height:1.4}
.cit-ticket-zoom{
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  cursor:zoom-in;
  touch-action:manipulation;
  max-height:min(70vh, 640px);
}
.cit-ticket-zoom-inner{
  position:relative;
  display:block;
  width:100%;
  transition:transform .12s ease-out;
  transform-origin:50% 35%;
  will-change:transform;
}
.cit-ticket-zoom-inner img{
  display:block;
  width:100%;
  height:auto;
  vertical-align:top;
}
.cit-ticket-zoom-inner .cit-ticket-overlay{
  position:absolute;
  left:0;top:0;
  width:100%;
  height:100%;
  pointer-events:none;
}
.cit-ticket-zoom.is-zoomed{cursor:zoom-out}
.cit-guide-legend{
  list-style:none;margin:.75rem 0 0;padding:0;font-size:.86rem;
}
.cit-guide-legend li{
  display:flex;gap:8px;align-items:flex-start;margin:.35rem 0;line-height:1.35;
}
.cit-legend-dot{
  flex:0 0 auto;width:12px;height:12px;margin-top:.2em;
  border:2.5px solid #d32f2f;border-radius:50%;
}
.cit-guide-zoom-hint{margin:.65rem 0 0;font-size:.8rem}
.cit-sample-hint{
  margin:0 0 .85rem;font-size:.9rem;color:var(--navy-800);
  background:#fff8f0;border-left:3px solid #d32f2f;padding:.45rem .7rem;border-radius:0 6px 6px 0;
}
.cit-pay-missing{
  margin:.85rem 0 .5rem;padding:10px 14px;border-radius:8px;
  background:#fdecea;color:#7a1f16;border:1px solid #f0b8b0;font-size:.92rem;
}
.cit-pay-missing-title{margin:0 0 .35rem;font-weight:800}
.cit-pay-missing ul{margin:0;padding-left:1.2em}
.cit-pay-missing li{margin:.2em 0}
.cit-pay-helper{
  margin:.45rem 0 0;font-size:.9rem;color:#7a1f16;font-weight:600;
}
.cit-pay-form input.is-invalid,
.cit-pay-form textarea.is-invalid,
.cit-pay-form select.is-invalid,
.cit-pay-form .is-invalid{
  border-color:#c62828 !important;
  box-shadow:0 0 0 2px rgba(198,40,40,.18);
  outline:none;
}
.cit-ack-label.is-invalid{
  outline:2px solid #c62828;outline-offset:4px;border-radius:6px;padding:4px;
}
.cf-turnstile.is-invalid{
  outline:2px solid #c62828;outline-offset:4px;border-radius:6px;
}
@media (max-width:959px){
  .cit-pay-guide{order:-1}
  .cit-ticket-zoom{max-height:min(55vh, 480px)}
}
@media (min-width:960px){
  .cit-pay-layout{
    grid-template-columns:minmax(0,1fr) minmax(260px,340px);
    align-items:start;
    gap:1.75rem;
  }
  .cit-pay-guide{
    position:sticky;
    top:1rem;
    align-self:start;
  }
  .cit-ticket-zoom{max-height:min(75vh, 720px)}
}


/* ---------- Location map embed ---------- */
.map-block{margin:1.2rem 0 1.4rem}
.map-block h2{margin-bottom:.35em}
.map-embed{
  position:relative;
  width:100%;
  max-width:420px;
  aspect-ratio:4/3;
  min-height:180px;
  max-height:240px;
  border-radius:10px;
  overflow:hidden;
  border:1px solid var(--line,#d8d0c8);
  background:#e8e4df;
}
.map-embed iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
@media (max-width:760px){
  .map-embed{max-width:100%;aspect-ratio:4/3;min-height:160px;max-height:220px}
}

label.check{display:flex;gap:.55rem;align-items:flex-start;margin:.75rem 0;font-size:.95rem;line-height:1.35}
label.check input{margin-top:.25rem;flex:0 0 auto}

/* ---------- Online police report ---------- */
.cr-not-for{background:#fdf8ee;border:1px solid var(--line);border-left:4px solid var(--punch);border-radius:0 8px 8px 0;padding:16px 20px;margin:1.2em 0}
.cr-not-for h2{margin-top:0;border:0;padding:0;font-size:1.15rem}
.cr-not-for ul{margin:.4em 0 0;padding-left:1.2em}
.cr-not-for li{margin:.35em 0}
.civic-form fieldset{border:0;margin:1.6em 0 0;padding:0}
.civic-form legend{font-family:var(--display);font-weight:800;color:var(--navy-800);font-size:1.13rem;padding:0;margin:0 0 .35em;display:block}
.civic-form fieldset.check-set{border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:1rem 0}
.civic-form fieldset.check-set legend{font-family:var(--sans);font-size:.88rem;font-weight:700;padding:0 6px;margin:0}
.civic-form .row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.cr-type-tools{margin:.35rem 0 12px}
.cr-type-tools input[type="search"]{margin:0}
.cr-type-cats{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.cr-type-cat{
  min-height:40px;padding:6px 12px;border-radius:999px;border:1.5px solid var(--line);
  background:#fff;color:var(--ink-2);font:inherit;font-size:.88rem;font-weight:700;cursor:pointer
}
.cr-type-cat:hover{border-color:var(--navy-700)}
.cr-type-cat.is-on{background:var(--navy-800);border-color:var(--navy-800);color:#fff}
.cr-type-radios{display:grid;gap:8px;margin:0}
.civic-form label.cr-type-card,
.cr-type-card{
  display:flex;gap:12px;align-items:flex-start;margin:0;padding:12px 14px;
  border:2px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;font-weight:400;font-size:1rem;color:var(--ink)
}
.civic-form label.cr-type-card:hover,.cr-type-card:hover{border-color:#c9b8b4}
.civic-form label.cr-type-card.is-on,.cr-type-card.is-on{border-color:var(--punch);box-shadow:var(--shadow-s)}
.cr-type-card input[type="radio"]{margin-top:.35rem;accent-color:var(--punch)}
.cr-type-card-body{min-width:0;flex:1}
.cr-type-card-title{display:block;font-family:var(--display);font-weight:800;color:var(--navy-800);font-size:1.02rem}
.cr-type-card-cat{display:block;margin-top:2px;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}
.cr-type-card-def{display:block;margin-top:6px;font-size:.9rem;color:var(--ink-2);line-height:1.45}
.cr-type-card-def.is-clamp{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden
}
.cr-type-card-exh{display:block;margin-top:10px;font-weight:800;color:var(--ink)}
.cr-type-card ul{margin:.35rem 0 0;padding-left:1.2em}
.cr-incident-help{background:var(--paper-2);border:1px solid var(--line);border-radius:8px;padding:12px 16px;margin:.6em 0 0;font-size:.92rem}
.cr-incident-help h3{margin:0 0 .35em;border:0;padding:0;font-size:1rem}
.cr-incident-help[hidden],.cr-home-hint[hidden],.cr-jurisdiction-msg[hidden],.cr-verify-card[hidden],.cr-verify-stale[hidden],.cr-verify-err[hidden],.cr-off-home-box[hidden],#cr-mailing-ack-wrap[hidden],#cr-success[hidden]{display:none}
.cr-home-hint{background:#eef6f1;border-left:4px solid var(--green);padding:10px 14px;margin:.7em 0;border-radius:0 8px 8px 0;font-size:.92rem}
.cr-jurisdiction-msg{margin:.6em 0;padding:10px 14px;border-radius:8px;font-size:.92rem}
.cr-jurisdiction-msg.is-ok{background:#eef6f1;border:1px solid #b7d4c4}
.cr-jurisdiction-msg.is-warn{background:#fdf8ee;border:1px solid #e6d2a8}
.cr-jurisdiction-msg.is-bad{background:#fdeeee;border:1px solid #e8b4b4}
.cr-street-row{display:grid;grid-template-columns:minmax(7.5rem,9.5rem) 1fr;gap:14px}
.cr-verify-actions{margin:1rem 0 .35rem}
.cr-verify-help{margin:.45rem 0 0;font-size:.88rem}
.cr-verify-err{margin:.5rem 0;font-size:.92rem;font-weight:700;color:var(--punch)}
.cr-verify-stale{margin:.6em 0;padding:10px 14px;border-radius:8px;font-size:.92rem;background:#fdf8ee;border:1px solid #e6d2a8}
.cr-verify-card{margin:.6em 0;padding:12px 14px;border-radius:8px;font-size:.92rem}
.cr-verify-card.is-ok{background:#eef6f1;border:1px solid #b7d4c4}
.cr-verify-card.is-warn{background:#fdf8ee;border:1px solid #e6d2a8}
.cr-verify-card.is-danger{background:#fdeeee;border:1px solid #e8b4b4}
.cr-verify-title{margin:0;font-family:var(--display);font-weight:800;font-size:1.05rem;color:var(--navy-800)}
.cr-verify-meta{margin:.4rem 0 0;color:var(--ink-2);font-size:.9rem}
.cr-verify-notes{margin:.55rem 0 0}
.cr-off-home-box{margin:.7em 0;padding:12px 14px;border-radius:8px;background:#eef6f1;border:1px solid #b7d4c4}
.cr-off-home-box.is-warn{background:#fdf8ee;border:1px solid #e6d2a8}
.cr-off-home-box.is-danger{background:#fdeeee;border:1px solid #e8b4b4}
.cr-sig-wrap{border:1.5px solid var(--line);border-radius:8px;background:#fff;touch-action:none;margin:.35em 0}
.cr-sig-wrap canvas{display:block;width:100%;height:160px;cursor:crosshair;border-radius:8px}
.cr-photo-item{border:1px solid var(--line);border-radius:8px;padding:12px;margin:.8em 0;background:var(--paper-2);display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:start}
.cr-photo-item img{width:96px;height:96px;object-fit:cover;border-radius:6px;background:#fff}
.cr-photo-item .cr-photo-meta label{margin-top:0}
.cr-status{margin:1em 0;padding:12px 16px;border-radius:8px}
.cr-status.is-error{background:#fdeeee;border:1px solid #e8b4b4;color:var(--navy-800)}
.cr-status.is-ok{background:#eef6f1;border:1px solid #b7d4c4}
.cr-success{background:#fff;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:0 8px 8px 0;padding:20px 22px;margin:1.2em 0}
.cr-success h2{margin-top:0;border:0;padding:0}
.cr-conf{font-size:1.35rem;font-weight:800;letter-spacing:.04em;color:var(--navy-800)}
.cr-secure{font-size:.92rem}

/* Online Police Report — grok.me-style how-to + wizard */
.cr-hero{background:var(--navy-900);color:#fff;padding:2.1rem 0 2.2rem;margin:0 0 0}
.cr-hero .wrap{max-width:760px}


.cr-hero.cr-hero--banner{padding:0;padding-left:0;padding-right:0;padding-top:0}
.cr-hero.cr-hero--banner .wrap{max-width:none;padding-left:0;padding-right:0}
.cr-hero.cr-hero--banner .opr-hero-frame{border-radius:0;box-shadow:none}
.cr-hero.cr-hero--banner .opr-hero-overlay{padding-left:clamp(16px,3vw,36px);padding-right:clamp(16px,3vw,36px)}


.opr-hero-overlay{
  position:absolute;left:0;right:0;top:62%;bottom:0;
  width:100%;
  z-index:2;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1.2rem;
  padding:.35rem 1.1rem .9rem;
  border-radius:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(6,8,14,.7) 35%, rgba(6,8,14,.92) 100%);
  box-shadow:none;
}
.opr-hero-overlay .opr-hero-lede{
  margin:0;flex:1 1 280px;max-width:none;font-size:.92rem;color:#ece6e0;line-height:1.4;
}
.opr-hero-overlay .cr-hero-actions{margin-top:0;flex:0 0 auto}
.cr-hero--banner .emergency-bar{margin:1rem 0 0}
@media (max-width:820px){
  .opr-hero-overlay{
    position:relative;flex-direction:column;align-items:stretch;
    background:rgba(8,10,16,.95);
  }
}

.opr-hero-frame{position:relative;border-radius:12px;overflow:hidden;box-shadow:0 14px 36px rgba(0,0,0,.35)}
.opr-hero-frame .opr-hero-banner-link{display:block;line-height:0;border-radius:0;box-shadow:none}
.opr-hero-frame .opr-hero-banner-link:hover,.opr-hero-frame .opr-hero-banner-link:focus-visible{outline:none}
.opr-hero-frame:focus-within .opr-hero-banner-link{outline:2px solid var(--gold-light);outline-offset:3px}
.opr-hero-emerg{
  position:absolute;right:3%;bottom:4%;
  width:min(520px,62%);
  margin:0;gap:2px;z-index:2;
  box-shadow:0 10px 28px rgba(0,0,0,.45);
}
.opr-hero-emerg .emerg-main,.opr-hero-emerg .emerg-alt{padding:12px 14px}
.opr-hero-emerg .emerg-num,.opr-hero-emerg .emerg-num2{font-size:1.25rem}
.opr-hero-emerg .emerg-sub{font-size:.78rem}
.opr-hero-emerg .emerg-label{font-size:.68rem}
@media (max-width:820px){
  .opr-hero-emerg{position:relative;right:auto;bottom:auto;width:100%;border-radius:0}
  .opr-hero-frame{overflow:hidden}
}

.opr-hero-banner-link{display:block;line-height:0;border-radius:12px;overflow:hidden;box-shadow:0 14px 36px rgba(0,0,0,.35)}
.opr-hero-banner-link:hover,.opr-hero-banner-link:focus-visible{outline:2px solid var(--gold-light);outline-offset:3px}
.opr-hero-banner{width:100%;height:auto;display:block;aspect-ratio:auto;object-fit:contain;object-position:center top;background:#05070c}
.opr-hero-lede{margin:1.1rem 0 0;max-width:46rem}
@media (max-width:700px){
  .opr-hero-banner{aspect-ratio:16/11}
}

.cr-hero.cr-hero--split .wrap,
.cr-hero-split{max-width:1100px}
.cr-hero-split{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(220px,.85fr);
  gap:1.6rem 2rem;align-items:center;
}
.cr-hero-visual{
  display:flex;flex-direction:column;align-items:center;gap:1rem;
}
.cr-hero-visual > img:first-child{
  width:min(280px,70%);height:auto;filter:drop-shadow(0 10px 24px rgba(0,0,0,.35));
}


.cr-hero-report-link{display:inline-block;line-height:0;border-radius:14px;transition:transform .15s ease,box-shadow .15s ease}
.cr-hero-report-link:hover,.cr-hero-report-link:focus-visible{transform:translateY(-2px);outline:2px solid var(--gold-light);outline-offset:4px}
.cr-hero-report-link:focus-visible{outline:2px solid var(--gold-light)}

.cr-hero-report-art{
  width:100%;max-width:380px;height:auto;border-radius:14px;
  box-shadow:0 14px 32px rgba(0,0,0,.35);background:#f4efe6;
}
@media (max-width:820px){
  .cr-hero-report-art{max-width:260px}
}

.cr-hero-cruiser{
  width:100%;max-width:420px;height:auto;border-radius:12px;border:1px solid rgba(255,255,255,.18);
  object-fit:cover;aspect-ratio:16/10;box-shadow:0 12px 28px rgba(0,0,0,.35);
}
@media (max-width:820px){
  .cr-hero-split{grid-template-columns:1fr}
  .cr-hero-visual{order:-1;flex-direction:row;justify-content:center;flex-wrap:wrap}
  .cr-hero-visual > img:first-child{width:140px}
  .cr-hero-cruiser{max-width:280px}
}

.cr-hero .cr-kicker{margin:0 0 .7rem;font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-light)}
.cr-hero h1{color:#fff;border:0;padding:0;margin:0 0 .55rem}
.cr-hero .lede{color:#ece6e0;font-size:1.08rem;max-width:42rem}
.cr-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:1.1rem}
.cr-hero .btn-primary{background:var(--punch);border-color:var(--punch);color:#fff}
/* Report FAQ must stay readable on the maroon hero — not white-on-maroon-ghost / hover-only. */
main .cr-hero a.btn-ghost,
.cr-hero .btn-ghost,
main .cr-hero a.cr-faq-btn,
.cr-hero .cr-faq-btn{
  background:#fff;color:var(--navy-800);border:2px solid #fff
}
main .cr-hero a.btn-ghost:hover,
.cr-hero .btn-ghost:hover,
main .cr-hero a.cr-faq-btn:hover,
.cr-hero .cr-faq-btn:hover,
main .cr-hero a.btn-ghost:focus-visible,
.cr-hero .cr-faq-btn:focus-visible{
  background:var(--punch);border-color:var(--punch);color:#fff
}
.cr-page{max-width:820px}
.cr-page h2{margin-top:2rem}
.cr-type-list{columns:1;gap:2rem;margin:.6rem 0 0;padding:0;list-style:none}
@media (min-width:640px){.cr-type-list{columns:2}}
.cr-type-list li{break-inside:avoid;margin:0 0 .35rem;font-size:.92rem}
.cr-type-list strong{color:var(--navy-800)}
.cr-type-list span{color:var(--ink-3)}
.cr-faq dt{font-family:var(--display);font-weight:800;color:var(--navy-800);margin:1.1rem 0 .2rem}
.cr-faq dd{margin:0 0 .8rem;padding-bottom:.8rem;border-bottom:1px solid var(--line)}
.cr-wizard{margin-top:1.4rem}
.cr-stepper{display:flex;flex-wrap:wrap;gap:6px 10px;list-style:none;margin:0 0 1rem;padding:0;counter-reset:crstep}
.cr-stepper li{counter-increment:crstep;font-size:.78rem;color:var(--ink-3);padding:4px 0}
.cr-stepper li::before{content:counter(crstep) ". ";font-weight:800;color:var(--navy-800)}
.cr-stepper li.is-current{color:var(--navy-800);font-weight:800}
.cr-stepper li.is-done{color:var(--green)}
.cr-step-meta{font-size:.88rem;color:var(--ink-3);margin:0 0 .8rem}
.cr-panel[hidden]{display:none !important}
.cr-wizard-nav{display:flex;flex-wrap:wrap;gap:10px;margin-top:1.4rem}
.cr-wizard-nav [hidden]{display:none!important}
.cr-otp-box,.cr-copy-box{border:1px solid var(--line);background:var(--paper-2);border-radius:8px;padding:14px 16px;margin:0 0 1rem}
.cr-otp-box h3,.cr-copy-box h3{margin:0 0 .35rem;border:0;padding:0;font-size:1.05rem}
.cr-otp-code{max-width:14rem;text-align:center;font-family:var(--display);font-size:1.45rem;letter-spacing:.35em;font-weight:800}
.cr-otp-ok{background:#eef6f1;border:1px solid #b7d4c4;border-radius:8px;padding:14px 16px;color:var(--navy-800)}
.cr-review{margin:0;display:grid;gap:8px}
.cr-review div{display:grid;grid-template-columns:minmax(8rem,12rem) 1fr;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:.92rem}
.cr-review dt{margin:0;font-weight:700;color:var(--navy-800)}
.cr-review dd{margin:0;white-space:pre-wrap}
.cr-progress{height:6px;background:var(--paper-3);border-radius:99px;overflow:hidden;margin:0 0 1rem}
.cr-progress > span{display:block;height:100%;background:var(--navy-800);width:0}
@media (max-width:640px){
  .cr-stepper{display:none}
  .cr-review div{grid-template-columns:1fr}
}
@media print{
  .cr-hero-actions,.cr-wizard-nav,.cr-stepper,.cr-progress{display:none !important}
}
@media (max-width:900px){
  .civic-form .row-3{grid-template-columns:1fr}
  .cr-photo-item{grid-template-columns:1fr}
  .cr-street-row{grid-template-columns:1fr}
}

/* ---------- Police Officer employment application ---------- */
.app-help{
  background:#fdeeee;border:1px solid #e8b4b4;border-left:6px solid var(--punch);
  border-radius:0 10px 10px 0;padding:16px 20px;margin:0 0 1.4em
}
.app-help p{margin:0}
.app-help strong{color:var(--navy-800)}
.app-help a{font-weight:800}
.app-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 1.2em}
.app-toc{
  position:sticky;top:62px;z-index:40;background:#fff;border:1px solid var(--line);
  border-radius:10px;padding:10px 12px;margin:0 0 1.4em;box-shadow:var(--shadow-s)
}
.app-toc-label{display:block;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:0 0 6px}
.app-toc-list{display:flex;flex-wrap:wrap;gap:6px 10px;list-style:none;margin:0;padding:0}
.app-toc-list a{font-size:.82rem;font-weight:700;text-decoration:none;color:var(--navy-800);padding:4px 8px;border-radius:6px;background:var(--paper-2)}
.app-toc-list a:hover,.app-toc-list a.is-on{background:var(--navy-800);color:#fff}
.app-section{scroll-margin-top:130px}
.app-section > h2{margin-top:1.6rem}
.app-q{border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:.7em 0;background:#fff}
.app-q p{margin:0 0 .5em}
.app-yn{display:flex;flex-wrap:wrap;gap:14px 22px}
.app-yn label{display:flex;align-items:center;gap:8px;margin:0;font-weight:700}
.app-doc-grid{display:grid;gap:12px}
.app-doc-card{
  border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--paper-2)
}
.app-doc-card.is-required{border-left:4px solid var(--punch)}
.app-doc-card.is-applicable{border-left:4px solid var(--navy-700)}
.app-doc-card.is-optional{border-left:4px solid var(--green)}
.app-doc-card h3{margin:0 0 .25em;border:0;padding:0;font-size:1.02rem}
.app-doc-card .app-doc-tag{
  display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  margin-bottom:6px;color:var(--navy-800)
}
.app-doc-card.is-missing{background:#fdeeee;border-color:#e8b4b4}
.app-doc-file[hidden],.app-repeat-row[hidden]{display:none !important}
.app-sig-wrap{border:1.5px solid var(--line);border-radius:8px;background:#fff;touch-action:none;margin:.35em 0}
.app-sig-wrap canvas{display:block;width:100%;height:150px;cursor:crosshair;border-radius:8px}
.app-legal{background:var(--paper-2);border:1px solid var(--line);border-radius:8px;padding:14px 16px;font-size:.95rem}
.app-legal h3{margin-top:0;border:0;padding:0}
.app-success{background:#fff;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:0 8px 8px 0;padding:20px 22px;margin:1.2em 0}
.app-success h2{margin-top:0;border:0;padding:0}
.app-conf{font-size:1.35rem;font-weight:800;letter-spacing:.04em;color:var(--navy-800)}
.app-missing-list{background:#fdeeee;border:1px solid #e8b4b4;border-radius:8px;padding:12px 16px}
.app-status{margin:1em 0;padding:12px 16px;border-radius:8px}
.app-status.is-error{background:#fdeeee;border:1px solid #e8b4b4}
.app-status.is-ok{background:#eef6f1;border:1px solid #b7d4c4}
.app-add{margin:.4em 0 1em}
.app-gate{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin:0 0 1.6em}
.app-gate legend{font-size:1.05rem}
.app-path-choice{display:grid;gap:12px;margin:12px 0}
.app-path-choice label{display:block;border:1.5px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--paper-2);cursor:pointer;font-weight:700}
.app-path-choice label:has(input:checked){border-color:var(--navy-800);background:#eef3f8}
.app-path-choice .muted{font-weight:500;display:block;margin:.35em 0 0}
.app-otp-code{max-width:10rem;letter-spacing:.28em;font-size:1.25rem;font-weight:800}
.app-otp-ok{background:#eef6f1;border:1px solid #b7d4c4;border-radius:8px;padding:12px 16px}
.app-na-check{margin:.4em 0 1em}
.app-own-block{margin-top:3.2rem;padding-top:2.2rem;border-top:1px solid var(--line)}
.app-reveal[hidden],.app-repeat-row[hidden]{display:none !important}
.civic-form .row-5{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
@media (max-width:900px){
  .civic-form .row-5{grid-template-columns:1fr 1fr}
  .app-toc{top:54px}
}
@media print{
  .app-toc,.app-toolbar,.app-help,.no-print,.app-add,input[type="file"],.app-sig-tools,.navtoggle,.site-alert{display:none !important}
  .app-doc-card,.app-q,.app-repeat-row{break-inside:avoid}
  .civic-form input,.civic-form textarea,.civic-form select{border:0;border-bottom:1px solid #999;border-radius:0;background:transparent}
}

/* ---------- Town / PD intake + application stubs ---------- */
.intake-type{
  display:grid;gap:10px;margin:.4rem 0 1rem
}
.intake-type label{
  display:block;margin:0;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;
  background:var(--paper-2);font-weight:700;cursor:pointer
}
.intake-type label:has(input:checked){border-color:var(--navy-800);background:#eef3f8}
.intake-type .muted{display:block;font-weight:500;margin:.25em 0 0}
.intake-success{
  background:#fff;border:1px solid var(--line);border-left:4px solid var(--green);
  border-radius:0 8px 8px 0;padding:20px 22px;margin:1.2em 0
}
.intake-success h2{margin-top:0;border:0;padding:0}
.intake-conf{font-size:1.35rem;font-weight:800;letter-spacing:.04em;color:var(--navy-800)}
.intake-status{margin:1em 0;padding:12px 16px;border-radius:8px}
.intake-status.is-error{background:#fdeeee;border:1px solid #e8b4b4}
.intake-status.is-ok{background:#eef6f1;border:1px solid #b7d4c4}
.intake-status.is-info{background:#f4f1ec;border:1px solid var(--line)}
.pay-stub{
  border:1px solid var(--line);background:var(--paper-2);border-radius:10px;padding:18px 20px;margin:1.2em 0
}
.pay-stub h3{margin:0 0 .35em;border:0;padding:0;font-size:1.05rem}
.pay-stub-amt{font-size:1.7rem;font-weight:800;color:var(--navy-800);margin:.2em 0}
.pay-stub-amt small{display:block;font-size:.85rem;font-weight:700;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase}
.pay-stub .btn[disabled]{opacity:.55;cursor:not-allowed}
.app-stub-note{
  background:#fff8f0;border-left:4px solid var(--gold-dark);padding:12px 14px;border-radius:0 8px 8px 0;margin:0 0 1.2em
}

/* Planning Commission applications — two clearly separated paths */
.zoning-paths{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:1.6em 0}
.zoning-path{
  background:#fff;border:1px solid var(--line);border-top:4px solid var(--navy-600);
  border-radius:0 0 10px 10px;padding:18px 20px
}
.zoning-path.is-online{border-top-color:var(--green)}
.zoning-path h2{margin:.1em 0 .5em;border:0;padding:0;font-size:1.2rem}
.zoning-path ul{margin:.5em 0 .9em;padding-left:1.15em}
.zoning-path li{margin:.3em 0}
.zoning-path-tag{
  font-family:var(--sans);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);margin:0
}
#zoning-app [hidden]{display:none!important}
#zoning-app .rental-confirm-summary:empty{display:none}
#z-docs-host h3{margin:1.6em 0 .6em;border:0;padding:0;font-size:1.05rem}
#z-docs-host h3:first-child{margin-top:0}
.app-doc-meta.is-error{color:#7a1f16;font-weight:700}
.app-doc-card input[type="file"]{
  display:block;width:100%;margin:.3em 0 .2em;font-size:.92rem
}
@media (max-width:820px){
  .zoning-paths{grid-template-columns:1fr}
}


/* Softer lead photos (Town Hall and similar) — less overwhelming than full-bleed */

/* Department / feature hero photos — taller than default 16/8 page-photo crop */

/* PD challenge coin — compact block: text left, small video beside it */
.pd-coin{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:1.25rem 1.75rem;
  margin:1.5rem 0 1rem;
}
.pd-coin-text{
  flex:1 1 18rem;
  min-width:0;
}
.pd-coin-text h2{margin-top:0}
.pd-coin-text p{margin-bottom:0}
.page-photo.pd-coin-video{
  flex:0 0 auto;
  width:min(300px,100%);
  max-width:100%;
  margin:0;
  background:#0a0a0a;
  box-shadow:none;
  border:0;
  float:none;
}

.page-photo.pd-coin-video video.pd-coin-autoplay{
  pointer-events:none;
}
.page-photo.pd-coin-video video.pd-coin-autoplay::-webkit-media-controls{display:none !important}

.page-photo.pd-coin-video video{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  aspect-ratio:auto;
  background:#0a0a0a;
}
@media (max-width:640px){
  .page-photo.pd-coin-video{width:min(260px,100%)}
}
.pd-coin-clear{clear:both;height:0}

/* Lexipol / multi-year awards strip */
.awards-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
  margin:0 0 1.6em;
}
.award-card{
  margin:0;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow-s);
  background:#0a0a0a;
  display:flex;
  flex-direction:column;
}
.award-card img{
  width:100%;
  height:auto;
  aspect-ratio:4/5;
  object-fit:contain;
  object-position:center;
  display:block;
  background:#0a0a0a;
}
.award-card figcaption{
  padding:10px 12px;
  font-size:.82rem;
  color:var(--ink-3);
  background:var(--paper-2);
  text-align:center;
  line-height:1.35;
}
.award-card figcaption strong{color:var(--ink);font-weight:700}
@media (max-width:900px){
  .awards-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){
  .awards-strip{grid-template-columns:1fr;max-width:320px;margin-left:auto;margin-right:auto}
}

.award-links{font-size:.9rem;color:var(--ink-3);margin-bottom:1.6em}

/* About the Chief — name line sits under the section heading, not competing with it */
.chief-name{
  margin:-.2em 0 .7em;
  font-size:1.05rem;
  color:var(--ink-2);
  font-weight:700;
}

/* Earlier recognition — deliberately secondary to the Gold/Elite strip above */
.award-earlier{
  display:flex;
  align-items:center;
  gap:14px;
  max-width:620px;
  margin:0 0 1.6em;
  padding:14px 16px;
  border:1px solid var(--line);
  border-left:4px solid var(--paper-3);
  border-radius:var(--radius);
  background:var(--paper-2);
}
.award-earlier img{
  flex:0 0 84px;
  width:84px;
  height:auto;
  aspect-ratio:4/5;
  object-fit:contain;
  border-radius:6px;
  background:#0a0a0a;
}
.award-earlier-body{min-width:0}
.award-earlier h3{
  margin:0 0 .3em;
  font-size:.95rem;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--ink-3);
}
.award-earlier p{
  margin:0;
  font-size:.9rem;
  color:var(--ink-3);
  line-height:1.5;
}
.award-earlier strong{color:var(--ink-2)}
.award-earlier .award-year{font-family:var(--display);font-weight:800;color:var(--ink-2)}
@media (max-width:520px){
  .award-earlier{flex-direction:column;align-items:flex-start}
}

.page-photo.page-photo-hero img{
  aspect-ratio:16/10;
  max-height:min(520px,70vh);
  width:100%;
  object-fit:cover;
  object-position:center 68%;
}
@media (min-width:900px){
  .page-photo.page-photo-hero img{max-height:560px}
}

.page-photo.is-lead{
  max-width:min(720px,100%);
  margin-left:auto;margin-right:auto;
}
.page-photo.is-lead img{
  aspect-ratio:16/10;
  max-height:340px;
  width:100%;
  object-fit:cover;
  object-position:center 45%;
}
@media (min-width:900px){
  .page-photo.is-lead{max-width:640px}
  .page-photo.is-lead img{max-height:300px}
}

/* —— Library hub (scoped .lib-*) —— */
.lib-eyebrow{
  margin:.15em 0 .4em;
  font-size:.76rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:800;
  color:var(--punch);
}
.lib-welcome{
  display:grid;
  grid-template-columns:minmax(160px,300px) 1fr;
  gap:1.15rem 1.6rem;
  align-items:center;
  margin:0 0 1.75em;
}
.lib-welcome .page-photo.library-hero{
  margin:0;
  max-width:100%;
}
.lib-welcome-copy p{
  margin:0;
  color:var(--ink-2);
  font-size:1.02rem;
  line-height:1.55;
}
.lib-explore{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.15rem 1.2rem 1.35rem;
  margin:1.5em 0;
}
.lib-explore h2{margin-top:0}
.lib-card-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin:1rem 0 .2rem;
}
.lib-card{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  text-decoration:none;
  color:inherit;
  box-shadow:var(--shadow-s);
  transition:transform .15s, box-shadow .15s;
}
.lib-card:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-m);
}
.lib-card:focus-visible{
  outline:3px solid var(--punch);
  outline-offset:2px;
}
.lib-card img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  object-position:center;
  display:block;
  background:var(--paper-2);
}
.lib-card-label{
  display:block;
  padding:.72rem .9rem;
  font-weight:800;
  font-size:.95rem;
  line-height:1.3;
  color:var(--maroon);
  background:var(--paper);
  border-top:1px solid var(--line);
}
.lib-walkin{
  border-left-color:var(--punch);
  background:var(--paper);
}
.lib-walkin p{margin:0}
.lib-visit{margin:1.6em 0 0}
.lib-hours-h{
  font-size:1.05rem;
  margin:1.35em 0 .55em;
  color:var(--navy-800);
}
@media (max-width:900px){
  .lib-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .lib-welcome{grid-template-columns:1fr}
  .lib-welcome .page-photo.library-hero{
    max-width:280px;
    margin-left:auto;
    margin-right:auto;
  }
}
@media (max-width:520px){
  .lib-card-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .lib-card{transition:none}
  .lib-card:hover{transform:none}
}

/* —— Library event photo scroll / carousel —— */
.lib-photo-scroll{
  position:relative;
  margin:0 0 1.6em;
}
.lib-photo-scroll-track{
  display:flex;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  gap:14px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding:.35rem 2.6rem .55rem;
  scroll-padding-inline:2.6rem;
}
.lib-photo-scroll-track::-webkit-scrollbar{display:none}
.lib-photo-scroll-item{
  flex:0 0 min(85%,420px);
  scroll-snap-align:center;
  min-width:0;
}
.lib-photo-scroll-item figure{
  margin:0;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow-s);
  background:#fff;
}
.lib-photo-scroll-item img{
  width:100%;
  height:auto;
  display:block;
  aspect-ratio:4/3;
  object-fit:contain;
  object-position:center;
  background:var(--paper-2);
}
.lib-photo-scroll-item figcaption{
  padding:10px 14px;
  font-size:.86rem;
  color:var(--ink-3);
  background:var(--paper-2);
  border-top:1px solid var(--line);
}
.lib-photo-scroll-btn{
  position:absolute;
  top:42%;
  transform:translateY(-50%);
  z-index:2;
  width:2.35rem;
  height:2.35rem;
  padding:0;
  border-radius:50%;
  background:rgba(247,242,235,.94);
  color:var(--maroon);
  border:2px solid var(--maroon);
  font-size:1.35rem;
  line-height:1;
  font-weight:700;
  cursor:pointer;
  box-shadow:var(--shadow-s);
}
.lib-photo-scroll-btn:hover{
  background:var(--maroon);
  color:#fff;
}
.lib-photo-scroll-btn:disabled{
  opacity:.35;
  cursor:default;
  background:rgba(247,242,235,.7);
  color:var(--maroon);
}
.lib-photo-scroll-prev{left:4px}
.lib-photo-scroll-next{right:4px}
.lib-photo-scroll-dots{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
  margin:.15rem 0 0;
}
.lib-photo-scroll-dot{
  width:9px;
  height:9px;
  padding:0;
  border-radius:50%;
  border:1px solid var(--maroon);
  background:transparent;
  cursor:pointer;
}
.lib-photo-scroll-dot.is-active,
.lib-photo-scroll-dot[aria-current="true"]{
  background:var(--maroon);
}
.lib-photo-scroll.is-single .lib-photo-scroll-btn,
.lib-photo-scroll.is-single .lib-photo-scroll-dots{display:none}
.lib-event-photos{margin:1.8em 0 1.2em}
@media (max-width:640px){
  .lib-photo-scroll-item{flex-basis:min(88%,340px)}
  .lib-photo-scroll-track{padding-left:2.1rem;padding-right:2.1rem;scroll-padding-inline:2.1rem}
  .lib-photo-scroll-btn{width:2.1rem;height:2.1rem;font-size:1.2rem}
}
@media (prefers-reduced-motion:reduce){
  .lib-photo-scroll-track{scroll-behavior:auto}
}

/* —— Library news + events list (Claremore-style rows, Talala maroon/cream) —— */
.lib-feed-section{
  margin:1.7em 0 2em;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:0 1.15rem;
  box-shadow:var(--shadow-s);
}
.lib-feed-section > .lib-feed-head,
.lib-feed-head{
  font-family:var(--display);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--maroon);
  border-bottom:2px solid var(--maroon);
  padding:.9rem 0 .42rem;
  margin:0;
}
.lib-feed-list{
  background:transparent;
  border:0;
  border-radius:0;
  padding:0;
  box-shadow:none;
}
.lib-feed-status,
.lib-feed-empty{
  margin:0;
  padding:1rem 0 1.15rem;
  color:var(--ink-3);
}
.lib-news-item{
  display:flex;
  gap:1rem 1.25rem;
  align-items:flex-start;
  justify-content:space-between;
  padding:1.05rem 0;
  border-bottom:1px solid var(--line);
}
.lib-news-item:last-child{border-bottom:0}
.lib-news-copy{min-width:0;flex:1}
.lib-news-title{
  margin:0 0 .28em;
  font-family:var(--display);
  font-size:1.12rem;
  font-weight:800;
  line-height:1.25;
  color:var(--navy-800);
  border:0;
  padding:0;
}
.lib-news-title-link{
  color:var(--navy-800);
  text-decoration:none;
}
.lib-news-title-link:hover{color:var(--punch);text-decoration:underline}
.lib-news-summary{
  margin:0;
  color:var(--ink-3);
  font-size:.95rem;
  line-height:1.5;
}
.lib-info-pill{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2rem;
  padding:.28em .9em;
  margin-top:.15rem;
  font-family:var(--display);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  text-decoration:none;
  color:#fff;
  background:var(--maroon);
  border:2px solid var(--maroon);
  border-radius:999px;
  white-space:nowrap;
  line-height:1;
}
a.lib-info-pill:hover,
a.lib-info-pill:focus-visible{
  background:var(--punch);
  border-color:var(--punch);
  color:#fff;
  text-decoration:none;
}
.lib-event-row{
  display:flex;
  gap:1.05rem 1.2rem;
  align-items:flex-start;
  padding:1rem 0;
  border-bottom:1px solid var(--line);
}
.lib-event-row:last-child{border-bottom:0}
.lib-event-date{
  flex:0 0 4.4rem;
  text-align:center;
  color:var(--maroon);
  line-height:1;
  padding:.15rem .2rem 0 0;
}
.lib-event-month{
  display:block;
  font-family:var(--display);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.lib-event-day{
  display:block;
  font-family:var(--display);
  font-size:2.2rem;
  font-weight:800;
  letter-spacing:-.03em;
  line-height:.95;
  margin-top:.12em;
  color:var(--maroon);
}
.lib-event-body{min-width:0;flex:1;padding-top:.12rem}
.lib-event-title{
  margin:0 0 .22em;
  font-family:var(--display);
  font-size:1.08rem;
  font-weight:800;
  line-height:1.25;
  color:var(--navy-800);
  border:0;
  padding:0;
}
.lib-event-title a{
  color:var(--navy-800);
  text-decoration:none;
}
.lib-event-title a:hover{color:var(--punch);text-decoration:underline}
.lib-event-time{
  margin:0;
  color:var(--ink-2);
  font-size:.95rem;
}
.lib-event-location{
  margin:.15em 0 0;
  color:var(--ink-3);
  font-size:.88rem;
}
.lib-feed-footer{
  margin:.15rem 0 1.6rem;
  font-size:.95rem;
}
.lib-feed-footer a{font-weight:700}
@media (max-width:520px){
  .lib-news-item{flex-wrap:wrap}
  .lib-info-pill{margin-top:0}
  .lib-event-date{flex-basis:3.6rem}
  .lib-event-day{font-size:1.85rem}
}


/* Section / library quick links (under header on hub pages) */
.section-subnav,.lib-subnav{display:flex;flex-wrap:wrap;gap:.35rem .85rem;padding:.65rem 0 .85rem;margin:0 auto;border-bottom:1px solid var(--line);font-size:.9rem}
.section-subnav a,.lib-subnav a{white-space:nowrap;color:var(--navy-800);font-weight:600;text-decoration:none;padding:.15rem 0;border-bottom:2px solid transparent}
.section-subnav a:hover,.section-subnav a:focus-visible,.lib-subnav a:hover,.lib-subnav a:focus-visible{color:var(--punch);border-bottom-color:var(--gold)}
.section-subnav a[aria-current="page"],.lib-subnav a[aria-current="page"]{color:var(--maroon);border-bottom-color:var(--maroon)}
@media (max-width:640px){
  .section-subnav,.lib-subnav{gap:.25rem .65rem;font-size:.84rem}
}

/* ---------- Community Room staff / employee booking ---------- */
.staff-jump{
  display:flex;flex-wrap:wrap;gap:.35rem .9rem;margin:0 0 1.2rem;font-size:.92rem
}
.staff-jump a{white-space:nowrap}
.staff-fair-use{
  background:#fff;border:1px solid var(--line);border-left:4px solid var(--navy-600);
  border-radius:0 8px 8px 0;padding:16px 20px;margin:1.2em 0 1.6em
}
.staff-fair-use h2{
  margin:0 0 .5rem;border:0;padding:0;font-size:1.15rem
}
.staff-fair-use ul{margin:.35em 0 0;padding-left:1.2em}
.staff-fair-use li{margin:.35em 0}
.staff-conflict-note{margin:.7em 0 0;font-size:.92rem}
#staff-emp-cap-note{margin:.45em 0 0;font-size:.92rem}
.staff-bookings .civic-form{margin-top:.6rem}
.staff-bookings .civic-form h2{margin-top:0;border:0;padding:0}
.staff-fee{
  margin:1rem 0 0;padding:14px 16px;border-radius:8px;
  border:1px solid var(--line);background:var(--paper-2)
}
.staff-fee p{margin:0}
.staff-fee-label{
  font-family:var(--display);font-weight:800;color:var(--navy-800);
  font-size:1.05rem;margin:0 0 .25em
}
.staff-fee.is-rate{background:#eef6f1;border-color:#b7d4c4}
.staff-fee.is-board{background:#fdf8ee;border-color:#e6d2a8}
.staff-fee.is-tbd{background:#f4f1ec;border-color:var(--line)}
.staff-banner{
  margin:.8rem 0 0;padding:12px 14px;border-radius:8px;font-size:.92rem
}
.staff-banner.is-warn{background:#fdf8ee;border:1px solid #e6d2a8}
.staff-banner.is-info{background:#eef3f8;border:1px solid #c5d4e4}
.staff-time-note{margin:.45rem 0 0;font-size:.9rem}
.staff-fair-warn{
  margin:.8rem 0 0;padding:12px 14px;border-radius:8px;
  background:#fdf8ee;border:1px solid #e6d2a8;font-size:.92rem
}
.staff-fair-warn p{margin:0 0 .4em}
.staff-fair-warn p:last-child{margin:0}
.staff-sig-wrap{margin-top:1.2rem}
.staff-sig-wrap .app-sig-wrap{margin:.35em 0}
.staff-usage-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:12px;margin:.6rem 0 1rem
}
.staff-usage-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 14px;text-align:center;box-shadow:var(--shadow-s)
}
.staff-usage-name{
  margin:0 0 .2em;font-weight:800;color:var(--navy-800);font-size:.95rem
}
.staff-usage-count{
  margin:0;font-family:var(--display);font-size:2rem;font-weight:800;
  line-height:1.1;color:var(--navy-800)
}
.staff-usage-meta{margin:.25em 0 0;font-size:.8rem;color:var(--ink-3)}
.staff-usage-table-wrap{overflow:auto;margin:.4rem 0 0}
.staff-usage-table{
  width:100%;border-collapse:collapse;font-size:.95rem;background:#fff
}
.staff-usage-table th,.staff-usage-table td{
  text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)
}
.staff-usage-table thead th{
  background:var(--paper-2);color:var(--ink-3);font-size:.8rem;
  letter-spacing:.04em;text-transform:uppercase
}
.staff-cal-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 1rem}
.staff-cal-tabs{
  display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none
}
.staff-cal-tabs button{
  min-height:40px;padding:6px 12px;border-radius:999px;border:1.5px solid var(--line);
  background:#fff;color:var(--ink-2);font:inherit;font-size:.88rem;font-weight:700;cursor:pointer
}
.staff-cal-tabs button:hover{border-color:var(--navy-700)}
.staff-cal-tabs button.is-on,
.staff-cal-tabs button[aria-selected="true"]{
  background:var(--navy-800);border-color:var(--navy-800);color:#fff
}
.staff-cal-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:14px
}
.staff-cal-col{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;box-shadow:var(--shadow-s);min-width:0
}
.staff-cal-col h3{margin:0 0 .6rem;border:0;padding:0;font-size:1.08rem}
.staff-cal-col[hidden]{display:none !important}
.staff-agenda-h{
  margin:1rem 0 .45rem;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  font-weight:800;color:var(--ink-3);border:0;padding:0
}
.staff-agenda-h:first-child{margin-top:.2rem}
.staff-agenda-list{list-style:none;margin:0;padding:0}
.staff-agenda-item{
  display:flex;gap:12px;align-items:flex-start;padding:.7rem 0;
  border-bottom:1px solid var(--line)
}
.staff-agenda-item:last-child{border-bottom:0}
.staff-agenda-date{
  flex:0 0 3.4rem;text-align:center;color:var(--maroon);line-height:1;padding-top:.1rem
}
.staff-agenda-mon{
  display:block;font-family:var(--display);font-size:.68rem;font-weight:800;
  letter-spacing:.12em
}
.staff-agenda-day{
  display:block;font-family:var(--display);font-size:1.7rem;font-weight:800;margin-top:.1em
}
.staff-agenda-title{
  margin:0;font-family:var(--display);font-weight:800;color:var(--navy-800);font-size:1.02rem
}
.staff-agenda-meta{margin:.2em 0 0;color:var(--ink-2);font-size:.9rem}
.staff-review{margin:0;display:grid;gap:0}
.staff-review div{
  display:grid;grid-template-columns:minmax(7rem,11rem) 1fr;gap:8px;
  padding:8px 0;border-bottom:1px solid var(--line);font-size:.92rem
}
.staff-review dt{margin:0;font-weight:700;color:var(--navy-800)}
.staff-review dd{margin:0}
.staff-dept-fields[hidden],
.staff-other-wrap[hidden],
.staff-banner[hidden],
.staff-fair-warn[hidden]{display:none !important}
.staff-agree-label span{flex:1;min-width:0}

/* Staff availability calendar — Public / Town markers */
.staff-room-avail{margin:1.4rem 0 1.8rem}
.staff-room-avail > h2{margin-top:0}
.staff-avail-legend{
  margin:.15rem 0 1rem;font-size:.85rem;color:var(--ink-2);
  display:flex;flex-wrap:wrap;gap:.45rem 1.15rem;align-items:center
}
.staff-avail-legend .swatch,
.room-avail-legend .swatch.staff-use-public,
.room-avail-legend .swatch.staff-use-town{
  display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid var(--line);
  vertical-align:middle;margin-right:4px
}
.staff-avail-legend .swatch.staff-use-public,
.room-avail-legend .swatch.staff-use-public{background:#4a6d8c;border-color:#3a5873}
.staff-avail-legend .swatch.staff-use-town,
.room-avail-legend .swatch.staff-use-town{background:#481008;border-color:#2a0706}
#staff-availability .room-avail-day.has-public,
#staff-availability .room-avail-day.has-town,
#staff-availability .room-avail-day.has-employee{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:3px;padding:5px 2px 6px
}
#staff-availability .staff-day-marks{
  display:flex;justify-content:center;gap:3px;line-height:0
}
#staff-availability .staff-day-mark{
  width:6px;height:6px;border-radius:50%;border:1px solid rgba(0,0,0,.18)
}
#staff-availability .staff-day-mark.is-public{background:#4a6d8c;border-color:#3a5873}
#staff-availability .staff-day-mark.is-town{background:#481008;border-color:#2a0706}
#staff-availability .room-avail-day.is-selected{
  background:var(--navy-800);color:#fff;border-color:var(--navy-800)
}
.staff-use-tag{
  display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;padding:.12em .55em;border-radius:999px;margin-right:.45em;
  border:1px solid var(--line);vertical-align:middle
}
.staff-use-tag.is-public{background:#e8eef4;color:#2f4a60;border-color:#b7c6d4}
.staff-use-tag.is-employee{background:#5c4a1a;color:#fff}
.staff-use-tag.is-town{background:#f3e8e6;color:#481008;border-color:#d4b4ae}
.staff-avail-busy-list{margin:.55rem 0 0;padding:0;list-style:none}
.staff-avail-busy-list li{
  margin:.4rem 0;padding:.5rem .7rem;background:#fff;border:1px solid var(--line);
  border-radius:8px
}

@media (max-width:800px){
  .staff-cal-grid{grid-template-columns:1fr}
  .staff-review div{grid-template-columns:1fr}
}


/* Discreet employee/trustee Community Room entry (not a public CTA) */
.cr-internal-link{margin:2.5rem auto 1rem;padding:0;text-align:center;font-size:.72rem;line-height:1.3}
.cr-internal-link a{color:var(--ink-3,#8a7f76);text-decoration:none;font-weight:400;opacity:.55}
.cr-internal-link a:hover,.cr-internal-link a:focus-visible{opacity:.9;text-decoration:underline}

/* ---------- Image lightbox ---------- */
img.lb-eligible{cursor:pointer}
body.lightbox-open{overflow:hidden;touch-action:none}
.lightbox{
  position:fixed;inset:0;z-index:4000;
  display:flex;align-items:center;justify-content:center;
  padding:clamp(56px,10vh,88px) 20px 24px;
  background:rgba(42,7,6,.88);
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
}
.lightbox[hidden]{display:none !important}
.lightbox-img{
  display:block;
  max-width:90vw;max-height:90vh;
  width:auto;height:auto;
  object-fit:contain;
  border-radius:6px;
  box-shadow:0 12px 48px rgba(0,0,0,.5);
  background:#1a0c0a;
}
.lightbox-close{
  position:absolute;top:14px;right:14px;
  width:48px;height:48px;
  border:2px solid rgba(255,255,255,.9);
  border-radius:50%;
  background:rgba(42,7,6,.6);
  color:#fff;
  font-size:1.9rem;line-height:1;font-weight:700;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  padding:0;z-index:1;
  font-family:var(--sans);
}
.lightbox-close:hover,
.lightbox-close:focus-visible{
  background:var(--punch);border-color:#fff;color:#fff;
}

.award-earlier-text{grid-template-columns:1fr;}
.award-earlier-text .award-earlier-body{max-width:40rem;}

/* ===== Staff-posted site content (homepage scroller + town announcements) ===== */
.home-scroller{background:var(--navy-800);color:#fff;border-bottom:3px solid var(--punch)}
.home-scroller-in{display:flex;align-items:center;gap:14px;padding-top:12px;padding-bottom:12px;min-height:52px}
.home-scroller-label{flex:0 0 auto;font-family:var(--display);font-weight:800;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-light)}
.home-scroller-slot{flex:1 1 auto;min-width:0}
.home-scroller-item{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-weight:600;font-size:1rem}
a.home-scroller-item:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.home-scroller-img{flex:0 0 auto;width:40px;height:40px;border-radius:6px;object-fit:cover}
.home-scroller-text{min-width:0}
@media (max-width:640px){
  .home-scroller-in{align-items:flex-start;flex-direction:column;gap:6px}
  .home-scroller-item{font-size:.95rem}
}

#home-announcements{margin-bottom:16px}
.home-ann-list{list-style:none;margin:0;padding:0}
.home-ann-item{padding:12px 0;border-bottom:1px solid var(--line)}
.home-ann-item:first-child{padding-top:0}
.home-ann-item:last-child{border-bottom:0;padding-bottom:0}
.home-ann-img{width:100%;height:auto;border-radius:8px;margin:0 0 8px}
.home-ann-title{margin:0;font-size:1rem}
.home-ann-title a{text-decoration:none}
.home-ann-title a:hover{text-decoration:underline}
.home-ann-body{margin:.3em 0 0;font-size:.94rem;color:var(--ink-2)}
.home-ann-note{margin:12px 0 0;font-size:.82rem}

.staff-live-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:5px}
.staff-live-meta .muted{font-size:.88rem}


/* Town Hall rotating hero */
.th-hero-rotate{
  position:relative;
  margin:0 0 1.8em;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow-s);
  background:#0b1220;
}
.th-hero-slides{
  position:relative;
  aspect-ratio:16/9;
  width:100%;
  max-height:none;
  background:transparent;
}
.th-hero-slide{
  position:absolute;
  inset:0;
  margin:0;
  opacity:0;
  transition:opacity .75s ease;
  pointer-events:none;
}
.th-hero-slide.is-active{
  opacity:1;
  pointer-events:auto;
  z-index:1;
}
.th-hero-slide img{
  width:100%;
  height:100%;
  max-width:none;
  display:block;
  object-fit:cover;
  object-position:center center;
}
.th-hero-slide figcaption{
  position:absolute;
  left:0;right:0;bottom:0;
  margin:0;
  padding:28px 16px 12px;
  font-size:.86rem;
  color:#fff;
  background:linear-gradient(transparent,rgba(20,8,6,.78));
  z-index:2;
}
.th-hero-dots{
  position:absolute;
  right:12px;
  bottom:12px;
  z-index:3;
  display:flex;
  gap:7px;
}
.th-hero-dot{
  width:11px;height:11px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.9);
  background:transparent;
  padding:0;
  cursor:pointer;
}
.th-hero-dot.is-active{background:#fff}
.th-hero-dot:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media (min-width:900px){
  .th-hero-slides{aspect-ratio:2/1;}
}
@media (prefers-reduced-motion:reduce){
  .th-hero-slide{transition:none}
}

/* PD In the Community gallery */
.pd-community-gallery{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:0 0 1.6em;
}
.pd-community-gallery .page-photo{margin:0}
.pd-community-gallery .is-wide{grid-column:1/-1}
.pd-community-gallery .photo-contain img,
.pd-community-gallery .is-clipping img{
  aspect-ratio:auto;
  max-height:min(720px,85vh);
  object-fit:contain;
  object-position:center top;
  background:#f7f4f0;
}
@media (max-width:720px){
  .pd-community-gallery{grid-template-columns:1fr}
}

/* PD chrome: blue hover (patch header pages only) */
body:has(.site-head .brand-patch){
  --pd-blue:#1a5fb4;
  --pd-blue-dark:#154a8c;
}
body:has(.site-head .brand-patch) .brand:hover,
body:has(.site-head .brand-patch) .brand:focus-visible{
  color:var(--pd-blue);
  background:#eef4fb;
}
body:has(.site-head .brand-patch) .brand:hover .brand-name,
body:has(.site-head .brand-patch) .brand:focus-visible .brand-name{
  color:var(--pd-blue);
}
body:has(.site-head .brand-patch) .brand:hover .brand-sub,
body:has(.site-head .brand-patch) .brand:focus-visible .brand-sub{
  color:var(--pd-blue);
}
body:has(.site-head .brand-patch) .brand:hover .brand-seal,
body:has(.site-head .brand-patch) .brand:focus-visible .brand-seal{
  outline-color:var(--pd-blue);
}
body:has(.site-head .brand-patch) .btn-primary:hover,
body:has(.site-head .brand-patch) .btn-primary:focus-visible{
  background:var(--pd-blue-dark);
  border-color:var(--pd-blue-dark);
  color:#fff;
}
body:has(.site-head .brand-patch) main .btn-ghost:hover,
body:has(.site-head .brand-patch) main .btn-ghost:focus-visible{
  background:var(--pd-blue);
  border-color:var(--pd-blue);
  color:#fff;
}

body:has(.site-head .brand-patch) .section-subnav a:hover,
body:has(.site-head .brand-patch) .section-subnav a:focus-visible{
  color:var(--pd-blue);
  border-bottom-color:var(--pd-blue);
}
body:has(.site-head .brand-patch) .section-subnav a[aria-current="page"]{
  color:var(--pd-blue);
  border-bottom-color:var(--pd-blue);
}

