/*
Theme Name: Borough of Eatontown
Version: 1.0.0
Base: Juniper Maverick (default)
*/

/*FIGMA_VARIABLES*/

/* ============================================================
   EATONTOWN DESIGN TOKENS — extracted from Figma (see
   AgentSessions/TW/juniper-themes/borough-of-eatontown/DESIGN-TOKENS.md)
   ============================================================ */
:root {
  /* Core palette (PRIMARY/SECONDARY/TERTIARY mirror theme settings) */
  --eatontown-navy: #0b1e3d;             /* primary: nav, titles, QL circles, calendar header */
  --eatontown-navy-deep: #071428;        /* footer */
  --eatontown-navy-hover: #0b3b89;       /* QL circle hover */
  --eatontown-blue-link: #0a47a9;        /* FAQ open question */
  --eatontown-blue-strip: #305691;       /* homepage ticker strip */
  --eatontown-gold: #c9a843;             /* solid gold: rules, dots, borders */
  --eatontown-gold-text: #d4a843;        /* eyebrow labels on dark */
  --eatontown-gold-dark: #996b14;        /* FAQ close button */
  --eatontown-gold-grad-start: #ffc863;
  --eatontown-gold-grad-end: #d79f37;    /* secondary */
  --eatontown-gold-grad: linear-gradient(162deg, #ffc863 0%, #d79f37 100%);
  --eatontown-gold-grad-hover: linear-gradient(162deg, #ffdd9e 0%, #ebba5e 100%);
  --eatontown-gold-shadow: 0 5px 11px rgba(195, 127, 0, 0.34);
  --eatontown-gold-border-40: rgba(201, 168, 67, 0.4);
  --eatontown-gold-border-55: rgba(201, 168, 67, 0.55);
  --eatontown-gold-border-60: rgba(201, 168, 67, 0.6);
  --eatontown-gold-divider-25: rgba(201, 168, 67, 0.25);
  --eatontown-alert-red: #c8102e;

  /* Surfaces & borders */
  --eatontown-cream: #faf8f3;            /* tertiary: QL band, FAQ section */
  --eatontown-cream-border: #e8e2d4;
  --eatontown-list-border: #ddd8cc;      /* alerts list card */
  --eatontown-ice: #f4f7fb;              /* mobile alerts bg */
  --eatontown-ice-2: #f2f5f9;            /* calendar weekday row */
  --eatontown-ice-3: #eef2f8;            /* meeting date box */
  --eatontown-border-blue: #d8e2ee;      /* calendar card */
  --eatontown-border-blue-2: #dde3ea;    /* search input, weekday rule */
  --eatontown-border-blue-3: #d4dce8;    /* meeting card */
  --eatontown-border-blue-4: #c4cedd;    /* date box */
  --eatontown-border-grey: #d5d5d5;      /* closed FAQ item */

  /* Text */
  --eatontown-text: #111111;
  --eatontown-text-slate: #1e293b;       /* alert row titles */
  --eatontown-text-muted: #57687f;       /* date box month */
  --eatontown-white-80: rgba(255, 255, 255, 0.8);
  --eatontown-white-14: rgba(255, 255, 255, 0.14);
  --eatontown-white-07: rgba(255, 255, 255, 0.07);

  /* Overlays & shadows */
  --eatontown-overlay-hero-start: rgba(7, 20, 40, 0.58);
  --eatontown-overlay-hero-end: rgba(7, 20, 40, 0.16);
  --eatontown-shadow-card: 0 4px 24px rgba(11, 30, 61, 0.08);
  --eatontown-shadow-list: 0 4px 32px rgba(11, 30, 61, 0.07);
  --eatontown-shadow-circle: 0 6px 20px rgba(11, 30, 61, 0.27);
  --eatontown-shadow-menu: 0 8px 16px rgba(0, 0, 0, 0.28);

  /* Typography */
  --eatontown-font-heading: var(--hedings-font, "DM Serif Display"), Georgia, serif;
  --eatontown-font-body: var(--primary-font, Inter), "Segoe UI", sans-serif;

  /* Layout */
  --eatontown-container-max: 1024px;
  --eatontown-section-pad-y: 72px;
  --eatontown-header-height: 87px;
  --eatontown-hero-height: 406px;
  --eatontown-page-title-band: 279px;

  /* Components */
  --eatontown-btn-height: 44px;
  --eatontown-btn-radius: 10px;
  --eatontown-card-radius: 14px;
  --eatontown-panel-radius: 12px;
  --eatontown-input-radius: 8px;
  --eatontown-input-height: 46px;
  --eatontown-quicklink-size: 84px;

}

html {
  scroll-padding-top: 120px;
}

body {
  position: relative;
  overflow-x: hidden;
}

p {
  font-family: var(--primary-font);
  font-size: var(--default-size, 16px);
}

h1 {
  font-size: var(--h1-size, 36px);
  font-family: var(--hedings-font, var(--primary-font));
}

h2 {
  font-size: var(--h2-size, 30px);
  font-family: var(--hedings-font, var(--primary-font));
}

h3 {
  font-size: var(--h3-size, 24px);
  font-family: var(--hedings-font, var(--primary-font));
}

h4 {
  font-size: var(--h4-size, 18px);
  font-family: var(--hedings-font, var(--primary-font));
}

h5 {
  font-size: var(--h5-size, 14px);
  font-family: var(--hedings-font, var(--primary-font));
}

h6 {
  font-size: var(--h6-size, 12px);
  font-family: var(--hedings-font, var(--primary-font));
}

body a {
  font-size: var(--a-size, 12px);
  color: var(--a-color, var(--primary-color));
}

.tw-bg-secondary {
  background: var(--secondary-color);
  background-color: var(--secondary-color);
}

.tw-bg-primary {
  background: var(--primary-color);
  background-color: var(--primary-color);
}

.tw-bg-tertiary {
  background: var(--tertiary-color);
  background-color: var(--tertiary-color);
}

.tw-secondary {
  color: var(--secondary-color);
}

.tw-primary {
  color: var(--primary-color);
}

.tw-tertiary {
  color: var(--tertiary-color);
}

.tw-primary-dark {
  color: #293b6d;
}
.tw-fb-color {
  color: #1877f2;
}
.tw-fb-twitter {
  color: #1da1f2;
}
.tw-fb-instagram {
  color: #f00073;
}
.tw-fb-youtube {
  color: #ff0000;
}

.tw-btn {
  padding: 10px 35px;
  background: #decb53;
  border-radius: 8px;
  transition: unset;
  border-bottom: none;
  font-size: 17px;
  font-weight: 700;
  color: #07483d;
  display: inline-block;
}
.has-error {
  border: 2px solid #c0392b !important;
}
a.tw-btn {
  text-decoration: none;
}
a.tw-btn:hover {
  color: #07483d;
}
#back-to-top {
  display: none;
  position: fixed;
  right: 27px;
  bottom: 10px;
  cursor: pointer;
  width: 60px;
  height: 60px;
  background: var(--primary-color);
  opacity: 0.5;
  border-radius: 50%;
  z-index: 1000;
  text-align: center;
  transition: 1s;
  box-shadow: 0 16px 32px rgb(0 0 0 / 100%);
  -webkit-text-stroke: 3px var(--primary-color);
}

#back-to-top:hover {
  opacity: 0.8;
}

#back-to-top i {
  color: #ffffff;
  font-size: 35px;
  padding-top: 19%;
  background: transparent;
}
.fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  box-shadow: 0 1px 9px 1px var(--primary-color);
}
.fixed-navbar {
  transition: 0.5s;
}

.customizer-wrapper #fixed-header-logo {
  z-index: 0;
}

#fixed-header-logo {
  left: 10px;
  opacity: 0;
  transition: 0.8s;
  padding-top: 0.5rem;
  height: 67px;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  z-index: 1001;
}

.fixed #fixed-header-logo {
  opacity: 1;
}

.fixed.down #fixed-header-logo {
  animation-name: appear;
}

#bottom.up:not(.fixed) #fixed-header-logo {
  animation-name: disappear;
}

#fixed-header-logo img {
  height: 50px;
  width: auto;
  transition: 0.8s;
}

.fixed-side-menu {
  position: fixed;
  right: 0;
  z-index: 999;
}

.fixed-side-menu ul li {
  /*transition: .2s;*/
  width: 160px !important;
  padding-right: 0 !important;
  /*margin-right: 0 !important;*/
  /*width: 50px;*/
}

/* Icon-only mode: hide labels visually but keep them in the accessibility
   tree — display:none would leave the links without an accessible name */
.fixed-side-menu a span {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.fixed-side-menu a i:first-child {
  transition: 0.2s;
  display: flex !important;
}

.fixed-side-menu a i:last-child {
  transition: 0.2s;
  display: none;
}

.absolute-side-menu {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
}

@keyframes appear {
  0% {
    transform: translatex(-200px);
    /*left: 0;*/
  }
  100% {
    transform: translatex(0px) translatey(0px) translateZ(0px);
    /*left: 0;*/
  }
}

@keyframes disappear {
  0% {
    transform: translatex(0px) translatey(0px) translateZ(0px);
    /*left: 0;*/
  }
  100% {
    transform: translatex(-200px);
    /*left: 0;*/
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@media (min-width: 768px) {
  .fixed-navbar {
    padding-left: 150px;
  }
}
article .wp-post-image {
  width: 100%;
  height: auto;
  border-radius: 3px 3px 0 0;
}

/*=====================================
  =            HEADER STYLES            =
  =====================================*/

#menuPrimary button.navbar-toggler {
  height: 40px;
  width: 50px;
  justify-content: center;
  align-items: center;
  padding: 0;
  margin: 0;
  margin-bottom: 10px;
  background-color: var(--primary-color);
}

#menuPrimary button.navbar-toggler:focus {
  box-shadow: none;
}
/*----------  hamburger animated  ----------*/
#menuPrimary button.navbar-toggler .tw-hamburger-animated-icon {
  width: 30px;
  height: 23px;
  position: relative;
  margin: 0px;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: 0.5s ease-in-out;
  -moz-transition: 0.5s ease-in-out;
  -o-transition: 0.5s ease-in-out;
  transition: 0.5s ease-in-out;
  cursor: pointer;
}

#menuPrimary button.navbar-toggler .tw-hamburger-animated-icon span {
  display: block;
  position: absolute;
  background: #fff;
  height: 3px;
  width: 100%;
  border-radius: 9px;
  opacity: 1;
  left: 0;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: 0.25s ease-in-out;
  -moz-transition: 0.25s ease-in-out;
  -o-transition: 0.25s ease-in-out;
  transition: 0.25s ease-in-out;
}

#menuPrimary button.navbar-toggler .tw-hamburger-animated-icon span:nth-child(1) {
  top: 0px;
}

#menuPrimary button.navbar-toggler .tw-hamburger-animated-icon span:nth-child(2) {
  top: 10px;
}

#menuPrimary button.navbar-toggler .tw-hamburger-animated-icon span:nth-child(3) {
  top: 20px;
}

#menuPrimary button[aria-expanded="true"] .tw-hamburger-animated-icon span:nth-child(1) {
  top: 11px;
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -o-transform: rotate(135deg);
  transform: rotate(135deg);
}

#menuPrimary button[aria-expanded="true"] .tw-hamburger-animated-icon span:nth-child(2) {
  opacity: 0;
  left: -60px;
}

#menuPrimary button[aria-expanded="true"] .tw-hamburger-animated-icon span:nth-child(3) {
  top: 11px;
  -webkit-transform: rotate(-135deg);
  -moz-transform: rotate(-135deg);
  -o-transform: rotate(-135deg);
  transform: rotate(-135deg);
}
#menuPrimary #mainMenuWrapper ul {
  padding-top: 40px;
}
#menuPrimary #mainMenuWrapper ul li {
  border-bottom: 0.5px solid rgba(234, 234, 234, 0.2);
}
/*---------------------------------------------------------------------------*/
header#headerDefault li {
  position: relative;
}
header#headerDefault ul.menu-primary > li > a {
  height: 100%;
}
header#headerDefault a {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  text-align: center;
  transition: 0.2s;
}
header#headerDefault ul.menu-primary ul.dropdown-menu {
  width: 100%;
  margin-top: 0;
  background-clip: unset;
  border: none;
  border-radius: 0;
}
header#headerDefault ul.menu-primary ul.dropdown-menu a {
  font-weight: 400;
}
header#headerDefault.fixed-header #top a.navbar-brand {
  position: absolute;
  top: 67%;
  left: 0;
}
@media (min-width: 768px) {
  header#headerDefault nav.navbar a.navbar-brand {
    position: relative;
    top: 0;
    left: 0;
  }
  header#headerDefault div#tw-header-menus-wrapper {
    margin-top: 0;
    z-index: 1;
  }
  header#headerDefault nav.navbar #mainMenuWrapper ul {
    padding-top: 0;
  }
  header#headerDefault nav.navbar #mainMenuWrapper ul li {
    border-bottom: none;
  }
}
@media (max-width: 991.99px) {
  header#headerDefault .container {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 992px) {
  header#headerDefault div#bottomHeader li {
    margin-right: 30px;
  }
}
@media (max-width: 991.99px) {
  #menuPrimary button.navbar-toggler {
    display: flex;
  }
}
/*=====  End of HEADER STYLES  ======*/

/*------HEADER DEFAULT------*/

#defaultHeader .search-button {
  display: inline-block;
  margin: 4px 2px;
  background-color: #444;
  font-size: 14px;
  padding-left: 32px;
  padding-right: 32px;
  height: 40px;
  line-height: 40px;
  text-align: center;
  color: white;
  text-decoration: none;
  cursor: pointer;
  -moz-user-select: none;
  -khtml-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  display: flex;
  justify-content: center;
  align-items: center;
}

#defaultHeader .search-button:hover {
  transition-duration: 0.4s;
  -moz-transition-duration: 0.4s;
  -webkit-transition-duration: 0.4s;
  -o-transition-duration: 0.4s;
  background-color: white;
  color: black;
}

#defaultHeader .search-container {
  position: relative;
  display: inline-block;
  margin: 4px 2px;
  height: 40px;
  width: 40px;
  vertical-align: bottom;
}

#defaultHeader .mglass {
  display: inline-block;
  pointer-events: none;
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
}

#defaultHeader .searchbutton {
  position: absolute;
  font-size: 22px;
  width: 100%;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

#defaultHeader .search:focus + .searchbutton {
  transition-duration: 0.4s;
  -moz-transition-duration: 0.4s;
  -webkit-transition-duration: 0.4s;
  -o-transition-duration: 0.4s;
  background-color: white;
  color: black;
}

#defaultHeader .search {
  position: absolute;
  left: 39px; /* Button width-1px (Not 50px/100% because that will sometimes show a 1px line between the search box and button) */
  background-color: white;
  outline: none;
  border: none;
  padding: 0;
  width: 0;
  height: 100%;
  z-index: 10;
  transition-duration: 0.4s;
  -moz-transition-duration: 0.4s;
  -webkit-transition-duration: 0.4s;
  -o-transition-duration: 0.4s;
  border-bottom: 1px solid var(--primary-color);
}

#defaultHeader .search:focus,
#defaultHeader .search.open {
  width: 263px; /* Bar width+1px */
  padding: 0 16px 0 0;
}

#defaultHeader .expandright {
  left: auto;
  right: 39px; /* Button width-1px */
}

#defaultHeader .expandright:focus,
#defaultHeader .expandright.open {
  padding: 0 0 0 16px;
}

#defaultHeader .search.open + .searchbutton {
  transition-duration: 0.4s;
  -moz-transition-duration: 0.4s;
  -webkit-transition-duration: 0.4s;
  -o-transition-duration: 0.4s;
  background-color: white;
  color: black;
}
/*------END HEADER DEFAULT------*/

/*------MENU PRIMARY------*/

#menuPrimary {
  color: white;
}

#menuPrimary a {
  font-size: 16px;
}

#menuPrimary .nav-link {
  color: white;
}

#menuPrimaryContent {
  justify-content: end;
}

#menuPrimary .nav-item.menu-level-one .nav-link {
  text-transform: uppercase;
}

#menuPrimary .nav-item.menu-level-one .nav-item.dropend.menu-two .nav-link {
  text-transform: none;
  display: block;
  width: 100%;
  padding: 0.25rem 1rem;
  clear: both;
  font-weight: 400;
  color: #212529;
  text-align: inherit;
  text-decoration: none;
  word-wrap: break-word;
  white-space: normal;
  background-color: transparent;
  border: 0;
}

