:root{
  --aoh-blue:#063a98;
  --aoh-blue-dark:#062a77;
  --aoh-green:#005822;
  --aoh-green-light:#1f7b35;
  --aoh-orange:#f28c00;
  --aoh-ink:#0b2f87;
  --aoh-cream:#fbfaf6;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:#fff;color:#111;font-family:Arial, Helvetica, sans-serif}
body{min-width:320px}
a{color:inherit}
.site-header{background:#fff}
.topbar{
  background:linear-gradient(90deg,#004f1e,#0e642b);
  color:#fff;
  height:60px;
  display:flex;
  align-items:center;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
}
.topbar-inner{
  width:min(2048px,100%);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 30px;
  gap:20px;
}
.motto{
  font-family:Georgia, 'Times New Roman', serif;
  font-weight:700;
  font-size:clamp(20px,2vw,34px);
  line-height:1;
  text-shadow:2px 2px 2px rgba(0,0,0,.45);
  white-space:nowrap;
}
.join-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:210px;
  height:48px;
  padding:0 24px;
  background:linear-gradient(#ff9d13,#ef8500);
  color:#fff;
  text-decoration:none;
  font-weight:800;
  font-size:clamp(18px,1.8vw,30px);
  border-radius:10px;
  box-shadow:0 5px 0 #b86400;
  white-space:nowrap;
}
.join-button:hover,.join-button:focus{
  color:#082b12 !important;
  text-decoration:none;
  outline:none;
}
.brand-row{
  position:relative;
  max-width:2048px;
  margin:0 auto;
  background:#fff;
  overflow:hidden;
}
.header-art{
  display:block;
  width:100%;
  height:auto;
}
.map-links{
  position:absolute;
  left:0;top:0;right:0;bottom:0;
  pointer-events:none;
}
.town-link{
  position:absolute;
  display:block;
  width:7.5%;
  height:7%;
  pointer-events:auto;
  border-radius:10px;
  text-decoration:none;
}
.town-link:focus-visible{outline:3px solid var(--aoh-orange); outline-offset:2px}

/* Percent hit areas are locked to the 2048x358 cropped header art. */
.holyoke{left:62.5%;top:50%}
.worcester{left:69.3%;top:50%}
.clinton{left:75.5%;top:50%}
.lowell{left:79.8%;top:26%}
.lawrence{left:82.4%;top:16%}
.watertown{left:86.0%;top:44%}
.medford{left:87.1%;top:36%}
.malden{left:87.7%;top:31%}
.lynn{left:88.5%;top:25%}
.salem{left:89.0%;top:20%}
.peabody{left:90.0%;top:14%}
.plymouth{left:90.0%;top:59%}

.site-nav{
  background:linear-gradient(90deg,#07328b,#113c9f,#063184);
  color:#fff;
  min-height:64px;
  display:flex;
  justify-content:center;
  align-items:stretch;
  gap:0;
  position:relative;
  z-index:20;
  box-shadow:0 2px 4px rgba(0,0,0,.15);
}
.site-nav>a,
.nav-dropdown>button{
  min-height:64px;
  padding:0 clamp(16px,2.2vw,44px);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  text-decoration:none;
  font-size:clamp(15px,1.55vw,27px);
  font-weight:800;
  letter-spacing:.02em;
  text-transform:uppercase;
  border:0;
  background:transparent;
  font-family:Arial, Helvetica, sans-serif;
  cursor:pointer;
  white-space:nowrap;
}
.site-nav>a:hover,
.nav-dropdown>button:hover,
.nav-dropdown:focus-within>button{
  background:rgba(255,255,255,.09);
}
.nav-dropdown{position:relative;display:flex}
.dropdown-menu{
  position:absolute;
  top:100%;
  left:50%;
  transform:translateX(-50%);
  min-width:260px;
  padding:10px 0;
  background:linear-gradient(#0d662b,#004f1e);
  border:1px solid rgba(255,255,255,.4);
  box-shadow:0 8px 22px rgba(0,0,0,.28);
  z-index:200;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.nav-dropdown:hover .dropdown-menu,
.nav-dropdown:focus-within .dropdown-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.dropdown-menu a{
  display:block;
  padding:11px 22px;
  color:#fff;
  text-decoration:none;
  font-weight:700;
  font-size:18px;
  text-transform:none;
  white-space:nowrap;
}
.dropdown-menu a:hover,
.dropdown-menu a:focus{background:rgba(255,255,255,.16);outline:none}
.hero{
  width:100%;
  border-bottom:5px solid #f0a12c;
  overflow:hidden;
}
.hero img{
  display:block;
  width:100%;
  height:auto;
}
.service-band{
  background:linear-gradient(#fff,#fbfaf6);
  padding:16px 5vw 28px;
  text-align:center;
}
.title-line{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
}
.title-line span{
  width:140px;
  max-width:18vw;
  height:3px;
  background:#ed9b2f;
}
.title-line h1{
  margin:0;
  font-family:Georgia, 'Times New Roman', serif;
  color:#1239a0;
  font-size:clamp(30px,4vw,62px);
  line-height:1.05;
}
.subtitle{
  margin:4px 0 18px;
  font-family:Georgia, 'Times New Roman', serif;
  color:#075720;
  font-size:clamp(18px,2vw,29px);
}
.feature-grid{
  max-width:1680px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  text-align:left;
}
.feature-grid article{
  display:grid;
  grid-template-columns:96px 1fr;
  column-gap:18px;
  align-items:center;
  border-left:2px solid #314ec1;
  padding-left:22px;
}
.feature-grid article:first-child{border-left:0}
.icon{
  width:86px;height:86px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:#eeeae2;
  color:#0b5b2b;
  font-size:44px;
  border:1px solid #e2ded5;
}
.feature-grid h2{
  margin:0;
  font-family:Georgia, 'Times New Roman', serif;
  color:#1239a0;
  font-size:clamp(24px,2.3vw,38px);
}
.feature-grid p{
  margin:4px 0 0;
  color:#173aa3;
  font-family:Georgia, 'Times New Roman', serif;
  font-size:clamp(16px,1.5vw,24px);
  line-height:1.25;
}
.content-page{
  min-height:500px;
  padding:48px 6vw 70px;
  background:#fff;
}
.page-card{
  max-width:1280px;
  margin:0 auto;
}
.page-card h1{
  margin:0 0 28px;
  font-family:Georgia, 'Times New Roman', serif;
  color:#1239a0;
  font-size:clamp(34px,3.6vw,54px);
}
.officers-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:16px;
}
.officer-card{
  border:1px solid #d9e1ff;
  border-left:6px solid #0b3c9d;
  border-radius:8px;
  padding:16px 18px;
  background:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.06);
}
.officer-card h3{
  margin:0 0 8px;
  color:#0b3c9d;
  font-size:19px;
}
.officer-card p{
  margin:0;
  font-size:20px;
  color:#111;
}
.site-footer{
  background:#003d19;
  color:#fff;
  padding:22px;
  text-align:center;
  font-size:14px;
}

@media (max-width:900px){
  .topbar{height:auto;min-height:56px}
  .topbar-inner{padding:10px 16px}
  .join-button{min-width:150px;height:42px;padding:0 15px}
  .site-nav{overflow-x:auto;justify-content:flex-start}
  .site-nav>a,.nav-dropdown>button{padding:0 18px}
  .feature-grid{grid-template-columns:1fr 1fr}
  .feature-grid article{border-left:0;padding-left:0}
}
@media (max-width:600px){
  .motto{font-size:18px;white-space:normal}
  .join-button{font-size:16px;min-width:120px}
  .feature-grid{grid-template-columns:1fr}
}

/* Membership inquiry form */
.membership-page .page-card{max-width:980px}.membership-page p{max-width:780px;margin:0 0 22px;font-size:18px;line-height:1.55;color:#14306f}.join-form{max-width:900px;background:#fff;border:1px solid #d8def4;border-radius:14px;padding:28px;box-shadow:0 12px 28px rgba(7,35,103,.08)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.join-form label{display:flex;flex-direction:column;gap:7px;font-weight:800;color:#0f3d8d;text-transform:uppercase;letter-spacing:.02em;font-size:14px}.join-form input,.join-form select,.join-form textarea{font:500 16px Arial,sans-serif;border:1px solid #b9c6ee;border-radius:8px;padding:12px;color:#111;background:#fff}.join-form textarea{resize:vertical;margin-top:18px}.form-submit{margin-top:20px;background:#0b7224;color:#fff;border:0;border-radius:10px;padding:14px 22px;font-weight:900;font-size:16px;text-transform:uppercase;box-shadow:0 4px 0 rgba(0,0,0,.18);cursor:pointer}.form-submit:hover{background:#07591c}@media(max-width:700px){.form-grid{grid-template-columns:1fr}.join-form{padding:20px}}

/* v34 fixes */
.topbar + .topbar { display: none !important; }
.join-btn { min-width: 180px; text-align: center; }
.nav .dropdown:hover .dropdown-menu,
.nav .dropdown:focus-within .dropdown-menu { display: block; opacity: 1; visibility: visible; pointer-events: auto; }
.dropdown-menu { margin-top: 0; z-index: 1000; }
.dropdown-menu a[href*="aohdiv14"] { font-size: inherit; font-weight: inherit; }
.join-form-section { max-width: 760px; margin: 2rem auto; padding: 1.5rem; border: 1px solid #d9dff7; border-radius: 10px; background: #fff; }
.join-form-section h2 { margin-top: 0; color: #123fa5; }
.join-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.join-form label { display: grid; gap: .35rem; font-weight: 700; color: #123fa5; }
.join-form input, .join-form select, .join-form textarea { padding: .65rem; border: 1px solid #9da9d6; border-radius: 6px; font: inherit; }
.join-form label:has(textarea), .join-form button { grid-column: 1 / -1; }
.join-form button { background: #0c702d; color: white; border: 0; padding: .85rem 1.2rem; border-radius: 8px; font-weight: 800; cursor: pointer; }
@media (max-width: 700px) { .join-form { grid-template-columns: 1fr; } }

/* v43: clean vector replacement for the header map only. The original raster stays underneath; this covers only the right map panel. */
.brand-row{position:relative;}
.clean-header-map{position:absolute;right:0;top:0;width:42.5%;height:100%;z-index:3;background:#fff;display:block;}
.clean-header-map .ma-outline{fill:none;stroke:#244ed0;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
.clean-header-map .town{font-family:Arial, Helvetica, sans-serif;font-weight:700;font-size:21px;fill:#133fab;}
.clean-header-map .leader{stroke:#244ed0;stroke-width:2.2;stroke-linecap:round;}
.clean-header-map .shamrock{font-family:Georgia, serif;font-weight:700;font-size:30px;fill:#075b22;}
.clean-header-map .serving{font-family:Georgia, serif;font-style:italic;font-size:34px;fill:#075b22;}
.clean-header-map a:hover .town,.clean-header-map a:focus .town{text-decoration:underline;}
.clean-header-map a:hover .shamrock,.clean-header-map a:focus .shamrock{filter:drop-shadow(0 0 2px rgba(0,90,25,.45));}
.map-links{display:none!important;}
@media (max-width:900px){.clean-header-map{width:43%;}.clean-header-map .town{font-size:18px}.clean-header-map .serving{font-size:28px}.clean-header-map .shamrock{font-size:26px}}

/* v46: clean raster header map with real clickable town areas */
.clean-header-map {
  position: absolute !important;
  right: 0 !important;
  top: 0 !important;
  width: 42.5% !important;
  height: 100% !important;
  display: block !important;
  overflow: hidden !important;
  z-index: 3 !important;
  background: #fff !important;
}
.clean-header-map img { width: 100%; height: 100%; object-fit: contain; display: block; }
.town-hotspot { position: absolute; display: block; font-size: 0; color: transparent; text-decoration: none; z-index: 5; border-radius: 6px; }
.town-hotspot:focus-visible { outline: 3px solid #f28c13; background: rgba(242,140,19,.18); }
.town-hotspot.holyoke { left: 10%; top: 52%; width: 20%; height: 12%; }
.town-hotspot.worcester { left: 34%; top: 51%; width: 22%; height: 12%; }
.town-hotspot.clinton { left: 48%; top: 37%; width: 18%; height: 12%; }
.town-hotspot.lawrence { left: 55%; top: 10%; width: 20%; height: 11%; }
.town-hotspot.lowell { left: 52%; top: 22%; width: 16%; height: 10%; }
.town-hotspot.peabody { left: 72%; top: 12%; width: 22%; height: 10%; }
.town-hotspot.salem { left: 72%; top: 20%; width: 22%; height: 10%; }
.town-hotspot.lynn { left: 72%; top: 28%; width: 22%; height: 10%; }
.town-hotspot.malden { left: 72%; top: 36%; width: 22%; height: 10%; }
.town-hotspot.medford { left: 72%; top: 44%; width: 22%; height: 10%; }
.town-hotspot.watertown { left: 72%; top: 52%; width: 24%; height: 10%; }
.town-hotspot.plymouth { left: 74%; top: 68%; width: 24%; height: 11%; }


/* v54: locked raster-map hotspots only. Do not redraw or move header map image. */
.clean-header-map {
  position: absolute !important;
  right: 0 !important;
  top: 0 !important;
  width: 42.5% !important;
  height: 100% !important;
  display: block !important;
  overflow: hidden !important;
  z-index: 3 !important;
  background: #fff !important;
}
.clean-header-map img {
  width: 100% !important;
  height: 100% !important;
  object-fit: fill !important;
  display: block !important;
}
.map-links { display: none !important; }
.town-map-overlay { display: none !important; }
.town-hotspot {
  position: absolute !important;
  display: block !important;
  z-index: 30 !important;
  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
  text-decoration: none !important;
  background: transparent !important;
  border: 0 !important;
  pointer-events: auto !important;
}
.town-hotspot:hover,
.town-hotspot:focus-visible {
  outline: 2px solid rgba(242,140,0,.85) !important;
  outline-offset: 1px !important;
  background: rgba(242,140,0,.08) !important;
}
/* Coordinates are percentages of images/header-map-clean.png (870x358). Boxes cover the visible town name + shamrock row. */
.town-hotspot.holyoke   { left: 18.0% !important; top: 47.0% !important; width: 13.0% !important; height: 12.0% !important; }
.town-hotspot.worcester { left: 39.0% !important; top: 47.0% !important; width: 12.5% !important; height: 12.0% !important; }
.town-hotspot.clinton   { left: 42.0% !important; top: 34.0% !important; width: 12.5% !important; height: 13.0% !important; }
.town-hotspot.lawrence  { left: 46.0% !important; top:  4.0% !important; width: 18.5% !important; height: 11.5% !important; }
.town-hotspot.lowell    { left: 47.0% !important; top: 16.0% !important; width: 15.0% !important; height: 11.5% !important; }
.town-hotspot.peabody   { left: 66.0% !important; top:  5.0% !important; width: 26.5% !important; height:  9.0% !important; }
.town-hotspot.salem     { left: 66.0% !important; top: 13.0% !important; width: 26.5% !important; height:  8.5% !important; }
.town-hotspot.lynn      { left: 66.0% !important; top: 21.0% !important; width: 26.5% !important; height:  8.5% !important; }
.town-hotspot.malden    { left: 66.0% !important; top: 29.0% !important; width: 26.5% !important; height:  8.5% !important; }
.town-hotspot.medford   { left: 66.0% !important; top: 37.0% !important; width: 26.5% !important; height:  8.5% !important; }
.town-hotspot.watertown { left: 66.0% !important; top: 45.0% !important; width: 28.0% !important; height:  9.5% !important; z-index: 40 !important; }
.town-hotspot.plymouth  { left: 74.0% !important; top: 68.5% !important; width: 23.0% !important; height: 11.0% !important; }

/* v55: smaller non-overlapping hotspot boxes. Image/layout unchanged. */
.town-hotspot:hover,
.town-hotspot:focus-visible {
  outline: 1px solid rgba(242,140,0,.85) !important;
  outline-offset: 0 !important;
  background: rgba(242,140,0,.06) !important;
}
.town-hotspot.holyoke   { left: 19.4% !important; top: 49.4% !important; width: 11.8% !important; height: 6.2% !important; }
.town-hotspot.worcester { left: 39.2% !important; top: 47.9% !important; width: 11.8% !important; height: 6.2% !important; }
.town-hotspot.clinton   { left: 48.0% !important; top: 37.0% !important; width: 10.5% !important; height: 6.2% !important; }
.town-hotspot.lawrence  { left: 46.3% !important; top:  5.8% !important; width: 16.0% !important; height: 6.0% !important; }
.town-hotspot.lowell    { left: 47.0% !important; top: 17.2% !important; width: 13.0% !important; height: 6.0% !important; }
.town-hotspot.peabody   { left: 66.8% !important; top:  6.8% !important; width: 23.0% !important; height: 5.8% !important; }
.town-hotspot.salem     { left: 66.8% !important; top: 14.0% !important; width: 23.0% !important; height: 5.8% !important; }
.town-hotspot.lynn      { left: 66.8% !important; top: 20.5% !important; width: 23.0% !important; height: 5.8% !important; }
.town-hotspot.malden    { left: 66.8% !important; top: 27.4% !important; width: 23.0% !important; height: 5.8% !important; }
.town-hotspot.medford   { left: 66.8% !important; top: 34.2% !important; width: 23.0% !important; height: 5.8% !important; }
.town-hotspot.watertown { left: 66.8% !important; top: 40.8% !important; width: 23.8% !important; height: 5.8% !important; z-index: 60 !important; }
.town-hotspot.plymouth  { left: 73.5% !important; top: 65.8% !important; width: 19.0% !important; height: 6.2% !important; }


/* v56: keep every Divisions dropdown item the same size/weight, including external Watertown link */
.dropdown-menu a,
.dropdown-menu a:link,
.dropdown-menu a:visited,
.dropdown-menu a[href*="aohdiv14"] {
  font-size:18px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
  font-family:Arial, Helvetica, sans-serif !important;
}

/* v56: officer photo links */
.officer-photo-link{
  display:block;
  width:100%;
  max-width:150px;
  margin:0 0 12px;
  border-radius:8px;
  overflow:hidden;
  border:1px solid #c9d4f6;
  background:#f6f8ff;
  text-decoration:none;
}
.officer-photo-link img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1 / 1;
  object-fit:cover;
}
.officer-photo-link:focus,
.officer-photo-link:hover{
  outline:3px solid rgba(12,112,45,.35);
  outline-offset:2px;
}

/* v57: Officers page restored to text cards; photos open as popups, not inline on page. */
.officers-page-card .officers-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:16px;
}
.officers-page-card .officer-card{
  border:1px solid #d9e1ff;
  border-left:6px solid #0b3c9d;
  border-radius:8px;
  padding:16px 18px;
  background:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.06);
}
.officers-page-card .officer-card h3{
  margin:0 0 10px;
  color:#0b3c9d;
  font-size:19px;
}
.officers-page-card .officer-line{
  display:flex;
  gap:8px;
  align-items:flex-end;
  margin:7px 0;
  font-size:18px;
  color:#111;
}
.officers-page-card .officer-label{
  min-width:88px;
  font-weight:700;
  color:#1239a0;
}
.officers-page-card .officer-value{
  flex:1;
  min-height:22px;
  border-bottom:1px solid #b8c2e8;
  padding-bottom:2px;
}
.officers-page-card .officer-photo-link{
  display:inline-block;
  margin-top:12px;
  color:#0b3c9d;
  font-weight:800;
  text-decoration:underline;
}
.photo-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(0,0,0,.55);
  align-items:center;
  justify-content:center;
  padding:24px;
}
.photo-modal:target{display:flex;}
.photo-modal-box{
  position:relative;
  width:min(420px,92vw);
  background:#fff;
  border-radius:12px;
  padding:24px;
  text-align:center;
  box-shadow:0 18px 50px rgba(0,0,0,.35);
}
.photo-modal-box h2{margin:0 0 14px;color:#1239a0;font-family:Georgia,'Times New Roman',serif;font-size:32px;}
.photo-modal-box img{max-width:240px;width:80%;height:auto;border:1px solid #c8d2f4;border-radius:10px;background:#f7f9ff;}
.photo-modal-box p{font-size:20px;font-weight:700;color:#0b3c9d;margin:14px 0 0;}
.photo-modal-close{position:absolute;right:14px;top:8px;font-size:34px;line-height:1;text-decoration:none;color:#0b3c9d;font-weight:900;}

/* v59: Officers page name-photo links with small contact lines. No inline images on cards. */
.officers-page-card .officers-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(220px,1fr)) !important;
  gap:16px !important;
}
.officers-page-card .officer-card{
  min-height:86px !important;
  padding:14px 18px !important;
}
.officers-page-card .officer-card h3{
  margin:0 0 8px !important;
  color:#0b3c9d !important;
  font-size:19px !important;
  line-height:1.1 !important;
}
.officers-page-card .officer-name-line{
  margin:0 0 4px !important;
  font-size:20px !important;
  line-height:1.25 !important;
  color:#111 !important;
}
.officers-page-card .officer-name-link{
  color:#111 !important;
  text-decoration:none !important;
}
.officers-page-card .officer-name-link:hover,
.officers-page-card .officer-name-link:focus{
  color:#0b3c9d !important;

  text-decoration:underline !important;
}
.officers-page-card .officer-contact-line{
  margin:2px 0 0 !important;
  font-size:13px !important;
  line-height:1.25 !important;
  color:#333 !important;
}
.officers-page-card .officer-field-label{
  font-weight:700 !important;
  color:#1239a0 !important;
}
.officers-page-card .officer-contact-value{
  display:inline-block !important;
  min-width:120px !important;
  min-height:12px !important;
  border-bottom:1px solid #c8d2f4 !important;
  vertical-align:baseline !important;
}
.officers-page-card .officer-photo-link{display:none !important;}
@media(max-width:1100px){.officers-page-card .officers-grid{grid-template-columns:repeat(2,minmax(220px,1fr)) !important;}}
@media(max-width:650px){.officers-page-card .officers-grid{grid-template-columns:1fr !important;}}


/* v60: Photos/Video thumbnail gallery with CSS popup lightbox. */
.photos-page-card .gallery-intro{
  max-width:760px;
  margin:0 0 24px;
  font-size:18px;
  line-height:1.5;
  color:#17306f;
}
.photo-gallery{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:18px;
}
.gallery-thumb{
  display:block;
  border:1px solid #d9e1ff;
  border-left:6px solid #0b3c9d;
  border-radius:10px;
  padding:12px;
  background:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.06);
  text-decoration:none;
  color:#0b3c9d;
  font-weight:800;
}
.gallery-thumb img{
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
  border:1px solid #c8d2f4;
  border-radius:8px;
  background:#f7f9ff;
}
.gallery-thumb span{
  display:block;
  margin-top:10px;
  font-size:17px;
}
.gallery-thumb:hover,.gallery-thumb:focus{
  outline:3px solid rgba(12,112,45,.28);
  outline-offset:2px;
}
.gallery-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(0,0,0,.68);
  align-items:center;
  justify-content:center;
  padding:24px;
}
.gallery-modal:target{display:flex;}
.gallery-modal-box{
  position:relative;
  width:min(900px,94vw);
  background:#fff;
  border-radius:12px;
  padding:24px;
  text-align:center;
  box-shadow:0 18px 50px rgba(0,0,0,.35);
}
.gallery-modal-box img{
  max-width:100%;
  max-height:72vh;
  width:auto;
  height:auto;
  border:1px solid #c8d2f4;
  border-radius:10px;
  background:#f7f9ff;
}
.gallery-modal-box p{
  margin:14px 0 0;
  color:#0b3c9d;
  font-size:20px;
  font-weight:800;
}
.gallery-modal-close{
  position:absolute;
  right:14px;
  top:8px;
  font-size:34px;
  line-height:1;
  text-decoration:none;
  color:#0b3c9d;
  font-weight:900;
}
@media(max-width:650px){.photo-gallery{grid-template-columns:1fr 1fr;gap:12px}.gallery-thumb{padding:9px}.gallery-thumb span{font-size:14px}}

/* v63: Irish History article page. */
.history-page-card{
  max-width:1100px;
}
.irish-history-banner{
  margin:0 0 18px;
}
.irish-history-banner img{
  display:block;
  max-width:185px;
  height:auto;
}
.history-article{
  font-size:18px;
  line-height:1.65;
  color:#111;
}
.history-article h1{
  margin:8px 0 12px;
  color:#1239a0;
  font-family:Georgia, 'Times New Roman', serif;
  font-size:42px;
  line-height:1.08;
}
.history-article h2{
  margin:24px 0 8px;
  color:#1239a0;
  font-size:24px;
}
.history-byline{
  margin:0 0 8px;
  font-weight:700;
  color:#333;
}
.history-article-image{
  float:left;
  width:220px;
  max-width:42%;
  height:auto;
  margin:4px 22px 12px 0;
  border:1px solid #c8d2f4;
  box-shadow:0 4px 12px rgba(0,0,0,.12);
}
@media(max-width:700px){
  .history-article h1{font-size:32px;}
  .history-article-image{float:none;display:block;width:100%;max-width:320px;margin:0 0 16px;}
}


/* v64: Separate Photos and Videos sections. */
.photos-page-card .media-section{
  margin-top:24px;
}
.photos-page-card .media-section h2{
  margin:0 0 12px;
  color:#1239a0;
  font-family:Georgia, 'Times New Roman', serif;
  font-size:34px;
  line-height:1.1;
}
.photos-page-card .media-videos-section{
  margin-top:36px;
  padding-top:24px;
  border-top:3px solid #d9e1ff;
}
.video-gallery{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:20px;
}
.video-card{
  border:1px solid #d9e1ff;
  border-left:6px solid #0b3c9d;
  border-radius:10px;
  padding:14px;
  background:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.06);
}
.video-embed{
  position:relative;
  width:100%;
  aspect-ratio:16 / 9;
  background:#f7f9ff;
  border:1px solid #c8d2f4;
  border-radius:8px;
  overflow:hidden;
}
.video-embed iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.video-card p{
  margin:10px 0 0;
  color:#0b3c9d;
  font-size:17px;
  font-weight:800;
}
@media(max-width:650px){.video-gallery{grid-template-columns:1fr}.photos-page-card .media-section h2{font-size:28px}}

.video-card h3 {
  margin: 0 0 10px;
  color: #12379b;
  font-size: 1.2rem;
  font-weight: 800;
}

/* Video thumbnail fallback for videos that do not allow iframe embedding */
.video-thumbnail-link {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 8px;
  background: #111;
  text-decoration: none;
}
.video-thumbnail-link img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.video-play-button {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 72px;
  height: 52px;
  border-radius: 14px;
  background: #e62117;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  line-height: 1;
  padding-left: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,.35);
}
.watch-on-youtube {
  position: absolute;
  right: 14px;
  bottom: 12px;
  color: #fff;
  background: rgba(0,0,0,.62);
  padding: 7px 12px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.95rem;
}
.video-thumbnail-link:hover .video-play-button {
  transform: translate(-50%, -50%) scale(1.05);
}


/* v67: current events banner and richer footer */
.current-events-banner{
  background:linear-gradient(90deg,#07328b,#123fa5,#0b5b2b);
  color:#fff;
  padding:28px 5vw;
  border-top:5px solid #f28c00;
}
.current-events-inner{
  max-width:1280px;
  margin:0 auto;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:24px;
  align-items:center;
}
.current-events-label{
  background:#f28c00;
  color:#fff;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  padding:10px 14px;
  border-radius:8px;
  box-shadow:0 3px 0 rgba(0,0,0,.22);
  white-space:nowrap;
}
.current-events-copy h2{
  margin:0 0 4px;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(26px,3vw,42px);
  line-height:1.05;
}
.current-events-copy p{
  margin:0;
  font-size:clamp(15px,1.45vw,20px);
  line-height:1.35;
}
.current-events-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  color:#0b3c9d;
  text-decoration:none;
  font-weight:900;
  padding:13px 18px;
  border-radius:8px;
  white-space:nowrap;
  box-shadow:0 3px 0 rgba(0,0,0,.22);
}
.current-events-button:hover,.current-events-button:focus{background:#fff5df;outline:none;}
.site-footer.footer-rich{
  background:#003d19;
  color:#fff;
  padding:34px 5vw 28px;
  text-align:left;
  font-size:16px;
}
.footer-inner{
  max-width:1280px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
}
.footer-col h3{
  margin:0 0 12px;
  color:#fff;
  font-size:20px;
  font-weight:900;
}
.footer-col a{
  display:block;
  color:#fff;
  text-decoration:underline;
  text-underline-offset:3px;
  margin:7px 0;
  line-height:1.3;
}
.footer-col a:hover,.footer-col a:focus{color:#ffcf7a;outline:none;}
.footer-col p{margin:7px 0;line-height:1.4;}
.footer-small{font-size:14px;opacity:.9;}
@media(max-width:900px){
  .current-events-inner{grid-template-columns:1fr;gap:12px;text-align:left;}
  .current-events-button{justify-self:start;}
  .footer-inner{grid-template-columns:1fr 1fr;}
}
@media(max-width:600px){
  .footer-inner{grid-template-columns:1fr;}
}

/* v69: clearer state/national convention split */
.current-events-copy{
  display:grid;
  gap:10px;
}
.current-events-copy .event-card{
  border-left:4px solid #f28c00;
  padding-left:14px;
}
.current-events-copy .national-event{
  border-left-color:#ffffff;
  padding-top:8px;
  border-top:1px solid rgba(255,255,255,.45);
}
.current-events-copy .event-kicker{
  font-size:.84rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#ffd38a;
  margin-bottom:3px;
}
.current-events-copy .national-event .event-kicker{
  color:#ffffff;
}
.current-events-copy .national-event p{
  font-size:clamp(15px,1.25vw,18px);
}
.current-events-copy .national-event a{
  color:#ffffff;
  font-weight:800;
}


/* v70: footer cleanup and larger national convention event */
.footer-inner{grid-template-columns:repeat(3,minmax(0,1fr));}
.current-events-copy .national-event p{font-size:clamp(24px,2.6vw,38px);line-height:1.05;}
.current-events-copy .national-event a{font-family:Georgia,'Times New Roman',serif;font-weight:900;}
@media(max-width:900px){.footer-inner{grid-template-columns:1fr 1fr;}.current-events-copy .national-event p{font-size:clamp(22px,5vw,34px);}}
@media(max-width:600px){.footer-inner{grid-template-columns:1fr;}}


/* v71: national convention booking link */
.convention-booking-link{
  display:inline-block;
  margin-top:8px;
  padding:8px 14px;
  border-radius:8px;
  background:#f28c00;
  color:#ffffff !important;
  font-family:Arial,Helvetica,sans-serif !important;
  font-size:16px !important;
  font-weight:900 !important;
  text-decoration:none;
  box-shadow:0 3px 0 rgba(0,0,0,.25);
}
.convention-booking-link:hover,.convention-booking-link:focus{
  background:#ffad24;
  color:#082b12 !important;
  outline:none;
}

/* v72: move motto from top bar to homepage banner and add About content */
.topbar-inner{
  justify-content:flex-end;
}
.motto-band{
  padding-top:20px;
  padding-bottom:34px;
}
.motto-band .title-line h1{
  font-size:clamp(30px,4vw,62px);
}
.home-about{
  max-width:1180px;
  margin:22px auto 0;
  text-align:left;
  border-top:2px solid #ed9b2f;
  padding-top:20px;
}
.home-about h2{
  margin:0 0 10px;
  font-family:Georgia,'Times New Roman',serif;
  color:#1239a0;
  font-size:clamp(26px,2.8vw,42px);
}
.home-about p,
.page-intro{
  margin:0;
  color:#14306f;
  font-size:clamp(17px,1.55vw,22px);
  line-height:1.55;
}
.committees-card{max-width:1320px;}
.committees-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:18px;
  margin-top:28px;
}
.committees-grid article{
  border:1px solid #d9e1ff;
  border-left:6px solid #0b3c9d;
  border-radius:8px;
  padding:18px 20px;
  background:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.06);
}
.committees-grid h2{
  margin:0 0 9px;
  font-family:Georgia,'Times New Roman',serif;
  color:#1239a0;
  font-size:24px;
}
.committees-grid p{
  margin:0 0 14px;
  color:#14306f;
  font-size:17px;
  line-height:1.45;
}
.committees-grid a{
  display:inline-flex;
  color:#0b5b2b;
  font-weight:900;
  text-decoration:underline;
  text-underline-offset:3px;
}
@media(max-width:700px){
  .topbar-inner{justify-content:center;}
  .home-about{text-align:left;}
  .title-line{gap:14px;}
}


/* v63: Committees page revised to match CT AOH single-column committee layout. */
.committees-ct-style{max-width:1560px;}
.committees-ct-style h1{margin-bottom:24px;font-size:clamp(46px,4.2vw,72px);}
.committee-section{padding:0 0 24px;margin:0 0 26px;border-bottom:1px solid #d9e1ff;}
.committee-section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0;}
.committee-section h2{margin:0 0 10px;font-family:Georgia,'Times New Roman',serif;color:#1239a0;font-size:clamp(34px,2.8vw,48px);line-height:1.15;}
.committee-section p{margin:0 0 12px;color:#14306f;font-size:clamp(20px,1.35vw,25px);line-height:1.58;max-width:1320px;}
.committee-section .learn-more-link{font-weight:900;color:#0b5b2b;text-decoration:underline;text-underline-offset:3px;}
.committee-section .learn-more-link:hover,.committee-section .learn-more-link:focus{color:#083f1f;}

/* v73: CT-style homepage about/events layout without changing site colors */
.home-info-grid{
  max-width:1280px;
  margin:22px auto 0;
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(320px,.9fr);
  gap:34px;
  align-items:start;
  text-align:left;
  border-top:2px solid #ed9b2f;
  padding-top:20px;
}
.home-info-grid .home-about{
  margin:0;
  border-top:0;
  padding-top:0;
}
.home-about h2 a{
  color:#1239a0;
  text-decoration:none;
}
.home-about h2 a:hover,.home-about h2 a:focus{
  text-decoration:underline;
  text-underline-offset:4px;
  outline:none;
}
.home-about-motto{
  margin-top:26px !important;
  font-weight:700;
}
.home-events-panel h2{
  margin:0 0 18px;
  padding:12px 18px;
  background:#003d19;
  color:#fff;
  font-size:clamp(24px,2vw,34px);
  font-weight:900;
}
.home-event-item{
  padding:0 0 20px;
  margin:0 0 22px;
  border-bottom:1px solid #d9e1ff;
}
.home-event-item:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0;}
.home-event-item h3{
  margin:0 0 10px;
  color:#1239a0;
  font-size:clamp(20px,1.8vw,28px);
  line-height:1.15;
}
.home-event-item p{
  margin:0 0 10px;
  color:#14306f;
  font-size:clamp(16px,1.35vw,20px);
  line-height:1.35;
}
.home-event-item a{
  display:inline-block;
  margin-right:10px;
  color:#0b5b2b;
  font-weight:900;
  text-decoration:underline;
  text-underline-offset:3px;
}
.home-event-item .convention-booking-link{
  color:#ffffff !important;
  text-decoration:none;
  margin-top:8px;
}
@media(max-width:900px){
  .home-info-grid{grid-template-columns:1fr;}
}

/* v74: responsive polish; no color changes */
img{max-width:100%;height:auto;}
.site-nav{flex-wrap:wrap;}
.site-nav>a,.nav-dropdown>button{flex:0 1 auto;}
@media(max-width:1100px){
  .site-nav>a,.nav-dropdown>button{min-height:54px;padding:0 14px;font-size:14px;}
  .topbar{height:auto;min-height:52px;}
}
@media(max-width:720px){
  .service-band{padding-left:20px;padding-right:20px;}
  .title-line span{display:none;}
  .home-info-grid{gap:24px;}
}


/* v75: keep video playback inside the site and improve large-screen page scale */
.video-card{scroll-margin-top:90px;}
@media(min-width:1200px){
  .content-page{padding-left:4vw;padding-right:4vw;}
  .committees-page .page-card{margin-left:auto;margin-right:auto;}
}
@media(min-width:1500px){
  .committees-page .content-page,.content-page.committees-page{padding-left:5vw;padding-right:5vw;}
}

/* v76: responsive page scale, desktop opens wider while phones stay compact */
.content-page{
  padding:clamp(24px,4vw,64px) clamp(18px,5vw,96px) clamp(42px,5vw,80px);
}
.page-card{
  width:min(100%,1280px);
}
.committees-ct-style{
  width:min(100%,1328px);
}
.committees-ct-style h1{
  font-size:clamp(34px,5vw,68px);
}
.committee-section h2{
  font-size:clamp(28px,3.2vw,46px);
}
.committee-section p{
  font-size:clamp(16px,1.45vw,22px);
  line-height:1.55;
}
@media(min-width:1200px){
  .content-page{
    padding-left:clamp(64px,10vw,220px);
    padding-right:clamp(64px,10vw,220px);
  }
  .committees-page .page-card{
    max-width:1328px;
  }
}
@media(max-width:760px){
  .content-page{
    padding:26px 18px 46px;
  }
  .committees-ct-style h1{
    font-size:34px;
    margin-bottom:18px;
  }
  .committee-section{
    margin-bottom:20px;
    padding-bottom:20px;
  }
  .committee-section h2{
    font-size:28px;
  }
  .committee-section p{
    font-size:16px;
    line-height:1.5;
  }
  .site-nav{
    justify-content:flex-start;
    overflow-x:auto;
    flex-wrap:nowrap;
    -webkit-overflow-scrolling:touch;
  }
  .site-nav>a,.nav-dropdown>button{
    min-height:48px;
    padding:0 14px;
    font-size:13px;
  }
  .dropdown-menu{
    left:0;
    transform:none;
  }
}
@media(max-width:420px){
  .content-page{
    padding-left:14px;
    padding-right:14px;
  }
  .committees-ct-style h1{
    font-size:31px;
  }
  .committee-section h2{
    font-size:25px;
  }
}


/* v77: prevent tiny desktop rendering while preserving phone responsiveness */
@media (min-width:1200px){
  .content-page{
    padding-left:clamp(56px,6vw,120px);
    padding-right:clamp(56px,6vw,120px);
  }
  .page-card{
    width:min(100%,1480px);
    max-width:1480px;
  }
  .committees-ct-style{
    width:min(100%,1480px);
    max-width:1480px;
  }
  .committees-ct-style h1{font-size:clamp(44px,4.4vw,72px);}
  .committee-section h2{font-size:clamp(34px,3.1vw,50px);}
  .committee-section p{font-size:clamp(18px,1.5vw,24px);}
}
@media (max-width:760px){
  .content-page{padding:22px 16px 40px;}
  .page-card,.committees-ct-style{width:100%;max-width:100%;}
  .video-gallery{grid-template-columns:1fr;}
}



/* v79: balanced laptop/desktop responsive sizing -- avoids forced zoom feel */
@media (min-width: 1000px){
  .topbar-inner,
  .brand-row{
    max-width:2048px;
  }
  .site-nav{
    flex-wrap:wrap;
    min-height:56px;
  }
  .site-nav>a,
  .nav-dropdown>button{
    min-height:56px;
    padding:0 clamp(18px,1.7vw,34px);
    font-size:clamp(16px,1.18vw,22px);
  }
  .content-page{
    padding:40px 4vw 70px !important;
  }
  .page-card,
  .committees-ct-style,
  .committees-page .page-card,
  .photos-page-card,
  .history-page-card,
  .membership-page .page-card{
    width:min(1180px, calc(100vw - 80px)) !important;
    max-width:1180px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .service-band{
    padding:18px 4vw 34px !important;
  }
  .home-info-grid,
  .current-events-inner,
  .footer-inner{
    width:min(1180px, calc(100vw - 80px)) !important;
    max-width:1180px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .home-info-grid{
    grid-template-columns:minmax(0,1.3fr) minmax(340px,.7fr) !important;
    gap:46px !important;
    align-items:start;
  }
  .motto-band .title-line h1,
  .title-line h1{
    font-size:clamp(36px,3vw,54px) !important;
  }
  .home-about h2,
  .home-events-panel h2{
    font-size:clamp(24px,1.8vw,32px) !important;
  }
  .home-about p,
  .home-event-item p,
  .committee-section p,
  .history-article,
  .photos-page-card .gallery-intro,
  .page-intro{
    font-size:18px !important;
    line-height:1.55 !important;
  }
  .home-event-item h3{
    font-size:clamp(24px,1.75vw,32px) !important;
  }
  .page-card h1,
  .committees-ct-style h1{
    font-size:clamp(46px,4vw,66px) !important;
  }
  .committee-section h2,
  .photos-page-card .media-section h2{
    font-size:clamp(32px,2.4vw,44px) !important;
  }
  .video-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:24px !important;
  }
}

@media (max-width: 999px){
  .content-page{padding:28px 18px 48px !important;}
  .page-card,
  .committees-ct-style,
  .home-info-grid,
  .current-events-inner,
  .footer-inner{
    width:auto !important;
    max-width:calc(100vw - 36px) !important;
  }
  .home-info-grid{grid-template-columns:1fr !important;}
  .video-gallery{grid-template-columns:1fr !important;}
}

@media (max-width: 600px){
  .site-nav{justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap;}
  .site-nav>a,.nav-dropdown>button{font-size:13px; min-height:48px; padding:0 13px;}
  .home-about p,
  .home-event-item p,
  .committee-section p,
  .history-article,
  .page-intro{font-size:16px !important;}
  .motto-band .title-line h1,.title-line h1{font-size:30px !important;}
}

/* v80: laptop scaling matched closer to Division 14 -- full usable width, not a narrow centered column. Colors unchanged. */
@media (min-width: 1000px){
  .content-page{
    padding:42px 48px 72px !important;
  }
  .page-card,
  .committees-ct-style,
  .committees-page .page-card,
  .photos-page-card,
  .history-page-card,
  .membership-page .page-card{
    width:calc(100vw - 96px) !important;
    max-width:1560px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .service-band{
    padding:18px 48px 42px !important;
  }
  .home-info-grid,
  .current-events-inner,
  .footer-inner{
    width:calc(100vw - 96px) !important;
    max-width:1560px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .home-info-grid{
    grid-template-columns:minmax(0,1.45fr) minmax(380px,.75fr) !important;
    gap:56px !important;
  }
  .home-about h2,
  .home-events-panel h2{
    font-size:34px !important;
  }
  .home-about p,
  .home-event-item p,
  .committee-section p,
  .history-article,
  .photos-page-card .gallery-intro,
  .page-intro{
    font-size:20px !important;
    line-height:1.55 !important;
  }
  .home-event-item h3{
    font-size:32px !important;
  }
  .page-card h1,
  .committees-ct-style h1{
    font-size:64px !important;
  }
  .committee-section h2,
  .photos-page-card .media-section h2{
    font-size:44px !important;
  }
}

@media (min-width: 1400px){
  .content-page{
    padding-left:64px !important;
    padding-right:64px !important;
  }
  .page-card,
  .committees-ct-style,
  .committees-page .page-card,
  .photos-page-card,
  .history-page-card,
  .membership-page .page-card,
  .home-info-grid,
  .current-events-inner,
  .footer-inner{
    width:calc(100vw - 128px) !important;
  }
}

@media (max-width: 999px){
  .content-page{padding:28px 18px 48px !important;}
  .page-card,
  .committees-ct-style,
  .home-info-grid,
  .current-events-inner,
  .footer-inner{
    width:auto !important;
    max-width:calc(100vw - 36px) !important;
  }
  .home-info-grid{grid-template-columns:1fr !important;}
}


/* v90: About page content and clickable Learn More hero button. Colors unchanged. */
.hero{position:relative;}
.hero-learn-more-link{
  position:absolute;
  left:4.6%;
  top:68%;
  width:13.4%;
  height:20%;
  display:block;
  text-decoration:none;
  border-radius:12px;
}
.hero-learn-more-link:focus-visible{outline:3px solid var(--aoh-orange);outline-offset:3px;}
.about-page-card{max-width:1560px;}
.about-card,.about-application-card{
  border:1px solid #d9e1ff;
  border-left:6px solid #1239a0;
  border-radius:8px;
  padding:24px 28px;
  margin:0 0 28px;
  background:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.06);
}
.about-card h2,.about-application-card h2{
  margin:0 0 14px;
  font-family:Georgia,'Times New Roman',serif;
  color:#1239a0;
  font-size:clamp(26px,2.5vw,40px);
}
.about-card h3{
  margin:26px 0 10px;
  color:#1239a0;
  font-size:clamp(21px,1.8vw,30px);
}
.about-card p,.about-card li,.about-application-card p{
  color:#001b68;
  font-size:clamp(17px,1.35vw,21px);
  line-height:1.55;
}
.about-card ul,.about-card ol{padding-left:1.35em;}
.about-card li{margin:8px 0;}
.about-cta{
  display:inline-block;
  margin-top:8px;
  background:#f28c00;
  color:#fff;
  text-decoration:none;
  font-weight:800;
  padding:11px 18px;
  border-radius:7px;
  box-shadow:0 4px 0 rgba(0,0,0,.18);
}
@media(max-width:800px){
  .hero-learn-more-link{left:3.5%;top:68%;width:18%;height:20%;}
  .about-card,.about-application-card{padding:18px 16px;}
}
@media(max-width:520px){
  .hero-learn-more-link{left:3%;top:66%;width:27%;height:23%;}
}


/* Membership application button */
.membership-application-link{
  display:inline-block;
  margin-top:8px;
  padding:10px 16px;
  border-radius:8px;
  background:#f28c00;
  color:#ffffff !important;
  font-family:Arial,Helvetica,sans-serif !important;
  font-size:18px !important;
  font-weight:900 !important;
  text-decoration:none !important;
  box-shadow:0 3px 0 rgba(0,0,0,.25);
}
.membership-application-link:hover,.membership-application-link:focus{
  background:#ffad24;
  color:#082b12 !important;
  outline:none;
}


/* SURGICAL FINAL HEADER FIX
   The old blue map has been removed from header-main.png.
   The exact uploaded map is displayed once, at about one-third header width.
*/
.brand-row {
  position: relative !important;
  max-width: 2048px !important;
  margin: 0 auto !important;
  background: #fff !important;
  overflow: hidden !important;
}

.header-art {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

/* Remove any old full-header image-map layer */
.map-links {
  display: none !important;
}

/* Exact map panel */
.clean-header-map {
  position: absolute !important;
  right: 2.5% !important;
  top: 8% !important;
  width: 33% !important;
  height: 84% !important;
  z-index: 4 !important;
  background: #fff !important;
  background-image: none !important;
  border-left: 2px solid #1f3b9d !important;
  padding-left: 18px !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.clean-header-map img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: #fff !important;
}

/* Invisible clickable hotspot anchors on exact map */
.clean-header-map .town-hotspot {
  position: absolute !important;
  display: block !important;
  z-index: 8 !important;
  width: 9% !important;
  height: 8% !important;
  font-size: 0 !important;
  color: transparent !important;
  text-decoration: none !important;
  background: transparent !important;
  border-radius: 6px !important;
}

.clean-header-map .town-hotspot:focus-visible {
  outline: 3px solid #f28c13 !important;
  background: rgba(242,140,19,.18) !important;
}

/* Hotspot positions within the 33% map image panel */
.clean-header-map .holyoke { left: 14%; top: 45%; }
.clean-header-map .worcester { left: 36%; top: 42%; }
.clean-header-map .clinton { left: 47%; top: 32%; }
.clean-header-map .lowell { left: 57%; top: 18%; }
.clean-header-map .lawrence { left: 65%; top: 10%; }
.clean-header-map .peabody { left: 72%; top: 22%; }
.clean-header-map .salem { left: 72%; top: 29%; }
.clean-header-map .lynn { left: 72%; top: 36%; }
.clean-header-map .malden { left: 71%; top: 43%; }
.clean-header-map .medford { left: 70%; top: 49%; }
.clean-header-map .watertown { left: 69%; top: 54%; }
.clean-header-map .plymouth { left: 73%; top: 65%; }

@media (max-width: 900px) {
  .clean-header-map {
    position: relative !important;
    right: auto !important;
    top: auto !important;
    width: 92% !important;
    height: auto !important;
    margin: 0 auto 10px auto !important;
    border-left: none !important;
    padding-left: 0 !important;
  }
}


.clean-header-map .town-hotspot{
 position:absolute!important;
 display:block!important;
 z-index:50!important;
 width:5%!important;
 height:7%!important;
 pointer-events:auto!important;
 cursor:pointer!important;
 background:transparent!important;
}

.clean-header-map .holyoke{left:18%;top:44%}
.clean-header-map .worcester{left:40%;top:41%}
.clean-header-map .clinton{left:50%;top:33%}
.clean-header-map .lowell{left:60%;top:18%}
.clean-header-map .lawrence{left:69%;top:10%}
.clean-header-map .peabody{left:74%;top:20%}
.clean-header-map .salem{left:74%;top:27%}
.clean-header-map .lynn{left:73%;top:34%}
.clean-header-map .malden{left:72%;top:40%}
.clean-header-map .medford{left:71%;top:46%}
.clean-header-map .watertown{left:69%;top:52%}
.clean-header-map .plymouth{left:74%;top:63%}


/* FINAL LINK FIX — keeps map image unchanged and makes hotspots actually clickable */
.clean-header-map {
  pointer-events: auto !important;
}

.clean-header-map img {
  pointer-events: none !important;
}

.clean-header-map .town-hotspot {
  position: absolute !important;
  display: block !important;
  z-index: 2147483647 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  background: rgba(255,255,255,0) !important;
  color: transparent !important;
  font-size: 0 !important;
  text-decoration: none !important;
  border: 0 !important;
}

/* Make Watertown hit area large and aligned with the visible Watertown label */
.clean-header-map .watertown {
  left: 62% !important;
  top: 44% !important;
  width: 34% !important;
  height: 18% !important;
}

/* Placeholder town hit areas */
.clean-header-map .holyoke { left: 12% !important; top: 42% !important; width: 15% !important; height: 12% !important; }
.clean-header-map .worcester { left: 34% !important; top: 39% !important; width: 16% !important; height: 12% !important; }
.clean-header-map .clinton { left: 45% !important; top: 29% !important; width: 14% !important; height: 11% !important; }
.clean-header-map .lowell { left: 54% !important; top: 15% !important; width: 13% !important; height: 10% !important; }
.clean-header-map .lawrence { left: 62% !important; top: 7% !important; width: 16% !important; height: 10% !important; }
.clean-header-map .peabody { left: 72% !important; top: 18% !important; width: 20% !important; height: 9% !important; }
.clean-header-map .salem { left: 72% !important; top: 25% !important; width: 20% !important; height: 9% !important; }
.clean-header-map .lynn { left: 72% !important; top: 32% !important; width: 20% !important; height: 9% !important; }
.clean-header-map .malden { left: 71% !important; top: 38% !important; width: 20% !important; height: 9% !important; }
.clean-header-map .medford { left: 70% !important; top: 44% !important; width: 20% !important; height: 9% !important; }
.clean-header-map .plymouth { left: 70% !important; top: 61% !important; width: 20% !important; height: 10% !important; }


/* Final hotspot sizing adjustment: reduce Watertown click box so it does not overlap neighboring towns */
.clean-header-map .watertown {
  left: 66% !important;
  top: 48% !important;
  width: 16% !important;
  height: 9% !important;
}

/* FINAL EXACT MAP IMPLEMENTATION — no generated map, no distortion */
.brand-row{position:relative!important;max-width:2048px!important;margin:0 auto!important;background:#fff!important;overflow:hidden!important}
.header-art{display:block!important;width:100%!important;height:auto!important}
.map-links{display:none!important}
.clean-header-map{position:absolute!important;right:2.5%!important;top:8%!important;width:33%!important;height:84%!important;z-index:20!important;background:#fff!important;border-left:2px solid #1f3b9d!important;padding-left:18px!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:visible!important;pointer-events:auto!important}
.clean-header-map img{display:block!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center center!important;pointer-events:none!important}
.clean-header-map .town-hotspot{position:absolute!important;display:block!important;z-index:2147483647!important;pointer-events:auto!important;cursor:pointer!important;background:transparent!important;color:transparent!important;font-size:0!important;text-decoration:none!important;border:none!important}
.clean-header-map .town-hotspot:focus-visible{outline:2px solid #f28c13!important;background:rgba(242,140,19,.14)!important}
.clean-header-map .holyoke{left:19%!important;top:44.5%!important;width:7.5%!important;height:6.5%!important}
.clean-header-map .worcester{left:40.5%!important;top:41.5%!important;width:8%!important;height:6.5%!important}
.clean-header-map .clinton{left:50.5%!important;top:32%!important;width:7.5%!important;height:6.5%!important}
.clean-header-map .lowell{left:59.5%!important;top:19%!important;width:7.5%!important;height:6%!important}
.clean-header-map .lawrence{left:66.5%!important;top:10.5%!important;width:8%!important;height:6%!important}
.clean-header-map .peabody{left:73.5%!important;top:22%!important;width:9%!important;height:5.8%!important}
.clean-header-map .salem{left:73.5%!important;top:28.5%!important;width:9%!important;height:5.8%!important}
.clean-header-map .lynn{left:73%!important;top:35%!important;width:8.5%!important;height:5.8%!important}
.clean-header-map .malden{left:72.5%!important;top:41%!important;width:9%!important;height:5.8%!important}
.clean-header-map .medford{left:71.5%!important;top:47%!important;width:9%!important;height:5.8%!important}
.clean-header-map .watertown{left:69.5%!important;top:52.5%!important;width:10%!important;height:6%!important}
.clean-header-map .plymouth{left:73%!important;top:64%!important;width:8.5%!important;height:6.5%!important}
@media(max-width:900px){.clean-header-map{position:relative!important;right:auto!important;top:auto!important;width:92%!important;height:auto!important;margin:0 auto 10px auto!important;border-left:none!important;padding-left:0!important}}


/* FINAL EXACT MAP + HOTSPOT ALIGNMENT */
.brand-row {
  position: relative !important;
  max-width: 2048px !important;
  margin: 0 auto !important;
  background: #fff !important;
  overflow: hidden !important;
}
.header-art {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}
.map-links {
  display: none !important;
}
.clean-header-map {
  position: absolute !important;
  right: 2.5% !important;
  top: 8% !important;
  width: 33% !important;
  height: 84% !important;
  z-index: 20 !important;
  background: #fff !important;
  border-left: 2px solid #1f3b9d !important;
  padding-left: 18px !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
  pointer-events: auto !important;
}
.clean-header-map img {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  pointer-events: none !important;
}
.clean-header-map .town-hotspot {
  position: absolute !important;
  display: block !important;
  z-index: 2147483647 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  background: transparent !important;
  color: transparent !important;
  font-size: 0 !important;
  text-decoration: none !important;
  border: none !important;
}
.clean-header-map .town-hotspot:focus-visible {
  outline: 2px solid #f28c13 !important;
  background: rgba(242,140,19,.14) !important;
}

/* Coordinates account for the 16:9 exact map being centered in the 33% map panel.
   Watertown is intentionally above Plymouth and no longer overlaps it. */
.clean-header-map .holyoke   { left: 27.0% !important; top: 43.5% !important; width: 5.0% !important; height: 5.5% !important; }
.clean-header-map .worcester { left: 43.0% !important; top: 40.5% !important; width: 5.2% !important; height: 5.5% !important; }
.clean-header-map .clinton   { left: 51.0% !important; top: 31.0% !important; width: 5.3% !important; height: 5.5% !important; }
.clean-header-map .lowell    { left: 59.2% !important; top: 17.0% !important; width: 5.2% !important; height: 5.5% !important; }
.clean-header-map .lawrence  { left: 66.0% !important; top: 9.5% !important; width: 5.4% !important; height: 5.5% !important; }
.clean-header-map .peabody   { left: 67.0% !important; top: 23.0% !important; width: 7.0% !important; height: 5.0% !important; }
.clean-header-map .salem     { left: 66.8% !important; top: 29.0% !important; width: 7.0% !important; height: 5.0% !important; }
.clean-header-map .lynn      { left: 66.2% !important; top: 35.0% !important; width: 7.0% !important; height: 5.0% !important; }
.clean-header-map .malden    { left: 65.6% !important; top: 40.2% !important; width: 7.0% !important; height: 5.0% !important; }
.clean-header-map .medford   { left: 64.8% !important; top: 45.5% !important; width: 7.0% !important; height: 5.0% !important; }
.clean-header-map .watertown { left: 53.0% !important; top: 38.8% !important; width: 17.0% !important; height: 8.0% !important; }
.clean-header-map .plymouth  { left: 64.5% !important; top: 56.5% !important; width: 8.5% !important; height: 7.0% !important; }

@media (max-width: 900px) {
  .clean-header-map {
    position: relative !important;
    right: auto !important;
    top: auto !important;
    width: 92% !important;
    height: auto !important;
    margin: 0 auto 10px auto !important;
    border-left: none !important;
    padding-left: 0 !important;
  }
}


/* FINAL REVERT: preserve the good map image/layout from the supplied zip.
   Only adjust clickable hotspot boxes and move the slogan slightly left. */

/* Keep the existing good map rendering; do not redraw or replace the map. */
.clean-header-map img {
  display: block !important;
}

/* Move the existing map/slogan area slightly left if rendered as text/SVG in any browser path. */
.clean-header-map .serving,
.serving-commonwealth,
.map-slogan,
.header-map-slogan {
  transform: translateX(-12px) translateY(-3px) !important;
}

/* Tight, small hover rectangles centered on the visible town labels/shamrocks. */
.town-hotspot {
  position: absolute !important;
  display: block !important;
  z-index: 2147483647 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-decoration: none !important;
  background: transparent !important;
  border: none !important;
  border-radius: 2px !important;
}

.town-hotspot:hover,
.town-hotspot:focus-visible {
  outline: 1px solid rgba(242,140,0,.9) !important;
  outline-offset: 0 !important;
  background: rgba(242,140,0,.05) !important;
}

/* Percent positions are tuned to the supplied good-map header. */
.town-hotspot.holyoke   { left: 19.4% !important; top: 49.4% !important; width:  9.5% !important; height: 5.2% !important; }
.town-hotspot.worcester { left: 39.2% !important; top: 47.9% !important; width:  9.8% !important; height: 5.2% !important; }
.town-hotspot.clinton   { left: 48.0% !important; top: 37.0% !important; width:  8.8% !important; height: 5.2% !important; }
.town-hotspot.lowell    { left: 47.0% !important; top: 17.2% !important; width: 10.0% !important; height: 5.2% !important; }
.town-hotspot.lawrence  { left: 46.3% !important; top:  5.8% !important; width: 13.5% !important; height: 5.2% !important; }
.town-hotspot.peabody   { left: 66.8% !important; top:  6.8% !important; width: 18.0% !important; height: 5.0% !important; }
.town-hotspot.salem     { left: 66.8% !important; top: 14.0% !important; width: 18.0% !important; height: 5.0% !important; }
.town-hotspot.lynn      { left: 66.8% !important; top: 20.5% !important; width: 18.0% !important; height: 5.0% !important; }
.town-hotspot.malden    { left: 66.8% !important; top: 27.4% !important; width: 18.0% !important; height: 5.0% !important; }
.town-hotspot.medford   { left: 66.8% !important; top: 34.2% !important; width: 18.0% !important; height: 5.0% !important; }

/* Watertown: smaller and higher than Plymouth, centered on Watertown label/marker. */
.town-hotspot.watertown { left: 66.8% !important; top: 40.8% !important; width: 18.5% !important; height: 5.0% !important; z-index: 2147483647 !important; }

.town-hotspot.plymouth  { left: 73.5% !important; top: 65.8% !important; width: 15.5% !important; height: 5.6% !important; }


/* FINAL HOTSPOT FIX ONLY — preserve current good map/header exactly.
   These override the older wide hotspot boxes. */
.clean-header-map .town-hotspot {
  position: absolute !important;
  display: block !important;
  z-index: 2147483647 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  background: transparent !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-decoration: none !important;
  border: none !important;
  border-radius: 2px !important;
}

.clean-header-map .town-hotspot:hover,
.clean-header-map .town-hotspot:focus-visible {
  outline: 1px solid rgba(242,140,0,.85) !important;
  outline-offset: 0 !important;
  background: rgba(242,140,0,.035) !important;
}

/* Small, non-overlapping boxes centered closer to each town/shamrock on the current map. */
.clean-header-map .town-hotspot.holyoke   { left: 19.8% !important; top: 49.0% !important; width:  6.2% !important; height: 3.8% !important; }
.clean-header-map .town-hotspot.worcester { left: 40.2% !important; top: 47.4% !important; width:  6.6% !important; height: 3.8% !important; }
.clean-header-map .town-hotspot.clinton   { left: 49.1% !important; top: 36.3% !important; width:  6.0% !important; height: 3.8% !important; }
.clean-header-map .town-hotspot.lowell    { left: 48.5% !important; top: 16.7% !important; width:  6.4% !important; height: 3.6% !important; }
.clean-header-map .town-hotspot.lawrence  { left: 55.0% !important; top:  5.6% !important; width:  7.4% !important; height: 3.6% !important; }

.clean-header-map .town-hotspot.peabody   { left: 67.6% !important; top:  6.7% !important; width:  9.0% !important; height: 3.4% !important; }
.clean-header-map .town-hotspot.salem     { left: 67.6% !important; top: 13.8% !important; width:  8.6% !important; height: 3.4% !important; }
.clean-header-map .town-hotspot.lynn      { left: 67.6% !important; top: 20.4% !important; width:  8.2% !important; height: 3.4% !important; }
.clean-header-map .town-hotspot.malden    { left: 67.6% !important; top: 27.1% !important; width:  9.0% !important; height: 3.4% !important; }
.clean-header-map .town-hotspot.medford   { left: 67.6% !important; top: 33.9% !important; width:  9.0% !important; height: 3.4% !important; }

/* Watertown: live link, intentionally tight and separated from Plymouth. */
.clean-header-map .town-hotspot.watertown { left: 67.3% !important; top: 40.7% !important; width: 10.2% !important; height: 3.6% !important; z-index: 2147483647 !important; }

.clean-header-map .town-hotspot.plymouth  { left: 74.2% !important; top: 65.8% !important; width:  8.8% !important; height: 4.0% !important; }


/* FORCE WATERTOWN LINK HIT AREA — small, top-layer clickable box */
.clean-header-map .town-hotspot.watertown {
  left: 66.9% !important;
  top: 39.8% !important;
  width: 11.5% !important;
  height: 4.6% !important;
  z-index: 2147483647 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}
.clean-header-map .town-hotspot.watertown:hover,
.clean-header-map .town-hotspot.watertown:focus-visible {
  outline: 1px solid rgba(242,140,0,.9) !important;
  background: rgba(242,140,0,.05) !important;
}


/* FINAL WATERTOWN HOTSPOT ALIGNMENT
   Small rectangle centered on visible Watertown text/shamrock. */
.clean-header-map .town-hotspot.watertown {
  left: 57.2% !important;
  top: 43.0% !important;
  width: 8.0% !important;
  height: 3.6% !important;
  z-index: 2147483647 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}

.clean-header-map .town-hotspot.watertown:hover,
.clean-header-map .town-hotspot.watertown:focus-visible {
  outline: 1px solid rgba(242,140,0,.9) !important;
  outline-offset: 0 !important;
  background: rgba(242,140,0,.045) !important;
}


/* FINAL MAP HOTSPOT ALIGNMENT — CSS only, no map distortion */
.clean-header-map .town-hotspot {
  position: absolute !important;
  display: block !important;
  z-index: 2147483647 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  background: transparent !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-decoration: none !important;
  border: none !important;
  border-radius: 2px !important;
}

.clean-header-map .town-hotspot:hover,
.clean-header-map .town-hotspot:focus-visible {
  outline: 1px solid rgba(242,140,0,.85) !important;
  outline-offset: 0 !important;
  background: rgba(242,140,0,.035) !important;
}

/* Tight boxes centered over the current visible labels/shamrocks */
.clean-header-map .town-hotspot.holyoke   { left: 18.8% !important; top: 43.8% !important; width: 5.8% !important; height: 4.0% !important; }
.clean-header-map .town-hotspot.worcester { left: 38.4% !important; top: 42.5% !important; width: 6.2% !important; height: 4.0% !important; }
.clean-header-map .town-hotspot.clinton   { left: 47.8% !important; top: 32.0% !important; width: 5.8% !important; height: 4.0% !important; }
.clean-header-map .town-hotspot.lowell    { left: 56.8% !important; top: 18.7% !important; width: 5.8% !important; height: 3.8% !important; }
.clean-header-map .town-hotspot.lawrence  { left: 64.6% !important; top: 10.8% !important; width: 6.6% !important; height: 3.8% !important; }

.clean-header-map .town-hotspot.peabody   { left: 68.6% !important; top: 23.4% !important; width: 7.0% !important; height: 3.6% !important; }
.clean-header-map .town-hotspot.salem     { left: 68.1% !important; top: 29.4% !important; width: 6.8% !important; height: 3.6% !important; }
.clean-header-map .town-hotspot.lynn      { left: 67.8% !important; top: 35.1% !important; width: 6.5% !important; height: 3.6% !important; }
.clean-header-map .town-hotspot.malden    { left: 67.3% !important; top: 40.6% !important; width: 7.2% !important; height: 3.6% !important; }
.clean-header-map .town-hotspot.medford   { left: 66.7% !important; top: 46.1% !important; width: 7.0% !important; height: 3.6% !important; }

.clean-header-map .town-hotspot.watertown { left: 66.0% !important; top: 51.2% !important; width: 8.5% !important; height: 3.8% !important; }

.clean-header-map .town-hotspot.plymouth  { left: 73.0% !important; top: 63.8% !important; width: 7.5% !important; height: 4.2% !important; }


/* FINAL CORRECTION: Watertown hotspot only + small hover box */
.clean-header-map .town-hotspot.watertown {
  left: 51.5% !important;
  top: 39.8% !important;
  width: 10.5% !important;
  height: 4.0% !important;
  z-index: 2147483647 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}

.clean-header-map .town-hotspot.watertown:hover,
.clean-header-map .town-hotspot.watertown:focus-visible {
  outline: 1px solid rgba(242,140,0,.9) !important;
  outline-offset: 0 !important;
  background: rgba(242,140,0,.045) !important;
}


/* FINAL: keep hyperlink overlay active; no map/header scaling changes */
.clean-header-map .town-hotspot {
  pointer-events: auto !important;
  cursor: pointer !important;
}

.clean-header-map .town-hotspot.watertown {
  left: 51.5% !important;
  top: 39.8% !important;
  width: 10.5% !important;
  height: 4.0% !important;
  z-index: 2147483647 !important;
}

.clean-header-map .town-hotspot:hover,
.clean-header-map .town-hotspot:focus-visible {
  outline: 1px solid rgba(242,140,0,.85) !important;
  outline-offset: 0 !important;
  background: rgba(242,140,0,.035) !important;
}


/* v50 final tune: slightly smaller hotspots and a moved/restyled Serving the Commonwealth label. */
.clean-header-map .serving-commonwealth{
  position:absolute !important;
  left:5.6% !important;
  bottom:4.9% !important;
  z-index:2147483646 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-style: italic !important;
  font-size: clamp(18px, 2.0vw, 36px) !important;
  line-height:1.05 !important;
  color:#6c6c6c !important;
  background:rgba(255,255,255,.94) !important;
  padding:1px 10px 2px 6px !important;
  border-radius:4px !important;
  transform:translate(-10px,-5px) !important;
  white-space:nowrap !important;
  pointer-events:none !important;
}
.clean-header-map .town-hotspot:hover,
.clean-header-map .town-hotspot:focus-visible{
  outline:1px solid rgba(242,140,0,.82) !important;
  background:rgba(242,140,0,.028) !important;
}
/* Slightly smaller than v49 */
.clean-header-map .town-hotspot.holyoke   { left: 21.0% !important; top: 41.2% !important; width: 8.2% !important; height: 5.5% !important; }
.clean-header-map .town-hotspot.worcester { left: 39.6% !important; top: 37.8% !important; width: 8.6% !important; height: 5.4% !important; }
.clean-header-map .town-hotspot.clinton   { left: 43.7% !important; top: 30.4% !important; width: 7.8% !important; height: 5.5% !important; }
.clean-header-map .town-hotspot.lowell    { left: 50.5% !important; top: 18.2% !important; width: 7.4% !important; height: 5.2% !important; }
.clean-header-map .town-hotspot.lawrence  { left: 60.6% !important; top: 13.6% !important; width: 9.8% !important; height: 5.2% !important; }
.clean-header-map .town-hotspot.peabody   { left: 62.3% !important; top: 21.7% !important; width: 9.6% !important; height: 5.1% !important; }
.clean-header-map .town-hotspot.salem     { left: 62.1% !important; top: 25.7% !important; width: 9.0% !important; height: 4.9% !important; }
.clean-header-map .town-hotspot.lynn      { left: 61.8% !important; top: 30.4% !important; width: 8.6% !important; height: 4.9% !important; }
.clean-header-map .town-hotspot.malden    { left: 58.7% !important; top: 34.7% !important; width: 9.6% !important; height: 5.1% !important; }
.clean-header-map .town-hotspot.medford   { left: 55.8% !important; top: 38.6% !important; width: 9.6% !important; height: 5.2% !important; }
.clean-header-map .town-hotspot.watertown { left: 53.0% !important; top: 41.8% !important; width: 11.0% !important; height: 5.4% !important; }
.clean-header-map .town-hotspot.plymouth  { left: 65.9% !important; top: 53.4% !important; width: 9.6% !important; height: 5.7% !important; }


/* v51: Serving the Commonwealth cleanup.
   Reduce overlay text height by about half, use lighter gray, and cover duplicate baked-in slogan. */
.clean-header-map .serving-duplicate-cover {
  position: absolute !important;
  left: 34.5% !important;
  bottom: 6.2% !important;
  width: 32% !important;
  height: 9.5% !important;
  z-index: 2147483645 !important;
  background: #fff !important;
  pointer-events: none !important;
}

.clean-header-map .serving-commonwealth {
  position: absolute !important;
  left: 5.4% !important;
  bottom: 6.8% !important;
  z-index: 2147483646 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-style: italic !important;
  font-size: clamp(10px, 1.05vw, 18px) !important;
  line-height: 1.05 !important;
  color: #9a9a9a !important;
  background: rgba(255,255,255,.94) !important;
  padding: 1px 6px 1px 4px !important;
  border-radius: 3px !important;
  transform: translate(-8px,-3px) !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}


/* v52 final serving text placement:
   Move the visible slogan up and slightly right under the map.
   Widen/lower the white cover to remove the small duplicate baked into the map image. */
.clean-header-map .serving-duplicate-cover {
  position: absolute !important;
  left: 30.0% !important;
  bottom: 2.6% !important;
  width: 46.0% !important;
  height: 15.5% !important;
  z-index: 2147483645 !important;
  background: #fff !important;
  pointer-events: none !important;
}

.clean-header-map .serving-commonwealth {
  position: absolute !important;
  left: 36.5% !important;
  bottom: 12.6% !important;
  z-index: 2147483646 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-style: italic !important;
  font-size: clamp(10px, 1.05vw, 18px) !important;
  line-height: 1.05 !important;
  color: #9a9a9a !important;
  background: rgba(255,255,255,.96) !important;
  padding: 1px 6px 1px 4px !important;
  border-radius: 3px !important;
  transform: translate(4px,-5px) !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}


/* v53: final correction for Serving the Commonwealth.
   The previous cover was too high and missed the blue duplicate at the bottom.
   This keeps the gray overlay under the map and fully hides the duplicate blue slogan. */
.clean-header-map .serving-duplicate-cover {
  position: absolute !important;
  left: 25.0% !important;
  bottom: 0.0% !important;
  width: 50.0% !important;

  height: 14.5% !important;
  z-index: 2147483645 !important;
  background: #fff !important;
  pointer-events: none !important;
}

.clean-header-map .serving-commonwealth {
  position: absolute !important;
  left: 32.0% !important;
  bottom: 22.0% !important;
  z-index: 2147483646 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-style: italic !important;
  font-size: clamp(10px, 1.05vw, 18px) !important;
  line-height: 1.05 !important;
  color: #9a9a9a !important;
  background: rgba(255,255,255,.92) !important;
  padding: 1px 6px 1px 4px !important;
  border-radius: 3px !important;
  transform: translate(0,-2px) !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}


/* v54: move single gray Serving the Commonwealth back DOWN under the map.
   Keep the duplicate blue baked-in slogan covered. */
.clean-header-map .serving-duplicate-cover {
  position: absolute !important;
  left: 23.0% !important;
  bottom: 0.0% !important;
  width: 56.0% !important;
  height: 17.0% !important;
  z-index: 2147483645 !important;
  background: #fff !important;
  pointer-events: none !important;
}

.clean-header-map .serving-commonwealth {
  position: absolute !important;
  left: 32.5% !important;
  bottom: 12.0% !important;
  z-index: 2147483646 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-style: italic !important;
  font-size: clamp(10px, 1.05vw, 18px) !important;
  line-height: 1.05 !important;
  color: #a3a3a3 !important;
  background: rgba(255,255,255,.96) !important;
  padding: 1px 6px 1px 4px !important;
  border-radius: 3px !important;
  transform: translate(6px,0) !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}


/* v55: move "Serving the Commonwealth" farther left so the first S
   starts near the left-side red dot shown by the user. */
.clean-header-map .serving-commonwealth {
  left: 6.0% !important;
  bottom: 12.0% !important;
  transform: none !important;
}


/* v56: nudge "Serving the Commonwealth" so the first S is closer to the red dot.
   Move slightly right and up from v55. */
.clean-header-map .serving-commonwealth {
  left: 15.0% !important;
  bottom: 23.0% !important;
  transform: none !important;
}

/* FINAL HEADER-MAP HOTSPOT OVERRIDE — preserves the existing map image exactly. */
.clean-header-map {
  pointer-events: auto !important;
}

.clean-header-map img {
  pointer-events: none !important;
}

.clean-header-map .town-hotspot {
  position: absolute !important;
  display: block !important;
  z-index: 2147483647 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 2px !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-decoration: none !important;
}

.clean-header-map .town-hotspot:hover,
.clean-header-map .town-hotspot:focus-visible {
  outline: 1px solid rgba(242,140,0,.85) !important;
  outline-offset: 0 !important;
  background: rgba(242,140,0,.035) !important;
}

/* Final clickable areas aligned to the current visible town labels. */
.clean-header-map .town-hotspot.holyoke   { left: 20.0% !important; top: 40.8% !important; width: 10.0% !important; height: 6.2% !important; }
.clean-header-map .town-hotspot.worcester { left: 39.0% !important; top: 37.6% !important; width: 10.5% !important; height: 6.2% !important; }
.clean-header-map .town-hotspot.clinton   { left: 43.0% !important; top: 30.0% !important; width:  9.5% !important; height: 6.2% !important; }
.clean-header-map .town-hotspot.lowell    { left: 50.0% !important; top: 17.8% !important; width:  9.0% !important; height: 5.8% !important; }
.clean-header-map .town-hotspot.lawrence  { left: 59.0% !important; top: 13.0% !important; width: 11.0% !important; height: 5.8% !important; }
.clean-header-map .town-hotspot.peabody   { left: 61.8% !important; top: 21.2% !important; width: 10.5% !important; height: 5.4% !important; }
.clean-header-map .town-hotspot.salem     { left: 61.6% !important; top: 25.5% !important; width: 10.0% !important; height: 5.2% !important; }
.clean-header-map .town-hotspot.lynn      { left: 61.2% !important; top: 30.1% !important; width:  9.5% !important; height: 5.2% !important; }
.clean-header-map .town-hotspot.malden    { left: 58.4% !important; top: 34.4% !important; width: 10.5% !important; height: 5.3% !important; }
.clean-header-map .town-hotspot.medford   { left: 55.4% !important; top: 38.3% !important; width: 10.5% !important; height: 5.4% !important; }
.clean-header-map .town-hotspot.watertown { left: 52.5% !important; top: 41.5% !important; width: 12.0% !important; height: 5.6% !important; }
.clean-header-map .town-hotspot.plymouth  { left: 65.4% !important; top: 53.0% !important; width: 10.5% !important; height: 5.8% !important; }