:root {
  --primary-font: "Roboto", sans-serif;
  --secondary-font: "Roboto", sans-serif;
  --overlay-font: "Open Sans", sans-serif;

  --main-colour: #4a6fa5;
}

/*--------------------------------------
  1. Box-sizing & smooth scroll
---------------------------------------*/
html {
  box-sizing: border-box;
  scroll-behavior: smooth;
  font-size: 100%; /* 16px base */
}

:where(*, *::before, *::after) {
  box-sizing: inherit;
  margin: 0;
  padding: 0;
}

/*--------------------------------------
  2. Body & base typography
---------------------------------------*/
body {
    font-family: var(--primary-font);
    font-optical-sizing: auto;
    font-size: 1.0rem;
    line-height: 1.5;
    letter-spacing: 0.02em;
    font-weight: 300;
    color: #292929;
    background-color: #ffffff;
    text-rendering: optimizeLegibility;
    min-height: 100vh;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}


/*--------------------------------------
  3. iOS & touch optimizations
---------------------------------------*/
:where(*) {
  -webkit-tap-highlight-color: transparent;
}

/*--------------------------------------
  4. Form resets
---------------------------------------*/
textarea,
button,
input[type="text"],
input[type="button"],
input[type="submit"],
input[type="email"],
input[type="search"] {
  appearance: none;
  border: none;
  border-radius: 0;
  background: none;
  font: inherit;
  line-height: inherit;
  color: inherit;
  padding: 0;
  margin: 0;
  outline: none;
  box-shadow: none;
  resize: vertical;
}