#menuPrimary .nav-item.menu-level-one .nav-item.dropend.menu-two .nav-link:hover {
  background-color: var(--tertiary-color);
  color: var(--secondary-color);
}

#menuPrimary .navbar-nav .nav-link {
  color: black;
}

#menuPrimary .dropdown-menu {
  position: absolute;
  max-width: 250px;
  z-index: 1000;
  display: none;
  min-width: 10rem;
  padding: 0;
  margin: 0;
  font-size: 0.9rem;
  color: #212529;
  text-align: left;
  list-style: none;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid rgba(34, 41, 47, 0.15);
  border-radius: 0rem;
  margin-top: -5px;
}

#menuPrimary .dropdown-menu.dropdown-mega-menu {
  max-width: 100%;
  width: 100%;
  top: auto;
  left: 0%;
  margin-top: -3px;
}

#menuPrimary .dropdown-item {
  display: block;
  width: 100%;
  padding: 0.25rem 1rem;
  clear: both;
  font-weight: 400;
  color: #212529;
  text-align: inherit;
  text-decoration: none;
  word-wrap: break-word;
  white-space: normal;
  background-color: transparent;
  border: 0;
}

#menuPrimary .dropdown-item:hover {
  background-color: var(--tertiary-color);
  color: var(--secondary-color);
}

#menuPrimary .dropdown .dropdown-menu {
  display: none;
}

/* EATONTOWN: dropdowns open on CLICK only (Bootstrap .show), no hover-open.
   The base display:none above beats Bootstrap's own .show rule, so re-enable it. */
#menuPrimary .dropdown-menu.show {
  display: block !important;
}

@media screen and (min-width: 992px) {
  #menuPrimary .dropend > .dropdown-menu.show {
    position: absolute;
    top: 0;
    left: 100%;
  }
  #menuPrimary .dropend .dropdown-toggle {
    padding-left: 0.5em;
  }
}

/* Mobile (below the navbar-expand-lg breakpoint): dropdowns stack in flow
   inside the offcanvas drawer */
@media screen and (max-width: 991.98px) {
  #menuPrimary .dropdown-menu {
    position: relative;
    display: none;
  }
  #menuPrimary .dropdown-menu.show {
    display: block !important;
  }

  .faq-item:first-child {
    display: block !important;
  }
}

/* MEGA MENU — Eatontown navy panel (Figma tokens/D-megamenu-mobilenav.md)
   Generated markup (cms6, fixed): li.dropdown-mega.position-static > a.dropdown-toggle +
   .dropdown-menu.dropdown-mega-menu > .mega-content > .container(-fluid).mega-menu-columns >
   .row > .col-md-N.py-4.mega-menu-column > div.mb-2 > a.sk-megamenu-column-item-link +
   ul.sk-megamenu-column-item-submenu > li > a.sk-megamenu-column-item-submenu-link */
#menuPrimary .nav-item.dropdown.dropdown-mega {
  position: static;
}

/* Panel = the .dropdown-menu itself: 1107px card centred under the header */
#menuPrimary .dropdown-menu.dropdown-mega-menu {
  width: min(1107px, calc(100vw - 32px));
  max-width: none;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  margin-top: 0;
  padding: 0;
  background-color: var(--eatontown-navy);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: 3px solid transparent; /* bottom rule drawn by ::after; keep the box height */
  border-radius: var(--eatontown-card-radius);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
  overflow: hidden;
  animation: none;
}
/* 3px gold fade rule flush at the bottom (Figma) */
#menuPrimary .dropdown-menu.dropdown-mega-menu::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px;
  height: 3px;
  background: linear-gradient(90deg, rgba(201, 168, 67, 0) 0%, rgba(201, 168, 67, 0.5) 50%, rgba(201, 168, 67, 0) 100%);
}
#menuPrimary .mega-content {
  background-color: transparent;
}
/* Bootstrap container/row/col chrome neutralised; padding 24 top (+24 inner) / 32 sides / 32 bottom */
#menuPrimary .mega-menu-columns {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 48px 32px 32px;
  background-color: transparent;
  border: none;
}
/* Equal columns for ANY count (cms6 emits a broken col-md- class for 5+ columns) */
#menuPrimary .mega-menu-columns > .row {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  column-gap: 40px;
  margin: 0;
}
#menuPrimary .mega-menu-column {
  width: auto;
  max-width: none;
  flex: none;
  padding: 0 !important; /* kill generator's py-4 + col gutters */
  display: flex;
  flex-direction: column;
  gap: 24px; /* group → group */
}
#menuPrimary .mega-menu-column > div.mb-2 {
  margin-bottom: 0 !important;
}

/* Group heading (gold uppercase); a childless top-level item renders the same way */
#menuPrimary .sk-megamenu-column-item-link {
  display: block;
  text-decoration: none;
  color: var(--eatontown-gold-text);
  font-family: var(--eatontown-font-body);
  font-weight: 700;
  font-size: 12px;
  line-height: 16px;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  padding: 0;
  word-break: break-word;
}
#menuPrimary .sk-megamenu-column-item-link:hover,
#menuPrimary .sk-megamenu-column-item-link:focus {
  color: var(--eatontown-gold-text);
  text-decoration: underline;
  text-decoration-thickness: from-font;
  text-underline-position: from-font;
}
/* Heading links authored as `disabled` (href="javascript:void(0)") are not clickable */
#menuPrimary .sk-megamenu-column-item-link[href^="javascript"] {
  cursor: default;
}
#menuPrimary .sk-megamenu-column-item-link[href^="javascript"]:hover {
  text-decoration: none;
}

#menuPrimary .sk-megamenu-column-item-submenu {
  list-style: none;
  padding: 12px 0 0 0; /* heading → first link */
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
}
#menuPrimary .sk-megamenu-column-item-submenu li {
  margin: 0;
  padding: 1px 0;
}
#menuPrimary .sk-megamenu-column-item-submenu-link {
  display: block;
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  font-family: var(--eatontown-font-body);
  font-weight: 400;
  font-size: 15px;
  line-height: 20px;
  word-break: break-word;
}
#menuPrimary .sk-megamenu-column-item-submenu-link:hover,
#menuPrimary .sk-megamenu-column-item-submenu-link:focus {
  color: rgba(212, 168, 67, 0.85);
  text-decoration: underline;
  text-decoration-thickness: from-font;
  text-underline-position: from-font;
}
/* Image column items (CTA precedent) — keep sane */
#menuPrimary .mega-menu-image-item img {
  border-radius: 8px;
}
/*------END MEGA MENU---------*/

/*------END MENU PRIMARY------*/

/*------SECTION HERO------*/

section#sectionHero {
  position: relative;
  min-height: 480px;
  overflow: hidden;
}
section#sectionHero::after,
section#sectionHero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  z-index: -1;
}
section#sectionHero::before {
  background-size: cover;
  background-position: center;
}
section#sectionHero::after {
  background: #1a1a1b;
  opacity: 0.5;
}

section#sectionHero .carousel-caption {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 0;
  bottom: 1.25rem;
  color: #fff;
  text-align: center;
  width: 100%;
  right: 0;
  left: 0;
  padding: 0;
}

section#sectionHero .ticker-bar {
  padding: 0.85rem;
  color: white;
}

section#sectionHero .ticker-bar div {
  display: flex;
}

section#sectionHero .ticker-bar p {
  margin: 0;
  padding: 0;
}

section#sectionHero .carousel-caption {
  z-index: 3;
}

section#sectionHero .carousel-control-prev {
  z-index: 3;
}

section#sectionHero .carousel-control-next {
  z-index: 3;
}

/* Pause/Play button for carousel - WCAG 2.1 Level A (2.2.2) */
/* Hidden by default, visible only on focus (keyboard navigation) */
.carousel-play-pause-btn {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 10;
  background-color: rgba(0, 0, 0, 0.8);
  border: 2px solid rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  cursor: pointer;
  transition: all 0.3s ease;
  /* Hidden until focus */
  opacity: 0;
  pointer-events: none;
}

.carousel-play-pause-btn:focus,
.carousel-play-pause-btn:focus-visible {
  opacity: 1;
  pointer-events: auto;
  background-color: rgba(0, 0, 0, 0.9);
  border-color: #fff;
  transform: scale(1.1);
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.carousel-play-pause-btn i {
  font-size: 16px;
}

/* Ticker Pause/Play control — WCAG 2.2.2. Keyboard reachable; shown on focus. */
.ticker-bar-wrapper {
  position: relative;
}
.ticker-play-pause-btn {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  z-index: 10;
  background-color: rgba(0, 0, 0, 0.8);
  border: 2px solid rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  cursor: pointer;
  transition: all 0.3s ease;
  opacity: 0;
  pointer-events: none;
}
.ticker-play-pause-btn:hover,
.ticker-play-pause-btn:focus,
.ticker-play-pause-btn:focus-visible {
  opacity: 1;
  pointer-events: auto;
  outline: 2px solid #fff;
  outline-offset: 2px;
}
.ticker-play-pause-btn i {
  font-size: 14px;
}
@media (prefers-reduced-motion: reduce) {
  .ticker-play-pause-btn {
    opacity: 1;
    pointer-events: auto;
  }
}

section#sectionHero .carousel-indicators {
  z-index: 3;
  margin-bottom: 0px;
}

section#sectionHero #heroSlider .slider-overlay {
  position: absolute;
  height: 100%;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.01);
  z-index: 1;
}

section#sectionHero #heroSlider h1 {
  font-size: 5rem;
}
section#sectionHero #heroSlider h2 {
  font-size: 3.5rem;
}
section#sectionHero #heroSlider h3 {
  font-size: 2.5rem;
}
section#sectionHero #heroSlider h4 {
  font-size: 2rem;
}
section#sectionHero #heroSlider pre {
  font-size: 1.5rem;
}

/*------END SECTION HERO------*/

/* ------MENU HERO------*/
div#menuHero {
  transition: 0.1s;
  z-index: 999;
}
div#menuHero ul {
  background: rgba(255, 255, 255, 0.5);
  box-shadow: 0 16px 32px rgb(0 0 0 / 30%);
}
div#menuHero ul li {
  position: relative;
  margin-bottom: 5px;
  background: var(--primary-color);
  width: 300px;
  margin-right: -100px;
  padding-right: 100px;
  margin-left: -5px;
  white-space: nowrap;
  transition:
    margin-left 0.1s,
    width 0.2s;
}
div#menuHero ul li:last-child {
  margin-bottom: 5px;
}
div#menuHero ul li:first-child {
  margin-top: 5px;
}

div#menuHero ul li:hover {
  color: #fff;
  margin-left: -20px;
  box-shadow: 0 0 4px 1px #000;
}
div#menuHero ul li:active {
  transform: translateY(4px);
}

div#menuHero ul li a i:first-child {
  display: none;
  transition: 0.1s;
  font-size: 30px;
  top: calc(50% - 15px);
  left: 0;
  width: 30px;
  justify-content: center;
  align-items: center;
}

div#menuHero.fixed-side-menu ul li a {
  justify-content: space-between;
}

div#menuHero ul li:hover a i:first-child {
  display: flex;
}

div#menuHero ul li:hover a i:last-child {
  font-size: 12px;
  padding-left: 60px;
}

div#menuHero ul li a {
  height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: font-size 0.1s;
  color: white;
  text-transform: uppercase;
}

.absolute-side-menu {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
}

/*------END MENU HERO------*/

/*------HEADER DEFAULT------*/

.default-header {
  color: #fff;
}

.default-header .top-header {
}

.default-header .bottom-header {
  z-index: 998;
  background-color: var(--primary-color);
  color: #fff;
}

.default-header .bottom-header .line {
  height: 5px;
  background-color: white;
  margin-bottom: 0px;
  position: relative;
  bottom: 10px;
  width: 100%;
}

/*------END HEADER DEFAULT------*/

/*------FOOTER DEFAULT------*/

footer#footerDefault {
  background-color: var(--tertiary-color);
  color: var(--primary-color);
}

/* Footer h2 headings - reset to match h5 appearance for accessibility */
footer#footerDefault h2.footer-default-heading,
footer#footerDefault h5.footer-default-heading {
  margin: 0 0 0.5rem 0;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.2;
}

footer#footerDefault .footer-top-line {
  background-color: var(--primary-color);
  height: 50px;
  width: 100%;
  border-bottom: 4px solid white;
}

/*------END HEADER DEFAULT------*/

/*------SECTION NEWS DEFAULT------*/
/* Eatontown: arrows stacked vertically outside the right edge of the cards (Figma) */
section#sectionNewsDefault .owl-nav {
  position: absolute;
  top: 50%;
  right: -72px; /* 46px button + 26px gap to the cards */
  transform: translateY(-50%);
  display: flex;
  flex-direction: column-reverse; /* DOM order prev,next -> visually next on top */
  gap: 12px;
  padding: 0;
  margin: 0;
}
section#sectionNewsDefault .owl-nav.disabled {
  display: none;
}
.owl-carousel {
  width: auto;
}

.news-single .news-featured-img-wrapper {
  margin-bottom: 20px;
}

.news-single .news-featured-img {
  max-width: 100%;
  border-radius: 15px;
}

@media (max-width: 920px) {
  .news-slider-title {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    line-height: 27px;
    max-height: 108px;
    padding-right: 20px;
  }
}

/*------END SECTION NEWS DEFAULT------*/

/*------MENU HERO MOBILE------*/
div#menuHeroMobile ul {
  list-style: none;
  width: 100%;
}

div#menuHeroMobile ul li {
  margin-bottom: 26px;
}

div#menuHeroMobile ul li a {
  background: var(--secondary-color);
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  text-transform: uppercase;
  height: 74px;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: 0.2s;
}

div#menuHeroMobile ul li a:hover {
  background: var(--primary-color);
  color: var(--tertiary-color);
}

/*------MENU NEWS DEFAULT------*/
div#menuNewsDefault ul {
  list-style: none;
}

div#menuNewsDefault ul li {
  margin-bottom: 26px;
}

div#menuNewsDefault ul li a {
  background: var(--secondary-color);
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  text-transform: uppercase;
  height: 74px;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: 0.2s;
}

div#menuNewsDefault ul li a:hover {
  background: var(--primary-color);
  color: var(--tertiary-color);
}

div#menuNewsDefault ul li a > span {
  text-align: center;
}

/*------END MENU NEWS DEFAULT------*/

/*------SECTION FREE CONTENT------*/
/* section#sectionFreeContent {
    margin-bottom: 100px;
  }

  section#sectionFreeContent h1 {
    color: var(--primary-color);
  }

  section#sectionFreeContent .free-content-text {
    background-color: var(--tertiary-color);
  }

  section#sectionFreeContent .free-content-image {
    background-color: var(--tertiary-color);
  }

  section#sectionFreeContent .free-content-image {
    background-color: var(--tertiary-color);
    display: flex;
    justify-content: center;
    align-items: center;
  }

  section#sectionFreeContent .free-content-image img {
    margin-top: 20px;
    margin-bottom: 20px;
    border-radius: 10px;
  } */

/*------END SECTION FREE CONTENT------*/

/*------NEWS SINGLE DEFAULT------*/
.juniper-news-single-default {
  min-height: 600px;
}

.juniper-news-single-default .title {
  color: var(--secondary-color);
}
/*------END NEWS SINGLE DEFAULT------*/

/*===========================
  =            FAQ            =
  ===========================*/
/* Main section title - h2 for accessibility */
section#tw-faq h2#faq-section-title {
  font-size: 20px;
}

/* FAQ question titles - h3 for accessibility */
section#tw-faq h3.faq-question-title {
  font-size: inherit;
  margin: 0;
  padding: 0;
  font-weight: inherit;
}

section#tw-faq {
  font-size: 18px;
}

