/*
Theme Name: Morgan Theme
Author: Wayne Goodman
Author URI: https://waynegoodman.com
Description: Theme for Morgan Engineering
Tags: full-site-editing, block-patterns
Text Domain: morgan-theme
Version: 1.0.1

License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
    /* --body-font-family:  'Open Sans', sans-serif;
    --headline-color: 800; */

}



html {
scroll-behavior: smooth;
}

@media screen and (prefers-reduced-motion: reduce) {

html {
scroll-behavior: auto;
}
}

body {
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
}

body { font-family: "Urbanist", sans-serif;}
html { scroll-behavior: smooth; }


* { box-sizing: border-box; }


 html, body {margin:0; padding:0; background:#fff; color:#000;}

body:not(.wp-admin) {
    overflow-x: hidden;
}

.alignfull {    margin-left: calc(50% - 50vw) !important;  margin-right: calc(50% - 50vw) !important;}

.is-layout-flow > figure.alignright,  .is-layout-constrained > .alignright  { margin: 1em 0 1em 1.5rem !important; }
.is-layout-flow > figure.alignleft,  .is-layout-constrained > .alignleft {  margin: 1em 1.5em 1em 0 !important;  } 
/* .is-layout-flow > figure.alignleft  { margin: 0 1.5rem 1rem 0 !important; } */

.clear {clear-both:}

@media (max-width: 767px) {
	
	
	
.is-layout-flow > figure.alignright,  .is-layout-flow > figure.alignleft, .is-layout-constrained > .alignright {
    float: none;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 380px;
	margin-top:0;
  }
	
	.wp-block-image .figure.alignright, .wp-block-image .figure.alignleft {margin-top:1.5em;}
}



@media (max-width: 767px) {
  .wp-block-image.alignright.is-style-curved-wrap {
    float: none;
    margin: 0 auto 1.5rem auto;
  }
}

/* --- Editor Canvas Alignwide / Alignfull Fixes --- */


/* --- Gutenberg Editor Layout Overrides --- */

/* 1. Strip root canvas edge constraints so alignfull touches screen edges */
.editor-styles-wrapper .block-editor-block-list__layout,
.editor-styles-wrapper .is-root-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: 100% !important;
}