HEADER {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

HEADER .header {position:relative;}
HEADER .header img.static {width:100%;}

HEADER .header-section {position:relative;display:grid;width:100%;}

FOOTER	{
	width:100%;
	margin:auto;
	margin-top:0px;
    line-height:142%;
    color:#ffffff;
    font-size:0.9rem;
    background-image:url(../../images/footer-background.png);
    background-position: right;
    background-repeat: no-repeat;
    background-size: contain;
}


/* Dark overlay over the background image */
FOOTER .overlay {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(38, 61, 95, 0.9); /* dark semi-transparent overlay */
    z-index: 1;
    pointer-events: none; /* clicks pass through overlay */
}

FOOTER .content {
    position: relative; /* to be on top of overlay */
    z-index: 2;
    color: white;
}

FOOTER * {color:#ffffff !important;line-height: 175%;}
FOOTER h2 {font-size:14pt;font-weight:600;text-transform: uppercase;}
BODY.home FOOTER {padding-top:0;}
FOOTER a	{font-weight:400 !important;color:inherit;text-decoration:none;}
FOOTER SECTION.copyright {font-size:9pt;padding-top:10px;width:100%;margin:auto;padding: 10px 20px;text-align:center;background:#292929;line-height: 100%;}
FOOTER p.copyright {margin-bottom:0 !important;}
FOOTER p.copyright a {text-decoration:none;}
FOOTER p.copyright a,FOOTER p.footer-links a {color:inherit;}
FOOTER p.footer-links {margin-bottom:0 !important;}

FOOTER SECTION.mumfordconnect {display:block;padding-bottom:10px;padding-top:15px;}
FOOTER SECTION.mumfordconnect img {width:100%;max-width:180px;}
FOOTER .section {margin-bottom:20px;}
FOOTER .section a {font-weight:300;}

FOOTER .footer-widget p {margin-bottom:10px;}
FOOTER SECTION:first-of-type {padding:20px 40px;}

FOOTER DIV.wp-block-columns {margin-bottom:0;}
FOOTER DIV.wp-block-image {margin-bottom:0;}

DIV.footer-top-graphic img {width:100%;vertical-align:bottom;}

SECTION {display:table;clear:both;width:100%;}

IMG.left {float:left;margin-right:20px;margin-bottom:20px;}
IMG.right {float:right;margin-left:20px;margin-bottom:20px;}
IMG.responsive {
  max-width: 100%;
  height: auto;
}

img.alignright { float: right; margin: 0 0 1em 1em; }
img.alignleft { float: left; margin: 0 1em 1em 0; }
img.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignright { float: right; }
.alignleft { float: left; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }

.wp-caption {
    display:table !important;
    font-size:12px !important;
    padding:0px 0px 10px !important;
    text-align:center !important;
}
.wp-caption IMG {vertical-align:top;width:100%;height:auto;padding-bottom:10px;}
.wp-caption-text {display:initial;caption-side:bottom;line-height:150%;width:100%;font-size:9pt;}

.wp-block-columns {
    column-gap: 40px; /* adjust spacing */
}

.content	{
	width:100%;
	max-width:1250px;
	margin:auto;
	line-height:1.4em;
	padding:40px;
    font-weight:400;
}
.content ul {overflow:hidden;padding-left:20px;}
.content ul li ul {margin-top:10px;}

h1 {
    font-size: 2.0rem;
    line-height: 1.23em;
    font-weight: 700;
    font-family: var(--overlay-font);
    font-optical-sizing: auto;
    color: #292929;
    margin: 0 0 1.25rem 0; /* 20px */
    position: relative;
    display: inline-block;
    text-transform:uppercase;

}
h1::after {
  content: "";
  display: block;
  height: 6px;       /* thickness of the line */
  width: 100%;       /* full width of h1 text */
  max-width: 100px;  /* max 100px */
  background-color: var(--main-colour); /* line color */
  margin-top: 8px;   /* space between text and line */
}

/* Base H2 styling */
h2 {
    font-size: 1.633rem; /* 22px */
    line-height: 1.4em;
    font-weight: 400;
    font-family: var(--secondary-font);
    margin-top: 0;
    margin-bottom: 20px;
    overflow-wrap: break-word;
    text-transform: uppercase;
    position: relative;
}

/* Underline for all H2s */
h2::after {
    content: "";
    display: block;
    height: 3px;                     /* thickness of the line */
    width: 50%;                       /* start with 50% width (or adjust) */
    max-width: 200px;                 /* optional max width */
    background-color: var(--main-colour);
    margin-top: 8px;
    border-radius: 2px;
}

/* Center the underline if H2 is centered */
h2.has-text-align-center::after {
    margin-left: auto;
    margin-right: auto;
}


h3 {
    font-size: 0.8rem; /* 18px */
    line-height: 1.2em;
    font-weight: 400;
    font-family: var(--secondary-font);
    letter-spacing: 0.075em;
    text-transform: uppercase;
    margin-bottom:0.5rem;
}

h4 {
    font-size: 0.6rem; /* 12px */
    line-height: 1.4em;
    font-weight: 400;
    font-family: var(--secondary-font);
    border-bottom: 1px solid #eaeaea;
    padding-bottom: 0.25em;
    margin-bottom: 0.5em;
}


.page-header h1 {margin:0;padding:0;}

a	{color:#313131;text-decoration:underline;font-weight:inherit;text-decoration:underline;}
a:hover	{text-decoration:underline;cursor:pointer;}

.long-link {
  word-wrap: break-word;      /* Old name, still widely supported */
  overflow-wrap: anywhere;    /* Modern property */
  white-space: normal;        /* Allow wrapping */
}

p {margin-top:0;margin-bottom:0.75em;}
p:last-of-type {margin-bottom:0;}


li	{padding-bottom:10px}

.no-padding {margin:0;padding:0;}
.no-padding-top {margin-top:0 !important;padding-top:0 !important;}
.no-margin-top {margin-top:0 !important;}
.h2-padding {padding-left:40px;padding-right:40px;padding-top:40px;margin:0;}

#breadcrumbs	{font-weight:normal;margin-top:0px;font-size:10pt;color:#7a7a7a;}
#breadcrumbs p	{margin-bottom:5px !important;margin-top:0px;color:#7a7a7a;}
#breadcrumbs a	{font-weight:normal;text-decoration:none;color:#7f7f7f;}
#breadcrumbs a:hover	{text-decoration:underline}
p#breadcrumbs {margin-bottom:5px !important;}

.alignwide,
.alignfull {
	margin: 32px calc(50% - 50vw) 0;
	max-width: 100vw;
    margin-top:0;
}
.is-layout-constrained.alignfull {margin: auto;
    width: 100vw;
    position: relative;
    margin-left: -50vw;
    left: 50%;
    padding: 40px;}

.is-layout-constrained .wp-block-group__inner-container {width: 100%;max-width: 1170px !important;margin: auto;display: block;
    flex-direction: column;
    justify-content: center;}

.wp-block-media-text.acadia .wp-block-media-text__content {padding:7%;background:#eeeeee;min-height: 250px;}
.wp-block-media-text.acadia-padding .wp-block-media-text__content {padding:7%;min-height: 250px;}

.site-title {position:absolute;top:0;width:100%;left:0;z-index: 999;text-align:center;margin-top:50px;padding-left:20px;padding-right:20px;}
.site-title img {
    max-width: 100%;
    height: auto;
}

#header_image {width:100%;display:inline-flex;align-items: center;justify-content: center;height:300px;vertical-align:bottom;background-size:cover;}
#header_image img {width:100%;vertical-align:top;}
BODY.home #header_image {height:800px;}


* {
    scrollbar-width: thin;
  }
 

::-webkit-scrollbar {
    -webkit-appearance: none;
    width: 7px;
}
::-webkit-scrollbar-thumb {
    border-radius: 4px;
    background-color:#a7a7a7;
    box-shadow: 0 0 1px rgba(255,255,255,.5);
    -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5);
}

HEADER .logo.section {position:absolute;left:3%;top:10px;z-index:99999999;}
HEADER .logo-container .text {float:left;color:#6c6c6c;font-size:14pt;font-weight:400;margin-top:15px;}
HEADER .logo img {width:auto;width:100%;height:auto;max-width:175px;display:block;padding:0px;}
HEADER .logo a {color:inherit;}
HEADER .logo a:hover {text-decoration: none;}
HEADER .header-image {position:relative;}


.socialmediaicons {width:100%;max-width:1250px;padding-top:0px;padding-bottom:0px;margin:auto;display:flex;z-index:9999;position:relative;justify-content: flex-end;padding-top:10px;}
.socialmediaicons h2 {font-size: 1.6rem;font-weight:100;line-height:125%;padding:0;margin:0;margin-bottom:10px;}
.socialmediaicons img {max-width:35px;margin-right:0px;filter:invert(0);}

.socialmediaicons.black img {filter:invert(100%) sepia(1%) saturate(1%) hue-rotate(1deg) brightness(1000%) contrast(80%);}
.socialmediaicons.header {max-width:100%;}

FOOTER DIV.socialmediaicons {justify-content:center;gap:10px;}

HR {border: 0;
    height: 1px;
    background: #000000;}

hr.thin {width: 100% !important;border:0;height:1px;background:#000000;}


DIV.backtotop {display:table;margin-top:10px;margin-bottom:5px;width:100%;text-align:right;}
DIV.backtotop a.scrollLink {font-size:9pt;}
DIV.backtotop a.scrollLink:before {content: "\02191";font-size:12pt;padding-right:5px;}


#searchform {display:block;margin-top:10px;}
#searchform INPUT {border:1px solid #a7a7a7;padding:5px;}
#searchsubmit {background:#0093d0;color:#ffffff;text-transform: uppercase;border:1px solid #0093d0 !important;}

.fa, .fas {transform: rotate(0.001deg);}
.fas.left {float:left;}

:target::before {
  content: "";
  display: block;
}


SECTION.content img ~ p {margin-top:10px;}

.socialmediaicons.header {text-align:right;z-index: 9999;margin:initial;width:auto;}
.socialmediaicons.header img {margin-right:0;margin-left:10px;filter: invert(1);}

.wp-element-button {border-radius:15px;}

.header-container {width:100%;max-height:890px;height:auto;overflow:hidden;position:relative;}

a.button {background:#4e3d42;transition:0.2s;}
a.button:hover {background:#000000;transition:0.2s;text-decoration:none;}

a.button-grey {background:#aab7a2;transition:0.2s;}
a.button-grey:hover {background:#000000;transition:0.2s;text-decoration:none;}

DIV.wp-block-button.button a {background:#4e3d42;transition:0.2s;}
DIV.wp-block-button.button a:hover {background:#000000;transition:0.2s;text-decoration:none;}

DIV.wp-block-button.button-grey a {background:#aab7a2;transition:0.2s;}
DIV.wp-block-button.button-grey a:hover {background:#000000;transition:0.2s;text-decoration:none;}

p.button a {color:inherit;text-decoration:none;background:#e3942b;color:#ffffff;padding:10px 20px;display:inline-block;border-radius:10px;padding: 6px 16px;font-weight:400;}
p.button a:hover {background:#3c3b36;transition:0.2s;}


DIV.overlaytext {
    display: flex;
    z-index: 99;
    padding: 40px;
    width: 100%;
    align-items: center;
    color: #142F35;
    font-family: var(--overlay-font) !important;
    font-size: 37pt;
    font-weight: 700;
    text-align: center;
    justify-content: center;
    flex-direction: column;
    position:absolute;
}
DIV.overlaytext img {width:auto;max-width:100%;height:auto;}
DIV.overlaytext p {
    font-size: 14pt;
    line-height: 145%;
    color: #ffffff;
    font-weight: 600;
    margin: 10px 10px;
    text-transform: none;
}
DIV.overlaytext p.smaller {font-size: clamp(0.6rem, 1vw + 0.6rem, 1.5rem);}
DIV.overlaytext p.title {font-size:4.8vw;}

DIV.overlaytext a {color:inherit;text-decoration:none;background: #e9eff5;
    transition: 0.2s;
    border-radius: 25px;
    color: #142F35;
    padding: 13px 30px;font-size:14pt;font-weight:500;display:inline-block;margin-top: 10px;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}
DIV.overlaytext a:hover {background:#142F35;transition:0.2s;color:#ffffff;}
DIV.overlaytext img.logo {max-width:200px;width:100%;}
DIV.overlaytext h1 {color:inherit;line-height: 120%;font-weight: 700;font-family: var(--overlay-font) !important;font-size: clamp(3rem, 7vw, 7rem);text-transform: capitalize;}
DIV.overlaytext h1::after {display:none;}
DIV.overlaytext h2 {color:inherit;line-height: 120%;font-weight: 600;text-transform: uppercase;font-size: clamp(0.5rem, 1vw + 0.5rem, 2.5rem);margin:0; font-family: var(--overlay-font) !important;}
DIV.overlaytext h2::after {display:none;}

DIV.dark-background {color:#ffffff !important;}

/*
#hamburger {height:36px;}
#hamburger #menu-btn {float:right;}
*/

#wpadminbar {z-index: 999999999 !important;}

.menu-container {order:1;position:relative !important;top:0 !important;}

div.wpforms-container {background:#f6f6f6;padding:40px;}
div.wpforms-container-full input[type=submit]:not(:hover):not(:active), div.wpforms-container-full button[type=submit]:not(:hover):not(:active), div.wpforms-container-full .wpforms-page-button:not(:hover):not(:active) {background-color:#1c3275 !important;}
div.wpforms-container-full input[type=submit], div.wpforms-container-full button[type=submit], div.wpforms-container-full .wpforms-page-button {border-radius:0;}

div.wpforms-container-full .wpforms-confirmation-container-full, div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) {background: none !important;border:0 !important;padding:0 !important;}

div.wpforms-container-full .wpforms-form label.wpforms-error {color:#ffffff !important;}
.wpforms-confirmation-container-full p {display:block !important;}
div.wpforms-container-full .wpforms-form .wpforms-field-label {font-weight:500 !important;}

.wpforms-submit {background:#264F70 !important;border-radius:25px !important;padding:13px 40px !important;text-transform: uppercase !important;letter-spacing: 0.075em !important;}
.wpforms-submit:hover {background:#8DAEBE !important;transition:0.2s !important;}


DIV.logo-container img {width:100%;height: auto;max-width:50px;}
DIV.logo-container {position: absolute;text-align: center;z-index: 333;margin:0;z-index:9999;top: 20px;right: 80%;}
DIV.logo-container.home {position:relative;padding:0;margin:0;margin-bottom:30px;top:unset;}
DIV.logo-container.home a {background:none;margin-top:0px;}
DIV.logo-container.home img {max-width:300px;}

.content li a {/* These are technically the same, but use both */
    overflow-wrap: break-word;
    word-wrap: break-word;
  
    -ms-word-break: break-all;
    /* This is the dangerous one in WebKit, as it breaks things wherever */
    word-break: break-all;
    /* Instead use this non-standard one: */
    word-break: break-word;
}

ul li:last-of-type {padding-bottom:0 !important;}


.has-text-align-center {text-align:center !important;}
.is-content-justification-center {text-align:center;}
.wp-block-button {display:grid;}
.no-top-margin {margin-top:0;}

DIV.headergraphic {   
    overflow: hidden;
    display: inline-flex;
    position: relative;
    width: 100%;
    align-items: flex-start;
    justify-content: center;
    order:10;
}

DIV.wp-block-media-text.spacing DIV.wp-block-media-text__content {padding-top:40px;padding-bottom:40px;}
DIV.contact-form {border-radius: 40px;}

/* Target your Columns block */
.four-columns {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr); /* default: 4 columns */
    gap: 40px; /* spacing between columns */
}

/* Medium screens: 2 columns */
@media (max-width: 1150px) {
    .four-columns {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Small screens: 1 column */
@media (max-width: 600px) {
    .four-columns {
        grid-template-columns: 1fr;
    }
}

DIV.contact-info {display: inline-flex;width: 100%;margin-top:10px;position:absolute;}
DIV.contact-info * {color:#333;font-weight:400;}
DIV.contact-info DIV.contact-info-inner {max-width: 1250px;margin: auto;display: inline-flex;align-items: center;justify-content: flex-end;width: 100%;z-index:1;padding-bottom:10px;}
DIV.contact-info a {text-decoration:none;}
DIV.contact-info a:hover {text-decoration: underline;}
DIV.contact-info-items {border-bottom:1px solid #000000;display: inline-flex;gap: 20px;padding-bottom: 10px;margin-right: 16px;}

DIV.top-head {background-color:#5c94a5;width:100%;color:#ffffff;line-height:100%;display: inline-flex;justify-content: center;padding:10px 0;}
DIV.top-head DIV.branding-container {width:90%;justify-content: flex-end;max-width:1500px;}
DIV.top-head p {padding:0;margin:0;}
DIV.top-head-inner {display:inline-flex;gap:30px;}

li.book.menu-item {background: #ff7800;border-radius: 15px;}
li.book.menu-item a {color:#ffffff !important;}

    /***************************************************************************/

.wp-block-group-is-layout-constrained {
    max-width: 1250px;
    padding: 40px;
    width: 100%;
    margin: auto;
}

.wp-block-button__link {background:#264F70;color:#ffffff;letter-spacing: 0.075em;}
.wp-block-columns {margin-bottom:0;}

.section-padding {padding:40px;box-sizing: border-box;overflow-x: hidden;}
.section-padding-20 {padding:20px;}

BUTTON.contact-button {
    background: #264F70;
    color: #ffffff;
    border: 0;
    padding: 14px 40px;
    border-radius: 22px;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}
BUTTON.contact-button:hover {cursor:pointer;}

a.contact-button {
    background: #264F70;
    color: #ffffff;
    border: 0;
    padding: 10px 40px;
    border-radius: 22px;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}
a.contact-button:hover {cursor:pointer;}

.custom-column-padding {
  padding: 40px 40px;
  box-sizing: border-box;
}

.grid-spacing {margin-bottom:40px;}

/* Remove space between columns */
.no-gap-columns {
  gap: 0 !important;
  display: flex; /* Ensure horizontal layout */
}

/* Style for the left column */
.column-left {
  padding: 40px;
}

/* Style for the right column */
.column-right {
  padding: 40px;
}
/*.testimonials {padding:26px;}*/


div.wpforms-container-full .wpforms-confirmation-container-full, div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) {
    text-align:center;
}



BODY.content-padding SECTION.content {padding:0 40px;}

DIV.blog h2 {margin-bottom:10px;}


.metaslider .msHtmlOverlay .layer .content {margin:auto !important;    text-shadow: 3px 4px 7px rgba(0,0,0,1);}
.frontpage-slideshow {position:relative;max-height:650px;overflow:hidden;display: inline-flex;width:100%;flex-direction: column;align-items: center;justify-content: flex-start;text-align: center;vertical-align: top;z-index:1;}

.circle-icon-blue {background:#305cde !important;width:130px !important;height:130px !important;display: flex !important;margin: 0 auto !important;margin-bottom:20px !important;}
.circle-icon-blue img {display: block !important;
    margin: 0 auto !important;padding:10px;}


.frontpage-slideshow .overlaytext {height:100%;color:#ffffff;}

@media (max-width: 500px){
    .frontpage-slideshow .overlaytext {display:none;}
    .slideshow-overlay {display:none;}
}

/* Add padding around text on mobile */
@media (max-width: 768px) {
    .banner-text {
        padding-left: 20px;   /* space from left edge */
        padding-right: 20px;  /* space from right edge */
    }
}

.slideshow-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4); /* black with 40% opacity */
    pointer-events: none; /* allows clicks to go through to slideshow */
    z-index: 2; /* on top of slides but under any text you want to add */
}

.top-header-container {
    display: flex;
    align-items: center;
    justify-content: space-between; /* pushes left branding + right menu apart */
    margin:auto;
    width:100%;
    z-index:9;
    justify-content: center;
    background:#4a6fa5;
}

.branding-container {
    display: flex;
    align-items: center;
    gap: 10px; /* space between logo and site title */
    width:100%;
    max-width:1200px;
    margin:auto;
}

.branding-container img {
    height: 90px; /* adjust logo size */
    width: auto;
    vertical-align: bottom;
}

.site-title-header {
    font-size: 1.3rem;
    margin: 0;
}

.site-title-header a {
    text-decoration: none;
    color: inherit;
}

.rounded-box {border-radius:25px;color:#fee8b0;padding: 0 30px;font-size:1.5rem;line-height:2rem;}
.rounded-box h2 {font-weight:400;font-size: 2.633rem;line-height: 1.2em;}
.rounded-box .wp-element-button {background:#3b4b08 !important;}
.rounded-box .wp-element-button:hover {background:#000000 !important;transition:0.2s;}
.rounded-box a {color:#fee8b0 !important;}


.flex-control-nav {bottom:-50px !important;}

/*** Responsive CSS **********************************************************************************/

@media (min-width: 1200px){
    /*
    DIV.overlaytext h1 {font-size: 32pt;width: 75%;}
    DIV.overlaytext h2 {font-size: 19pt;width: 75%;}
    */
}

@media (max-width: 500px){
    .wp-caption {
      /* Force the box to be 100% */
      width: 100% !important;
    }
    #content .wp-caption a img {
      /* Scale down if too big */
      max-width: 99.03225806%; /* 614/620 */
      height: auto;
    }
    .wp-caption IMG {padding-bottom:0;}

    h1 {text-align:center;}
    h1::after {margin: 8px auto 0;}
  }

@media screen and (max-width: 1280px) {
    HEADER .logo.section {margin-left:0px;}
    DIV.overlaytext img.logo {max-width:18vw;width:100%;}
}

@media screen and (max-width: 1280px) {
    DIV.overlaytext img {width:75%;}
}


@media screen and (max-width: 1200px) {
    .socialmediaicons.header a:first-of-type img {margin-left:0;}
    .socialmediaicons.header img {filter: invert(0);}
}

@media screen and (max-width: 1050px) {
    HEADER .logo.section {text-align:center;float:none;margin-top:30px;}
    HEADER .contact {display:none;}
    HEADER .logo img {margin:auto;}

    DIV.overlaytext {font-size: 4.5vw;}
}


body.mobile-view DIV.contact-info {position:relative;margin-top:0;background:#4e3d42;}
body.mobile-view DIV.contact-info * {color:#ffffff;}
body.mobile-view DIV.contact-info DIV.contact-info-inner {justify-content: center;padding: 10px;}
body.mobile-view DIV.contact-info-items {border-bottom:0;gap: 10px;padding-bottom: 0px;margin-right:0;flex-direction: column;justify-content: center;align-items: center;}

body.mobile-view DIV.logo-container {left:0;width:100%;z-index:6;background:#4e3d42;position:static;}
body.mobile-view DIV.logo-container img {
        max-width: 125px;
        /*background: white;
        border-radius: 50%;
        padding: 4px;*/
        vertical-align: bottom;
        margin: 6px;
        filter: invert(0);
    }

body.mobile-view .top-header-container {display:block;height:10px;}
body.mobile-view .branding-container {width:100%;justify-content: center;}
    /*
@media screen and (max-width: 800px) {
    DIV.contact-info {position:relative;margin-top:0;background:#4e3d42;}
    DIV.contact-info * {color:#ffffff;}
    DIV.contact-info DIV.contact-info-inner {justify-content: center;padding: 10px;}
    DIV.contact-info-items {border-bottom:0;gap: 10px;padding-bottom: 0px;margin-right:0;flex-direction: column;justify-content: center;align-items: center;}

    DIV.logo-container {left:0;width:100%;z-index:6;background:#4e3d42;position:static;}
    DIV.logo-container img {
        max-width: 125px;
        background: white;
        border-radius: 50%;
        padding: 4px;
    }

}
    */

@media screen and (max-width: 780px) {
    FOOTER .footer-widget .wp-block-image .alignright {float:unset;margin:auto !important;}
    FOOTER .footer-widget .wp-block-column {text-align:center;}
    DIV.mobile-align-center * {text-align:center !important;margin-left:auto !important;margin-right:auto !important;}
    FOOTER DIV.socialmediaicons {justify-content:center;}

    DIV.keep-gap {gap:40px !important;}
    .grid-spacing {margin-bottom:0px;}
    .grid-spacing div.wp-block-column {margin-bottom:40px;}
    FOOTER .has-text-align-right {text-align:center;}
}


@media screen and (max-width: 768px) {
    .custom-column-padding {
        padding: 20px 15px;
    }

    h2 {
        display: block;     /* allow centering */
        text-align: center;
    }
    h2::after {
        margin-left: auto;
        margin-right: auto;
    }

    .no-gap-columns {flex-direction: column;}
}


@media screen and (max-width: 730px) {
    .mobile-nav {z-index:99999999 !important;}

    .wp-block-image .aligncenter, .wp-block-image .alignleft, .wp-block-image .alignright, .wp-block-image.aligncenter, .wp-block-image.alignleft, .wp-block-image.alignright {
        display: table;
        float: none !important;
        padding: 0;
        margin: auto !important;
    }
}

@media screen and (max-width: 650px) {
    .contact-form {margin: 1.125rem 0 5.375rem 0;
    background: #efefef;
    padding: 1rem 2rem 1rem 2rem;
    position: relative;
    margin-bottom: 35px;
    }
    
    img ~ ul {width:100%;}

   /* img.alignleft {clear:both;float:none;display:table;}*/
    DIV.images_block {width:100%;}
    DIV.contact {padding:20px;}
    #header_image {height:200px;}
    BODY.home #header_image {height:650px;background-position: center !important;}
}


@media screen and (max-width: 600px) {
    HEADER .logo-container .text {float:none;text-align:center;}

    .socialmediaicons img {margin-right:5px;margin-left:5px;}
  
    .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__media {margin-bottom:0px;}
    .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content {padding:0;padding-top:20px;padding-bottom:20px;}
    .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content h1 {text-align:center;}
    /*.wp-block-media-text.is-stacked-on-mobile {padding-top: 40px;}*/
    DIV.wp-block-media-text.spacing DIV.wp-block-media-text__content {padding-top:20px;padding-bottom:20px;}

    .is-layout-constrained .wp-block-group__inner-container {padding:40px 0;}

    DIV.overlaytext a, DIV.overlaytext p {display:none;}
}

@media screen and (max-width: 550px) {
    .wp-block-image .aligncenter, .wp-block-image .alignleft, .wp-block-image .alignright, .wp-block-image.aligncenter, .wp-block-image.alignleft, .wp-block-image.alignright {
        display: table;
        float: none !important;
        padding: 0;
        margin: auto !important;
    }

    SECTION.content .socialmediaicons img {max-width:35px !important;display: inherit;
    margin-right: 3px;
    margin-left: 3px;}
}

@media screen and (max-width: 500px) {
    h1.entry-title {text-align:center;width:100%;}
    div.wpforms-container {padding:20px;}
    
    DIV.overlaytext a {font-size:12pt;margin-top:25px;}
    p.smaller {margin-bottom:0 !important;padding-bottom:0;}

    DIV.logo-container.home {margin-bottom:15px;}
    DIV.overlaytext {padding:30px;}
    DIV.overlaytext h1 {font-size:18pt;margin-bottom:10px;}
    DIV.overlaytext p {font-size:12pt;}
    DIV.contact-info DIV.contact-info-inner {flex-direction: column;gap:5px;}
}


@media screen and (max-width: 480px) {
    SECTION .feature img {margin-bottom:0 !important;}
    HEADER .contact {position:relative;top:0;right:0;text-align:center;}
    IMG.alignright,IMG.alignleft {margin:0;text-align:center;}
    FOOTER {padding-bottom:0;}
    .site-title-header {font-size: 1.0rem;}
    .rounded-box {font-size:1.1rem;line-height:1.8rem;}
    .rounded-box h2 {font-size: 2.13rem;line-height: 1.2em;}
}


/* ===============================
   Latest Blogs Container
   =============================== */
.latest-blogs {
    display: flex;
    flex-wrap: wrap;          
    gap: 30px;               
    list-style: none;
    padding: 0 15px !important;          /* space on sides for borders */
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
}

/* ===============================
   Blog Card
   =============================== */
.latest-blogs li {
    flex: 1 1 0;               /* flexible on desktop */
    max-width: 32%;             /* 3 cards per row */
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    transition: transform 0.3s, box-shadow 0.3s;
}

/* Hover effect */
.latest-blogs li:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.12);
}

/* ===============================
   Image Wrapper & Image
   =============================== */
.latest-blogs .wp-block-latest-posts__featured-image {
    width: 100%;
    height: 200px;             /* fixed height */
    overflow: hidden;
    position: relative;
    flex-shrink: 0;
}

.latest-blogs .wp-block-latest-posts__featured-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    transition: transform 0.5s ease;
}

/* Image zoom on hover */
.latest-blogs li:hover .wp-block-latest-posts__featured-image img {
    transform: scale(1.05);
}

/* ===============================
   Post Content Styling
   =============================== */
.latest-blogs .wp-block-latest-posts__post-title {
    font-size: 1.2rem;
    font-weight: 600;
    color: #222;
    margin: 15px;
}

.latest-blogs .wp-block-latest-posts__post-date {
    font-size: 0.85rem;
    color: #666;
    margin: 0 15px 10px 15px;
}

.latest-blogs .wp-block-latest-posts__post-excerpt {
    font-size: 0.95rem;
    color: #333;
    margin: 0 15px 15px 15px;
    line-height: 1.5;
    flex-grow: 1;              /* ensures uniform card height */
}

.latest-blogs .wp-block-latest-posts__read-more {
    font-weight: 600;
    color: #0073aa;
    text-decoration: none;
    margin-bottom: 15px;
}

.latest-blogs .wp-block-latest-posts__read-more:hover {
    color: #005177;
}

.tagline {line-height:150%;}

/* ===============================
   Responsive Layout
   =============================== */



/* Mobile: 1 column stacked */
@media (max-width: 780px) {
    .latest-blogs li {
        flex: 0 0 100%;
        max-width: 100%;
    }
    FOOTER SECTION:first-of-type {padding:0px;}
    .copyright {padding:20px 0 !important;}
}


.next-event {position:absolute;bottom:20px;color:#ffffff;text-align: left;display: inline-flex;width: 100%;z-index:9;max-width:1400px;}
.next-event-container {padding:20px;color:#ffffff;text-align:left;}
.event-date-time {font-size:15pt;}
.event-title {font-size:20pt;font-weight:600;}
a.event-link {color:#ffffff;text-decoration:none;}

.top-header-container.top-bar {z-index:11;}
.top-header-container.top-bar .header-inner {padding:0;}

/* Mobile: 1 column stacked */
@media (max-width: 780px) {
   .next-event {position:relative;bottom:0;background:#d3bf96;z-index:2;}
   .event-date-time {font-size:12pt;}
   .event-title {font-size:15pt;}
}


/* iPad / iOS Safari only */
@supports (-webkit-touch-callout: none) {

  .wp-block-media-text__media {
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .wp-block-media-text__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    -webkit-object-fit: cover;
    object-position: center center;
  }

}


/* --- Apply your font site-wide for The Events Calendar --- */
.tribe-events,
.tribe-events * {
    font-family: "Lustria", serif !important;
    /* optional: adjust base font size if needed */
    font-size: 1rem;
}

/* Optional: make headings use your font too */
.tribe-events h1,
.tribe-events h2,
.tribe-events h3,
.tribe-events h4,
.tribe-events h5,
.tribe-events h6 {
    font-family: "Lustria", serif !important;
}


/* Blog CSS *****************************************************************************/
/* Grid layout */
.blog-card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

/* Card */
.blog-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 10px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Card image wrapper */
.blog-card-image {
    display: block;
    width: 100%;
    height: 220px;          /* set consistent image height */
    overflow: hidden;      /* hide overflow for clean crop */
}

/* Featured image */
.blog-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;     /* fills area, crops if needed */
    display: block;
}


/* Content */
.blog-card-content {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

/* Title */
.blog-card-title {
    font-size: 1.2rem;
    margin: 0 0 0.5rem;
}

.blog-card-title a {
    text-decoration: none;
    color: inherit;
}

/* Meta */
.blog-card-meta {
    font-size: 0.85rem;
    color: #777;
    margin-bottom: 0.5rem;
}

/* Excerpt */
.blog-card-excerpt {
    font-size: 0.95rem;
    flex-grow: 1;
}

/* Pagination spacing */
.nav-links {
    margin-top: 3rem;
}

/* Responsive */
@media (max-width: 1024px) {
    .blog-card-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .blog-card-grid {
        grid-template-columns: 1fr;
    }
}


/* Allow long links to break onto multiple lines */
a {
    white-space: normal;      /* allow wrapping */
    word-break: break-word;   /* break long words/URLs */
    overflow-wrap: anywhere;  /* modern property to force breaks */
}

form.search {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 800px;
    font-size: initial;
    font-weight: 400;
    position: relative;
    z-index:10;
}

form.search input {color:#222222;}

.search-field {
    padding: 5px 10px;
    font-size: 14px;
}

.search-submit {
    background: none;
    border: none;
    cursor: pointer;
    padding: 5px;
    display: flex;
    align-items: center;
}

.search-submit svg {
    width: 18px;
    height: 18px;
    fill: #333; /* magnifying glass color */
}

.search-inner {
    display: inline-flex;
    background: #ffffff;
    border-radius: 5px;
    padding: 10px;
    width: 100%;
    max-width: 600px;
    border:1px solid #dadada;
}

.search-inner label {
    flex: 1;          /* take all remaining space */
    display: flex;    /* make input fill label */
}

.search-inner input.search-field {
    flex: 1;          /* fill the label */
    width: 100%;      /* fallback */
    box-sizing: border-box; /* include padding in width */
}


.feature-boxes {
    align-items: center;
    justify-content: center;
}
.feature-boxes h3 {font-size:11pt;margin: 0;}
a.feature-box {border:0;color:#ffffff;background:#4a6fa5;border-radius:5px;max-width:150px;text-decoration: none;}
.material-symbols-rounded {font-weight:400;font-size:60px;}

.feature-boxes {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

/* Make all boxes equal height */
.feature-box {
    flex: 1 1 200px;       /* base width, can shrink/grow */
    display: flex;          /* flex for internal alignment */
    flex-direction: column; /* stack icon + title */
    align-items: center;    /* center horizontally */
    text-align: center;
    padding: 20px;
    border: 1px solid #eee;
    border-radius: 12px;
    text-decoration: none;
    color: #333;
    transition: transform 0.2s, box-shadow 0.2s;
}

/* Force all boxes in a row to have equal height */
.feature-boxes {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: stretch; /* makes children equal height */
}

.feature-box .material-icons-outlined {
    font-size: 48px;
    margin-bottom: 10px;
    color: #0073aa;
}

BODY.home .feture-boxes-container {
    position: relative;
    display: block;
    order: 10;
    top: -54px;
    z-index: 8;
    padding: 0 20px;
}

BODY.home.mobile-view .feture-boxes-container {top:20px;}

body.mobile-view .feature-box {padding:10px;top: 20px;}
BODY.home.mobile-view a.feature-box {max-width:125px;}
BODY.home.mobile-view .feature-boxes h3 {font-size:10pt;}

.topcontactinfo {
    display: flex;
    flex-direction: column;
    gap: 0;
    width:100%;
}
.topcontactinfo p {margin:0;padding:0;}
BODY.mobile-view .topcontactinfo {display:none !important;}

.quick-link {
    background: #1c2541;
    color: #ffffff;
    border: 0;
}
.quick-link .ql-icon {color:#ffffff;}
.quick-link:hover {text-decoration: none;background:#646566;border:0;}

@media (max-width: 500px){
    .quick-link {width: 100%;max-width: none;}
}

.village-alerts-bar {
  display: flex;
  width: 100%;
  color: white;
  order:8;
}

.village-alerts-left {
  background-color: #dc8600;
  color: #2B1A00; /* readable on gold */
  padding: 0 15px;
  display: flex;
  align-items: center;
  padding: 10px 40px;
  font-weight:500;
}
.village-alerts-left a {color:#2B1A00;}

.village-alerts-right {
  background-color: #eb1616;
  flex-grow: 1;
  padding:10px;
  font-size:17pt;
}
.sn-rotate-item a {font-weight:300;}

BODY.mobile-view .village-alerts-bar {flex-direction: column;text-align:center;}
BODY.mobile-view .village-alerts-left {justify-content: center;}

.sn-notice-rotation-advanced a {
    display: inline-block;
    white-space: nowrap;        /* prevent wrapping */
    overflow: hidden;           /* hide overflow */
    text-overflow: ellipsis;    /* show "..." when too long */
    max-width: 100%;            /* ensure it respects container width */
}

@media (max-width: 480px) {
    .sn-notice-rotation-advanced a {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

table td, table th {
  word-break: normal !important;       /* Don't break words in the middle */
  overflow-wrap: normal;    /* Don't force wrap inside words */
}

/* Base table styling */
.wp-block-table {
  width: 100%;
  border-collapse: collapse;
}

.wp-block-table th,
.wp-block-table td {
  padding: 8px;
  border: 1px solid #ccc;
  text-align: left;
  word-break: normal;
  overflow-wrap: normal;
}

/* Mobile-friendly: stack rows into cards */
@media (max-width: 768px) {

  .wp-block-table thead {
    display: none;
  }

  .wp-block-table tr {
    display: block;
    margin-bottom: 15px;
    border: 1px solid #ddd;
  }

  .wp-block-table td {
    display: flex;
    justify-content: space-between;
    padding: 10px;
    border: none;
    border-bottom: 1px solid #eee;
    background: #f9f9f9;
  }

  .wp-block-table td::before {
    content: attr(data-label);
    font-weight: 600;
    margin-right: 15px;
  }

}

/* Optional: add a subtle background to each "card" */
@media (max-width: 768px) {
    .wp-block-table td {
        background: #f9f9f9;
    }

    /* Thicker border below the last cell of each row */
    .wp-block-table tr td:last-child,
    .wp-block-table tr th:last-child {
    border-bottom: 3px solid #333; /* adjust thickness & color */
    }
}


BODY.fire-department .top-header-container {background-color: rgb(119 24 5 / 100%);}
SECTION.firedepartment h1::after {background-color: #b32307;}
SECTION.firedepartment ~ FOOTER .overlay {background-color: rgb(119 24 5 / 90%);}

.news-date {font-size:9pt;line-height:140%;margin-bottom:10px;}
.all-news {text-align:center;}

ul.mcc-upcoming-events-list {padding-left:0 !important;}

.bp-documents ul {margin-bottom:20px;}

/* Container - full width */
.bp-documents {
    width: 100%;
    margin: 0;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

/* Category headings */
.bp-documents h3 {
    font-size: 1.6rem;
    margin: 40px 0 15px;
    padding-bottom: 8px;
    border-bottom: 2px solid #e5e5e5;
    color: #222;
}

/* List reset */
.bp-documents ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Each document item */
.bp-documents li {
    width: 100%;
    background: #ffffff;
    border: 1px solid #eaeaea;
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 12px;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

/* Hover effect — no transform */
.bp-documents li:hover {
    border-color: #d0d0d0;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
}

.bp-documents li:last-of-type {
    padding-bottom: 12px !important;
}


/* Document link */
.bp-documents li a {
    display: block;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 500;
    color: #1a1a1a;
}

/* Hover link */
.bp-documents li a:hover {
    color: #0073aa;
}

/* Mobile adjustments */
@media (max-width: 480px) {
    .bp-documents li {
        padding: 14px;
    }

    .bp-documents h3 {
        font-size: 1.3rem;
    }
}

#poi-map {z-index:1;}


/* Breadcrumbs **********************************************************/
.menu-breadcrumbs {
  font-size: 14px;
  margin-bottom: 20px;
}


.menu-breadcrumbs > *:last-child {
    font-weight: bold;
}


.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}


ul + p, p+ul {margin-top:20px;}


/* Search **********************************************************/
#search-results {
  max-width: 900px;
  margin: 0 auto;
}

.search-card {
  padding: 30px;
  margin-bottom: 25px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(0,0,0,0.05);
  transition: all 0.25s ease;
}

.search-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.08);
}

.search-title {
  font-size: 1.4rem;
  margin-bottom: 8px;
}

.search-title a {
  text-decoration: none;
}

.search-meta {
  font-size: 0.85rem;
  color: #777;
  margin-bottom: 12px;
}

.search-excerpt {
  color: #444;
  line-height: 1.6;
}

.search-readmore {
  display: inline-block;
  margin-top: 15px;
  font-weight: 600;
}

mark {
  background: #fff3b0;
  padding: 2px 4px;
  border-radius: 4px;
}


/* Modal overlay */
.search-modal {
    display: none;
    position: fixed;
    inset: 0; /* top:0; right:0; bottom:0; left:0 */
    background: rgba(0,0,0,0.6);
    justify-content: center; /* horizontal centering */
    align-items: flex-start; /* vertical alignment controlled below */
    z-index: 9999;
    padding-top: 15vh; /* 1/3 from top */
}

/* Modal content box */
.search-modal-content {
    background: #fff;
    padding: 2rem;
    border-radius: 8px;
    width: 90%;
    max-width: 400px;
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
}

/* Close button */
.search-modal-close {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
}

/* Show modal when active */
.search-modal.active {
    display: flex;
}

.search-modal h2 {font-size:14pt;}

.menu-item-search .nav-search-toggle svg {
    color: #ffffff; /* white */
    width: 20px;     /* optional size adjustment */
    height: 24px;
    vertical-align: middle;
}

#header_image .firefighters-header-logo img {
    position: absolute;
    left: 4%;
    height: 90%;
    width: auto;
    top: 4%;
}

@media screen and (max-width: 480px) {
.fc-header-toolbar .fc-button-group:last-child {display:block !important;}
.fc-dayGridMonth-button, .fc-listMonth-button {display:none !important;}
}