section#tw-faq .tw-faq-wrapper {
  z-index: 1;
  height: 171px;
  margin-top: 10px;
  box-shadow: 0px 2px 12px rgba(223, 223, 223, 0.5);
}
section#tw-faq .tw-faq-wrapper a.tw-collapse-btn,
section#tw-faq .tw-faq-wrapper button.tw-collapse-btn {
  width: 64px;
  height: 48px;
  bottom: -24px;
  left: calc(50% - 60px / 2);
  cursor: pointer;
  box-shadow: 0px 1px 6px var(--secondary-color);
  -webkit-text-stroke: 1px var(--secondary-color);
  z-index: 2;
}
section#tw-faq .tw-faq-wrapper a.tw-collapse-btn i,
section#tw-faq .tw-faq-wrapper button.tw-collapse-btn i {
  transition: 0.3s transform ease-in-out;
}
section#tw-faq .tw-faq-wrapper.tw-faq-wrapper-middle {
  height: 192px;
  margin-top: 0;
  box-shadow: 0px 1px 12px var(--secondary-color);
}
section#tw-faq .tw-faq-wrapper a[aria-expanded="true"] i,
section#tw-faq .tw-faq-wrapper button[aria-expanded="true"] i {
  transform: rotate(180deg);
}
section#tw-faq .tw-faq-wrapper.tw-faq-wrapper-middle a.tw-collapse-btn,
section#tw-faq .tw-faq-wrapper.tw-faq-wrapper-middle button.tw-collapse-btn {
  box-shadow: 0px 1px 10px var(--secondary-color);
  -webkit-text-stroke: 1px #fff;
}
section#tw-faq .card-body {
  /* z-index: -1; */
  border-radius: 0;
  font-size: 16px;
}
section#tw-faq a.tw-faqs-view-more {
  font-size: 16px;
}
@media (min-width: 768px) {
  section#tw-faq h2#faq-section-title {
    font-size: 40px;
  }
  section#tw-faq {
    font-size: 26px;
  }
  .navbar-toggler {
    margin-bottom: 10px;
  }
}
@media (max-width: 768px) {
  .navbar-toggler {
    margin-bottom: 10px;
  }
}
/*events owl carousel*/
section#tw-faq .tw-owl-dot {
  width: 20px;
  height: 20px;
  box-shadow: none;
  border: none;
  outline: none;
}
section#tw-faq .tw-owl-dot.active {
  background: var(--secondary-color);
}
/*=====  End of FAQ  ======*/

/*------ SECTION DEPARTMENTS DEFAULT ------*/
section#sectionDepartmentsDefault a:hover article {
  color: var(--secondary-color);
}
section#sectionDepartmentsDefault article {
  border-radius: 5px;
  box-shadow: 1px 2px 20px 0px rgb(230 230 230 / 80%);
}
section#sectionDepartmentsDefault article::before {
  content: "";
  position: absolute;
  width: 2px;
  height: 15px;
  background: var(--secondary-color);
  right: 0;
  top: 20px;
}
section#sectionDepartmentsDefault article::after {
  content: "";
  position: absolute;
  width: 2px;
  height: 30px;
  background: var(--primary-color);
  right: 0;
  top: 40px;
}
section#sectionDepartmentsDefault article img.departments-icon {
  width: 80px;
  max-width: 80px;
  height: auto;
  transition: 0.2s;
}
section#sectionDepartmentsDefault a:hover article img.departments-icon {
  transform: scale(1.3);
}
/*------ #SECTION DEPARTMENTS DEFAULT ------*/

/*----------  Accordion Nav Menu  ----------*/
div#tw-department .tw-accordion-menu ul {
  list-style: none;
  padding: 0;
}
div#tw-department .tw-accordion-menu ul > li.active {
  background: #293b6d;
}
div#tw-department aside.tw-accordion-menu ul li a {
  color: #fff;
  padding: 0;
  text-decoration: none;
}
div#tw-department aside.tw-accordion-menu > nav > div > div {
  width: 100%;
}
div#tw-department aside.tw-accordion-menu > nav > div > div > ul > li {
  margin-bottom: 2px;
  padding-top: 10px;
  padding-bottom: 10px;
}
div#tw-department aside.tw-accordion-menu li {
  padding-left: 40px;
  /*padding-right: 20px;*/
  width: 100%;
  background: var(--primary-color);
}
div#tw-department aside.tw-accordion-menu span[data-bs-toggle="collapse"] {
  cursor: pointer;
  position: relative;
  color: #fff;
}
div#tw-department aside.tw-accordion-menu span[data-bs-toggle="collapse"]::after {
  position: absolute;
  left: -20px;
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f146";
}
div#tw-department aside.tw-accordion-menu span.collapsed[data-bs-toggle="collapse"]::after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f0fe";
}
/*accordion nav hamburger animated*/
div#tw-department aside.tw-accordion-menu button:focus {
  box-shadow: none;
}
div#tw-department aside.tw-accordion-menu button label {
  display: flex;
  flex-direction: column;
  width: 40px;
  cursor: pointer;
}
div#tw-department aside.tw-accordion-menu button label span {
  background: #fff;
  border-radius: 10px;
  height: 4px;
  margin: 4px 0;
  transition: 0.4s cubic-bezier(0.68, -0.6, 0.32, 1.6);
}
div#tw-department aside.tw-accordion-menu button label span:nth-of-type(1) {
  width: 50%;
}
div#tw-department aside.tw-accordion-menu button label span:nth-of-type(2) {
  width: 100%;
}
div#tw-department aside.tw-accordion-menu button label span:nth-of-type(3) {
  width: 75%;
}
div#tw-department aside.tw-accordion-menu button input[type="checkbox"] {
  display: none;
}
div#tw-department aside.tw-accordion-menu button input[type="checkbox"]:checked ~ span:nth-of-type(1) {
  transform-origin: bottom;
  transform: rotatez(45deg) translate(6px, 0.5px);
}
div#tw-department aside.tw-accordion-menu button input[type="checkbox"]:checked ~ span:nth-of-type(2) {
  transform-origin: top;
  transform: rotatez(-45deg);
}
div#tw-department aside.tw-accordion-menu button input[type="checkbox"]:checked ~ span:nth-of-type(3) {
  transform-origin: bottom;
  width: 50%;
  transform: translate(17px, -6px) rotatez(45deg);
}

/*=============================================
  =            EVENTS SECTION STYLES            =
  =============================================*/
section#tw-events > div::after {
  content: "";
  background: var(--tertiary-color);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -1;
  opacity: 0.7;
}
section#tw-events > div::before {
  content: "";
  background-size: 70%;
  background-repeat: no-repeat;
  position: absolute;
  top: 20px;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -1;
  filter: blur(1px);
  opacity: 0.3;
}
section#tw-events h3.tw-events-title,
section#tw-events h2.tw-events-title {
  font-size: 28px;
}

/* Event name as h3 for accessibility - remove default heading margins */
section#tw-events h3.tw-event-name {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit;
}

section#tw-events article > div:first-child {
  width: 167px;
  height: 167px;
  box-shadow: 0px 4px 30px rgba(0, 0, 0, 0.05);
  border-radius: 8px;
  background-color: white;
}
section#tw-events article > div:first-child div.tw-date {
  font-size: 28px;
  word-spacing: 15px;
}
section#tw-events article > div:first-child div.tw-date::after {
  content: "";
  width: 40%;
  height: 1px;
  background: var(--secondary-color);
  position: absolute;
  bottom: -10px;
}
section#tw-events article > div:first-child div.tw-event-title {
  font-size: 14px;
}
section#tw-events article > div:first-child div.tw-event-venue {
  font-size: 12px;
}
section#tw-events article > div:first-child div.tw-event-time {
  font-size: 12px;
  color: #000;
}
section#tw-events .owl-nav {
  position: absolute;
  width: 100%;
  top: 44%;
  /*padding: 0 10px;*/
}
@media (min-width: 1200px) {
  section#tw-events > div::before {
    background-size: 760px;
  }
}
@media (max-width: 920px) {
  section#tw-events .tw-date {
    font-size: 22px !important;
  }
  section#tw-events .tw-event-name {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-height: 16px;
    max-height: 64px;
  }
}

/*subscribe*/

/* Subscribe section h2 headings - reset to match h3 appearance for accessibility */
section#tw-subscribe h2,
section#tw-subscribe h3 {
  margin: 0;
  padding: 0;
}

section#tw-subscribe #tw-subscribe-inner {
  border: 1px solid var(--primary-color);
}

section#tw-subscribe #tw-subscribe-inner a,
section#tw-subscribe #tw-subscribe-inner label {
  font-size: 17px;
}
section#tw-subscribe #tw-subscribe-inner form .tw-custom-selection input {
  visibility: hidden;
  position: absolute;
}

section#tw-subscribe #tw-subscribe-inner form .tw-custom-selection label {
  cursor: pointer;
  width: 100%;
  border-radius: 8px;
  padding: 10px 0;
  border: 2px solid transparent;
}
section#tw-subscribe #tw-subscribe-inner form .tw-custom-selection.tw-custom-selection-sm label {
  border-radius: 10px;
  padding: 0 5px;
  white-space: nowrap;
}
section#tw-subscribe #tw-subscribe-inner form #sub_name,
section#tw-subscribe #tw-subscribe-inner form #sub_email,
section#tw-subscribe #tw-subscribe-inner form #sub_phone {
  height: 50px;
  border: 2px solid var(--primary-color);
  border-radius: 0;
}
section#tw-subscribe #tw-subscribe-inner form .tw-custom-selection.tw-custom-selection-lg label {
  color: var(--primary-color);
  border: 2px solid var(--primary-color);
}
section#tw-subscribe #tw-subscribe-inner form .tw-custom-selection.tw-custom-selection-lg input:checked + label {
  color: #ffffff !important;
  background: var(--primary-color);
}
section#tw-subscribe #tw-subscribe-inner form .tw-custom-selection.tw-custom-selection-sm input + label {
  background: var(--primary-color);
  border-radius: 10px;
  font-weight: 900;
  padding: 0 5px;
  white-space: nowrap;
  cursor: pointer;
  width: 100%;
  border: 2px solid transparent;
  font-size: 16px;
}
section#tw-subscribe #tw-subscribe-inner form .tw-custom-selection.tw-custom-selection-sm input:checked + label {
  background: var(--secondary-color);
}
section#tw-subscribe #tw-subscribe-inner form #homepage-extra-subscribe {
  display: none;
}

/*subscribe in events*/
section#tw-events #tw-subscribe h2,
section#tw-events #tw-subscribe h3 {
  margin: 0;
  padding: 0;
}

section#tw-events #tw-subscribe-inner {
  border: 1px solid var(--primary-color);
}
section#tw-events #tw-subscribe-inner a,
section#tw-events #tw-subscribe-inner label {
  font-size: 17px;
}
section#tw-events #tw-subscribe-inner form .tw-custom-selection input {
  visibility: hidden;
  position: absolute;
}

section#tw-events #tw-subscribe-inner form .tw-custom-selection label {
  cursor: pointer;
  width: 100%;
  border-radius: 8px;
  padding: 10px 0;
  border: 2px solid transparent;
}
section#tw-events #tw-subscribe-inner form .tw-custom-selection.tw-custom-selection-sm label {
  border-radius: 10px;
  padding: 0 5px;
  white-space: nowrap;
}
section#tw-events #tw-subscribe-inner form #sub_name,
section#tw-events #tw-subscribe-inner form #sub_email,
section#tw-events #tw-subscribe-inner form #sub_phone {
  height: 50px;
  border: 2px solid var(--primary-color);
  border-radius: 0;
}
section#tw-events #tw-subscribe-inner form .tw-custom-selection.tw-custom-selection-lg label {
  color: var(--primary-color);
  border: 2px solid var(--primary-color);
}
section#tw-events #tw-subscribe-inner form .tw-custom-selection.tw-custom-selection-lg input:checked + label {
  color: #ffffff !important;
  background: var(--primary-color);
}
section#tw-events #tw-subscribe-inner form .tw-custom-selection.tw-custom-selection-sm input + label {
  background: var(--primary-color);
  border-radius: 10px;
  font-weight: 900;
  padding: 0 5px;
  white-space: nowrap;
  cursor: pointer;
  width: 100%;
  border: 2px solid transparent;
  font-size: 16px;
}
section#tw-events #tw-subscribe-inner form .tw-custom-selection.tw-custom-selection-sm input:checked + label {
  background: var(--secondary-color);
}
section#tw-events #tw-subscribe-inner form #homepage-extra-subscribe {
  display: none;
}
/*=====  End of EVENTS SECTION STYLES  ======*/

/*=============================================
  =            MEETINGS SECTION STYLES          =
  =============================================*/
.tw-meeting-repo-table {
  width: 100%;
}
.meetings-page-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  min-height: 10rem;
}
.meetings-page-loading .spinner-border {
  width: 2rem;
  height: 2rem;
}
.meetings-page-loading-error {
  margin: 2rem 0;
  text-align: center;
}
.meetings-data .twd-table tbody tr.meeting-canceled {
  background-color: #fee2e2;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='500' height='80'%3E%3Ctext x='250' y='47' text-anchor='middle' font-family='Arial,sans-serif' font-size='21' font-weight='700' fill='%23dc2626' fill-opacity='.09'%3ECANCELED%3C/text%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: min(70%, 500px) auto;
}
.meetings-data .twd-table tbody tr.meeting-canceled > * {
  background-color: transparent;
  box-shadow: none;
  text-decoration: line-through;
}

.twd-rep-form-holder label {
  float: left;
  margin: 0 10px;
}
.twd-rep-form-holder select {
  float: left;
}
.twd-rep-form-holder:after {
  content: "";
  display: block;
  clear: both;
}
.twd-rep-form-holder strong {
  font-width: bold;
  color: #000;
}
.twd-category-name {
  margin-top: 2.5rem !important;
}

.hide-element {
  display: none;
}

/*
  Responsive meeting tables
  */
/* @media only screen and (min-width: 1024px) {
  .twd-table td.meeting-date-column {
    width: 15%;
  }
  .twd-table td.agenda-column {
    width: 15%;
  }
  .twd-table td.agenda-packet-column {
    width: 10%;
  }
  .twd-table td.meeting-minutes-column {
    width: 15%;
  }
  .twd-table td.audio-column {
    width: 10%;
  }
  .twd-table td.video-column {
    width: 10%;
  }
  .twd-table td.additional-documents-column {
    width: 15%;
  }
} */

@media only screen and (max-width: 1024px) {
  .twd-table,
  .twd-table thead,
  .twd-table tbody,
  .twd-table th,
  .twd-table td,
  .twd-table tr {
    display: block;
  }

  .twd-table thead tr {
    position: absolute;
    top: -9999px;
    left: -9999px;
  }

  .twd-table td {
    border: none;
    position: relative;
    padding-left: 50% !important;
    min-height: 40px;
  }

  .twd-table td.empty {
    display: none;
  }

  .twd-table td:before {
    position: absolute;
    top: 6px;
    left: 6px;
    width: 45%;
    padding-right: 10px;
    white-space: nowrap;
  }

  /*
      Label the data
      */
  .twd-table td.title-column:before {
    content: "Title";
  }
  .twd-table td.meeting-date-column:before {
    content: "Meeting Date";
  }
  .twd-table td.agenda-column:before {
    content: "Agenda";
  }
  .twd-table td.agenda-packet-column:before {
    content: "Packet";
  }
  .twd-table td.meeting-minutes-column:before {
    content: "Meeting Minutes";
  }
  .twd-table td.audio-column:before {
    content: "Audio";
  }
  .twd-table td.video-column:before {
    content: "Video";
  }
  .twd-table td.additional-documents-column:before {
    content: "Additional Docs";
  }
  .twd-table td.notes-column:before {
    content: "Notes";
  }
}

div.Tokenize {
  display: block;
  width: auto;
}
div.Tokenize ul.TokensContainer {
  height: auto;
}
div.Tokenize ul.TokensContainer .Close {
  box-shadow: none;
}

.load-more {
  cursor: pointer;
}
.rep_meeting_homepage #homepage-advanced-filter {
  background: #ffffff;
  border: 1px solid #d1d1d1;
  box-sizing: border-box;
  border-radius: 12px;
  padding: 22px;
  margin-bottom: 12px;
}
.rep_meeting_homepage th,
.rep_meeting_homepage td,
.rep_meeting_homepage #homepage-advanced-filter label {
  font-size: 14px !important;
}

/*=====  End of MEETINGS  ======*/

/*Juniper News and Notices Archive Page*/
.juniper-news-archive {
  padding-top: 50px;
}

.juniper-news-archive .archive-item {
  border-radius: 10px;
}

.juniper-news-archive .archive-item-image {
  border-radius: 10px;
}

.juniper-news-archive .archive-item-body {
  min-height: 170px;
}

.juniper-news-archive .archive-item-title {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  line-clamp: 1;
  -webkit-box-orient: vertical;
}

.juniper-news-archive .archive-item-snippet {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
}

.juniper-news-archive .archive-item-button {
  position: absolute;
  bottom: 15px;
  right: 15px;
}
/*END Juniper News and Notices Archive Page*/

/* Juniper Subscribe Page*/

.juniper-subscriber-title {
  display: block;
  margin-bottom: 15px;
}

.juniper-row {
  margin-bottom: 10px;
}

.juniper-row:after {
  content: "";
  display: block;
  clear: both;
}

