@charset "UTF-8";
/*
Theme Name: Town Hall
Theme URI: https://town-hall.cmsmasters.net/
Author: cmsmasters
Author URI: https://cmsmasters.net/
Description: Town Hall – City Government & Municipal Portal WordPress Theme is a modern and functional solution for city administrations, local governments, public offices, and municipal services. The theme includes custom post types for Profiles, Services, and Departments, making it easy to present government teams, public programs, and city structures. With Events Calendar integration for managing community events and full WooCommerce compatibility, Town Hall provides all the tools needed to build a professional, informative, and citizen-friendly municipal website.
Version: 1.0.1
Tested up to: 6.6
Requires PHP: 7.4
License:
License URI:
Text Domain: town-hall
Domain Path: /theme-config/languages
Copyright: cmsmasters 2024 / All Rights Reserved
Tags: one-column, two-columns, three-columns, four-columns, left-sidebar, right-sidebar, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-image-header, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready
*/

/* GENERAL */

/* Global keyboard focus visibility */
*:focus-visible {
  outline: 3px solid #00853e !important;
  outline-offset: 3px !important;
}

body.cmsmasters-user-is-tabbing a:focus-visible,
body.cmsmasters-user-is-tabbing button:focus-visible,
body.cmsmasters-user-is-tabbing input:focus-visible,
body.cmsmasters-user-is-tabbing select:focus-visible,
body.cmsmasters-user-is-tabbing textarea:focus-visible {
  outline: 3px solid #00853e !important;
  outline-offset: 3px !important;
}

