/*
Theme Name: Astra Child
Theme URI: https://wpastra.com/
Template: astra
Author: Brainstorm Force
Author URI: https://wpastra.com/about/?utm_source=theme_preview&utm_medium=author_link&utm_campaign=astra_theme
Description: The Astra WordPress theme is lightning-fast and highly customizable. It has over 1 million downloads and the only theme in the world with 6,000+ five-star reviews! It's ideal for professional web designers, solopreneurs, small businesses, eCommerce, membership sites and any type of website. It offers special features and templates so it works perfectly with all page builders like Spectra, Elementor, Beaver Builder, etc. Fast performance, clean code, mobile-first design and schema markup are all built-in, making the theme exceptionally SEO-friendly. It's fully compatible with WooCommerce, SureCart and other eCommerce plugins and comes with lots of store-friendly features and templates. Astra also provides expert support for free users. A dedicated team of fully trained WordPress experts are on hand to help with every aspect of the theme. Try the live demo of Astra: https://zipwp.org/themes/astra/
Tags: custom-menu,custom-logo,entertainment,one-column,two-columns,left-sidebar,e-commerce,right-sidebar,custom-colors,editor-style,featured-images,full-width-template,microformats,post-formats,rtl-language-support,theme-options,threaded-comments,translation-ready,blog
Version: 4.13.0.1776997555
Updated: 2026-04-23 22:25:55
*/

/* ================================================
   MT. BLANCHARD CHILD THEME — GLOBAL STYLES
   ================================================

   TABLE OF CONTENTS
   1. Root & Font Baseline
   2. Global Reset & Box Model
   3. Link Styles
   4. Focus Styles
   5. Button Reset
   6. Image Baseline
   7. Screen Reader Utility
   8. Text Selection Color
   9. Headings & Typography
  10. Astra Override Cleanup
  11. Reduced Motion
  12. High Contrast Mode
  13. Print Styles
  14. WP Accessibility Font Size
  15. WPForms Styling
  16. Chosen.js Dropdown Styling

   ================================================ */


/* ------------------------------------------------
   1. ROOT & FONT BASELINE
   ------------------------------------------------ */

@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;500;600;700&display=swap');

html {
  font-size: 118%;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  font-family: 'Lato', sans-serif;
  color: #1a2a1a;
  background: #F5F5F0;
  margin: 0;
  padding: 0;
  line-height: 1.8;
}


/* ------------------------------------------------
   2. GLOBAL RESET & BOX MODEL
   ------------------------------------------------ */

*,
*::before,
*::after {
  box-sizing: border-box;
}

.ast-container,
#content,
.site-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

#masthead,
.site-header,
.main-header-bar,
.ast-primary-header-bar,
.ast-breadcrumbs-wrapper,
.ast-archive-description,
.entry-header.ast-no-thumbnail {
  display: none !important;
}

.ast-page-builder-template .entry-content,
.elementor-page .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

#mtb-nav,
#mtb-mobile-nav ul,
.mtb-quick-links,
.mtb-staff-grid,
.mtb-step-grid {
  list-style: none;
  margin: 0;
  padding: 0;
}


/* ------------------------------------------------
   3. LINK STYLES
   ------------------------------------------------ */

a {
  text-decoration: none;
  color: inherit;
  transition: color 0.2s ease;
}

/* Underline real inline links in body content, but NOT card/nav links */
.mtb-card-body a:not(.mtb-news-card):not(.mtb-btn):not(.mtb-back-link),
.mtb-post-content a:not(.mtb-news-card):not(.mtb-btn):not(.mtb-back-link),
.mtb-notice-box a {
  text-decoration: underline;
  text-underline-offset: 2px;
  color: #4A7A65;
}

.mtb-card-body a:hover,
.mtb-card-body a:focus,
.mtb-post-content a:hover,
.mtb-post-content a:focus,
.mtb-notice-box a:hover,
.mtb-notice-box a:focus {
  color: #C0242E;
}

#mtb-logo,
#mtb-logo *,
#mtb-nav a,
#mtb-mobile-nav a,
#mtb-utility-bar a,
#mtb-footer-main a,
#mtb-footer-bottom a,
.mtb-btn,
.mtb-btn-outline,
.mtb-btn-primary,
.mtb-result-card,
.mtb-archive-post,
.mtb-news-archive-post,
.mtb-form-item,
.mtb-fdoc-item,
.mtb-ql,
.mtb-staff-contact a,
.mtb-mayor-contact a,
.mtb-cat-btn,
.mtb-back-link,
.mtb-post-title,
.mtb-event-title a,
.mtb-news-header a,
.mtb-side-hdr a,
.mtb-page-bc a,
.mtb-post-bc a,
.footer-col a,
.mtb-result-link,
.mtb-archive-post-link,
.mtb-news-card,
.mtb-news-card *,
.mtb-pagination .page-numbers {
  text-decoration: none !important;
}