/* 2. Force alignfull blocks to span 100% full width */
.editor-styles-wrapper .wp-block[data-align="full"],
.editor-styles-wrapper .alignfull,
.editor-styles-wrapper :where(.is-layout-constrained) > .alignfull {
    max-width: 100% !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* 3. Force alignwide blocks to expand to theme.json wideSize (1200px) and center */
.editor-styles-wrapper .wp-block[data-align="wide"],
.editor-styles-wrapper .alignwide,
.editor-styles-wrapper :where(.is-layout-constrained) > .alignwide {
    max-width: var(--wp--style--global--wide-size, 1200px) !important;
    width: var(--wp--style--global--wide-size, 1200px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* 4. Target your custom service row flex container directly */
.editor-styles-wrapper .serviceFlex {
    max-width: var(--wp--style--global--wide-size, 1200px) !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
}

/*  to add caps using the P and Headings pallet which JS has been added enable */
.has-uppercase-text {
    text-transform: uppercase;
}


@media (max-width: 919px) {
.mobile-hide {clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute;}
}
.hidden {clip: rect(1px, 1px, 1px, 1px);
clip-path: inset(50%);
height: 1px;
width: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
}

h1, h2 {text-wrap:pretty}

@media screen and (min-width: 920px) {
   footer .desktop-hide, header .desktop-hide {
        position: absolute !important;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(1px, 1px, 1px, 1px);
        clip-path: inset(50%);
        white-space: nowrap;
        border: 0;
    }
}
main h2 {font-size: clamp(1.4rem, 3vw, 1.7rem); color:#1d5b7d; margin:32px 0 11px !important; font-weight:600 !important; line-height:1.2; }

.is-style-balance {text-wrap:pretty}

@media ( min-width: 480px) {
	.is-style-balance {text-wrap:balance}
}

/* :root :where(.is-layout-flow) > p, :root :where(.is-layout-flow) > ul {margin:0 0 12px}n */
.is-style-subhead-h2 {font-size: clamp(1.2rem, 3vw, 1.5rem);
color: #1d5b7d;
margin: 32px 0 11px !important;
margin-top: -0.7em !important;
font-weight: 600 !important;
font-style: italic;
margin-bottom: 1.1em !important;
text-wrap:balance
}

@media (max-width: 919px) {
	.is-style-subhead-h2 {text-wrap:pretty}	
}
img {max-width:100%; height:auto; }
.wp-site-blocks { display: flex !important; flex-direction: column; min-height: 100vh !important; width:100%; max-width: 2024px; margin:auto; }
:root :where(h2) { font-weight:500; }

.wp-element-caption {text-align:center; line-height:1.3; text-wrap:balance}
.rightColNav {flex-basis:80%}

main {
  flex: 1 0 auto; 
  margin-block-start: 0; 
  z-index: 0; 
  position: relative; 
  padding-top: 2.375rem; 
  padding-bottom: 52px; 
  padding-left: 6%;  /* Adds mobile horizontal padding */
  padding-right: 6%; /* Adds mobile horizontal padding */
  font-size: 1.1rem; 
  /* letter-spacing: .02rem; */
}

.has-hero-header main  {  padding-top: 0 !important; }

@media (min-width: 920px) {
  main { 
    padding-top: 3.4vw; 
    padding-bottom: 2.6vw;
    padding-left: 6%;  /* Adds desktop horizontal padding */
    padding-right: 6%; /* Adds desktop horizontal padding */
  }
}

/* main p, .editor-styles-wrapper p {margin:0 0 1rem; } */
main ul, .editor-styles-wrapper ul, .wp-block-list {margin:8px 0 1em 1.2em; padding-left: 1em}

main ul, .editor-styles-wrapper ul, main p, .editor-styles-wrapper p {letter-spacing: .01rem;}
 

main a, .editor-styles-wrapper a { text-decoration: underline; text-underline-offset: 4px; /* Adjust this value to change the gap */color:#1d5b7d;  text-decoration-thickness: 0.6px;}


h1 {font-size: clamp(1.8rem, 3vw, 2.6rem); line-height:1.2; text-align:center; max-width: 840px; margin:0 auto 1.5rem !important; text-transform:uppercase; color:var(--wp--preset--color--morgan-orange); }
.home h1  { font-size: clamp(1.6rem, 3vw, 2.4rem); }

.wp-block-column.leftFooter, .wp-block-column.leftFooter p, .wp-block-column.leftFooter a {color:#fff !important; font-weight:400; text-decoration:none}
.wp-block-column.leftFooter {text-align:center }
.wp-block-column.leftFooter h2 {color:#fff !important; padding-top:22px}

.rightFooter h2 { font-size: clamp(1.3rem, 1.4rem + 1.5vw, 1.9rem); text-transform:uppercase; margin:0 auto -16px; padding-top:8px;  }
.rightFooter > div {margin:0 auto; }

.footerFull {display: flow-root; border-top:6px solid #77c144; padding:1.4rem 0; background:#305b7a}

.footerInner {
   /* max-width: 1380px;*/
    margin: 0 auto;
    width: 100%;
}

.headerInner {
    /* max-width: 1400px; */
    margin: 0 auto;
    width: 100%;
}


.footerColumns {
    width: 100%;
}

:root :where(.wp-element-button, .wp-block-button__link) {border-radius:6px !important; }
:root :where(.wp-element-button, .wp-block-button__link):hover {background:#77c144; border:none !important}

.site-header {min-height:72px}

.headerPhoneContain {display:flex; justify-content: flex-end; }
.rightColNav p a.header-phone  {font-size: clamp(1.4rem, 2vw, 2rem); flex-wrap: nowrap; 
color:#dc643a; font-weight:700; margin:0 .5% 0 8px; max-width:280px}




.rightColNav nav { margin:.1rem .5rem .8rem !important}
.headerLeftCol {max-width:320px; }
.logoContain {min-width:58vw; max-width:30vw; margin-bottom: 0; padding-top: 3px; }
.logoContain a {display:block; z-index:2; }
.logoContain a svg {width:100% !important; height:auto; }

@media (max-width: 920px) {
	.headerLeftCol {max-width:50vw !important; }
}

@media (min-width: 480px) {
.logoContain { min-width:240px;}
}

.logoContain svg {width:100%; height:auto;}
.headerInner .wp-block-columns {margin-bottom:0}
.navBar {width:100%; background:#2c5a7a; min-height:44px; border-top:3px solid #77c144;  border-bottom:3px solid #77c144}
.homepageTop {width:100vw; height: /* calc(100vh - 160px) */ auto; aspect-ratio:16/6.5;  position:relative; margin-bottom:54px; border-bottom: 6px solid #77c144;  background:#000}
#homepageVideo1 {background:#000;}
@media (max-width:919px){
.homepageTop {width:100vw; height: auto; aspect-ratio:16/9; border-top: 4px solid #77c144;  border-bottom: 4px solid #77c144;}
.scroll-down-btn {display:none}
}
.homepageTop video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; opacity: 1; background: #fff; object-position: center top;}
.scroll-down-btn { background: none !important; position: absolute; z-index: 1; bottom: 66px; right: 8%; width: 54px; height: 54px; opacity: .4; border: none !important; }
.scroll-down-btn svg {fill:#77c144}
.scroll-down-btn:hover {opacity: 1;}
#the_content {margin-top:-43px; position:absolute;}



/* custom admin buttons  */

.wp-block-button {justify-content:center; margin: 1rem auto !important}
.wp-block-button a {color:#fff; text-transform:uppercase; box-shadow:none !important; border-color:#1d5b7d}
.wp-block-button a:hover {background:#77c144; border-color:#77c144}

.eyebrow, .is-style-eyebrow {  margin: 12px auto .3rem !important; text-align:center; text-transform:uppercase;  font-size: clamp(.9rem, 2vw, 1.3rem); font-weight:500; }

.subTitle {margin:-20px auto 32px; font-style:italic; font-size: 1.2rem;}

@media ( min-width: 920px) {
.eyebrow, .is-style-eyebrow   {letter-spacing:.08em;}
}



.is-style-shortparagraph {max-width:820px; margin-left: auto; margin-right: auto; }


.is-style-shortparagraph {}

ul.is-style-two-columns {}


/* Centered narrow wrapper for lists or centered content */

.wp-block-group.is-style-centered-narrow {
    max-width: 650px;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100%;
}



p.back-link a { text-align:center; margin-top:32px; text-decoration:none; font-size:1.2rem}

ul.is-style-two-columns {max-width:920px; padding-left:32px}

ul.is-style-three-columns, ol.is-style-three-columns {margin-bottom: .8rem}
ul.is-style-three-columns,
ol.is-style-three-columns {
  column-count: 3;
  column-gap: 2rem;
  padding-left: 1.5rem;
}

/* Prevent individual <li> items from breaking across columns */
ul.is-style-three-columns li,
ol.is-style-three-columns li, ul.is-style-two-columns li,
ol.is-style-two-columns li {
  break-inside: avoid;
  page-break-inside: avoid; /* Legacy support */
  margin-bottom: 0.5rem;
}

@media (max-width: 768px) {
  ul.is-style-three-columns, ol.is-style-three-columns { column-count: 2; }
}

@media (max-width: 480px) {
  ul.is-style-three-columns, ol.is-style-three-columns { column-count: 1; }
}
main ul li, main ol li, .editor-styles-wrappe ul li, .editor-styles-wrappe ol li  { line-height:1.3; margin-bottom:10px}


/* Restrain unaligned image figure elements to the width of the image */
.wp-block-image:not(.alignleft):not(.alignright):not(.aligncenter) {
  display: table;
  max-width: 100%;
}
/* Ensure the caption wraps strictly within the image container */
.wp-block-image:not(.alignleft):not(.alignright):not(.aligncenter) figcaption {
  display: table-caption;
  caption-side: bottom;
}


/* Prevent list elements from bleeding under floated images */


.wp-block-list ul, .wp-block-list ol {
  overflow: hidden;
}



/* Align bullet marker spacing in the Site Editor to match front end */
.editor-styles-wrapper ul.wp-block-list li,
.editor-styles-wrapper ol.wp-block-list li {
  padding-left: 0.25rem !important; /* Reduces gap between bullet marker and text */
  margin-left: 0 !important;
}

/* Ensure inner paragraph/block wrapper doesn't inject extra left margin */
.editor-styles-wrapper ul.wp-block-list li > *,
.editor-styles-wrapper ol.wp-block-list li > * {
  margin-left: 0 !important;
  padding-left: 0 !important;
}

/* Mobile fallback: drop to single column on narrow screens */
@media (max-width: 600px) {
    ul.is-style-two-columns,
    ol.is-style-two-columns,
    ul.is-style-three-columns,
    ol.is-style-three-columns {
        columns: 1;
    }
}


.footerFull {text-align:center; color:#fff; }



/* social  */

/*
.socialFooter {width:188px; margin:18px auto 16px;  text-align:center; display: flex;  align-items: center;
  justify-content: center; height:32px}
.socialFooter a {text-decoration:none; padding:0 11px;  display: flex;  align-items: center;
  justify-content: flex-end; height:60px}
.socialFooter svg { width:26px; height:26px; height:auto; }
.socialM {fill:#a0df7f; margin:6px; }
.socialFooter a:hover .socialM {fill:#7eb7d0 !important;}
.social { width:382px;   margin:0 auto; text-align:center; display:none }
@media (min-width:981px){
.social {display:block}
}
.socialFooter a.youTubeIcon {padding:11px auto 0 !important; align-items: center !important;}
.socialFooter a.youTubeIcon svg {padding-top:6px}
*/


/* Container reset and flex alignment */
.social-links-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center; /* Horizontally center in parent */
    gap: 1rem;               /* Equal spacing between icons */
    list-style: none;
    margin: 0;
    padding: 0;
    line-height: 1;          /* Strips extra inline font height */
	margin: 11px auto;
}

/* List item flex alignment */
.social-links-list__item {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
}

/* Link wrapper alignment */
.social-links-list__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: currentColor;
    text-decoration: none;
    transition: color 0.2s ease, opacity 0.2s ease;
}

.social-links-list__link:hover,
.social-links-list__link:focus-visible {
    opacity: 0.75;
}

/* Strict icon dimensions */
.social-icon {
    width: .9rem;   /* 24px equivalent */
    height: .9rem;  /* 24px equivalent */
    display: block;
    flex-shrink: 0;  /* Prevents flex squishing */
}
svg.social-icon {
    width: 20px;
    height: 20px;
    display: block;
	fill:#00295c;
}
		

.social-links-list__link {padding:8px; background:rgb(119, 193, 68);; border-radius:50%;}






.footerFull h2 {text-transform:uppercase; margin: 0 auto; font-weight:500; font-size: clamp(1.1rem, 1.3rem + 1.3vw, 1.7rem); }
.footerFull p {margin:7px auto; line-height:1.35}
.footerNav {margin:28px auto; }
.pipe { padding:0 8px; color:#fff; font-weight:600}
.footerphoneEmail {font-size:1.2rem}
.footerFull a {color:#fff; text-decoration:none}
.footerFull a:hover {color:#77c144;}
.pipe {height:1px; opacity:0; display:block}
.addressLabel {display:block; font-size:.83rem; text-transform:uppercase; letter-spacing:.11em}


.footerNav nav li {margin:6px 0; padding:0}
.footerNav nav ul {gap:0}
.footerNav nav li a {border-right:2px solid #77c144; padding: 0 22px; margin:0; line-height:1.2 }
.footerNav nav li:last-child a {border-right:0}
@media (max-width:640px){
.footerNav nav li a { padding: .2rem 11px; margin:0; border:none !important  }
.footerNav nav li a {font-size:1rem; line-height:1; margin:auto}
.footerNav nav li:last-child {display:block}
.footerNav nav li:nth-child(2) a  {border-right:0}
.footerNav ul {display:block !important ;}
	
}

.footerphoneEmail {margin-top:22px}
.footerphoneEmail a {background:#77c144; padding:8px 11px; margin:6px auto; display:block; max-width:270px; -webkit-border-radius: 30px;
-moz-border-radius: 30px; border-radius: 30px; color:#000; font-weight:bold}
.footerphoneEmail a:hover {color:#305b7a}

.footerNav a:hover {color:#77c144 !important}

a.emailFooter {font-size:.9rem !important; padding:11px 11px}
@media (min-width:981px){
.pipe {height:inherit; opacity:1; display:inline !important}
.footerphoneEmail {margin-top:inherit}
.footerphoneEmail a {background:inherit; padding:inherit; margin:inherit; display:inline !important; max-width:inherit; -webkit-border-radius: 30px;
-moz-border-radius: 30px; border-radius: 30px; color:inherit; font-weight:inherit}
a.emailFooter {font-size:inherit !important; padding:inherit}
.footerphoneEmail a:hover {color:#77c144 !important}
}


/* HEADER NAVIGATION  */


.wp-block-navigation, .navBar .wp-block-navigation {text-transform:uppercase}
.rightColNav a, .navBar .wp-block-navigation a {text-decoration:none}
.navBar .wp-block-navigation {height:40px}



/* tighten top nav */

@media (min-width: 919px) {

.wp-block-navigation__container > li a {
padding-bottom: 8px;
font-size: clamp(.7rem, 1.8vw, 1.2rem);
padding: .2rem 0 .3rem;
}

}
.wp-block-navigation__responsive-container-open { padding: 0.4rem;}


@media (max-width: 919px) {
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { padding: 2rem  2rem 2rem 12vw  }
.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) {border-bottom:#77c144 solid 12px; background:#1d5b7d}

 }


/* styles for top services nav  */

.contentCol .wysiwygContent {margin-top:6px !important}

.rightColNav .wp-block-navigation {font-size: clamp(1rem, 2vw, 1.3rem);  color:var(--wp--preset--color--morgan-blue); font-weight:600}

.navBar .wp-block-navigation ul {text-align:center; display: flex;  align-items: center;justify-content: center; max-width:90%; margin:auto; gap:0}
.navBar  a {color:#fff !important; font-weight:600 !important;  }
@media (min-width: 919px) {
.navBar .wp-block-navigation a {
font-size: clamp(.6rem, 1.8vw, 1.2rem);
padding-bottom: 8px;
/* padding: .3rem .9rem; */ padding: .12rem 2.2rem; letter-spacing: .05rem;
font-weight:700
}
}
@media (min-width: 1280px) {
.navBar  a { font-weight:600 !important; letter-spacing:.12vw;  }
}
@media (min-width: 1380px) {
.navBar  a { font-weight:600 !important; /* letter-spacing:.21vw; */ letter-spacing:.32vw; }
.navBar  .wp-block-navigation__container > li a {font-size: clamp(.8rem, 2rem + 1vw, 1.2rem) !important; /* padding: .12rem 1.6rem; */ padding: .12rem 3.1rem;}
}

.navBar { display: none }
@media (min-width:919px) {
.navBar { display: block !important }
}

/* space out the nav  */

.wp-block-navigation__responsive-container-close {/* margin-right:3% */ }


/* Pipe pseudo-element positioned exactly halfway across the space-between gap */
@media (min-width: 919px) {
  .navBar .wp-block-navigation__container > li:not(:last-child)::after {
    content: "|";
    position: absolute;
    right: 0;
    /* Shifts the pipe into the exact midpoint of the flex space-between gap */
    transform: translateX(50%); 
    color: #77c144; /* Matches your link color */
    opacity: 1; /* Optional: slightly soften the pipe so links pop */
    font-weight: 500;
    pointer-events: none;
    user-select: none;
  }
}


.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content {font-size:.9rem}


.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container {padding-top:.4rem; padding-bottom:.4rem}

.wp-block-navigation a.wp-block-navigation-item__content.wp-block-navigation-item__content:hover {color:#458e13}
.wp-block-navigation .wp-block-navigation-item__label:hover {color:#77c144}

/*  changing the open and close icons: */
/* Open (Hamburger) Icon */
.wp-block-navigation__responsive-container-open svg rect {
  fill: #fff !important; /* Replace with your color */
}
/* Close (X) Icon */

.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open {background:#305b7a}
 .wp-block-navigation__responsive-container-open svg {fill:#fff; }

.wp-block-navigation__responsive-container-close svg  {fill:#000;  width:34px; height:34px}
.wp-block-navigation__responsive-container-close {background:#77c144; margin-right:1.8rem}


.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close {margin-top:1rem}

.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item
{ align-items: flex-start;}

/* Custom Navigation Breakpoint: 920px */
@media (max-width: 919px) {

    /* Hide the standard horizontal menu list */
    .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-content {
        display: none !important;
    }

    /* Force the hamburger button to show */
    .wp-block-navigation__responsive-container-open {
        display: flex !important;
    }
.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content {padding-top: 11px}
.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container {width:94vw !important; margin-right:0; margin-left:6%; gap:11px !important}
.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content {padding: .4em .5em;}
.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container {padding-top:4px; padding-left: 1.5rem;}
.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content { color:var(--wp--preset--color--morgan-blue); }
.wp-block-navigation a {color:#fff !important; /* padding:.24rem .2rem !important;*/ }
.wp-block-navigation a:hover {color:#77c144 !important}
.wp-block-navigation > a {font-size:1.2rem !important}
.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item
{width:auto !important}
}

@media (min-width: 920px) {
    /* Ensure the hamburger button stays hidden on desktop */
    .wp-block-navigation__responsive-container-open, .wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) {
        display: none !important;
    }

    /* Keep standard desktop menu visible */
    .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-content {
        display: flex !important;
    }
}


.wp-block-navigation .wp-block-navigation-item__label {line-height:1.2}

.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container {left:-22px}


/*
.is-layout-constrained > .alignwide {
  width: min(100vw - 8%, var(--wp--style--global--wide-size, 1200px)) !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

*/

/* Override wide size to dynamically equal 80% of the viewport width */
.is-layout-constrained > .alignwide,
.wp-block-group.alignwide {
  max-width: 82vw !important;
  width: 82vw !important;
  margin-left: auto !important;
  margin-right: auto !important;
}


/* Allow standalone .alignwide blocks to break out past 1020px content width */
.is-layout-constrained > .alignwide {
  max-width: 82vw !important;
  width: 82vw !important;
  /* Calculates negative margins to break out of 1020px parent box and center itself */
  margin-left: calc((100% - 82vw) / 2) !important;
  margin-right: calc((100% - 82vw) / 2) !important;
}

/* Ensure mobile screens don't overflow horizontally */
@media (max-width: 1200px) {
  .is-layout-constrained > .alignwide {
    width: 92% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}


/* homepage service rows */

.sericeRows {margin:42px auto}
.serviceRow {margin-bottom:42px;}
   .serviceRow::after {
  content: ""; /* Required to make the pseudo-element appear */
  display: block; /* Treats it like a block element */
  position: absolute; /* Positions it relative to the parent div */
  left: 0; /* Aligns to the left edge */
  bottom: -22px; /* Places it at the bottom of the div */
  width: 100%; /* Makes the line span the full width */
  height: 2px; /* Thickness of the line */
  background-color:#f15a2c; /* Color of the line */
}
.serviceRow:last-child::after  { display:none}
.serviceRow:nth-child(odd) {background:#77c144; color:#000}
.serviceRow:nth-child(even) {background:#1d5b7d; color:#fff}
.serviceFlex {flex-direction:column; display: flex;   gap:6%; padding:38px 0}
.contentCol h2 {text-transform:uppercase; margin:0; font-weight:700; margin-top:11px !important; line-height:1.1;}
@media (min-width: 920px) {
.contentCol h2 { margin-top:6px;}
.serviceFlex {flex-direction:row;}
.serviceRow:nth-child(even) > .serviceFlex {flex-direction:row-reverse;}
}
.photoCol img {width: 100%;height: 100%; object-fit: cover; /* Prevents distortion */ }
.photoCol {flex: 0 0 40%; /* Desired baseline width (e.g., 40% of parent) */
  max-width: 420px; /* Caps image wrapper width */
  aspect-ratio: 3 / 2; /* Maintains 3:2 ratio */
  overflow: hidden; }

/* Center contentCol vertically within the row while keeping text left-aligned */
.serviceRow:nth-child(even) > .serviceFlex .contentCol, 
.serviceRow:nth-child(odd) > .serviceFlex .contentCol {
    flex: 1;
    min-width: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    justify-content: center; /* Vertically centers children inside contentCol */
    align-self: center;      /* Keeps contentCol vertically aligned with photoCol */
}
/* Ensure photoCol maintains its top alignment or flex behavior */
.photoCol {
    flex: 0 0 32%;
    max-width: 480px;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    align-self: flex-start; /* Keeps image aligned top if text height exceeds image */
margin-bottom:18px;
}
@media (min-width: 920px) {
.photoCol {magin-bottom:0;}
.photoCol {max-width: 30vw;}
}

.serviceRow:nth-child(odd) h2 {color:#1d5b7d; }
.serviceRow:nth-child(even) h2 {color:#77c144; }
.serviceRow p, .serviceRow li { margin:4px 0 4px 0; padding:0; line-height:1.3}




/* Ensure the link text remains visible inside the editor canvas */
.editor-styles-wrapper .learnMore,
.editor-styles-wrapper a.learnMore {
    display: inline-flex;
    align-items: center;
    gap: 0.35em;
    margin-top: 8px;
    color: var(--wp--preset--color--primary, #2f5a7a) !important; /* Uses theme blue in editor so it is readable */
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;
    transition: color 0.2s ease;
}

/* If the parent container has a dark/colored background in the editor */
.editor-styles-wrapper .serviceRow .learnMore,
.editor-styles-wrapper .has-background .learnMore {
    color: #ffffff !important;
}

.learnMore {text-transform:uppercase; text-decoration:none; text-align:right; }
.learnMore {
  margin-top:8px; 
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  transition: color 0.2s ease;
justify-content:flex-end;
}
.serviceRow:nth-child(odd) a {/* color:#1d5b7d */  color:#000}
.serviceRow:nth-child(even) a {/* color:#77c144 */ color:#fff }


.circleArrow {
  width: 1.5em;
  height: 1.5em;
  fill: currentColor; /* Inherits the link color automatically */
  transition: transform 0.2s ease;
}

/* Nudge arrow on hover */
.learnMore:hover .circleArrow,
.learnMore:focus .circleArrow {
  transform: translateX(3px);
}
/* staff  */


.principals h2, .team h2 {font-size: clamp(1.6rem, 3vw, 2.2rem);margin: 11px auto 0 !important; padding-bottom:32px; text-transform:uppercase}

.principals {background:#f2f2f2; padding:32px 0 22px; border-top:3px solid #78c144; border-bottom:3px solid #78c144; margin:42px auto 52px; }
.principalsGrid {display:flex; flex-direction:row; text-align:center; justify-content:center; gap:3%; padding:11px 3%}

/* Base Flex Grid Container */
.staff-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  justify-content: center;
}

/* Base Card Styling */
.type-staff {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
  margin-top: 0;
}

.type-staff h3 { 
  color: #305b7a; 
  margin: 8px auto 0;
}

.title { 
  font-style: italic; 
}

.type-staff h2, 
.type-staff .title { 
  text-wrap: balance; 
  line-height: 1.2; 
font-size: .95rem;
margin-top:6px;
}

/* Non-Breaking Chevron */
.title::after {
  content: "\00a0\00bb";
  display: inline;
  white-space: nowrap !important;
  padding-left: 3px;
}

/* Image Wrapper & Scaling */
.card-image-wrapper img {
  width: 100%;
  height: auto;
  aspect-ratio: 419 / 576;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease-in-out; 
}

/* Fixed: Changed .staff-card to .type-staff */
.type-staff:hover .card-image-wrapper img {
  transform: scale(1.03);
}

/* Card Overlay Link */
.card-overlay-link {
  cursor: pointer; 
  position: absolute; 
  top: 0; 
  right: 0; 
  bottom: 0; 
  left: 0; 
  z-index: 2;
}

.card-overlay-link:focus-visible {
  outline: 2px solid #005fcc;
  outline-offset: -2px;
  border-radius: 4px;
}

/* ==========================================
   Principals Section Styling (2-Up Desktop)
   ========================================== */
.principals {
  background: #f2f2f2; 
  padding: 22px 0; 
  border-top: 3px solid #78c144; 
  border-bottom: 3px solid #78c144; 
  margin: 42px auto 52px; 
}

.principals .staff-grid {
  max-width: 820px; 
  margin: auto; 
  padding: 0 6% !important;
}

.staff-grid--principals .type-staff {
  flex: 0 0 calc(50% - 0.75rem);
  max-width: calc(50% - 0.75rem);
}

/* ==========================================
   Team Section Styling (3-Up Desktop)
   ========================================== */
.staff-grid--team .type-staff {
  flex: 0 0 calc(33.333% - 1rem);
  max-width: calc(33.333% - 1rem);
}

/* ==========================================
   Responsive Breakpoints
   ========================================== */
@media (min-width: 920px) {
  .principals .staff-grid {
    max-width: 900px;
  } 
}

/* Tablets / Medium Screens (2-Up for Team) */
@media (max-width: 900px) {
  .staff-grid--team .type-staff {
    flex: 0 0 calc(50% - 0.75rem);
    max-width: calc(50% - 0.75rem);
  }
}

/* Mobile / Small Screens (1-Up for All) */
@media (max-width: 420px) {
  /* Fixed: Corrected .staff-card to .type-staff */
  .staff-grid--team .type-staff,
  .staff-grid--principals .type-staff {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
/* Force exact 3-column width for team items and prevent content stretching */
.staff-grid--team .type-staff {
  flex: 0 0 calc(33.333% - 1rem) !important;
  width: calc(33.333% - 1rem);
  max-width: calc(33.333% - 1rem);
  box-sizing: border-box;
}

/* Force exact 2-column width for principals */
.staff-grid--principals .type-staff {
  flex: 0 0 calc(50% - 1.1rem) !important;
  width: calc(50% - 0.75rem);
  max-width: calc(50% - 0.75rem);
  box-sizing: border-box;
}

/* Ensure the image container fills 100% of the card width */
.type-staff .card-image-wrapper {
  width: 100%;
}

.type-staff .card-image-wrapper img {
  width: 100%;
  height: auto;
  aspect-ratio: 419 / 576;
  object-fit: cover;
}

/* Responsive adjustments */
@media (max-width: 900px) {
  .staff-grid--team .type-staff {
    flex: 0 0 calc(50% - 0.75rem) !important;
    width: calc(50% - 0.75rem);
    max-width: calc(50% - 0.75rem);
  }
}

@media (max-width: 420px) {
  .staff-grid--team .type-staff,
  .staff-grid--principals .type-staff {
    flex: 0 0 100% !important;
    width: 100%;
    max-width: 100%;
  }
}

/* form work  */

.nf-field-element input,  .nf-field-element textarea {min-height:46px; border:1px solid #77c144 }

.nf-form-content input[type=submit] {
display: inline-block;
font-weight: 600 !important;
text-align: center;
vertical-align: middle;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
line-height: 1.5;
transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
text-transform: uppercase;
font-size: 14px !important;
border-radius: 0;
height: auto !important;
padding: .45em 1em !important;
-webkit-transition: all 0.4s ease;
-moz-transition: all 0.4s ease;
-o-transition: all 0.4s ease;
transition: all 0.4s ease;
border: 2px solid #77c144 !important;
background: #1d5b7d;
color: #fff !important;
margin:11px auto !important; 
display:block
}
.nf-form-content input[type=submit]:hover {background:#77c144; color:#000; }

.nf-form-fields-required {font-size:.9rem; margin-bottom: 22px;}

.list-radio-wrap .nf-field-element li input { min-height:1rem}

.list-radio-wrap .nf-field-element input[type="radio"] {
    display: inline-block;
    vertical-align: middle;
    margin-right: 8px;
	height:11px !important
}

.list-radio-wrap .nf-field-element li label {
    display: inline-block;
    vertical-align: middle;
    margin-bottom: 0;
	margin-left: .5em !important;
}






@media (max-width: 781px) {
  .sericeRows  .wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column {
        margin-bottom: 32px;
    }
.sericeRows .wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column img {max-width:280px; display:block; text-align:center; margin:auto}
}



/* Single Job Posting Layout */
.single-job .wp-block-post-featured-image {
  margin-bottom: 1.5rem;
}

@media (min-width: 768px) {
  .single-job .wp-block-post-featured-image {
    float: right;
    margin-left: 2rem;
    margin-bottom: 1.5rem;
    max-width: 300px;
  }
}

/* Application Form Container */
.job-application-section {
  background-color: #f9f9f9;
  padding: 2rem;
  border-radius: 8px;
  border-top: 3px solid #77c144;
}

.job-application-section h2 {
  margin-top: 0;
  margin-bottom: 1.5rem;
}

/* Employment Page  */

.jobs-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}

/* Hide header row on mobile */
.jobs-header {
  display: none;
}

/* Base Job Card (Mobile First) */
.job-card {
  position: relative; /* Container for stretched link */
  display: grid;
  /* 2-column layout on mobile: [Content | Arrow] */
  grid-template-columns: 1fr auto;
  gap: 0.75rem;
  padding: 1.25rem;
  background-color: #ffffff;
  /* border-top: 1px solid #77c144; */
  border-bottom: 1px solid #77c144;
  margin-top: -1px; /* Prevents double borders */
  align-items: center;
  transition: background-color 0.2s ease;
margin:0;
}

/* Stretches the link to fill the entire .job-card element */
.job-card-link::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
}

.job-card:hover {
  background-color: #f9f9f9;
}
.job-card:hover .job-action svg {fill:#77c144 !important}

.job-card-link {
  font-size: 1.125rem;
  font-weight: 600;
  color: #111;
  text-decoration: none;
}

.job-card:hover .job-card-link {
  text-decoration: underline;
}

/* Action & Icon Styling */
.job-action {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  /* Keeps arrow on the far right column on mobile */
  grid-column: 2;
  grid-row: 1 / span 2;
}

.job-arrow-icon {
  width: 32px;
  height: 32px;
  fill: #305b7a;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
/*
.job-card:hover .job-arrow-icon {
  transform: translateX(3px);
}
*/

/* Desktop Styles (>= 768px) */
@media (min-width: 768px) {
  .jobs-header,
  .job-card {
    /* Category | Job Title | Arrow */
    grid-template-columns: 25% 1fr auto;
    gap: 1.5rem;
  }

  .jobs-header {
    display: grid;
    padding: 0.75rem 1.25rem;
    font-weight: 700;
    color: #333;
    border-bottom: 2px solid #305b7a;
  }

  .job-action {
    grid-column: auto;
    grid-row: auto;
  }

  .job-label {
    display: none; /* Hide mobile inline label on desktop */
  }
}

.nf-fu-fileinput-button {
padding: 8px;
border:.8px solid #77c144;
font-size: 1.1em;
background: #305b7a;
color: #fff;
margin-left: 8px;
}


/* blog styles */


		/* ==========================================================================
   Blog Feed Container
   ========================================================================== */
.blog-feed {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}


/* ==========================================================================
   Blog Card Row Layout (Desktop)
   ========================================================================== */
.blog-card article,  article.blog-card {
  display: flex;
  gap: 1.5rem;
  align-items: center; 
}

/* Fixed-width Media Column with height bounds & background fallback */
.blog-card__media {
  flex: 0 0 260px;
  width: 260px;
  max-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start; /* PREVENTS STRETCHING: centers container vertically beside text */
  background-color: #f4f4f5;
  border-radius: 6px;
  overflow: hidden;
}

/* Constrained desktop image fit */
.blog-card__media img {
  width: 100%;
  height: auto; /* Lets image scale naturally within max-height */
  max-height: 320px;
  object-fit: contain;
  max-width: 278px;
  display: block;
}

/* Copy Column */
.blog-card__content {
  flex: 1;
}

.blog-card__content h2 {
  margin-top: 0;
}
			
.blog-card__content h2 { margin-top: 0 !important; /* Ensures baseline aligns nicely with top of thumbnail */ }
			
li.blog-card, .archive li .blog-card {border-bottom:.13em solid #77c144; padding:0 0 2rem}
li.blog-card:last-child, li.blog-card:last-child {border-bottom:none; padding:0 0 2rem}

/* ==========================================================================
   Mobile Responsive Overrides (< 640px)
   ========================================================================== */
@media (max-width: 640px) {
	
	.blog-card__content h2 {text-wrap:balance; text-wrap:pretty; text-align:center}
	
	li.blog-card { padding:0 0 1.2rem}
	
  .blog-card article {
    flex-direction: column;
    align-items: stretch;
  }

  /* Removes grey frame and lets container wrap true image dimensions */
  .blog-card__media {
    flex: 0 0 auto;
    width: 100%;
    max-height: none;
    background-color: transparent;
    border-radius: 0;
  }

  /* Lets image display at its natural height with no letterboxing */
  .blog-card__media img {
    width: 100%;
    height: auto;
    object-fit: initial;
  }
}
			
.archive .blog-card__content {margin-top:0 !important; padding-top:0!important}
.archive .blog-card__content a {text-decoration:underline;}

		/* blog single  */

    .single-post h1 {}
    
    .heroSingle {
        background: #2b5370; 
        margin-bottom: 32px;
    }
    
    .heroLeft .is-eyebrow {
        color: #fff; 
        text-transform: uppercase; 
        letter-spacing: .1em; 
        margin-bottom: 11px;
    }
    
    .heroSingleContain {
        display: flex; 
        flex-direction: row; 
        align-items: center; 
        justify-content: center; 
        padding: 2%; 
        max-width: 1080px; 
        margin: 0 auto;
    }
    
    .heroSingle h1 {
        color: #fff; 
        text-transform: none; 
        text-wrap: balance;
        text-align: left; 
        font-size: clamp(1.8rem, 3vw, 2.6rem) !important;
    }
    
    .heroLeft { 
        width: 60%;
    }

    .heroRight {
        width: 40%;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    .heroPhoto {
        display: flex;
        align-items: center; 
        justify-content: center; 
        padding: 3%;
        width: 100%;
    }

    .heroPhoto img {
        width: 100%;
        height: auto;
        max-width: 400px;  /* Adjust max width limit here */
        max-height: 320px; /* Adjust max height limit here */
        object-fit: contain; /* Guarantees the entire image shows without cropping */
        display: block;
    }
    
    @media (max-width: 980px) {
        .heroSingleContain {
            flex-direction: column-reverse; 
        }
        .heroLeft, 
        .heroRight {
            width: 100%;
        }
        .heroLeft {
            text-align: center; 
        }
        .heroLeft h1 {
            text-align: center; 
            text-wrap: pretty; 
            text-wrap: balance;
        }
    }


/* Scoped zero-gap columns reset */
.wp-block-columns.has-zero-gap {
	gap: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.wp-block-columns.has-zero-gap > .wp-block-column {
	padding: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Mobile stacking adjustment for scoped zero-gap columns */
@media (max-width: 781px) {
	.wp-block-columns.has-zero-gap > .wp-block-column {
		flex-basis: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}
}

@media (max-width: 919px) {
.wp-block-column.headerLeftCol {flex-basis:50% !important}
	
	.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis] {
min-width: 50vw !important;
}
}


.happy-customer {
gap: 1rem !important;
}



/* ==========================================================================
   Blog Pagination
   ========================================================================== */
.blog-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  margin-top: 3rem;
  font-family: inherit;
	font-weight:500;
}

.blog-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0.85rem;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  color: #374151;
  text-decoration: none;
  font-size: 0.95rem;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.blog-pagination .page-numbers:hover {
  background-color: #f3f4f6;
  border-color: #9ca3af;
}

.blog-pagination .page-numbers.current {
  background-color: #77c144;
  border-color: #77c144;
  color: #000;
  font-weight: 900;
}

.blog-pagination .page-numbers.dots {
  border: none;
  background: transparent;
}

.wp-block-table td {border:none}

.suasion {
margin: 12px auto 0 !important;
font-size: 11px;
width: 100%;
text-align: center;
padding-bottom: 32px;
	color:#fff;
letter-spacing:.08em;
}
.suasion a {color:#fff; }

.copywrite {
margin: 12px auto 0 !important;
font-size: .9rem;
width: 100%;
text-align: center;
padding-bottom: 12px;
	color:#fff;
letter-spacing:.08em;
}