/* Keep screen-reader utility accessible */
.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.screen-reader-text:focus,
.screen-reader-text:active {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

.elementor-widget-cmsmasters-nav-menu__main.cmsmasters-layout-horizontal > ul > li > a.elementor-widget-cmsmasters-nav-menu__item-active span.elementor-widget-cmsmasters-nav-menu__item-text{
  text-decoration: underline;
  text-underline-offset: 16px;
  text-decoration-color: #00853E;
  text-decoration-thickness: 3px;
}

.elementor-widget-cmsmasters-nav-menu__main.cmsmasters-layout-horizontal > ul > li.current-menu-ancestor > a .elementor-widget-cmsmasters-nav-menu__item-text{
  color:#FFF!important;
  text-decoration: underline;
  text-underline-offset: 16px;
  text-decoration-color: #00853E;
  text-decoration-thickness: 3px;
}



/* HOMEPAGE */

.elementor-heading-title span{
  background: var(--Gradient-2, linear-gradient(99deg, #2FA3B5 -11.56%, #004A63 29.73%, #002C3A 70.23%));
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.cmsmasters-widget-title.cmsmasters-color-variation-gradient.cmsmasters-color-gradient-linear span.title-inner-element{
  background: var(--Gradient-2, linear-gradient(99deg, #2FA3B5 -11.56%, #004A63 29.73%, #002C3A 70.23%))!important;
  background-clip: text!important;
  -webkit-background-clip: text!important;
  -webkit-text-fill-color: transparent!important;
}

.cmsmasters-widget-title.cmsmasters-color-variation-gradient.cmsmasters-color-gradient-linear.text-yellow-gradient span.title-inner-element {
  background: var(--Gradient-3, linear-gradient(144deg, #FFFCE3 -25.23%, #DEEDA9 34.96%, #C6EB94 92.87%))!important;
  background-clip: text!important;
  -webkit-background-clip: text!important;
  -webkit-text-fill-color: transparent!important;
}

h2 {
  background: var(--Gradient-2, linear-gradient(99deg, #2FA3B5 -11.56%, #004A63 29.73%, #002C3A 70.23%));
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

p{
  color: var(--Text, #004A63);
/* Desktop/other/Body Text */
font-family: Urbanist;
font-size: 24px;
font-style: normal;
font-weight: 400;
line-height: 36px; /* 155.556% */
}

.get-in-touch-card h3{
  color:#004A63;
  font-size: 32px;
  font-weight: 500;
  line-height: 40px;
  letter-spacing: -1px;
}

.get-in-touch-card h4 {
    color: #004A63;
    font-size: 24px;
    font-style: normal;
    font-weight: 500;
    line-height: 32px;
    margin-top: 8px;
    margin-bottom: 12px;
}

.git-phone , .git-email {
    color: #8DC73F !important;
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 28px;
    font-family: Urbanist;
    margin-bottom:12px;
    width:100%;
    display: flex;
    align-items: center;
    gap:8px;
}

.git-phone a , .git-email a {
    color: #8DC73F !important;
}

.git-phone a:hover , .git-email a:hover {
    color: #F6D677 !important;
}


.git-phone:before{
  content:" ";
  width: 16px;
  height: 16px;
  display: flex;
  background-image:url(./assets/icons/phone-icon.svg);
  background-size: contain;
  background-position: center;
}

.git-email:before{
  content:" ";
  width: 16px;
  height: 16px;
  display: flex;
  background-image:url(./assets/icons/email-icon.svg);
  background-size: contain;
  background-position: center;
}



/* INTERNAL PAGES */

.dark-bg{
    background: linear-gradient(302deg, #2FA3B5 -23.23%, #004A63 37.42%, #002C3A 96.91%);
}

.dark-bg h2 {
  background: #FFF;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.dark-bg p{color:#FFF;}

.cmsmasters-widget-title__heading,
.cmsmasters-widget-title__heading a{
  background: #002734!important;
  background-clip: text!important;
  -webkit-background-clip: text!important;
  -webkit-text-fill-color: transparent!important;
}

.elementor-button{
  background: #00853E!important;
  font-family: Urbanist;
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 20px; 
  letter-spacing: 1px;
  text-transform: uppercase;
}

button.forminator-button.forminator-button-submit:after, button.forminator-button.forminator-button-submit:before{
  background: #00853E!important;
}

.dark-bg .elementor-button{
  background:transparent!important;
  color:#FFF!important;
  border:1px solid #FFF!important;
  font-family: Urbanist;
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 20px; 
  letter-spacing: 1px;
  text-transform: uppercase;
}

.elementor-widget-cmsmasters-toggles__item{
  border-color:rgba(222, 222, 222, 0.2)!important;
}

.swiper-pagination-progressbar{
  position: relative!important;
  top:24px;
}

.cmsmasters-blog--type-default .cmsmasters-blog__post-thumbnail{
  position: relative;
}

.cmsmasters-blog-grid .cmsmasters-blog__post-title {
    position: absolute;
    top: 40px;
    left: 40px;
    color: #FFF;
    z-index: 2;
}

.cmsmasters-blog-grid .cmsmasters-blog__post_footer {
    position: absolute;
    bottom: 60px;
    left: 40px;
    z-index:2;
}

.cmsmasters-blog-grid .cmsmasters-theme-button:before {
    background: transparent;
    border: 1px solid;
}

.cmsmasters-blog--type-default .cmsmasters-blog__post-thumbnail a:after {
    content: " ";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 400px;
    background:rgba(0, 0, 0, 0.30);
    display: flex;
    z-index: 1;
}


/* PROYECTS */

.projects-template .cmsmasters-sidebar {
    display: none;
}


/* FOOTER */

.footer-logos .e-con-inner {
    display: flex;
    align-items: center !important;
    justify-content: center;
    flex-wrap: nowrap!important;
    gap: 10px!important;
    padding: 24px 4px;
}

.footer-logos img {
    max-width: 280px;
}

#policyFooter{
  border-top: 1px solid!important;
  border-image: linear-gradient(90deg, #0D3C4C, #154859, #F0531C) 1 !important;
}

#policyFooter a, #policyFooter p {
    opacity: 0.7;
}


/* HEADER FIX SMALL SCREENS */

@media (max-width:1580px) {
  .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-layout-horizontal > ul > li > a{
    padding:0 8px!important;
  }

  .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-layout-horizontal > ul > li > a{
    font-size:15px!important;
  }
}

@media (max-width:1400px) {
  .header-container{flex-wrap: wrap!important; gap:0!important;}


  .header-container .elementor-widget-container{
    padding:24px!important;
  }

  .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-layout-horizontal > ul > li > a{
    font-size:14px!important;
  }

}

@media (max-width:1024px){
  .header-container{flex-wrap: nowrap!important;}
}

/* =========================================================
   RESPONSIVE TYPOGRAPHY SYSTEM - URBANIST
   Ideal for WordPress / Elementor / Gutenberg / Bricks
   ========================================================= */

/* -----------------------------
   ROOT VARIABLES
------------------------------ */
:root {
  --body-font: 'Urbanist', sans-serif;
  --heading-font: 'Urbanist', sans-serif;
  --text-color: #004A63;
  --link-color: #8DC73F;
  --link-hover-color: #F6D677;
}

/* Force Urbanist on text elements */
body,
p,
ul,
ol,
li,
a,
span,
strong,
em,
small,
label,
input,
textarea,
select,
button {
  font-family: 'Urbanist', sans-serif !important;
}

/* Force Urbanist on headings too */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'Urbanist', sans-serif !important;
}

/* -----------------------------
   BASE HTML + BODY
------------------------------ */
html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 1.75;
  font-weight: 400;
  word-spacing: 0px;
  letter-spacing: 0px;
  overflow-wrap: break-word;
  margin: 0;
  padding: 0;
}

/* -----------------------------
   HEADINGS
------------------------------ */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--heading-font);
  font-weight: 700;
  word-spacing: 0px;
  text-wrap: balance;
}

h1 {
  font-size: 54px;
  line-height: 1.15;
  letter-spacing: -0.8px;
}

h2 {
  font-size: 40px;
  line-height: 1.2;
  letter-spacing: -0.5px;
}

h3 {
  font-size: 30px;
  line-height: 1.25;
  letter-spacing: -0.3px;
}

h4 {
  font-size: 24px;
  line-height: 1.3;
  letter-spacing: -0.2px;
}

h5 {
  font-size: 20px;
  line-height: 1.35;
}

h6 {
  font-size: 18px;
  line-height: 1.4;
}

/* -----------------------------
   PARAGRAPHS
------------------------------ */
p {
  font-size: 18px;
  line-height: 1.75;
  word-spacing: 0px;
  letter-spacing: 0px;
  text-align: justify;
  text-justify: inter-word;
}

/* -----------------------------
   LISTS
------------------------------ */
ul,
ol {
  font-size: 18px;
  line-height: 1.75;
}

li {
  font-size: 18px;
  word-spacing: 0px;
  letter-spacing: 0px;
}

/* Nested lists */
/* ul ul,
ol ol,
ul ol,
ol ul {
  margin-top: 8px;
  margin-bottom: 8px;
} */

/* -----------------------------
   LINKS
------------------------------ */
a {
  color: var(--link-color);
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
  transition: all 0.3s ease;
  word-spacing: 0px;
}

a:hover,
a:focus {
  color: var(--link-hover-color);
  text-decoration: none;
}

/* -----------------------------
   INLINE TEXT ELEMENTS
------------------------------ */


p:last-child {
  margin-bottom: 0;
}

/* -----------------------------
   BLOCKQUOTE
------------------------------ */


/* -----------------------------
   FORMS
------------------------------ */
/* input,
textarea,
select,
button {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 1.5;
}

label {
  font-size: 16px;
  line-height: 1.5;
  font-weight: 600;
  display: inline-block;
  margin-bottom: 6px;
} */

/* -----------------------------
   SPACING FOR CONTENT AREAS
------------------------------ */
.entry-content > *:last-child,
.elementor-widget-container > *:last-child,
.wp-block-group > *:last-child {
  margin-bottom: 0;
}

/* -----------------------------
   LARGE DESKTOP (1440px and up)
------------------------------ */
@media (min-width: 1440px) {
  body,
  p,
  ul,
  ol,a, ol>li,  ul>li {
    font-size: 20px;
    line-height: 1.75;
  }

  h1 {
    font-size: 60px;
    line-height: 1.1;
  }

  h2 {
    font-size: 46px;
    line-height: 1.15;
  }

  h3 {
    font-size: 34px;
    line-height: 1.2;
  }

  h4 {
    font-size: 26px;
  }

  h5 {
    font-size: 22px;
  }

  h6 {
    font-size: 19px;
  }
}

/* -----------------------------
   DESKTOP / LAPTOP (1025px to 1439px)
------------------------------ */
@media (max-width: 1439px) {
  body,
  p,
  ul,
  ol {
    font-size: 18px;
  }

  h1 {
    font-size: 54px;
  }

  h2 {
    font-size: 40px;
  }

  h3 {
    font-size: 30px;
  }

  h4 {
    font-size: 24px;
  }

  h5 {
    font-size: 20px;
  }

  h6 {
    font-size: 18px;
  }
}

/* -----------------------------
   TABLET LANDSCAPE / SMALL LAPTOP (992px to 1024px)
------------------------------ */
@media (max-width: 1024px) {
  body,
  p,
  ul,
  ol {
    font-size: 17px;
    line-height: 1.75;
  }

  h1 {
    font-size: 44px;
    line-height: 1.15;
  }

  h2 {
    font-size: 34px;
    line-height: 1.2;
  }

  h3 {
    font-size: 27px;
    line-height: 1.25;
  }

  h4 {
    font-size: 22px;
    line-height: 1.3;
  }

  h5 {
    font-size: 19px;
    line-height: 1.35;
  }

  h6 {
    font-size: 17px;
    line-height: 1.4;
  }
}

/* -----------------------------
   TABLET PORTRAIT (768px to 991px)
------------------------------ */
@media (max-width: 991px) {
  body,
  p,
  ul,
  ol {
    font-size: 17px;
    line-height: 1.8;
  }

  h1 {
    font-size: 40px;
    line-height: 1.15;
  }

  h2 {
    font-size: 31px;
    line-height: 1.2;
  }

  h3 {
    font-size: 25px;
    line-height: 1.25;
  }

  h4 {
    font-size: 21px;
    line-height: 1.3;
  }

  h5 {
    font-size: 18px;
  }

  h6 {
    font-size: 16px;
  }
}

/* -----------------------------
   MOBILE LARGE (576px to 767px)
------------------------------ */
@media (max-width: 767px) {
  body,
  p,
  ul,
  ol {
    font-size: 16px;
    line-height: 1.8;
  }

  h1 {
    font-size: 42px !important;
    line-height: 50.4px !important;
    letter-spacing: 1px !important;
  }

  h2 {
    font-size: 28px;
    line-height: 1.25;
  }

  h3 {
    font-size: 22px;
    line-height: 1.3;
  }

  h4 {
    font-size: 20px;
    line-height: 1.35;
  }

  h5 {
    font-size: 18px;
    line-height: 1.4;
  }

  h6 {
    font-size: 16px;
    line-height: 1.45;
  }
}

/* -----------------------------
   SMALL MOBILE (up to 575px)
------------------------------ */
@media (max-width: 575px) {
  body,
  p,
  ul,
  ol {
    font-size: 16px;
    line-height: 1.85;
  }

  h1 {
    font-size: 30px;
    line-height: 1.2;
  }

  h2 {
    font-size: 25px;
    line-height: 1.25;
  }

  h3 {
    font-size: 21px;
    line-height: 1.3;
  }

  h4 {
    font-size: 19px;
    line-height: 1.35;
  }

  h5 {
    font-size: 17px;
    line-height: 1.4;
  }

  h6 {
    font-size: 15px;
    line-height: 1.45;
  }
}


@media (min-width: 900px) and (max-width: 1200px) {
  #flagTableAbout{
    padding-bottom: 40px !important;
  }

  .localDevText{
    min-height: 300px !important;
  }

  #cmsmasters_body > header > div > div.elementor-element.elementor-element-832fe01.e-con-full.e-flex.cmsmasters-block-default.e-con.e-child > div > div > nav.elementor-nav-menu--dropdown.elementor-nav-menu__container{
    top:62px !important;
  }
}






#contactGB {
  --cmsmasters-button-normal-colors-bg: #00853E !important;
  --cmsmasters-button-hover-colors-bg: #f6d677 !important;
  color: #002734 !important;
}

#contactGB .elementor-button {
  background-color: #00853E !important;
  color: #002734 !important;
}

#contactGB .elementor-button::before,
#contactGB .elementor-button::after {
  background-color: #00853E !important;
}

#contactGB .elementor-button:hover {
  background-color: #f6d677 !important;
  color: #002734 !important;
}

#contactGB .elementor-button:hover::before,
#contactGB .elementor-button:hover::after {
  background-color: #f6d677 !important;
  color: #002734 !important;
}



.footer-policy-links {
  width: 100%;
  text-align: right;
}

.matrixTitle > .elementor-widget-container > p, .footer-policy-links a{
  font-family: Nunito;
font-weight: 400;
font-style: Regular;
font-size: 16px;
line-height: 26px;
letter-spacing: 0%;
color: #E3F2D0;
opacity: 0.6;
}

.footer-policy-links a {
  text-decoration: none;
  display: inline-block;
  margin-left: 15px;
}

.footer-policy-links a:first-child {
  margin-left: 0;
}

@media (max-width: 1280px) {
  .footer-policy-links {
    text-align: center;
  }

  .footer-policy-links a {
    display: block;
    margin: 20px 0;
  }

  #cmsmasters_body > header > div > div.elementor-element.elementor-element-832fe01.e-con-full.e-flex.cmsmasters-block-default.e-con.e-child > div > div > div > i.elementor-menu-toggle__icon--close.eicon-close, #cmsmasters_body > header > div > div.elementor-element.elementor-element-832fe01.e-con-full.e-flex.cmsmasters-block-default.e-con.e-child > div > div > div > i.elementor-menu-toggle__icon--open.eicon-menu-bar{
    line-height: inherit;
  }
}

@media (max-width: 767px) {
  #cmsmasters_body > header > div > div.elementor-element.elementor-element-832fe01.e-con-full.e-flex.cmsmasters-block-default.e-con.e-child > div > div > nav.elementor-nav-menu--dropdown.elementor-nav-menu__container{
    top:40px !important;
  }
}