#juniper-subscribe-topics-parent,
#juniper-subscribe-method-parent {
  padding: 1rem 2rem;
  border: 1px solid #ddd;
  border-radius: 4px;
}

.juniper-subscriber-form-box .sub {
  margin-left: 30px;
}
.juniper-subscriber-form-box .juniper-subscribe-method .custom-selection {
  position: relative;
  display: inline-block;
}
.juniper-subscriber-form-box .juniper-subscribe-method .custom-selection input {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}
.juniper-subscriber-form-box .juniper-subscribe-method .custom-selection label {
  border: 1px solid #c6c6c6;
  box-sizing: border-box;
  border-radius: 10px;
  font-family: "Open Sans";
  font-style: normal;
  font-weight: normal;
  font-size: 12px;
  line-height: 16px;
  text-align: center;
  padding: 10px;
  color: #4c4c4c;
  min-width: 100px;
  margin: 5px;
  padding-bottom: 1.5rem;
}
.juniper-subscriber-form-box .juniper-subscribe-method .custom-selection label i {
  display: block;
}
.juniper-subscriber-form-box .juniper-subscribe-method .custom-selection input:checked + label {
  border-color: #4245e7 !important;
}
.juniper-subscriber-form-box .juniper-subscribe-method .custom-selection input:checked + label i {
  color: #4245e7 !important;
}
.juniper-agendas-minutes-packets {
  display: none;
}

/*.heygov-widget-button {
    right: 60px !important;
    bottom: 16px !important;
  } */

/* Lightbox 2*/
.lb-image {
  max-width: inherit !important;
}

@media all and (min-width: 992px) {
  .dropdown-menu {
    width: 13rem;
  }
  .mega-submenu {
    left: 100%;
    top: 0;
    min-width: 25rem;
  }
  .ktm-mega-menu {
    position: static;
  }
  .mega-menu {
    left: 0;
    right: 0;
    width: 100%;
  }
  .dropdown-menu li {
    position: relative;
  }
  .dropdown-menu .submenu {
    display: none;
    left: 100%;
    top: 0;
  }
  .dropdown-menu > li:hover > .submenu,
  .dropdown:hover > .dropdown-menu {
    display: block;
  }
}

/*----------  EVENTS CALENDAR  ----------*/

/* Events calendar accessibility improvements */
section#events-calendar h2.events-calendar-title,
section#events-calendar h3.events-calendar-title {
  /* Ensure h2 looks like h3 for accessibility */
}

section#events-calendar h3#monthAndYearTitle {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit;
  display: inline;
}

section#events-calendar h4#events-calendar-list-date,
section#events-calendar h5#events-calendar-list-date {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit;
}

/* Calendar navigation buttons - make them look like spans */
.tw-calendar-title button.tw-month-processing-btn {
  background: none;
  border: none;
  padding: 0;
  color: inherit;
  font: inherit;
  cursor: pointer;
  display: inline;
}

.tw-calendar-title button.tw-month-processing-btn:hover {
  opacity: 0.8;
}

/*simple*/
.tw-calendar-shortcode .tw-calendar-title {
  /* font-size: 32px; */
}
.tw-calendar-shortcode .tw-calendar-table-header {
  /* font-size: 20px; */
}
.tw-calendar-shortcode .tw-calendar-table-header th {
  width: 14.28%;
}
.tw-calendar-shortcode .tw-calendar-table-body.tw-calendar-table-body-simple {
  /* font: 700 24px "Playfair Display", serif; */
}
.tw-calendar-shortcode .tw-calendar-table-body.tw-calendar-table-body-simple td div.tw-calendar-current-date span:first-child,
.tw-calendar-shortcode .tw-calendar-table-body.tw-calendar-table-body-simple td div.tw-calendar-has-events-date span:first-child {
  width: 45px;
  height: 45px;
  top: calc(50% - 25px);
}
.tw-calendar-shortcode .tw-calendar-table-body.tw-calendar-table-body-simple td div.tw-calendar-current-date span:first-child {
  outline: 2px solid red;
}
.tw-calendar-shortcode .tw-calendar-table-body.tw-calendar-table-body-simple td div.tw-calendar-day.tw-calendar-day-active span:first-child {
  background: var(--tertiary-color);
}
.tw-calendar-shortcode .tw-calendar-table-body.tw-calendar-table-body-simple td div.tw-calendar-day.tw-calendar-has-events-date:not(.tw-calendar-day-active) span:first-child {
  background: var(--primary-color);
}
.tw-calendar-shortcode .cursor-pointer {
  cursor: pointer;
}
@media (min-width: 768px) {
  .tw-calendar-shortcode .tw-calendar-table-header {
    /* font-size: 30px; */
  }
}
/*rich*/
.tw-calendar-shortcode.tw-calendar-shortcode-rich > div:first-child {
  background: #fff;
  box-shadow: 0px 4px 24px rgba(0, 0, 0, 0.07);
}
.tw-calendar-shortcode .tw-calendar-table-body.tw-calendar-table-body-rich td div {
  min-height: 85px;
}
.tw-calendar-shortcode .tw-calendar-table-body.tw-calendar-table-body-rich td div span.tw-calendar-day-event-title,
.tw-calendar-shortcode .tw-calendar-table-body.tw-calendar-table-body-rich td div span.tw-calendar-day-event-more {
  font-size: 12px;
}
.tw-calendar-shortcode .tw-calendar-table-body.tw-calendar-table-body-rich td div.tw-calendar-day.tw-calendar-day-active {
  background: #f5f4f3;
}
/*----------  EVENTS LIST  ----------*/
.tw-calendar-shortcode .tw-calendar-events-cards article {
  border-left: 20px solid var(--secondary-color);
  min-height: 160px;
}
.tw-calendar-shortcode.tw-calendar-shortcode-rich .tw-calendar-events-cards article {
  border-left: none;
  min-height: 130px;
  border: 3px solid #f5f4f3;
  border-radius: 8px;
  transition: 0.1s;
}
.tw-calendar-shortcode.tw-calendar-shortcode-rich .tw-calendar-events-cards article:hover {
  box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1);
}

.tw-calendar-shortcode.tw-calendar-shortcode-rich .tw-calendar-events-cards {
  height: 565px;
}
.tw-calendar-shortcode .tw-calendar-events-cards .tw-event-list-scrollbar {
  height: 525px;
  top: 20px;
  bottom: 20px;
}
@media (min-width: 1200px) {
  .tw-calendar-shortcode.tw-calendar-shortcode-rich .tw-calendar-events-cards,
  .tw-calendar-shortcode .tw-calendar-events-cards .tw-event-list-scrollbar {
    height: auto;
  }
}

/*Calendar list scrollbar*/
/* width */
.tw-calendar-events-cards ::-webkit-scrollbar {
  width: 10px;
}

/* Track */
.tw-calendar-events-cards ::-webkit-scrollbar-track {
  box-shadow: inset 0 0 5px var(--secondary-color);
  border-radius: 10px;
}

/* Handle */
.tw-calendar-events-cards ::-webkit-scrollbar-thumb {
  background: var(--secondary-color);
  border-radius: 10px;
}

/*============================================
  =            SOCIAL NETWORKS MENU            =
  ============================================*/
ul.social-networks-menu li a {
  color: var(--secondary-color);
  font-size: 34px;
}
/*=====  End of SOCIAL NETWORKS MENU  ======*/

img[src=""] {
  display: none;
}

.heygov-vidget-button {
  right: 60px;
  bottom: 15px;
}

/* Header Social Menu (Eatontown: plain icon-only links, no tile background —
   default theme's 40x40 secondary-color tiles removed; styling lives in the
   .eatontown-header-social block) */
#headerSocialMenu li {
  display: flex;
  justify-content: center;
  align-items: center;
}
#headerSocialMenu li a {
  display: flex;
  align-items: center;
  margin: 0;
}
#headerSocialMenu li a i {
  margin-right: 0 !important;
}

.juniper-news-single-default img {
  max-width: 100%;
}

/* highlight advanced search meatches */
#search-results em {
  background-color: darkkhaki;
}
#search-results {
  word-wrap: break-word;
}

.page-featured-image {
  margin-top: 50px;
}

.page-featured-image img {
  width: 100%;
  object-fit: cover;
  border-radius: 6px;
}

/* Skip to main content - accessible but hidden */
.skip-to-main {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  white-space: nowrap;
  text-decoration: none;
}

.skip-to-main:focus {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: auto;
  height: auto;
  clip: auto;
  clip-path: none;
  overflow: visible;
  white-space: normal;
  z-index: 999;
  padding: 1em;
  background-color: #000;
  color: #fff;
}

/* Visually hidden but accessible to screen readers */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Ensure search button styling is not affected */
.search-button.searchbutton {
  border: none;
  cursor: pointer;
}

.notes-column {
  width: 200px;
}

/* ============================================================
   EATONTOWN HEADER / ALERT BAR / DRAWER
   (overrides the Maverick base styles above; Figma tokens/A + tokens/D)
   ============================================================ */

/* ---- CMS emergency alert bar (injected above the header, markup fixed by cms6) ----
   Figma: #c8102e, 32px, "⚠ ALERT:" bold 12px tracked + 13px medium message, white.
   White on #c8102e = 6.9:1 (WCAG AA ok) — do NOT lower this contrast. */
.emergency-alert-wrapper {
  background-color: var(--eatontown-alert-red) !important;
  padding: 6px 0 !important;
  min-height: 32px;
  display: flex;
  align-items: center;
  z-index: 1029 !important; /* below the sticky header (1030) so the mobile drawer covers it */
}
/* Warning-triangle glyph (Figma) sits on the WRAPPER so it stays put while the text scrolls;
   drawn as a mask so it inherits the white colour. The CMS supplies "Title: content" — the admin
   can title the alert "ALERT". */
.emergency-alert-wrapper::before {
  content: "";
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  margin: 0 12px 0 20px;
  background-color: #ffffff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 1 21h22L12 2zm0 4.5 7.5 13h-15L12 6.5zM11 10h2v5h-2v-5zm0 6h2v2h-2v-2z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 1 21h22L12 2zm0 4.5 7.5 13h-15L12 6.5zM11 10h2v5h-2v-5zm0 6h2v2h-2v-2z'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* jquery.marquee (theme.js) scrolls this element. It MUST be as wide as the bar when the plugin
   measures it: as a shrink-to-fit flex item it measured the text (~250px) and computed a 4s sweep
   of the plugin's 100000px track. `flex: 1 1 0` + `min-width: 0` pins it to the remaining width.
   The CMS also injects an inline `animation: rightToLeft 15s` on it — no keyframes exist for it,
   but switch it off so the two can never fight. */
.emergency-alert-wrapper .emergency-alert {
  flex: 1 1 0%;
  min-width: 0;
  width: auto;
  overflow: hidden;
  color: #ffffff !important;
  font-family: var(--eatontown-font-body);
  font-weight: 500 !important;
  font-size: 13px;
  line-height: 20px;
  white-space: nowrap;
  animation: none !important;
}
.emergency-alert-wrapper .emergency-alert p {
  display: inline;
  margin: 0;
  font: inherit;
}

/* ---- Header bar ----
   Sticks to the top on scroll (alert bar above scrolls away). `.is-stuck` set by theme.js. */
#eatontownHeader {
  background-color: #ffffff;
  position: sticky;
  top: 0;
  z-index: 1030;
  transition: box-shadow 0.2s ease;
}
#eatontownHeader.is-stuck {
  box-shadow: 0 2px 12px rgba(11, 30, 61, 0.1);
}
.customizer-wrapper #eatontownHeader {
  position: relative; /* no sticky inside the customizer preview */
}
@media (prefers-reduced-motion: reduce) {
  #eatontownHeader {
    transition: none;
  }
}
#eatontownHeader .skip-to-main {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 2000;
  background: var(--eatontown-navy);
  color: #ffffff;
  padding: 10px 16px;
  text-decoration: none;
}
#eatontownHeader .skip-to-main:focus {
  left: 0;
}
#eatontownHeader .navbar {
  padding: 0;
  position: relative; /* mega panel positions against the full-width navbar */
}
.eatontown-header-container {
  position: static; /* so the centred mega panel is not clipped to this box */
  max-width: 1091px; /* 1051px content + 2x20 padding (Figma) */
  margin: 0 auto;
  padding: 0 20px;
  min-height: var(--eatontown-header-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
#eatontownHeader .navbar-brand {
  padding: 0;
  margin: 0;
  display: block;
}
#eatontownHeader .navbar-brand img {
  display: block;
  width: 180px;
  height: 52px;
  object-fit: contain;
  object-position: left center;
}

/* ---- Primary nav (desktop) ---- */
#menuPrimary .navbar-nav {
  gap: 14px;
}
#menuPrimary .navbar-nav .first-level-link {
  font-family: var(--eatontown-font-body);
  font-weight: 600;
  font-size: 14px;
  line-height: 20px;
  text-transform: uppercase;
  color: var(--eatontown-navy);
  padding: 20px 0;
  white-space: nowrap;
}
#menuPrimary .navbar-nav .first-level-link:hover,
#menuPrimary .navbar-nav .first-level-link:focus {
  color: var(--eatontown-blue-link);
}
#menuPrimary .navbar-nav .first-level-link:focus-visible {
  outline: 2px solid var(--eatontown-navy);
  outline-offset: 2px;
  border-radius: 4px;
}
/* Figma desktop nav has NO caret; the chevron is a mobile-drawer affordance (below) */
#menuPrimary .navbar-nav .dropdown-toggle::after {
  border: none;
  content: "";
  display: none;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform 0.2s ease;
}
/* Generic (non-mega) dropdowns: navy card to match the mega panel */
#menuPrimary .dropdown-menu:not(.dropdown-mega-menu) {
  background-color: var(--eatontown-navy);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  padding: 12px 0;
  margin-top: 0;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
  animation: none;
}
#menuPrimary .dropdown-menu:not(.dropdown-mega-menu) .dropdown-item,
#menuPrimary .menu-two .dropdown-toggle {
  color: rgba(255, 255, 255, 0.85);
  font-family: var(--eatontown-font-body);
  font-size: 15px;
  line-height: 20px;
  padding: 6px 20px;
}
#menuPrimary .dropdown-menu:not(.dropdown-mega-menu) .dropdown-item:hover,
#menuPrimary .dropdown-menu:not(.dropdown-mega-menu) .dropdown-item:focus,
#menuPrimary .nav-item.menu-level-one .nav-item.dropend.menu-two .nav-link:hover {
  background-color: transparent;
  color: rgba(212, 168, 67, 0.85);
  text-decoration: underline;
}

/* ---- Offcanvas body: desktop = inline row ---- */
@media (min-width: 992px) {
  .eatontown-offcanvas-body {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 28px;
    padding: 0;
    overflow: visible;
  }
  #primaryMenuOffcanvas {
    flex-grow: 1;
    position: static;
  }
}

/* ---- Search (Figma: 240x46, 2px #dde3ea, r8, gold 42x42 button) ---- */
.eatontown-search {
  display: flex;
  align-items: center;
  width: 240px;
  height: var(--eatontown-input-height);
  padding: 0;
  overflow: hidden;
  border: 2px solid var(--eatontown-border-blue-2);
  border-radius: var(--eatontown-input-radius);
  background-color: #ffffff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}
.eatontown-search:focus-within {
  border-color: var(--eatontown-navy);
}
.eatontown-search-input {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  border: none;
  background: transparent;
  padding: 0 12px 0 14px;
  font-family: var(--eatontown-font-body);
  font-size: 14px;
  color: var(--eatontown-navy);
}
.eatontown-search-input::placeholder {
  color: var(--eatontown-navy);
  opacity: 1;
}
.eatontown-search-input:focus {
  outline: none;
}
.eatontown-search-btn {
  flex: 0 0 auto;
  width: 42px;
  height: 100%;
  border: none;
  border-radius: 0 6px 6px 0;
  background: linear-gradient(135deg, var(--eatontown-gold-grad-start) 0%, var(--eatontown-gold-grad-end) 100%);
  color: var(--eatontown-text);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
/* Figma 1:544 magnifier (assets/icons/search.svg) as a mask so the "Search Icon Color" control drives it */
.eatontown-search-icon {
  display: block;
  width: 16px;
  height: 16.5px;
  background-color: currentColor;
  -webkit-mask: url("/assets/icons/search.svg") center / contain no-repeat;
  mask: url("/assets/icons/search.svg") center / contain no-repeat;
}
.eatontown-search-btn:hover,
.eatontown-search-btn:focus {
  background: linear-gradient(135deg, #ffdd9e 0%, #ebba5e 100%);
  color: var(--eatontown-navy);
}
.eatontown-search-btn:focus-visible {
  outline: 2px solid var(--eatontown-navy);
  outline-offset: 2px;
}

/* ---- Hamburger (Figma: 40x40, p8, r4, 24px navy glyph) ---- */
#menuPrimary button.navbar-toggler {
  border: none;
  background: transparent;
  color: var(--eatontown-navy);
  width: 40px;
  height: 40px;
  padding: 8px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
}
#menuPrimary button.navbar-toggler:focus {
  box-shadow: 0 0 0 2px var(--eatontown-navy);
}
@media (min-width: 992px) {
  #menuPrimary button.navbar-toggler {
    display: none;
  }
}