/* Logo — force no underline, override WP Accessibility */
#mtb-logo,
#mtb-logo:hover,
#mtb-logo:focus,
#mtb-logo:visited,
#mtb-logo *,
#mtb-logo *:hover,
#mtb-logo *:focus {
  text-decoration: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
  text-decoration-line: none !important;
  text-decoration-style: none !important;
}

/* Card headers — always white text, preserve size */
.mtb-card-header h2,
.mtb-card-header h3 {
  color: #fff !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}

/* Page hero border — subtle hairline under the lightened title band */
.mtb-page-hero,
.mtb-contact-hero,
.mtb-post-hero {
  border-bottom: 1px solid #e6e6e0;
}


/* ------------------------------------------------
   4. FOCUS STYLES
   ------------------------------------------------ */

:focus-visible {
  outline: 2px solid #4A7A65;
  outline-offset: 2px;
}

#mtb-header :focus-visible,
#mtb-utility-bar :focus-visible,
#mtb-mobile-nav :focus-visible,
#mtb-footer-main :focus-visible,
.mtb-page-hero :focus-visible,
.mtb-post-hero :focus-visible,
.mtb-card-header :focus-visible,
.mtb-about-strip :focus-visible,
.mtb-photo-strip :focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

:focus:not(:focus-visible) {
  outline: none;
}


/* ------------------------------------------------
   5. BUTTON RESET
   ------------------------------------------------ */

button {
  appearance: none;
  -webkit-appearance: none;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  cursor: pointer;
  font-family: inherit;
  font-size: inherit;
  line-height: 1;
  color: inherit;
}

#mtb-search-btn,
#mtb-hamburger {
  display: flex;
  align-items: center;
  justify-content: center;
}

.elementor-button,
button,
input[type="submit"] {
  font-family: 'Lato', sans-serif !important;
  font-weight: 500 !important;
  border-radius: 6px !important;
  cursor: pointer;
}


/* ------------------------------------------------
   6. IMAGE BASELINE
   ------------------------------------------------ */

img {
  max-width: 100%;
  height: auto;
  display: block;
}

svg[aria-hidden="true"] {
  pointer-events: none;
}


/* ------------------------------------------------
   7. SCREEN READER UTILITY
   ------------------------------------------------ */

.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 {
  clip: auto;
  clip-path: none;
  width: auto;
  height: auto;
  overflow: visible;
  position: static;
  white-space: normal;
}


/* ------------------------------------------------
   8. TEXT SELECTION COLOR
   ------------------------------------------------ */

::selection {
  background: #4A7A65;
  color: #fff;
}

::-moz-selection {
  background: #4A7A65;
  color: #fff;
}


/* ------------------------------------------------
   9. HEADINGS & TYPOGRAPHY
   ------------------------------------------------ */

h1, h2, h3, h4, h5, h6 {
  font-family: 'Lato', sans-serif !important;
  font-weight: 600;
  color: #4A7A65;
  line-height: 1.2;
}

h1 { font-size: 2.2rem !important; }
h2 { font-size: 1.8rem !important; }
h3 { font-size: 1.4rem !important; }

p {
  font-family: 'Lato', sans-serif !important;
  font-size: 15px;
  line-height: 1.7;
  color: #1a2a1a;
  margin-bottom: 1.2rem;
}

.elementor-widget-text-editor p {
  font-family: 'Lato', sans-serif !important;
  font-size: 15px;
  line-height: 1.7;
  color: #1a2a1a;
}

.elementor-heading-title {
  font-family: 'Lato', sans-serif !important;
  color: #4A7A65;
}


/* ------------------------------------------------
   10. ASTRA OVERRIDE CLEANUP
   ------------------------------------------------ */