@media (max-width: 900px) {
  .footer-policy-links a {
    margin: 0px 0;
  }
}

/* WCAG 2.5.5 — pagination (Prev / Next / page numbers) */
.cmsmasters-pagination ul a.page-numbers,
.cmsmasters-pagination ul a.post-page-numbers,
.cmsmasters-subpage-nav__items a.page-numbers,
.cmsmasters-subpage-nav__items a.post-page-numbers,
ul.page-numbers a.page-numbers,
.navigation.pagination a.page-numbers {
  min-width: 44px !important;
  min-height: 44px !important;
  height: auto !important;
  line-height: 1.2 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  padding: 0 10px !important;
}

/*
  WCAG 2.5.5 — CMSMasters Elementor Tabs (Resources etc.).
  Accordion/mobile uses <a class="cmsmasters-tab-title" tabindex="-1">; theme padding
  can make the hit target shorter than 44px on narrow viewports.
*/
.cmsmasters-widget-tabs a.cmsmasters-tab-title {
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  min-height: 44px !important;
}

@media (max-width: 767px) {
  .cmsmasters-widget-tabs a.cmsmasters-tab-title {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
}


/*
  WCAG 2.5.5 — Theme search form (404 etc.): .cmsmasters-search-form button uses width:1em (~14px).
*/
.cmsmasters-search-form button.cmsmasters-search-form__button,
.cmsmasters-search-form > button[type="submit"] {
  min-width: 44px !important;
  width: 44px !important;
  box-sizing: border-box !important;
}



.cmsmasters-search-form input[type="search"],
.cmsmasters-search-form input[type="text"] {
  padding-right: calc(44px + 10px + var(--cmsmasters-input-padding-right)) !important;
}

.skip-link.screen-reader-text:focus {
  position: fixed !important;
  left: 0.75rem;
  top: 0.75rem;
  z-index: 999999;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0.75rem 1.25rem !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
  background: #002734;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

@media (max-width: 767px) {
  .cmsmasters-widget-tabs a.cmsmasters-tab-title {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
}


/* Footer policy links — replace 26px-tall hit area */
.footer-policy-links a {
  min-height: 44px;
  padding: 10px 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  box-sizing: border-box;
  margin-left: 15px;
  
}

/* Elementor buttons (including size-sm) */
.elementor-button {
  min-height: 44px;
  padding-top: 12px;
  padding-bottom: 12px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* WordPress comment submit */
input[type="submit"].submit {
  min-height: 44px;
  padding: 10px 20px;
  box-sizing: border-box;
}

/* === Updated minimal contrast CSS (design-preserving) === */

/* Keep original heading/hero look (gradient text) */
h2 {
  background: var(--Gradient-2, linear-gradient(99deg, #2FA3B5 -11.56%, #004A63 29.73%, #002C3A 70.23%));
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.flagFund h3{
  background: var(--Gradient-2, linear-gradient(99deg, #2FA3B5 -11.56%, #004A63 29.73%, #002C3A 70.23%));
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}


/* Slightly darker links for better readability on light backgrounds */
:root {
  --link-color: #005a2a;
  --link-hover-color: #004a63;
}

/* Improve contrast on green buttons without changing brand color */
.elementor-button {
  color: #FFFFFF !important;
}

#contactGB .elementor-button {
  background-color: #00853E !important;
  color: #FFFFFF !important;
}

#contactGB .elementor-button:hover,
#contactGB .elementor-button:focus {
  background-color: #f6d677 !important;
  color: #002734 !important;
}

/* Footer tiny links/text: remove low-opacity washout */
.matrixTitle > .elementor-widget-container > p,
.footer-policy-links a {
  color: #FFFFFF;
  opacity: 1;
}

.elementor-nav-menu a,
.elementor-nav-menu--dropdown .elementor-sub-item,
.elementor-nav-menu--dropdown .elementor-item {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

.elementor-widget-cmsmasters-nav-menu .elementor-nav-menu--dropdown a,
.elementor-widget-cmsmasters-nav-menu .elementor-nav-menu--dropdown .elementor-sub-item {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

.widget_nav_menu .menu a,
.widget_pages .widget_pages_list li a,
.wp-block-page-list a {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

.entry-content ul li > a[href^="#"],
.entry-content ol li > a[href^="#"],
.elementor-widget-text-editor ul li > a[href^="#"],
.elementor-widget-text-editor ol li > a[href^="#"],
.wp-block-list li > a[href^="#"] {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

/* Projects grid — FLAG / taxonomy links (CMSMasters meta widget) */
.cmsmasters-widget-meta-data-inner a.term {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

.sitemapLink li a{
  color: #8DC73F !important;
}

.sitemapLink li a:focus, .sitemapLink li a:hover{
  color: #004A63 !important;
}



@media (min-width: 1200px) {
  .flgNavBar{
  width: -webkit-fill-available !important;
}
}

/* visible keyboard focus */

/* Sitemap lists ([matrix_sitemap] — ul.sitemapLink) — touch targets + link colors */
.sitemapLink {
  list-style-position: outside;
  padding-left: 1.25em;
}

.sitemapLink li {
  margin: 0;
}

/*
 * WCAG 1.4.3: Brand #8DC73F fails on pale green (#E3F2D0) and white. Elementor often sets
 * link color on nested spans — override both a and a span with high specificity + !important.
 */
#cmsmasters_body ul.sitemapLink li a,
#cmsmasters_body ul.sitemapLink li a:visited {
  box-sizing: border-box;
  color: #143312 !important;
  display: block;
  line-height: 1.35;
  min-height: 44px;
  padding: 10px 8px 10px 0;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

#cmsmasters_body ul.sitemapLink li a span {
  color: #143312 !important;
}

#cmsmasters_body ul.sitemapLink li a:hover,
#cmsmasters_body ul.sitemapLink li a:hover span {
  color: #2a4f18 !important;
}

#cmsmasters_body ul.sitemapLink li a:focus,
#cmsmasters_body ul.sitemapLink li a:focus span,
#cmsmasters_body ul.sitemapLink li a:active,
#cmsmasters_body ul.sitemapLink li a:active span {
  color: #004a63 !important;
}

#cmsmasters_body ul.sitemapLink li a:focus-visible {
  outline: 2px solid #004a63;
  outline-offset: 2px;
}

/*
 * Pale green legal / sitemap pages — WCAG 1.4.3 (town_hall_body_class_legal_pale_bg in functions.php).
 * Note: id="cmsmasters_body" is ON <body>, so use #cmsmasters_body.town-hall-legal-pale-bg (not body … #cmsmasters_body).
 * Elementor Theme Builder: content under #main and/or .elementor-location-single.
 */
#cmsmasters_body.town-hall-legal-pale-bg #main a:not([class*="elementor-button"]):not(.wp-block-button__link),
#cmsmasters_body.town-hall-legal-pale-bg #main a:not([class*="elementor-button"]):not(.wp-block-button__link):visited,
#cmsmasters_body.town-hall-legal-pale-bg #main a:not([class*="elementor-button"]) span,
#cmsmasters_body.town-hall-legal-pale-bg .elementor-location-single a:not([class*="elementor-button"]):not(.wp-block-button__link),
#cmsmasters_body.town-hall-legal-pale-bg .elementor-location-single a:not([class*="elementor-button"]):not(.wp-block-button__link):visited,
#cmsmasters_body.town-hall-legal-pale-bg .elementor-location-single a:not([class*="elementor-button"]) span,
#cmsmasters_body.town-hall-legal-pale-bg main.cmsmasters-main .cmsmasters-content a:not([class*="elementor-button"]):not(.wp-block-button__link),
#cmsmasters_body.town-hall-legal-pale-bg main.cmsmasters-main .cmsmasters-content a:not([class*="elementor-button"]):not(.wp-block-button__link):visited,
#cmsmasters_body.town-hall-legal-pale-bg main.cmsmasters-main .cmsmasters-content a:not([class*="elementor-button"]) span {
  color: #143312 !important;
}

#cmsmasters_body.town-hall-legal-pale-bg #main a:not([class*="elementor-button"]):not(.wp-block-button__link):hover,
#cmsmasters_body.town-hall-legal-pale-bg #main a:not([class*="elementor-button"]):hover span,
#cmsmasters_body.town-hall-legal-pale-bg .elementor-location-single a:not([class*="elementor-button"]):not(.wp-block-button__link):hover,
#cmsmasters_body.town-hall-legal-pale-bg .elementor-location-single a:not([class*="elementor-button"]):hover span,
#cmsmasters_body.town-hall-legal-pale-bg main.cmsmasters-main .cmsmasters-content a:not([class*="elementor-button"]):not(.wp-block-button__link):hover,
#cmsmasters_body.town-hall-legal-pale-bg main.cmsmasters-main .cmsmasters-content a:not([class*="elementor-button"]):hover span {
  color: #2a4f18 !important;
}

#cmsmasters_body.town-hall-legal-pale-bg #main a:not([class*="elementor-button"]):not(.wp-block-button__link):focus,
#cmsmasters_body.town-hall-legal-pale-bg #main a:not([class*="elementor-button"]):focus span,
#cmsmasters_body.town-hall-legal-pale-bg #main a:not([class*="elementor-button"]):not(.wp-block-button__link):active,
#cmsmasters_body.town-hall-legal-pale-bg #main a:not([class*="elementor-button"]):active span,
#cmsmasters_body.town-hall-legal-pale-bg .elementor-location-single a:not([class*="elementor-button"]):not(.wp-block-button__link):focus,
#cmsmasters_body.town-hall-legal-pale-bg .elementor-location-single a:not([class*="elementor-button"]):focus span,
#cmsmasters_body.town-hall-legal-pale-bg .elementor-location-single a:not([class*="elementor-button"]):not(.wp-block-button__link):active,
#cmsmasters_body.town-hall-legal-pale-bg .elementor-location-single a:not([class*="elementor-button"]):active span,
#cmsmasters_body.town-hall-legal-pale-bg main.cmsmasters-main .cmsmasters-content a:not([class*="elementor-button"]):not(.wp-block-button__link):focus,
#cmsmasters_body.town-hall-legal-pale-bg main.cmsmasters-main .cmsmasters-content a:not([class*="elementor-button"]):focus span,
#cmsmasters_body.town-hall-legal-pale-bg main.cmsmasters-main .cmsmasters-content a:not([class*="elementor-button"]):not(.wp-block-button__link):active,
#cmsmasters_body.town-hall-legal-pale-bg main.cmsmasters-main .cmsmasters-content a:not([class*="elementor-button"]):active span {
  color: #004a63 !important;
}

#cmsmasters_body.town-hall-legal-pale-bg #main a:not([class*="elementor-button"]):not(.wp-block-button__link):focus-visible,
#cmsmasters_body.town-hall-legal-pale-bg .elementor-location-single a:not([class*="elementor-button"]):not(.wp-block-button__link):focus-visible,
#cmsmasters_body.town-hall-legal-pale-bg main.cmsmasters-main .cmsmasters-content a:not([class*="elementor-button"]):not(.wp-block-button__link):focus-visible {
  outline: 2px solid #004a63;
  outline-offset: 2px;
}

/* WCAG 2.5.8 — theme heading breadcrumbs (e.g. Home | Flag North East): target size + spacing */
#cmsmasters_body .cmsmasters-breadcrumbs__wrap a {
  align-items: center;
  box-sizing: border-box;
  display: inline-flex;
  justify-content: center;
  min-height: 24px;
  min-width: 24px;
  padding: 10px 12px;
  vertical-align: middle;
}

#cmsmasters_body .cmsmasters-breadcrumbs__wrap .cmsmasters-breadcrumbs__sep {
  display: inline-block;
  padding: 10px 12px;
  vertical-align: middle;
}

/* Same WCAG 2.5.8 treatment — Elementor “Breadcrumbs” widget (cmsmasters-elementor-addon) */
#cmsmasters_body .cmsmasters-widget-breadcrumbs__content a {
  align-items: center;
  box-sizing: border-box;
  display: inline-flex;
  justify-content: center;
  min-height: 24px;
  min-width: 24px;
  padding: 10px 12px;
  vertical-align: middle;
}

#cmsmasters_body .cmsmasters-widget-breadcrumbs__content .cmsmasters-widget-breadcrumbs__sep {
  display: inline-block;
  padding: 10px 12px;
  vertical-align: middle;
}

#cmsmasters_body .cmsmasters-widget-breadcrumbs__content .rank-math-breadcrumb .separator {
  display: inline-block;
  padding: 10px 8px;
  vertical-align: middle;
}

.town-hall-turnstile-badge__links a{
  font-size: 12px !important;
  text-decoration: none !important;
}

#town-hall-turnstile-corner > span.town-hall-turnstile-badge__text > span.town-hall-turnstile-badge__links > span{
  display: none;
}