/* ---- Mobile drawer (below lg) — Figma components 1:1643 ---- */
@media (max-width: 991.98px) {
  .eatontown-header-container {
    min-height: 64px;
    padding: 0 20px;
    border-bottom: 1px solid var(--eatontown-cream-border);
  }
  #primaryMenuOffcanvas {
    width: 100%;
    max-width: 100%;
    background-color: var(--eatontown-navy-deep);
  }
  #primaryMenuOffcanvas .offcanvas-header {
    background-color: #ffffff;
    border-bottom: 1px solid var(--eatontown-cream-border);
    min-height: 64px;
    padding: 6px 20px;
  }
  #primaryMenuOffcanvas .offcanvas-header .navbar-brand img {
    width: 180px;
    height: 52px;
  }
  .eatontown-drawer-close {
    width: 40px;
    height: 40px;
    padding: 8px;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--eatontown-navy);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .eatontown-drawer-close:focus-visible {
    box-shadow: 0 0 0 2px var(--eatontown-navy);
    outline: none;
  }
  .eatontown-offcanvas-body {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0;
    background-color: var(--eatontown-navy-deep);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
  }
  .eatontown-primary-menu-wrapper {
    order: 1;
  }
  /* Search sits under the menu (not in Figma's drawer, kept for usability) */
  #eatontownHeader .search-container {
    order: 2;
    padding: 20px;
  }
  .eatontown-search {
    width: 100%;
  }
  .gtranslate_wrapper {
    order: 3;
    padding: 0 20px 20px;
  }

  /* Top-level accordion rows: 53px, uppercase 14/21 white, 16px chevron */
  #menuPrimary .navbar-nav {
    gap: 0;
  }
  #menuPrimary .navbar-nav .nav-item.menu-level-one {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }
  #menuPrimary .navbar-nav .nav-item.menu-level-one:last-child {
    border-bottom: none;
  }
  #menuPrimary .navbar-nav .first-level-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    color: #ffffff;
    letter-spacing: 0.35px;
    line-height: 21px;
  }
  #menuPrimary .navbar-nav .first-level-link:hover,
  #menuPrimary .navbar-nav .first-level-link:focus {
    color: #ffffff;
  }
  #menuPrimary .navbar-nav .first-level-link:focus-visible {
    outline-color: var(--eatontown-gold-text);
    outline-offset: -2px;
  }
  #menuPrimary .navbar-nav .dropdown-toggle::after {
    display: inline-block;
    opacity: 0.6;
    margin-left: 12px;
  }
  #menuPrimary .navbar-nav .dropdown-toggle[aria-expanded="true"]::after,
  #menuPrimary .navbar-nav .dropdown-toggle.show::after {
    transform: rotate(180deg);
  }

  /* Expanded sub-panel: navy #0b1e3d, pad 20/20/0, groups gap 20, heading 12/18, links 15/20.6 */
  #menuPrimary .dropdown-menu,
  #menuPrimary .dropdown-menu.dropdown-mega-menu {
    position: relative;
    width: 100%;
    max-width: 100%;
    left: 0;
    transform: none;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background-color: var(--eatontown-navy);
  }
  #menuPrimary .dropdown-menu.dropdown-mega-menu::after {
    display: none;
  }
  #menuPrimary .mega-menu-columns {
    padding: 20px 20px 0;
  }
  #menuPrimary .mega-menu-columns > .row {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }
  #menuPrimary .mega-menu-column {
    gap: 20px;
  }
  #menuPrimary .sk-megamenu-column-item-link {
    line-height: 18px;
  }
  #menuPrimary .sk-megamenu-column-item-submenu {
    padding-top: 8px;
    gap: 10px;
  }
  #menuPrimary .sk-megamenu-column-item-submenu li {
    padding: 0;
  }
  #menuPrimary .sk-megamenu-column-item-submenu-link {
    color: rgba(255, 255, 255, 0.8);
    line-height: 20.6px;
  }
  /* last group gets the bottom padding (Figma: trailing block py-20) */
  #menuPrimary .mega-menu-columns > .row > .mega-menu-column:last-child {
    padding-bottom: 20px !important;
  }
  /* Non-mega dropdowns inside the drawer */
  #menuPrimary .dropdown-menu:not(.dropdown-mega-menu) {
    padding: 12px 20px 20px;
  }
  #menuPrimary .dropdown-menu:not(.dropdown-mega-menu) .dropdown-item {
    padding: 5px 0;
    color: rgba(255, 255, 255, 0.8);
  }
}
/* ============ END EATONTOWN HEADER ============ */

/* ============================================================
   EATONTOWN FOOTER (Figma tokens/C-subscribe-footer.md — mobile column grouping chosen)
   ============================================================ */
#eatontownFooter {
  background-color: var(--eatontown-navy-deep);
  color: #ffffff;
  font-family: var(--eatontown-font-body);
}
/* gold fade strip along the top edge (Figma: 4px desktop, 1px mobile) */
.eatontown-footer-strip {
  height: 1px;
  width: 100%;
  background: linear-gradient(90deg, rgba(201, 168, 67, 0) 0%, rgba(201, 168, 67, 0.4) 30%, rgba(201, 168, 67, 0.4) 70%, rgba(201, 168, 67, 0) 100%);
}
.eatontown-footer-container {
  max-width: 1064px; /* 1024 content + 2x20 */
  margin: 0 auto;
  padding: 48px 20px 40px;
}
/* Mobile: 2-col grid, brand block spans both columns */
.eatontown-footer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
}
.eatontown-footer-brand {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.eatontown-footer-logo-link {
  display: inline-block;
  width: 163px;
}
.eatontown-footer-logo-link:focus-visible {
  outline: 2px solid var(--eatontown-gold-text);
  outline-offset: 4px;
}
#eatontownFooter .eatontown-footer-logo {
  display: block;
  width: 163px;
  height: 47px;
  object-fit: contain;
  object-position: left center;
}
#eatontownFooter .eatontown-footer-address {
  font-style: normal;
  font-size: 14px;
  line-height: 20px;
  color: rgba(255, 255, 255, 0.8);
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
}
#eatontownFooter .eatontown-footer-address-lines {
  line-height: 22.75px;
}
#eatontownFooter .eatontown-footer-address-lines p {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
  font-family: inherit;
}
#eatontownFooter .eatontown-footer-line {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
}
#eatontownFooter .eatontown-footer-link {
  color: inherit;
  font-size: inherit;
  line-height: inherit;
  text-decoration: none;
}
#eatontownFooter .eatontown-footer-link:hover,
#eatontownFooter .eatontown-footer-link:focus {
  color: var(--eatontown-gold-text);
  text-decoration: underline;
}

/* Link columns: gold eyebrow + list */
.eatontown-footer-col {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
#eatontownFooter .eatontown-footer-heading {
  font-family: var(--eatontown-font-body);
  font-weight: 700;
  font-size: 12px;
  line-height: 18px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--eatontown-gold-text);
  margin: 0;
}
#eatontownFooter .footer-menu {
  gap: 8px;
}
#eatontownFooter .footer-menu .nav-item {
  min-width: 0;
}
#eatontownFooter .footer-menu .nav-link {
  display: block;
  font-family: var(--eatontown-font-body);
  font-size: 14px;
  line-height: 20px;
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  padding: 0;
  word-break: break-word;
}
#eatontownFooter .footer-menu .nav-link:hover,
#eatontownFooter .footer-menu .nav-link:focus {
  color: var(--eatontown-gold-text);
  text-decoration: underline;
}
#eatontownFooter .footer-menu .nav-link:focus-visible {
  outline: 2px solid var(--eatontown-gold-text);
  outline-offset: 2px;
  border-radius: 2px;
}
#eatontownFooter .footer-menu .nav-link i {
  display: none;
}
#eatontownFooter .eatontown-footer-copyright {
  margin: 32px 0 0;
  font-size: 13px;
  line-height: 20px;
  color: rgba(255, 255, 255, 0.6);
  text-align: center;
}
/* Editor wraps copyright text in <p>; keep it on the same line as the year */
#eatontownFooter .eatontown-footer-copyright p {
  display: inline;
  margin: 0;
  font-size: inherit;
  line-height: inherit;
  color: inherit;
}
#eatontownFooter .eatontown-footer-copyright a {
  color: inherit;
  font-size: inherit;
  line-height: inherit;
  text-decoration: none;
}
#eatontownFooter .eatontown-footer-copyright a:hover,
#eatontownFooter .eatontown-footer-copyright a:focus {
  text-decoration: underline;
}
/* Empty (unassigned) columns collapse instead of leaving a lone heading */
#eatontownFooter .eatontown-footer-col:has(.footer-menu:empty) {
  display: none;
}

/* Tablet: 3 link columns under the brand */
@media (min-width: 768px) {
  .eatontown-footer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
/* Desktop (Figma): brand 163 | gap 103 | three columns, white text */
@media (min-width: 992px) {
  .eatontown-footer-strip {
    height: 4px;
  }
  .eatontown-footer-container {
    padding: 88px 20px;
  }
  .eatontown-footer-grid {
    grid-template-columns: 163px repeat(3, minmax(0, 1fr));
    column-gap: 80px;
    row-gap: 0;
    align-items: start;
  }
  .eatontown-footer-brand {
    grid-column: auto;
  }
  #eatontownFooter .eatontown-footer-address,
  #eatontownFooter .footer-menu .nav-link {
    color: #ffffff;
  }
  #eatontownFooter .eatontown-footer-heading {
    line-height: 16px;
  }
}
@media (min-width: 1200px) {
  .eatontown-footer-grid {
    column-gap: 103px;
  }
}
/* ============ END EATONTOWN FOOTER ============ */

/* ============================================================
   EATONTOWN HOMEPAGE SECTIONS (Figma tokens/A, B, C, F)
   Shared shell: 1024px column, section head = title block + gold button
   ============================================================ */
.eatontown-section {
  padding: 40px 0;
}
.eatontown-section-container {
  max-width: 1064px; /* 1024 + 2x20 */
  margin: 0 auto;
  padding: 0 20px;
}
.eatontown-section-head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 32px;
}
.eatontown-section-titleblock {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}
.eatontown-section-title {
  font-family: var(--eatontown-font-heading);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.25;
  color: var(--eatontown-navy);
  margin: 0;
}
.eatontown-gold-rule {
  display: block;
  width: 40px;
  height: 3px;
  border-radius: 9999px;
  background: linear-gradient(176deg, var(--eatontown-gold-grad-start) 0%, var(--eatontown-gold-grad-end) 100%);
}
.eatontown-eyebrow {
  font-family: var(--eatontown-font-body);
  font-weight: 700;
  font-size: 12px;
  line-height: 18px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--eatontown-gold-text);
  margin: 0;
}
/* Static-var label with a default when the customizer field is empty */
.lbl:empty::before {
  content: attr(data-default);
}

/* Gold pill button */
.eatontown-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 22px;
  border: none;
  border-radius: var(--eatontown-btn-radius);
  background: var(--eatontown-gold-grad);
  box-shadow: var(--eatontown-gold-shadow);
  font-family: var(--eatontown-font-heading);
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: var(--eatontown-text);
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s ease, transform 0.2s ease;
}
.eatontown-btn:hover,
.eatontown-btn:focus {
  background: var(--eatontown-gold-grad-hover);
  color: var(--eatontown-text);
  text-decoration: none;
}
.eatontown-btn:focus-visible {
  outline: 2px solid var(--eatontown-navy);
  outline-offset: 2px;
}
.eatontown-btn-arrow {
  display: inline-block;
  width: 10px;
  height: 8px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 8' fill='none'%3E%3Cpath d='M.56 3.89h8.88M5.56.56l3.33 3.33-3.33 3.33' stroke='%23000' stroke-width='1.11' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 8' fill='none'%3E%3Cpath d='M.56 3.89h8.88M5.56.56l3.33 3.33-3.33 3.33' stroke='%23000' stroke-width='1.11' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.eatontown-btn-block {
  width: 100%;
  justify-content: center;
  height: 52px;
  border-radius: 8px;
}
/* Generic masked chevrons (calendar arrows, card/alert chevrons) */
.eatontown-chevron {
  display: inline-block;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M6 4l4 4-4 4' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M6 4l4 4-4 4' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.eatontown-chevron-left {
  transform: rotate(180deg);
}

@media (min-width: 768px) {
  .eatontown-section-head {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 40px;
  }
}
@media (min-width: 992px) {
  .eatontown-section {
    padding: 72px 0;
  }
  .eatontown-section-title {
    font-size: 34px;
    line-height: 1.15;
  }
}

/* ---- Hero ---- */
#eatontownHero .eatontown-hero-media {
  position: relative;
  min-height: 413px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 21px;
}
#eatontownHero .eatontown-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
}
#eatontownHero .eatontown-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, var(--eatontown-overlay-hero-start) 0%, var(--eatontown-overlay-hero-end) 100%);
}
#eatontownHero .eatontown-hero-content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 9px;
  text-align: center;
  color: #ffffff;
  max-width: 100%;
}
#eatontownHero .eatontown-hero-eyebrow {
  font-family: var(--eatontown-font-body);
  font-weight: 700;
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #ffffff;
  margin: 0;
}
#eatontownHero .eatontown-hero-eyebrow:empty {
  display: none;
}
#eatontownHero .eatontown-hero-title {
  font-family: var(--eatontown-font-body);
  font-weight: 600;
  font-size: min(56px, 13.5vw); /* Figma 56px; shrinks on very narrow phones instead of breaking the word */
  line-height: 1.14;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: #ffffff;
  margin: 0;
  overflow-wrap: normal;
}
@media (min-width: 768px) {
  #eatontownHero .eatontown-hero-title {
    font-size: 72px;
  }
}
@media (min-width: 992px) {
  #eatontownHero .eatontown-hero-media {
    min-height: 406px;
  }
  #eatontownHero .eatontown-hero-content {
    gap: 24px;
  }
  #eatontownHero .eatontown-hero-eyebrow {
    font-size: 20px;
    line-height: 1;
    letter-spacing: 3.08px;
  }
  #eatontownHero .eatontown-hero-title {
    font-size: 92px;
    line-height: 1.05;
  }
}

/* ---- Quick links (circle icon menu; Figma 1:56 + hover 1:1818) ----
   Generated markup: ul.quick-links-menu > li.nav-item > a.nav-link.first-level-link > i + span */