.ast-page-builder-template .entry-content,
.elementor-page .entry-content,
.ast-page-builder-template .entry,
.elementor-page .entry {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.elementor-page .entry-header,
.ast-page-builder-template .entry-header,
.single-post .entry-header,
.ast-single-post .entry-header,
.ast-single-post .entry-meta,
.post .entry-header {
  display: none !important;
}

.entry-title {
  display: none;
}

#colophon,
.site-footer,
.ast-footer-overlay {
  display: none !important;
}

#secondary,
.widget-area {
  display: none !important;
}

.ast-page-builder-template #primary,
.elementor-page #primary {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}

.elementor-section {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.elementor-section-wrap,
.elementor-inner,
.entry-content,
.ast-article-single,
#primary,
.ast-separate-container,
.ast-two-container,
.elementor-full-width .entry-content {
  background-color: #F5F5F0 !important;
}

.ast-separate-container .ast-article-single {
  padding: 0 !important;
  margin: 0 !important;
  background: #F5F5F0 !important;
}


/* ------------------------------------------------
   11. REDUCED MOTION
   ------------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  :focus-visible {
    transition: none !important;
  }
}


/* ------------------------------------------------
   12. HIGH CONTRAST MODE
   ------------------------------------------------ */

@media (forced-colors: active) {
  .mtb-btn,
  .mtb-btn-outline,
  .mtb-btn-primary,
  #mtb-search-btn,
  #mtb-hamburger {
    forced-color-adjust: none;
    border: 2px solid ButtonText;
  }

  :focus-visible {
    outline: 3px solid Highlight !important;
    outline-offset: 2px !important;
  }

  .mtb-info-card,
  .mtb-staff-card,
  .mtb-result-card,
  .mtb-side-card,
  .mtb-news-card {
    border: 1px solid ButtonText !important;
  }
}


/* ------------------------------------------------
   13. PRINT STYLES
   ------------------------------------------------ */

@media print {
  #mtb-header-wrap,
  #mtb-footer-wrap,
  #mtb-mobile-nav,
  #mtb-search-drop,
  #mtb-skip-link,
  .mtb-btn,
  .mtb-btn-outline,
  .mtb-btn-primary,
  .mtb-hero-actions,
  .mtb-quick-links,
  .mtb-photo-strip,
  .mtb-pagination,
  .mtb-cat-filter {
    display: none !important;
  }

  .mtb-card-body a[href]::after,
  .mtb-post-content a[href]::after {
    content: ' (' attr(href) ')';
    font-size: 0.6875rem;
    color: #666;
  }

  a[href^="#"]::after,
  a[href^="/"]::after {
    content: '' !important;
  }

  body {
    background: #fff !important;
    color: #000 !important;
  }

  .mtb-page-hero,
  .mtb-post-hero,
  .mtb-card-header {
    background: #fff !important;
    color: #000 !important;
    border-bottom: 2px solid #000 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .mtb-info-card,
  .mtb-staff-card,
  .mtb-result-card,
  .mtb-step-card {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  #primary,
  .mtb-council-body,
  .mtb-zoning-body,
  .mtb-post-body {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }
}


/* ------------------------------------------------
   14. WP ACCESSIBILITY PLUGIN — FONT SIZE
   ------------------------------------------------ */

body.fontsize {
  font-size: 125% !important;
}


/* ------------------------------------------------
   15. WPFORMS STYLING
   ------------------------------------------------ */

.wpforms-field input[type="text"],
.wpforms-field input[type="email"],
.wpforms-field input[type="tel"],
.wpforms-field input[type="number"],
.wpforms-field textarea,
.wpforms-field select {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.wpforms-submit {
  background-color: #4A7A65 !important;
  color: #fff !important;
}

.wpforms-field {
  width: 100% !important;
}

.wpforms-submit:hover {
  background-color: #C0242E !important;
  color: #fff !important;
}

.wpforms-field select {
  border-color: #c8e0da !important;
  border-radius: 6px !important;
  background-color: #fff !important;
  color: #1a2a1a !important;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234A7A65' stroke-width='2'%3E%3Cpath d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 36px !important;
}

.wpforms-field select:focus {
  border-color: #4A7A65 !important;
  outline: 2px solid #4A7A65 !important;
  outline-offset: 2px !important;
}


/* ------------------------------------------------
   16. CHOSEN.JS DROPDOWN STYLING
   ------------------------------------------------ */

.chosen-container-single .chosen-single {
  border-color: #c8e0da !important;
  border-radius: 6px !important;
}

.chosen-results li.highlighted {
  background-color: #4A7A65 !important;
  background-image: none !important;
}

.chosen-container-active.chosen-with-drop .chosen-single {
  border-color: #4A7A65 !important;
}

/* Removes default browser focus ring when clicking the main content area */
#main-content:focus {
  outline: none !important;
}


/* ------------------------------------------------
   17. MOBILE — sitewide layout fixes
   ------------------------------------------------ */
@media (max-width: 768px) {

  /* All mtb body containers match hero width */
  [class*="mtb-"][class*="-body"] {
    padding: 1rem !important;
    box-sizing: border-box !important;
  }

  /* Hero matches */
  .mtb-page-hero,
  .mtb-post-hero {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  /* Card header h2 — prevent Astra override */
  .mtb-card-header h2,
  .mtb-card-header h3 {
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
  }

  /* Rate rows — label left, value wraps naturally */
  .mtb-rate-row {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.25rem 0.75rem !important;
    align-items: flex-start !important;
  }
  .mtb-rate-row span:first-child {
    flex-shrink: 0;
    min-width: 70px;
    color: #888;
  }
  .mtb-rate-row span:last-child {
    flex: 1;
    min-width: 140px;
    text-align: left;
  }

  /* Leadership mayor card — stack */
  .mtb-mayor-card { grid-template-columns: 1fr !important; }
  .mtb-mayor-photo { min-height: 200px !important; }

  /* Directory cards — stack photo above text */
  .mtb-cs-card,
  .mtb-group-card {
    flex-direction: column !important;
    gap: 0.75rem !important;
  }
  img.mtb-dir-photo {
    width: 100% !important;
    height: 180px !important;
  }
}