#eatontownQuickLinks {
  background-color: var(--eatontown-cream);
  border-bottom: 1px solid var(--eatontown-cream-border);
  padding: 32px 0 40px;
}
#eatontownQuickLinks .eatontown-quick-links-nav {
  width: 100%;
}
#eatontownQuickLinks .quick-links-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 120px);
  justify-content: center;
  column-gap: 65px;
  row-gap: 18px;
}
#eatontownQuickLinks .quick-links-menu .nav-item {
  display: flex;
  justify-content: center;
}
#eatontownQuickLinks .quick-links-menu .nav-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 0;
  width: 100%;
  text-align: center;
  text-decoration: none;
  transition: transform 0.25s ease;
}
#eatontownQuickLinks .quick-links-menu .nav-link i {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  margin: 0 !important; /* generator me-2 */
  background-color: var(--eatontown-navy);
  background-clip: padding-box;
  border: 7px solid rgba(255, 255, 255, 0.66);
  box-shadow: var(--eatontown-shadow-circle);
  color: #ffffff;
  font-size: 32px;
  line-height: 1;
  transition: background-color 0.2s ease;
}
#eatontownQuickLinks .quick-links-menu .nav-link > span {
  font-family: var(--eatontown-font-heading);
  font-weight: 400;
  font-size: 16px;
  line-height: 18px;
  color: var(--eatontown-navy);
  max-width: 156px;
}
#eatontownQuickLinks .quick-links-menu .nav-link:hover,
#eatontownQuickLinks .quick-links-menu .nav-link:focus-visible {
  transform: translateY(-16px);
  outline: none;
}
#eatontownQuickLinks .quick-links-menu .nav-link:hover i,
#eatontownQuickLinks .quick-links-menu .nav-link:focus-visible i {
  background-color: var(--eatontown-navy-hover);
}
#eatontownQuickLinks .quick-links-menu .nav-link:hover > span,
#eatontownQuickLinks .quick-links-menu .nav-link:focus-visible > span {
  text-decoration: underline;
  text-decoration-thickness: from-font;
  text-underline-position: from-font;
}
#eatontownQuickLinks .quick-links-menu .nav-link:focus-visible i {
  box-shadow: var(--eatontown-shadow-circle), 0 0 0 3px var(--eatontown-gold-text);
}
@media (min-width: 768px) {
  #eatontownQuickLinks .quick-links-menu {
    grid-template-columns: repeat(3, 160px);
    column-gap: 24px;
  }
}
@media (min-width: 992px) {
  /* Figma: circles overlap the hero bottom by 19px; the cream band starts 19px lower */
  #eatontownQuickLinks {
    padding: 0 0 48px;
    background: linear-gradient(to bottom, transparent 0, transparent 19px, var(--eatontown-cream) 19px);
    margin-top: -19px;
    position: relative;
    z-index: 2;
  }
  #eatontownQuickLinks .quick-links-menu {
    grid-template-columns: repeat(6, 160px);
    column-gap: 24px;
  }
  #eatontownQuickLinks .quick-links-menu .nav-link {
    gap: 19px;
  }
  #eatontownQuickLinks .quick-links-menu .nav-link i {
    width: 84px;
    height: 84px;
  }
  #eatontownQuickLinks .quick-links-menu .nav-link > span {
    font-size: 18px;
    line-height: 20px;
    max-width: 160px;
  }
}
@media (max-width: 767.98px) {
  /* long labels get a wider slot on mobile like Figma's row 3 */
  #eatontownQuickLinks .quick-links-menu .nav-link > span {
    max-width: 136px;
  }
}

/* ---- Ticker strip (homepage announcement) ---- */
#eatontownTicker {
  background-color: var(--eatontown-blue-strip);
  color: #ffffff;
  padding: 6px 0;
}
#eatontownTicker .eatontown-ticker-wrapper {
  position: relative;
  padding: 0 56px 0 20px; /* room for the pause button */
}
/* jquery.marquee scrolls the content; keep it on one line (WYSIWYG <p> becomes inline) */
#eatontownTicker .eatontown-ticker-text {
  font-family: var(--eatontown-font-body);
  font-weight: 700;
  font-size: 13px;
  line-height: 1.5;
  min-height: 19.5px; /* keeps the 6+19.5+6 = ~30px ribbon when there is no ticker post */
  white-space: nowrap;
  overflow: hidden;
}
#eatontownTicker .eatontown-ticker-text p {
  display: inline;
  margin: 0;
  font: inherit;
}
#eatontownTicker .eatontown-ticker-text p + p::before {
  content: "\00a0\00a0\2022\00a0\00a0"; /* separator between paragraphs */
}
#eatontownTicker .ticker-play-pause-btn {
  width: 24px;
  height: 24px;
  right: 16px;
  border-width: 1px;
  background-color: rgba(7, 20, 40, 0.75);
}
#eatontownTicker .ticker-play-pause-btn i {
  font-size: 10px;
}
/* No ticker post: the ribbon stays (user decision 2026-09-09) at its Figma height; only the
   pause button goes, since there is nothing to pause. */
#eatontownTicker:has(.eatontown-ticker-text:empty) .ticker-play-pause-btn {
  display: none;
}

/* ---- Upcoming Events: calendar card + event/meeting cards ---- */
.eatontown-events-section {
  background-color: #ffffff;
}
.eatontown-events-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 40px;
  margin: 0;
}
.eatontown-events-grid > [class*="col-"] {
  width: auto;
  max-width: none;
  flex: none;
  padding: 0;
  min-width: 0;
}
.eatontown-calendar-card {
  background: #ffffff;
  border: 1px solid var(--eatontown-border-blue);
  border-radius: var(--eatontown-card-radius);
  box-shadow: var(--eatontown-shadow-card);
  overflow: hidden;
}
.eatontown-calendar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  background-color: var(--eatontown-navy);
  padding: 16px 24px;
  min-height: 64px;
}
.eatontown-calendar-month {
  font-family: var(--eatontown-font-heading);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.35;
  color: #ffffff;
  margin: 0;
  text-align: center;
  white-space: nowrap;
}
.eatontown-calendar-navbtn {
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: rgba(255, 255, 255, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.eatontown-calendar-navbtn:hover,
.eatontown-calendar-navbtn:focus-visible {
  background-color: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  outline: none;
}
.eatontown-calendar-navbtn:focus-visible {
  box-shadow: 0 0 0 2px var(--eatontown-gold-text);
}
/* Neutralise inherited Maverick calendar chrome */
#events-calendar-table,
#events-calendar-table th,
#events-calendar-table td {
  border: none !important;
  outline: none !important;
}
#events-calendar-table thead tr {
  background-color: var(--eatontown-ice-2);
  border-bottom: 1px solid var(--eatontown-border-blue-2);
}
#events-calendar-table thead th {
  padding: 12px 0 13px;
  font-weight: 700;
}
#events-calendar-table thead th:first-child {
  padding-left: 16px;
}
#events-calendar-table thead th:last-child {
  padding-right: 16px;
}
#events-calendar-table thead th div {
  font-family: var(--eatontown-font-body);
  font-weight: 700 !important;
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: 0.55px;
  text-transform: none !important; /* Figma: "Sun", not "SUN" */
  color: #000000;
  padding: 4px 0 !important;
}
#events-calendar-table tbody td {
  height: 44px; /* 40 + 4px row gap */
  padding: 2px 0;
  vertical-align: middle;
  text-align: center;
}
#events-calendar-table tbody td:first-child {
  padding-left: 16px;
}
#events-calendar-table tbody td:last-child {
  padding-right: 16px;
}
#events-calendar-table tbody tr:first-child td {
  padding-top: 12px;
}
#events-calendar-table tbody tr:last-child td {
  padding-bottom: 20px;
}
#events-calendar-table .tw-calendar-day {
  width: 36px;
  height: 36px;
  margin: 0 auto;
  padding: 0 !important;
  border-radius: 8px;
  font-family: var(--eatontown-font-body);
  font-weight: 600;
  font-size: 16px;
  line-height: 1.2;
  color: #000000;
  position: relative;
  cursor: pointer;
  transition: background-color 0.15s ease;
}
#events-calendar-table .tw-calendar-day:hover {
  background-color: var(--eatontown-ice-3);
}
#events-calendar-table .tw-calendar-day span:first-child {
  display: none; /* Maverick's decorative circle */
}
#events-calendar-table .tw-calendar-day .event-item-btn {
  position: static !important;
}
#events-calendar-table td.has-events .tw-calendar-day::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 3px;
  width: 4px;
  height: 4px;
  margin-left: -2px;
  border-radius: 50%;
  background-color: var(--eatontown-gold);
}
#events-calendar-table td.selected .tw-calendar-day {
  width: 46px;
  height: 45px;
  background: linear-gradient(135deg, var(--eatontown-gold-grad-start) 0%, var(--eatontown-gold-grad-end) 100%);
  box-shadow: 0 4px 9px rgba(195, 127, 0, 0.34);
}
#events-calendar-table td.eatontown-cal-pad {
  background: transparent;
}
#events-calendar-table .tw-calendar-day.tw-calendar-current-date,
#events-calendar-table .tw-calendar-day.tw-calendar-has-events-date {
  background-color: transparent;
}
/* Event / meeting cards */
.eatontown-events-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
#events-calendar .tw-calendar-events-cards article,
.eatontown-event-row {
  display: flex;
  align-items: center;
  gap: 16px;
  background: #ffffff;
  border: 2px solid var(--eatontown-border-blue-3);
  border-left-width: 2px;
  border-radius: 12px;
  padding: 18px 22px;
  min-height: 0;
  margin: 0;
  box-shadow: none;
}
.eatontown-event-datebox {
  flex: 0 0 54px;
  width: 54px;
  height: 54px;
  border-radius: 8px;
  background-color: var(--eatontown-ice-3);
  border: 1px solid var(--eatontown-border-blue-4);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.eatontown-event-datebox-day {
  font-family: var(--eatontown-font-heading);
  font-style: italic;
  font-size: 22px;
  line-height: 1;
  color: var(--eatontown-navy);
}
.eatontown-event-datebox-month {
  font-family: var(--eatontown-font-body);
  font-weight: 700;
  font-size: 9px;
  line-height: 1.5;
  letter-spacing: 0.9px;
  text-transform: uppercase;
  color: var(--eatontown-text-muted);
  padding-top: 2px;
}
.eatontown-event-body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
#events-calendar .tw-calendar-event-article-time {
  font-family: var(--eatontown-font-body);
  font-style: italic;
  font-size: 14px;
  line-height: 1.5;
  color: #000000;
}
#events-calendar .tw-calendar-event-article-title {
  font-family: var(--eatontown-font-body);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.5;
  color: var(--eatontown-navy);
  margin: 2px 0 0;
  padding: 0;
}
#events-calendar .tw-calendar-event-article-title a {
  color: inherit;
  text-decoration: none;
}
#events-calendar .tw-calendar-event-article-title a:hover,
#events-calendar .tw-calendar-event-article-title a:focus {
  text-decoration: underline;
}
#events-calendar .tw-calendar-event-article-venue {
  font-family: var(--eatontown-font-body);
  font-size: 13px;
  line-height: 1.5;
  color: var(--eatontown-text-muted);
  margin-top: 2px;
}
.eatontown-event-chevron {
  flex: 0 0 auto;
  color: var(--eatontown-navy);
  opacity: 0.2;
}
.eatontown-event-row:hover .eatontown-event-chevron {
  opacity: 0.6;
}
#events-calendar .eatontown-events-empty {
  margin: 0;
  padding: 18px 22px;
  border: 2px dashed var(--eatontown-border-blue-3);
  border-radius: 12px;
  background: var(--eatontown-ice);
  font-family: var(--eatontown-font-body);
  font-size: 15px;
  color: var(--eatontown-text-slate);
}
/* Calendar sizes: mobile cells */
@media (max-width: 991.98px) {
  #events-calendar-table thead th div {
    font-size: 11px;
  }
}
@media (min-width: 992px) {
  .eatontown-events-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .eatontown-calendar-month {
    line-height: 27px;
  }
}

/* ---- Alerts & Notifications (news list) ---- */
.eatontown-alerts-section {
  position: relative;
  background-color: var(--eatontown-ice);
  overflow: hidden;
}
.eatontown-alerts-bg {
  display: none;
  position: absolute;
  inset: 0;
  background-image: url("/assets/img/alerts-bg.png");
  background-size: cover;
  background-position: center 65%;
  background-repeat: no-repeat;
}
.eatontown-alerts-section .eatontown-section-container {
  position: relative;
  z-index: 1;
}
.eatontown-alerts-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid var(--eatontown-list-border);
  border-radius: var(--eatontown-card-radius);
  box-shadow: var(--eatontown-shadow-list);
  overflow: hidden;
}
.eatontown-alert-row {
  background: #ffffff;
  border-left: 4px solid var(--eatontown-gold);
  border-bottom: 1px solid var(--eatontown-cream-border);
}
.eatontown-alert-row:last-child {
  border-bottom: none;
}
.eatontown-alert-link {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px 28px 20px 32px;
  text-decoration: none;
  color: inherit;
  transition: background-color 0.2s ease;
}
.eatontown-alert-link:hover,
.eatontown-alert-link:focus-visible {
  background-color: #fdf8ee;
  outline: none;
}
.eatontown-alert-link:focus-visible .eatontown-alert-title {
  text-decoration: underline;
}
.eatontown-alert-dot {
  flex: 0 0 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--eatontown-gold-grad-start) 0%, var(--eatontown-gold-grad-end) 100%);
}
.eatontown-alert-title {
  flex: 1 1 auto;
  min-width: 0;
  font-family: var(--eatontown-font-body);
  font-weight: 700;
  font-size: 15px;
  line-height: 1.5;
  color: var(--eatontown-text-slate);
}
.eatontown-alert-link:hover .eatontown-alert-title {
  color: var(--eatontown-navy);
}
.eatontown-alert-date {
  display: none;
  flex: 0 0 auto;
  font-family: var(--eatontown-font-body);
  font-size: 13px;
  line-height: 1.5;
  color: #000000;
  white-space: nowrap;
}
.eatontown-alert-chevron {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid var(--eatontown-gold-border-40);
  background-color: #fdf8ee;
  position: relative;
  color: #736021;
}
.eatontown-alert-chevron::before {
  content: "";
  position: absolute;
  inset: 5px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M5.25 3.15L9.1 7l-3.85 3.85' stroke='%23000' stroke-width='1.54' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M5.25 3.15L9.1 7l-3.85 3.85' stroke='%23000' stroke-width='1.54' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media (min-width: 768px) {
  .eatontown-alerts-section {
    background-color: transparent;
  }
  .eatontown-alerts-bg {
    display: block;
  }
  .eatontown-alert-row {
    border-bottom-color: var(--eatontown-gold);
  }
  .eatontown-alert-link {
    padding: 20px 28px 21px 32px;
  }
  .eatontown-alert-title {
    font-size: 17px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .eatontown-alert-date {
    display: block;
  }
  .eatontown-alert-chevron {
    background-color: transparent;
  }
}

/* ---- Frequently Asked Questions (accordion) ---- */
.eatontown-faq-section {
  background-color: var(--eatontown-cream);
}
.eatontown-faq-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.eatontown-faq-item {
  background: rgba(255, 255, 255, 0.7);
  border: 1.6px solid var(--eatontown-border-grey);
  border-radius: 10px;
  overflow: hidden;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.eatontown-faq-item.is-open {
  background: #ffffff;
  border: 2px solid var(--eatontown-gold-border-55);
  box-shadow: var(--eatontown-shadow-card);
}
.eatontown-faq-question {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
}
.eatontown-faq-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 20px 24px;
  border: none;
  background: transparent;
  text-align: left;
  color: inherit;
  cursor: pointer;
}
.eatontown-faq-toggle:focus-visible {
  outline: 2px solid var(--eatontown-navy);
  outline-offset: -4px;
  border-radius: 8px;
}
.eatontown-faq-question-text {
  font-family: var(--eatontown-font-body);
  font-weight: 700;
  font-size: 17px;
  line-height: 1.4;
  color: var(--eatontown-navy);
}
.eatontown-faq-item.is-open .eatontown-faq-question-text {
  color: var(--eatontown-blue-link);
}
.eatontown-faq-icon {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid var(--eatontown-gold-border-60);
  background-color: transparent;
  position: relative;
  color: var(--eatontown-gold);
  transition: transform 0.25s ease, background-color 0.2s ease, border-color 0.2s ease;
}
.eatontown-faq-icon::before {
  content: "";
  position: absolute;
  inset: 6px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M6 .86v10.28M.86 6h10.28' stroke='%23000' stroke-width='1.89' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M6 .86v10.28M.86 6h10.28' stroke='%23000' stroke-width='1.89' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.eatontown-faq-item.is-open .eatontown-faq-icon {
  background-color: var(--eatontown-gold-dark);
  border-color: var(--eatontown-gold-dark);
  color: #ffffff;
  transform: rotate(45deg);
}
.eatontown-faq-answer-inner {
  padding: 0 24px 24px;
  font-family: var(--eatontown-font-body);
  font-size: 15px;
  line-height: 1.75;
  color: #000000;
}
.eatontown-faq-answer-inner::before {
  content: "";
  display: block;
  height: 1px;
  background-color: var(--eatontown-gold-divider-25);
  margin-bottom: 16px;
}
.eatontown-faq-answer-inner p {
  font-size: inherit;
  line-height: inherit;
  font-family: inherit;
  margin: 0 0 8px;
}
.eatontown-faq-answer-inner p:last-child {
  margin-bottom: 0;
}

/* ---- Stay Informed (subscribe) ---- */
.eatontown-subscribe-section {
  background-color: var(--eatontown-navy);
  color: #ffffff;
  padding: 40px 0;
}
.eatontown-subscribe-grid {
  display: flex;
  flex-direction: column;
  gap: 29px;
}
.eatontown-subscribe-intro {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.eatontown-subscribe-header {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
#tw-subscribe .eatontown-section-title {
  color: #ffffff;
}
.eatontown-subscribe-text {
  font-family: var(--eatontown-font-body);
  font-size: 15px;
  line-height: 1.625;
  color: #ffffff;
  margin: 0;
}
.eatontown-subscribe-text p {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  margin: 0;
}
.eatontown-subscribe-text p + p {
  margin-top: 12px;
}
.eatontown-subscribe-topics {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.eatontown-topic-groups {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}
.eatontown-subscribe-topics[hidden],
.eatontown-topic-group[hidden] {
  display: none;
}
.eatontown-topic-group {
  flex: 0 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0;
  padding: 0;
  border: none;
}
.eatontown-topic-group legend {
  float: none;
  width: auto;
  padding: 0;
  margin: 0 0 12px;
  font-size: 12px;
  line-height: 18px;
}
.eatontown-topic-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.eatontown-topic-item {
  display: flex;
  align-items: center;
  gap: 10px;
}
.eatontown-topic-item input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  margin: 0;
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 4px;
  background: transparent;
  position: relative;
  cursor: pointer;
}
.eatontown-topic-item input[type="checkbox"]:checked {
  background: var(--eatontown-gold-grad);
  border-color: transparent;
}
.eatontown-topic-item input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  inset: 4px;
  background-color: var(--eatontown-text);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2 6.5l2.6 2.5L10 3.5' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2 6.5l2.6 2.5L10 3.5' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.eatontown-topic-item input[type="checkbox"]:focus-visible {
  outline: 2px solid var(--eatontown-gold-text);
  outline-offset: 2px;
}
.eatontown-topic-item label {
  font-family: var(--eatontown-font-body);
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  color: #ffffff;
  white-space: nowrap;
  cursor: pointer;
}
.eatontown-topics-error {
  margin: 0;
  font-family: var(--eatontown-font-body);
  font-size: 13px;
  line-height: 1.4;
  color: #ffd0cc;
}
.eatontown-subscribe-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.eatontown-field {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.eatontown-field label {
  font-family: var(--eatontown-font-body);
  font-size: 15px;
  line-height: 1.3;
  color: #ffffff;
}
#tw-subscribe .eatontown-field .form-control {
  height: 48px;
  padding: 1px 17px;
  border-radius: 8px;
  background-color: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: #ffffff;
  font-family: var(--eatontown-font-body);
  font-size: 15px;
  box-shadow: none;
}
#tw-subscribe .eatontown-field .form-control::placeholder {
  color: rgba(255, 255, 255, 0.55);
}
#tw-subscribe .eatontown-field .form-control:focus {
  border-color: var(--eatontown-gold-text);
  background-color: rgba(255, 255, 255, 0.1);
  outline: none;
  box-shadow: 0 0 0 2px rgba(212, 168, 67, 0.35);
}
#tw-subscribe .eatontown-field .form-control[readonly] {
  opacity: 0.7;
}
.eatontown-field-submit {
  padding-top: 8px;
}
#tw-subscribe .eatontown-btn {
  box-shadow: 0 4px 9px rgba(195, 127, 0, 0.38);
}
#tw-subscribe .eatontown-btn.homepage-subscribed-success {
  background: #2e7d4f;
  color: #ffffff;
}
#tw-subscribe .eatontown-btn.homepage-subscribed-danger {
  background: #b3261e;
  color: #ffffff;
}
.eatontown-subscribe-disclaimer {
  font-family: var(--eatontown-font-body);
  font-size: 13px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.7);
  margin: 0;
}
.eatontown-subscribe-disclaimer:empty {
  display: none;
}
#tw-subscribe .alert {
  margin-top: 12px;
}
@media (min-width: 992px) {
  .eatontown-subscribe-section {
    padding: 64px 0;
  }
  .eatontown-subscribe-grid {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 60px;
  }
  .eatontown-subscribe-intro {
    flex: 0 1 432px;
  }
  .eatontown-subscribe-header {
    max-width: 400px;
  }
  .eatontown-topic-groups {
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: 24px;
  }
  .eatontown-subscribe-form {
    flex: 0 1 484px;
  }
  #tw-subscribe .eatontown-section-title {
    font-size: 42px;
    line-height: 1.25;
  }
  #subscribe-form-heading {
    line-height: 16px;
  }
}
@media (min-width: 1200px) {
  .eatontown-subscribe-grid {
    gap: 108px;
  }
}
/* ============ END EATONTOWN HOMEPAGE SECTIONS ============ */

/* ============================================================
   EATONTOWN INNER PAGES (Figma tokens/E-department-page.md)
   title band + breadcrumb, department pages (quick cards, side menu,
   contact card), archives, news single, meetings, search, 404
   ============================================================ */

/* ---- Shared page shell (1062px content column, Figma 207px margins on 1475) ---- */
.eatontown-page {
  background-color: #ffffff;
  min-height: 500px;
  font-family: var(--eatontown-font-body);
}
.eatontown-page-container {
  max-width: 1102px; /* 1062 + 2x20 */
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
}
.eatontown-page-body {
  padding-top: 32px;
  padding-bottom: 56px;
}

/* ---- Title band: photo + navy overlay (or plain navy), breadcrumb + H1 ---- */
.eatontown-page-band {
  position: relative;
  min-height: 280px;
  background-color: var(--eatontown-navy);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.eatontown-page-band-img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
}
.eatontown-page-band-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(11, 30, 61, 0.45) 0%, rgba(11, 30, 61, 0.6) 100%);
}
.eatontown-page-band-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 32px;
  padding-bottom: 36px;
}
.eatontown-page-title {
  font-family: var(--eatontown-font-heading);
  font-weight: 400;
  font-size: 30px;
  line-height: 1.44;
  color: #ffffff;
  margin: 0;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

/* ---- Breadcrumb (inside the band) ---- */
.eatontown-breadcrumb {
  margin: 0;
}
.eatontown-breadcrumb ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  font-family: var(--eatontown-font-body);
  font-size: 13px;
  line-height: 1.5;
  color: #ffffff;
}
.eatontown-breadcrumb li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.eatontown-breadcrumb li + li::before {
  content: "/" / "";
  font-size: 13px;
  color: #ffffff;
}
.eatontown-breadcrumb a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #ffffff;
  text-decoration: none;
}
.eatontown-breadcrumb a:hover,
.eatontown-breadcrumb a:focus {
  color: #ffffff;
  text-decoration: underline;
}
.eatontown-breadcrumb a:focus-visible {
  outline: 2px solid var(--eatontown-gold-text);
  outline-offset: 2px;
  border-radius: 2px;
}
.eatontown-breadcrumb li[aria-current="page"] {
  color: #ffd755;
  font-weight: 700;
}
.eatontown-crumb-home {
  display: inline-block;
  width: 12px;
  height: 10px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11.6667 9.91667'%3E%3Cpath d='M4.66667 9.91667V6.41667H7V9.91667H9.91667V5.25H11.6667L5.83333 0L0 5.25H1.75V9.91667H4.66667Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11.6667 9.91667'%3E%3Cpath d='M4.66667 9.91667V6.41667H7V9.91667H9.91667V5.25H11.6667L5.83333 0L0 5.25H1.75V9.91667H4.66667Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---- Page content typography (Figma main column) ---- */
.eatontown-page-content {
  font-family: var(--eatontown-font-body);
  font-size: 16px;
  line-height: 1.8;
  color: #2e3d50;
}
.eatontown-page-content-narrow {
  /* max-width: 800px; */
}
.eatontown-page-content p {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
.eatontown-page-content h2,
.eatontown-page-content h3,
.eatontown-page-content h4 {
  font-family: var(--eatontown-font-body);
  font-weight: 700;
  color: var(--eatontown-navy);
  margin: 20px 0 10px;
}
.eatontown-page-content h2 {
  font-size: 20px;
  line-height: 1.2;
}
.eatontown-page-content h3 {
  font-size: 18px;
}
.eatontown-page-content h4 {
  font-size: 16px;
}
.eatontown-page-content a {
  color: #2e3d50;
  font-weight: 600;
  text-decoration: underline;
  text-underline-position: from-font;
}
.eatontown-page-content a:hover,
.eatontown-page-content a:focus {
  color: var(--eatontown-blue-link);
}
/* Small uppercase eyebrow heading (Figma "RECYCLING YARD") — authors add class "eyebrow" */
.eatontown-page-content .eyebrow {
  font-weight: 700;
  font-size: 20px;
  line-height: 1;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--eatontown-navy);
}

/* ---- Left-sidebar page layout ---- */
.eatontown-sidebar-layout {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.eatontown-sidebar-col:empty {
  display: none;
}

/* ---- Department pages: quick-link cards band ---- */
.eatontown-dept-quick {
  background-color: #f4f7fa;
  border-bottom: 1px solid var(--eatontown-border-blue-2);
  padding: 32px 0;
}
/* no quick menu assigned → band collapses */
.eatontown-dept-quick:not(:has(.nav-item)) {
  display: none;
}
.eatontown-dept-quick-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.eatontown-dept-quick-menu .nav-item {
  display: flex;
}
.eatontown-dept-quick-menu .nav-link {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  padding: 21px;
  background: #ffffff;
  border: 1px solid var(--eatontown-border-blue-2);
  border-radius: 10px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  text-decoration: none;
  color: var(--eatontown-navy);
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.eatontown-dept-quick-menu .nav-link:hover,
.eatontown-dept-quick-menu .nav-link:focus-visible {
  background: var(--eatontown-ice-3);
  border-color: var(--eatontown-navy);
  outline: none;
}
.eatontown-dept-quick-menu .nav-link i {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0 !important;
  border-radius: 8px;
  background: var(--eatontown-ice-3);
  border: 1px solid var(--eatontown-border-blue-4);
  color: var(--eatontown-navy);
  font-size: 24px;
}
.eatontown-dept-quick-menu .nav-link i:empty:not([class*="fa-"]) {
  display: none;
}
/* label (+ optional description from the menu item) */
.eatontown-dept-quick-menu .nav-link > span,
.eatontown-dept-quick-menu .menu-item-label {
  font-family: var(--eatontown-font-heading);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.2;
  color: var(--eatontown-navy);
}
.eatontown-dept-quick-menu .menu-item-description-wrapper {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.eatontown-dept-quick-menu .menu-item-description {
  font-family: var(--eatontown-font-body);
  font-size: 13px;
  line-height: 1.5;
  color: #4a5a6b;
}

/* ---- Department pages: three-column body ---- */
.eatontown-dept-layout {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.eatontown-dept-aside {
  order: 1;
}
.eatontown-dept-main {
  order: 2;
  min-width: 0;
}
.eatontown-dept-menu-col {
  order: 3;
}
.eatontown-dept-menu-col:empty {
  display: none;
}
/* side menu (generated: nav.eatontown-dept-menu > ul.eatontown-dept-menu-list > li.nav-item > a.nav-link) */
.eatontown-dept-menu-list {
  list-style: none;
  margin: 0;
  padding: 0;
  background-color: #18294a;
  border-radius: 10px;
  box-shadow: 0 4px 20px rgba(11, 30, 61, 0.15);
  overflow: hidden;
}
.eatontown-dept-menu-list .nav-item {
  margin: 0;
}
.eatontown-dept-menu-list .nav-link {
  display: block;
  font-family: var(--eatontown-font-body);
  font-weight: 400;
  font-size: 13.5px;
  line-height: 1.4;
  color: #ffffff;
  padding: 11px 16px 12px 19px;
  background-color: #18294a;
  border-left: 3px solid rgba(255, 255, 255, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  text-decoration: none;
  transition: background-color 0.15s ease;
}
.eatontown-dept-menu-list .nav-item:last-child .nav-link {
  border-bottom: none;
}
.eatontown-dept-menu-list .nav-link i {
  display: none;
}
.eatontown-dept-menu-list .nav-link:hover,
.eatontown-dept-menu-list .nav-link:focus,
.eatontown-dept-menu-list .nav-link[aria-current="page"] {
  background-color: #061b43;
  color: #ffffff;
}
.eatontown-dept-menu-list .nav-link:focus-visible {
  outline: 2px solid var(--eatontown-gold-text);
  outline-offset: -3px;
}
/* nested department menu levels (if any) */
.eatontown-dept-menu-list .dropdown-menu {
  position: static;
  display: block;
  background: #061b43;
  border: 0;
  border-radius: 0;
  padding: 4px 0;
  margin: 0;
  box-shadow: none;
}
.eatontown-dept-menu-list .dropdown-item {
  color: rgba(255, 255, 255, 0.85);
  font-family: var(--eatontown-font-body);
  font-size: 13px;
  padding: 6px 16px 6px 32px;
  white-space: normal;
  background: transparent;
}
.eatontown-dept-menu-list .dropdown-item:hover,
.eatontown-dept-menu-list .dropdown-item:focus {
  color: #ffffff;
  text-decoration: underline;
  background: transparent;
}

/* contact card */
.eatontown-contact-card {
  background-color: #f4f7fa;
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 24px;
}
.eatontown-contact-card-header {
  font-family: var(--eatontown-font-heading);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: 2.4px;
  color: var(--eatontown-navy);
  padding: 20px 20px 0;
  margin: 0;
}
.eatontown-contact-card-body {
  padding: 16px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-family: var(--eatontown-font-body);
  color: #111827;
}
.eatontown-contact-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.eatontown-contact-label {
  font-weight: 700;
  font-size: 12px;
  line-height: 16px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #111827;
}
.eatontown-contact-value {
  font-size: 14px;
  line-height: 1.6;
  color: #111827;
}
.eatontown-contact-value p {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
}
.eatontown-contact-value strong {
  font-weight: 600;
}
.eatontown-contact-value a {
  color: #000000;
  text-decoration: underline;
}
.eatontown-contact-value a:hover,
.eatontown-contact-value a:focus {
  color: var(--eatontown-blue-link);
}
.eatontown-contact-card-body:empty {
  display: none;
}

/* team members */
.eatontown-team {
  margin-top: 40px;
}
.eatontown-team:not(:has(.eatontown-team-member)) {
  display: none;
}
.eatontown-team-title {
  font-family: var(--eatontown-font-body);
  font-weight: 700;
  font-size: 20px;
  color: var(--eatontown-navy);
  margin-bottom: 16px;
}
.eatontown-team-title:empty {
  display: none;
}
.eatontown-team-member {
  background-color: #f4f7fa;
  border: 1px solid var(--eatontown-border-blue-2);
  border-radius: 10px;
  padding: 16px 20px;
  margin-bottom: 12px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  font-family: var(--eatontown-font-body);
}
.eatontown-team-member-info {
  display: flex;
  align-items: center;
  gap: 14px;
}
.eatontown-team-member-photo {
  border-radius: 50%;
  object-fit: cover;
}
.eatontown-team-member-name {
  font-weight: 700;
  font-size: 16px;
  color: var(--eatontown-navy);
}
.eatontown-team-member-role {
  font-size: 14px;
  color: #4a5a6b;
}
.eatontown-team-member-meta {
  display: flex;
  align-items: center;
  gap: 16px;
}
.eatontown-team-member-hours {
  font-size: 13px;
  color: #4a5a6b;
}
.eatontown-team-member-days {
  font-weight: 600;
  color: #111827;
}
.eatontown-team-member-actions {
  display: flex;
  gap: 8px;
}
.eatontown-team-member-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 8px;
  background-color: var(--eatontown-navy);
  color: #ffffff;
  text-decoration: none;
}
.eatontown-team-member-action:hover,
.eatontown-team-member-action:focus {
  background-color: var(--eatontown-blue-link);
  color: #ffffff;
}

/* ---- Archive grids (news, departments) ---- */
.eatontown-archive-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
.eatontown-archive-item {
  display: flex;
}
.eatontown-archive-card {
  background-color: #ffffff;
  border: 1px solid var(--eatontown-border-blue-2);
  border-radius: 10px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  width: 100%;
  overflow: hidden;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}
.eatontown-archive-card:hover,
.eatontown-archive-card:focus-within {
  border-color: var(--eatontown-navy);
}
.eatontown-archive-card .eatontown-news-card-link {
  display: block;
  text-decoration: none;
  height: 100%;
}
.eatontown-archive-card .eatontown-news-card-img {
  height: 172px;
  background-size: cover;
  background-position: center;
  background-color: var(--eatontown-ice-3);
}
.eatontown-archive-card .eatontown-news-card-body {
  padding: 18px 20px 20px;
}
.eatontown-archive-date {
  display: block;
  font-family: var(--eatontown-font-body);
  font-size: 13px;
  line-height: 1.5;
  color: #4a5a6b;
  margin-bottom: 6px;
}
.eatontown-archive-card .eatontown-news-card-title {
  font-family: var(--eatontown-font-heading);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.2;
  color: var(--eatontown-navy);
  margin: 0 0 8px 0;
}
.eatontown-archive-card .eatontown-news-card-link:hover .eatontown-news-card-title,
.eatontown-archive-card .eatontown-news-card-link:focus .eatontown-news-card-title {
  text-decoration: underline;
}
.eatontown-archive-card .eatontown-news-card-excerpt {
  font-family: var(--eatontown-font-body);
  font-size: 14px;
  line-height: 1.6;
  color: #2e3d50;
}

/* ---- Pagination ---- */
.eatontown-pagination {
  margin-top: 32px;
}
.eatontown-pagination .pagination {
  justify-content: center;
  gap: 6px;
}
.eatontown-pagination .page-link {
  color: var(--eatontown-navy);
  border: 1px solid var(--eatontown-border-blue-2);
  border-radius: 8px;
  font-family: var(--eatontown-font-body);
  font-weight: 600;
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.eatontown-pagination .page-item.active .page-link {
  background: var(--eatontown-gold-grad);
  border-color: transparent;
  color: var(--eatontown-text);
}
.eatontown-pagination .page-link:hover,
.eatontown-pagination .page-link:focus {
  background-color: var(--eatontown-ice-3);
  border-color: var(--eatontown-navy);
  color: var(--eatontown-navy);
}
.eatontown-pagination .page-item.disabled .page-link {
  color: #4a5a6b;
  background-color: #ffffff;
}

/* ---- FAQ archive (theme-2025 structure: search + category chips + cards/accordions, JSON driven) ---- */
.eatontown-faqs-tools {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 28px;
}
.faqs-archive-section .faq-search-wrapper {
  flex: 0 0 auto;
  width: 100%;
  max-width: 400px;
}
.faqs-archive-section .faq-search-wrapper input {
  width: 100%;
  height: var(--eatontown-input-height);
  padding: 0 16px;
  border: 2px solid var(--eatontown-border-blue-2);
  border-radius: var(--eatontown-input-radius);
  background-color: #ffffff;
  font-family: var(--eatontown-font-body);
  font-size: 15px;
  color: var(--eatontown-text);
  box-shadow: none;
}
.faqs-archive-section .faq-search-wrapper input:focus {
  border-color: var(--eatontown-navy);
  outline: 2px solid var(--eatontown-navy);
  outline-offset: 2px;
  box-shadow: none;
}
.faqs-archive-section .category-filters-wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.faqs-archive-section .category-filters-title {
  font-family: var(--eatontown-font-body);
  font-weight: 600;
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eatontown-navy);
  margin-right: 8px;
}
.faqs-archive-section .category-filter {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 6px 16px;
  border: 1px solid var(--eatontown-navy);
  border-radius: 999px;
  background-color: #ffffff;
  font-family: var(--eatontown-font-body);
  font-weight: 500;
  font-size: 14px;
  line-height: 1.3;
  color: var(--eatontown-navy);
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.faqs-archive-section .category-filter:hover,
.faqs-archive-section .category-filter:focus-visible {
  background-color: var(--eatontown-ice-3);
  color: var(--eatontown-navy);
}
.faqs-archive-section .category-filter:focus-visible {
  outline: 2px solid var(--eatontown-navy);
  outline-offset: 2px;
}
.faqs-archive-section .category-filter.active {
  background: var(--eatontown-gold-grad);
  border-color: transparent;
  color: var(--eatontown-text);
}
.faqs-archive-section .category-filters-wrapper-mobile {
  display: none;
  gap: 8px;
  flex-direction: column;
  font-family: var(--eatontown-font-body);
  font-weight: 600;
  font-size: 14px;
  color: var(--eatontown-navy);
}
.faqs-archive-section .categories-select-list {
  width: 100%;
  height: var(--eatontown-input-height);
  padding: 0 16px;
  border: 2px solid var(--eatontown-border-blue-2);
  border-radius: var(--eatontown-input-radius);
  background-color: #ffffff;
  font-family: var(--eatontown-font-body);
  font-weight: 400;
  font-size: 15px;
  color: var(--eatontown-text);
}
/* Cards (default.php): Bootstrap row in static mode, JS masonry (absolute cards) in JSON mode */
.faqs-archive-section .faq-cards-masonry {
  position: relative;
  width: 100%;
}
.faqs-archive-section .faq-cards-masonry[class*="masonry-columns-"] .faq-card {
  position: absolute;
  top: 0;
  left: 0;
  height: auto;
}
.faqs-archive-section .faq-card {
  height: 100%;
  padding: 20px 24px 24px;
  background-color: #ffffff;
  border: 1px solid var(--eatontown-border-blue-2);
  border-radius: 10px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  transition: border-color 0.2s ease;
}
.faqs-archive-section .faq-card:hover,
.faqs-archive-section .faq-card:focus-within {
  border-color: var(--eatontown-navy);
}
.faqs-archive-section .faq-card-title {
  font-family: var(--eatontown-font-heading);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.2;
  color: var(--eatontown-navy);
  margin: 0 0 10px;
}
.faqs-archive-section .faq-card-title a {
  color: inherit;
  text-decoration: none;
}
.faqs-archive-section .faq-card-title a:hover,
.faqs-archive-section .faq-card-title a:focus {
  text-decoration: underline;
}
.faqs-archive-section .faq-card-content {
  font-family: var(--eatontown-font-body);
  font-size: 14px;
  line-height: 1.6;
  color: #2e3d50;
}
.faqs-archive-section .faq-card-content p {
  font-size: inherit;
  line-height: inherit;
  margin: 0 0 8px;
}
.faqs-archive-section .faq-card-content p:last-child {
  margin-bottom: 0;
}
.faqs-archive-section .faq-read-more,
.faqs-archive-section .faq-card-content a {
  color: var(--eatontown-blue-link);
  font-weight: 600;
  text-decoration: underline;
}
.faqs-archive-section .faq-read-more {
  display: inline-block;
  margin-top: 10px;
}
/* Accordions (accordions.php): same look as the homepage FAQ section */
.faqs-archive-section .faq-items-wrapper:not(.faq-cards-masonry),
.faqs-archive-section .faq-items-wrapper .category-faqs {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.faqs-archive-section .faq-items-wrapper .faq-row {
  row-gap: 8px;
}
.faqs-archive-section .category-title {
  font-family: var(--eatontown-font-heading);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.2;
  color: var(--eatontown-navy);
  margin: 24px 0 8px;
}
.faqs-archive-section .category-title:first-child {
  margin-top: 0;
}
.faqs-archive-section .faq-item {
  background: rgba(255, 255, 255, 0.7);
  border: 1.6px solid var(--eatontown-border-grey);
  border-radius: 10px;
  overflow: hidden;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.faqs-archive-section .faq-item:has(.faq-item-heading:not(.collapsed)) {
  background: #ffffff;
  border: 2px solid var(--eatontown-gold-border-55);
  box-shadow: var(--eatontown-shadow-card);
}
.faqs-archive-section .faq-item-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 24px;
  cursor: pointer;
  text-decoration: none;
}
.faqs-archive-section .faq-item-heading:focus-visible {
  outline: 2px solid var(--eatontown-navy);
  outline-offset: -4px;
  border-radius: 8px;
}
.faqs-archive-section .faq-item-title {
  flex: 1;
  font-family: var(--eatontown-font-body);
  font-weight: 700;
  font-size: 17px;
  line-height: 1.4;
  color: var(--eatontown-navy);
}
.faqs-archive-section .faq-item-heading:not(.collapsed) .faq-item-title {
  color: var(--eatontown-blue-link);
}
.faqs-archive-section .faq-item-heading .icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid var(--eatontown-gold-border-60);
  font-size: 14px;
  color: var(--eatontown-gold);
  transition: transform 0.25s ease, background-color 0.2s ease, border-color 0.2s ease;
}
.faqs-archive-section .faq-item-heading:not(.collapsed) .icon {
  background-color: var(--eatontown-gold-dark);
  border-color: var(--eatontown-gold-dark);
  color: #ffffff;
  transform: rotate(180deg);
}
.faqs-archive-section .faq-item-content {
  padding: 0 24px 24px;
  font-family: var(--eatontown-font-body);
  font-size: 15px;
  line-height: 1.75;
  color: #000000;
}
.faqs-archive-section .faq-item-content::before {
  content: "";
  display: block;
  height: 1px;
  background-color: var(--eatontown-gold-divider-25);
  margin-bottom: 16px;
}
.faqs-archive-section .faq-item-content p {
  font-size: inherit;
  line-height: inherit;
  margin: 0 0 8px;
}
.faqs-archive-section .faq-item-content p:last-child {
  margin-bottom: 0;
}
/* Loader, view more, JSON pagination */
.eatontown-faqs-loader {
  text-align: center;
  margin: 24px 0;
  color: var(--eatontown-navy);
}
.eatontown-faqs-more {
  display: flex;
  justify-content: center;
  margin-top: 24px;
}
.eatontown-faqs-more .view-more-button {
  min-width: 200px;
  justify-content: center;
}
.faqs-archive-section .category-view-more {
  align-self: center;
  margin-top: 8px;
}
.faqs-archive-section .fa-spin-custom {
  animation: eatontown-spin 1s infinite linear;
}
@keyframes eatontown-spin {
  to { transform: rotate(360deg); }
}
.faqs-archive-section .eatontown-pagination:not(:has(li)) {
  display: none;
}
@media (min-width: 768px) {
  .eatontown-faqs-tools {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .faqs-archive-section .faq-search-wrapper {
    width: 320px;
    order: 2;
  }
  .faqs-archive-section .filters-section {
    order: 1;
    flex: 1 1 300px;
  }
}
@media (max-width: 767.98px) {
  .faqs-archive-section .category-filters-wrapper {
    display: none;
  }
  .faqs-archive-section .category-filters-wrapper-mobile {
    display: flex;
  }
}

/* ---- News single ---- */
.eatontown-news-date {
  font-family: var(--eatontown-font-body);
  font-size: 14px;
  line-height: 1.5;
  color: #4a5a6b;
  margin-bottom: 16px;
}
.eatontown-news-featured-img {
  margin-bottom: 24px;
}
.eatontown-news-featured-img img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
}
.eatontown-news-sidebar {
  font-family: var(--eatontown-font-body);
}

/* ---- Meetings (agendas & minutes) page ---- */
.eatontown-meetings-search-title {
  font-size: 20px;
  margin-bottom: 16px;
}
.eatontown-meetings-search {
  background-color: #f4f7fa;
  border: 1px solid var(--eatontown-border-blue-2);
  border-radius: 10px;
  padding: 24px;
  margin-bottom: 32px;
  max-width: 720px;
}
.eatontown-meetings-search .control-label {
  font-weight: 600;
  color: #111827;
}
.eatontown-meetings-search .form-control {
  border: 1px solid var(--eatontown-border-blue-4);
  border-radius: 8px;
  min-height: 46px;
}
.eatontown-meetings-search .form-control:focus {
  border-color: var(--eatontown-navy);
  box-shadow: 0 0 0 2px rgba(11, 30, 61, 0.2);
}

/* ---- Search results page ---- */
.eatontown-search-result {
  background-color: #ffffff;
  border: 1px solid var(--eatontown-border-blue-2);
  border-radius: 10px;
  padding: 20px;
  height: 100%;
}
.eatontown-search-result h2 {
  font-family: var(--eatontown-font-body);
  font-weight: 700;
  font-size: 17px;
  line-height: 1.4;
  margin-bottom: 8px;
}
.eatontown-search-result h2 a {
  color: var(--eatontown-navy);
  text-decoration: underline;
}
.eatontown-search-result h2 a:hover,
.eatontown-search-result h2 a:focus {
  color: var(--eatontown-blue-link);
}
.eatontown-search-result-excerpt {
  font-family: var(--eatontown-font-body);
  font-size: 14px;
  line-height: 1.6;
  color: #2e3d50;
}
.eatontown-search-no-results {
  font-family: var(--eatontown-font-body);
  font-size: 20px;
  color: var(--eatontown-navy);
  text-align: center;
  padding: 40px 0;
}

/* ---- 404 page ---- */
.eatontown-404-content {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
  font-family: var(--eatontown-font-body);
  font-size: 16px;
  line-height: 1.7;
  color: #2e3d50;
}
.eatontown-404-code {
  font-family: var(--eatontown-font-heading);
  font-weight: 400;
  font-size: 96px;
  line-height: 1;
  color: var(--eatontown-navy);
  margin-bottom: 16px;
}
.eatontown-404-lead {
  font-size: 20px;
  line-height: 1.5;
  color: var(--eatontown-navy);
}
.eatontown-404-suggestions {
  display: inline-block;
  text-align: left;
  margin-bottom: 24px;
}
.eatontown-404-actions {
  margin-bottom: 32px;
}
.eatontown-404-footnote {
  color: #4a5a6b;
  font-size: 15px;
}

/* ---- Inner pages responsive (desktop values from Figma) ---- */
@media (min-width: 768px) {
  .eatontown-archive-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
  .eatontown-dept-quick-menu {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
  }
}
@media (min-width: 992px) {
  .eatontown-page-band {
    min-height: 279px;
    align-items: center;
  }
  .eatontown-page-band-inner {
    padding-top: 56px;
    padding-bottom: 56px;
  }
  .eatontown-breadcrumb ol {
    font-size: 16px;
  }
  .eatontown-page-title {
    font-size: 48px;
    line-height: 1.4;
  }
  .eatontown-page-body {
    padding-top: 38px;
    padding-bottom: 72px;
  }
  .eatontown-archive-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
  }
  .eatontown-sidebar-layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 41px;
    align-items: start;
  }
  .eatontown-sidebar-col:empty {
    display: block;
  }
  .eatontown-dept-layout {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr) 248px;
    column-gap: 41px;
    align-items: start;
  }
  .eatontown-dept-menu-col {
    order: 1;
  }
  .eatontown-dept-main {
    order: 2;
  }
  .eatontown-dept-aside {
    order: 3;
  }
  .eatontown-dept-menu-col:empty {
    display: block;
  }
  .eatontown-contact-card {
    border: 1px solid var(--eatontown-border-blue-2);
    border-radius: 10px;
  }
  .eatontown-contact-card-header {
    font-size: 24px;
    line-height: 1;
    padding: 24px 20px 16px;
  }
  .eatontown-contact-card-body {
    padding: 20px;
    gap: 16px;
  }
  .eatontown-contact-item {
    gap: 4px;
  }
  .eatontown-page-content h2 {
    font-size: 20px;
  }
}
/* ============ END EATONTOWN INNER PAGES ============ */

/* ============================================================================
   EATONTOWN: REDUCED MOTION (WCAG technique C39 / SC 2.3.3 Animation from Interactions)
   Theme fundamental: ALL non-essential motion (hover lifts, transitions,
   keyframe animations, carousel slides, smooth scroll) is disabled when the OS
   "reduce motion" preference is on. State changes become instant or fade-only;
   no content or functionality depends on motion. Per-block guards elsewhere in
   this file are kept for clarity, this block is the safety net for everything.
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    transition-delay: 0ms !important;
    scroll-behavior: auto !important;
  }
  /* Hover/focus movement -> none (state still communicated by color/underline) */
  #eatontownQuickLinks .quick-links-menu .nav-link:hover,
  #eatontownQuickLinks .quick-links-menu .nav-link:focus-visible,
  .eatontown-btn:hover,
  .eatontown-btn:focus-visible,
  .eatontown-archive-card:hover,
  .eatontown-dept-quick-menu .nav-link:hover {
    transform: none !important;
  }
  /* FAQ toggle: the plus→X rotation is decorative; the filled colour already signals "open" */
  .eatontown-faq-item.is-open .eatontown-faq-icon {
    transform: none !important;
  }
  /* Drawer chevron flip and mega/dropdown fades: instant */
  #menuPrimary .navbar-nav .dropdown-toggle::after,
  #menuPrimary .dropdown-menu,
  #primaryMenuOffcanvas {
    transition: none !important;
  }
  /* Owl carousel: no slide animation, jump between items */
  .owl-carousel .owl-stage {
    transition: none !important;
  }
  .owl-carousel .owl-animated-in,
  .owl-carousel .owl-animated-out {
    animation: none !important;
  }
  /* Ticker: JS pauses it by default; ensure no CSS marquee movement either */
  .marquee {
    animation: none !important;
  }
}
