﻿:root {

/* Base */
  font-size: 14px;

/* Type scale */
--font-size-base: 1rem;
--line-height-base: 1.3;

/* Colors */
  --clr-blue: #00386C;
  --clr-red: #B5020B;
  --clr-redmed: #A7111B;
  --clr-reddark: #8F0409; 
  --clr-reddarker: #580102; 
  --clr-grey: #999;
  --clr-greylite: #999;
  --text-body: #000000;
  --clr-white: #ffffff;
  --clr-black: #000000;

  --font-default: 'Source Sans Pro', Arial, sans-serif;
  --clr-blue-hue: 0, 56, 108;
  --clr-red-hue: 237, 28, 36;
  --clr-white-hue: 255, 255, 255;
  --clr-black-hue: 0, 0, 0;
}

body {
    background-color: var(--clr-white);
}

@view-transition {
  navigation: auto;
}

/* =====================================================================
	SHOW OR HIDE ELEMENTS
===================================================================== */
.navr {
    display: none !important;
}

.addressfixpositionheader {
    margin-top: 68px;
}

/* =====================================================================
	WRAPPER / NON-RESPONSIVE ELEMENTS
===================================================================== */
.wrapper {
    clear: both; 
    position: relative;
    font-family: var(--font-default);
    width: 100%;
    max-width: 1910px;
    height: 100%;
    min-height: 100vh;
	z-index: 0;
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    box-sizing: border-box;
    background-color: #ffffff;
    overflow: hidden;
    margin: 0 auto;
}

.baserow {
    clear: both; 
    position: relative;
    width: 100%; 
}

.basewidth {
    position: relative;
    margin: 0 auto;
}
    
#basecontainer {
    position: relative; 
    font-size: 14px;
    font-family: var(--font-default);
    box-sizing:border-box;
    -moz-box-sizing:border-box; /* Firefox */ 
}

.basesectionwidth {
    position: relative; 
    box-sizing:border-box;
    -moz-box-sizing:border-box; /* Firefox */
}

.basegridwidth {
    position: relative;
    margin: 0 auto; 
    box-sizing:border-box;
    -moz-box-sizing:border-box; /* Firefox */
}
    
.contentwidth {
    width: 90%;
    position: relative;
    margin: 0 auto; 
    box-sizing:border-box;
    -moz-box-sizing:border-box; /* Firefox */
    max-width: 1800px;
}
          

/*  HEADER / DEFAULT    ================= */
header.animateheader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 120px;
    background: var(--clr-white);
    border-bottom: 2px solid var(--clr-white);
    transition: all .4s ease;
    z-index: 104;    
    box-shadow: 5px 5px 9px rgba(var(--clr-black-hue), 0.4), inset 0 0 0 var(--clr-white);
}

.baserow.animateheader .basewidth, .baserow.animateutility .basewidth {
    max-width: 1800px;
    width: 90%;
}

header.animateheader::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    box-shadow: 0 5px 9px rgba(var(--clr-black-hue), 0.2), inset 0 -1px 0 var(--clr-red);
}

header.animateheader .logo {
    position: absolute;
    top: 50px; 
    left: 26px;
    transition: all .6s ease; 
}

header.animateheader .logo img {
    position: absolute;
    width: 130px;
    transition: all .6s ease; 
}

header.animateheader .logosmall {
    position: absolute;
    top: 50px; 
    left: 26px;
	opacity: 0;
    transition: all .6s ease; 
}

header.animateheader .logosmall img {
    position: absolute;
    width: 110px;
    transition: all .6s ease; 
}

/*  HEADER / SMALLER    ================= */
header.animateheader.smaller {
    top: 0;
    z-index: 106;
    height: 70px;
    transition: all .4s ease; 
    background-color: var(--clr-white);
    box-shadow: 5px 5px 9px rgba(var(--clr-black-hue), 0.4), inset 0 0 0 var(--clr-white);
}

header.animateheader.smaller .logosmall {
	top: 14px;
	opacity: 1;
    transition: all .6s ease; 
}

header.animateheader.smaller .logosmall img {
    transition: all .6s ease; 
}

header.animateheader.smaller .logo {
	opacity: 0;
    top: -50px;
    left: 26px; 
    transition: all .6s ease; 
}

header.animateheader.smaller .logo img {
	opacity: 0;
    transition: all .6s ease; 
}

.mainnav {
    position: absolute;
    height: 45px;
    top: 55px;
    right: 20px;
    z-index: 102;
    transition: all .3s ease; 
}

header.animateheader.smaller .mainnav {
    top: 14px; 
    transition: all .3s ease; 
}

/* UTILITY NAV
---------------------------------------- */
.animateutility {
    position: fixed;
    display: block;
    top: 0;
    right: 0;
    width: 100%;
    height: 30px;
    background: var(--clr-white);
    z-index: 300;
    transition: all .3s ease;
}

.animateutility.smaller {
    top: -60px;
    transition: all .3s ease;

}

.utility {
    position: absolute;
    top: 8px;
    right: 26px;
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 12px;
    text-transform: uppercase;
}
    
.utility a {
    color: var(--clr-red); 
    text-decoration: none;
    padding: 0 10px;
    letter-spacing: .06em;
    transition: all 1s ease;
    font-weight: 400;
    }
    
.utility a:hover {
    color: #00386C;
    }

/* ── HEADER Search Container & Input ───────────────────────────── */
.pubsearch {
    display: flex;
    align-items: center;
    gap: 4px;
}

.pubsearch input {
    padding: 4px 8px;
    width: 142px;
    border: 1px solid #CCD7E2;
    background-color: #ffffff;
    color: var(--clr-blue);
    font-family: var( --font-default);
    font-size: 0.9rem;
    font-weight: 400;
    transition: background-color 0.2s ease;
}

.pubsearch #btnSearch {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background-color: var(--clr-red);
    color: var(--clr-white);
    font-size: 0.85rem;
    width: 25px;
    height: 24px;
    transition: color 0.2s ease;
    outline: 1px solid rgba(var(--clr-white-hue), 0.5);
    outline-offset: -2px;
    box-shadow: 3px 3px 6px rgba(var(--clr-black-hue), 0.3);
}

.pubsearch #btnSearch:hover {
    background-color: var(--clr-blue);
    box-shadow: 1px 1px 2px rgba(var(--clr-black-hue), 0.4);
}

.pubsearch input:focus {
    outline: 1px solid rgba(var(--clr-blue-hue), 0.5);
    outline-offset: 0;
}

/* =====================================================================
	BANNER SUB / NON-RESPONSIVE ELEMENTS
===================================================================== */
.subbanner{
    position: relative;
    top: 66px;
    left: 0;
    height: 75px;
    width: 100%;
    margin: 0 auto;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center right;
}

.subbanner img {
    display: block;
    width: 100%;
    height: 75px; /* or whatever height works at full size */
    object-fit: cover;
    object-position: center center; /* anchors the right side on crop */
}

/* SUB PARENT TITLE
----------------------------------------*/
.subparenttitle {
    position: relative;
    width: 100%;
    max-width: 1800px;
    margin: 0 auto;
    z-index: 6;
    top: 20px;
    padding: 0;
 }

.subparenttitle h1,.subparenttitle h2 {
    color: #ffffff;
    text-transform: uppercase;
    font-weight: 700;
    font-size: 26px;
    line-height: 1;
    padding: 0 0 0 14px;
    margin: 0;
    letter-spacing: .04em;
}

.subparenttitle .h2-style {
    color: #ffffff;
    text-transform: uppercase;
    font-weight: 700;
    font-size: 26px;
    line-height: 1;
    padding: 0 0 0 14px;
    margin: 0;
    letter-spacing: .04em;
}

.subparenttitle:before {
    content: '';
    position: absolute;
    top: 12px;
    left: -98px;
    height: 1px;
    width: 100px;
    background-color: var(--clr-white);
}

.subparenttitle h2 {
    color: var(--clr-white);
    text-transform: uppercase;
    }


/* ── Search Results ─────────────────────────── */
.searchresults {
    width: 100%;
    padding: 8px 0 0;
}
.searchresults ul {
    margin: 5px 0 20px;
    padding: 0;
}
.searchresults ul li {
    margin: 8px 0 15px 10px;
    padding: 0 45px 0 10px;
    list-style: none;
    line-height: 1.5;
}
.searchgrouplabel {
    clear: both;
    color: var(--clr-red);
    font-size: 1.8rem;
    font-weight: 600;
    text-transform: uppercase;
    border-bottom: 1px solid #CCD7E2;
}
.searchpagetitle {
    clear: both;
    color: var(--clr-blue);
    font-size: 1.6rem; /* 16px */
    font-weight: 600;
}
.searchpagedescrip {
    clear: both;
    color: #333;
    font-size: 1.4rem; /* 14px */
    line-height: 2;
    font-weight: 400;
}
.searchpagelink a {
    color: var(--clr-red);
    font-size: 1.1rem;
    text-transform: uppercase;
    transition: color 0.2s ease;
}
.searchpagelink a:hover {
    color: var(--clr-blue);
}

.pubsearchpagedescrip {
    clear: both;
    width: 80%;
    font-size: 18px;
    line-height: 1.5;
    color: #010101;
    font-weight: 400;
    letter-spacing: .02em;
    margin: 0 0 4px 0;
    padding: 0;
}

.searchresults ul {margin: 10px 0 16px 0; padding: 0 0 0 0; display: block; position: relative;}

.searchresults ul li  {margin: 5px 0 5px 25px; padding: 0 50px 0 25px; line-height: 1.5; list-style-type:none; position: relative;}

.searchresults ul li:before {   
    position: absolute;
    top: 15px;
    left: 0;
    background-color: var(--clr-red);
    content: "";
    height: 2px;
    width: 12px;
    transition: all .2s;
}



/* BANNER ACCENT  
----------------------------------------*/
.banneraccentgrid {
    position: relative;
    display: grid;
    width: 100%;
    margin: 0 auto;
    grid-template-columns: 100%;
}

.banneraccent {
    display: block;
    clear: both;
    position: relative;
    top: -1px;
    left: 0;
    height: 12px;
    width: 57%;
    background-image: url("/Themes/Default/Content/Images/accent-small-right-red-angle-up.png");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: left top;
    z-index: 1;
 }

.banneraccent.contactpage {
    right: 0 !important;
    left: auto !important;
    width: 67%;
    background-image: url("/Themes/Default/Content/Images/accent-small-left--red-angle-up.png") !important;
    background-position: left top;
    justify-self: end;
}

.banneraccent.servicepage {
    right: 0 !important;
    left: auto !important;
    width: 67%;
    background-image: url("/Themes/Default/Content/Images/accent-small-left--red-angle-up.png") !important;
    background-position: left top;
    justify-self: end;
}

.banneraccent.subpage {
    right: 0 !important;
    left: auto !important;
    width: 67%;
    background-image: url(/Themes/Default/Content/Images/accent-small-left--red-angle-up.png) !important;
    background-position: left top;
    justify-self: end;
}

/* CONTENT GRID - SUBPAGES  
----------------------------------------*/
.contentontop {
    z-index: 6;
    position: relative;
    background-color: #ffffff;
    margin-top: 78px;
    }
    

.contentgrid .pagetitle h1, .contentgrid .pagetitle h2, .contentgrid .pagetitle h3 {
    font-weight: 500; 
    color: var(--clr-white);
    text-transform: uppercase;
    text-align: left; 
    }    

.contentblock {
    clear: both;
    padding: 0 0 0 0;
    width: 100%;
    }  
    
.noheightblock {
    min-height: 0 !important;
    _height: 0 !important;
    }  

.bluedivider {
    background-image: url("/Themes/Default/Content/Images/bg-banner-text-midblue-left.png");
    }
    
.lightbluedivider {
    display: none;
    height: 0;
    }

.newsgrid, .contactgrid {
    box-sizing:border-box;
    -moz-box-sizing:border-box; /* Firefox */
    }
    
.newsgridfixed, .contactgridfixed {
    display: block;
    position: relative;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    margin-right: 20px;
    }
    
.locationgrid {
    }


/* SUBNAV 
----------------------------------------*/
.subnavontop {
    position: relative;
    top: 39px;
    z-index: 7;
    }

.subnavarea {
    display: block;
    width: 100%;
    height: 38px;
    margin: 0 auto;
    background-color: #F4F5F5;
    border-bottom: 1px solid #99AFC4;
    margin: 0 auto;
    box-shadow: 0 5px 5px rgba(var(--clr-black-hue), 0.3);
    }

.subnav {
    width: 100%;
    display: flex;
    justify-content: flex-start;
    gap: 20px;
    position: relative;

}

.subnav::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: var(--indicator-left, 0px);
    width: var(--indicator-width, 0px);
    height: 2px;
    background-color: #B5020B;
    transition: left 0.2s ease, width 0.2s ease, opacity 0.2s ease;
    opacity: 0;
}

.subnav a {
    position: relative;
    display: block;
    font-weight: 400;
    color: #336089;
    font-size: 14px;
    line-height: 1.15;
    text-decoration: none;
    text-transform: uppercase;
    background-color: transparent;
    padding: 10px 5px 10px 5px;
}

.subnav.is-hovering::after {
    opacity: 1;
}

/* Remove border-bottom from hover/active — let the indicator handle it */
.subnav a:hover {
    color: #B5020B;
}

.subnav a.activeSub {
    color: #B5020B;
    transition: all .4s ease;
}
       
.returnto a {
    position: absolute;
    top: 0;
    left: 0;
    font-weight: 400;
    color: #336089;
    font-size: 14px;
    text-decoration: none;
    text-transform: uppercase;
    background-color: rgba(0, 0, 0, 0);
    margin: 0 10px 0 10px;
    padding: 9px 5px 10px 5px;   
    }
    
.returnto a:hover {
    color: #B5020B;
    padding: 9px 5px 10px 5px;
    border-bottom: 2px #B5020B solid;
    } 



/* CONTENT GRID - SUBPAGES  
----------------------------------------*/
.contentarea {
    position: relative;
    padding: 0;
}

.contentgrid {    
    position: relative;
    display: grid;
    width: 99%;
    margin: 0 auto;
    grid-template-columns: 70% 29%;
    justify-content: space-between;
    align-items: start;
    row-gap: 0;
    column-gap: 20px;
    height: 100%;
    min-height: 650px;
    z-index: 2;
    margin-bottom: 100px;
    }  


.contentgriditem .contentblock  {
    width: 94%;
}

.contentgrid.contentcontactgrid {
    grid-template-columns: 55% 45%;
}

.contentgrid.fullwidth {
    position: relative;
    grid-template-columns: 100%;    
    row-gap: 0;
    column-gap: 0;
 }  

.contentgriditem.contentblockcontainer {
    margin-top: 34px;
}

/* CONTENT GRID - SIDE BAR
----------------------------------------*/
.contentgriditem.sidecontentblockcontainer {
    margin-top: 30px;
}

/* CONTENT GRID - SERVICE DETAILS
----------------------------------------*/
.contentgrid.contentservicegrid {
    grid-template-columns: 70% 30%;
}

.contentgriditem.servicegridimg {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    margin-top: -13px;
    border: 2px solid var(--clr-red);
	box-shadow: 5px 5px 10px rgba(0,0,0,.4);
}

.servicegridimg img {
    display: block;
    width: 100%;
}

.subpagegridimg {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    margin-top: -43px;
    border: 2px solid var(--clr-red);
	box-shadow: 5px 5px 10px rgba(0,0,0,.4);
    margin-bottom: 25px;
    margin-left: 2%
}

.subpagegridimg img {
    display: block;
    width: 100%;
}

.contentgrid.contentapprovalegrid {
    grid-template-columns: 58% 40% !important;
    margin-top: 0;
}

.contentapprovalegrid .contentblock.pageintro {
    padding: 0 0 20px 0;
}

.contentgriditem.approvalgridlist{
    height: 100%;
    margin-top: 40px;
    margin-right: -35px;
}

.pleaseclick {
    position:relative;
    color: var(--clr-red);
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: .02em;
    margin-bottom: 04px;
}

.pleaseclick:after {
    content: '';
    position: absolute;
    top: 24px;
    left: 0;
    height: 1px;
    width: 100%;
    background-color: var(--clr-red);
}

.approvaldocumentelement {
    position: relative;
    clear: both;
    display: block;
    margin: 0 0;
    padding: 10px 30px;
    border-bottom: 1px solid rgba(var(--clr-red-hue), 0.2);
}

.approvaldocumentelement:before {
    content: '';
    position: absolute;
    top: 24px;
    left: 13px;
    height: 1px;
    width: 10px;
    background-color: var(--clr-red);
}

.approvallistgriditem {
    position: relative;
}

.approvallistgriditem a {
    display: block;
    position: relative;
    text-decoration: none;
    letter-spacing: 0;
}

.approvallistgriditem a:hover {
    background-color: rgba(var(--clr-red-hue), 0.04) !important;
    color: var(--clr-white) !important;
}

.approvallistgriditem a:nth-child(even) {
    background-color: rgba(var(--clr-black-hue), 0.03);
}


.approvallistgriditem a:nth-child(odd) {
    background-color: var(--clr-white-hue);
}

.approvaldocumentelement h3 {
    clear: both;
    display: block;
    color: var(--clr-red);
    font-size: 20px;
    font-weight: 600;
}

.approvaldocumentelement h4 {
    clear: both;
    display: block;
    color: var(--text-body);
    font-size: 14px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: .03em;
    margin: 2px 0 2px 0;
}

/* CONTENT GRID - CONTACT PAGE
----------------------------------------*/
.contentgriditem.mapcontainer {
    position: relative;
    display: block;
    width: 95%;
    margin-top: -12px;
}

.mapcontainer iframe {
	border: 1px solid var(--clr-red);
	padding:4px;
	box-shadow: 0 10px 30px rgba(0,0,0,.2);
	width: 95% !important;
    background-color: var(--clr-white);
}
 

/* CONTENT GRID - PAGE TITLES
----------------------------------------*/
.contentgrid .pagetitle h1, .contentgrid .pagetitle h2, .contentgrid .pagetitle h3 {
    display: inline-block;
    font-size: 32px;
    letter-spacing: .03em;
    font-weight: 900; 
    color: var(--clr-blue);
    text-align: left; 
    padding-bottom: 10px;
    }    

.contentgrid .pagetitle h1:after, .contentgrid .pagetitle h2:after {
    content: '';
    display: inline-block;
    vertical-align: middle;
    height: 1px;
    width: 125px;
    margin-left: 25px;
    background-color: var(--clr-red);
}

.contentblock {
    clear: both;
    padding: 0 0 0 0;
    width: 100%;
    }  

.contentblock.pageintro.SubpageIntroCBStyle:empty { 
    display: none !important;
    padding: 0 0 0 0 !important; 

}

.contentblock.pageintro {
    display: block;
    clear: both;
    padding: 0 0 20px 0;
    width: 100%;
    max-width: 1140px;
    min-width: 585px;
    min-height: unset;
    _height: unset;
}

.contentblock.pageintro.extrapaddingforservice  {
    padding: 24px 0 20px 0;
}

.contenttopgrid .contentblock.pageintro {
    width: 70%;
}

.noheightblock {
    min-height: 0 !important;
    _height: 0 !important;
    }  


.sidebarcontentblock {
    padding-right: 0;
    margin-left: 3%
}

/* =====================================================================
	PARENT TITLE / NON-RESPONSIVE ELEMENTS
===================================================================== */
.parenttitle {
    position: absolute;
    width: 100%;
}

.parenttitle h1, .parenttitle h2 { 
    color: #ffffff;
}

/* =====================================================================
	CONTENT CONTAINER / NON-RESPONSIVE ELEMENTS
===================================================================== */
.basegridcontainer {
    margin-top: 45px;
}

.contentcontainer { 
    min-height: 650px;
    _height: 650px;
}

.contentcontainer .pagetitle {
    position: relative;
    clear: both;
    z-index: 10;
    text-align: left;
}

.contentcontainer .pagetitle h1, .contentcontainer .pagetitle h2  {
    font-weight: 300;
    color: var(--clr-red);
}

.contentcontainer .contentholder {
    z-index: 9;
}
.contentblock { /* STYLE IS RESPONSIVE */ }

/* =====================================================================
    READ MORE LINKS / NON-RESPONSIVE ELEMENTS 
===================================================================== */ 
.readmore {
    position: relative;
    padding-bottom: 12px;
    }


.readmore a {
    display: inline-block;
    clear: both;
    font-weight: 600;
    font-size: 14px;
    letter-spacing: .06em;
    color: var(--clr-blue);
    border-top: 1px solid var(--clr-blue);
    margin: 35px 0 0 0;
    padding: 5px 40px 0 0;
    text-decoration: none;
    text-transform: uppercase;  
    }

 .readmore a:hover {
    color: var(--clr-redmed);
    border-top: 1px solid var(--clr-redmed);
    padding: 5px 60px 0 0;
    }


/* =====================================================================
    RETURN TO LINKS / NON-RESPONSIVE ELEMENTS 
===================================================================== */ 
.returnto .link {
    padding: 0 0 0 0;
}
   
.returnto .link a {
    position: relative;
    display: block;
    text-align: right;
    font-weight: 400;
    color: #666666;
    font-size: 14px;
    text-decoration: none;
}

.returnto .link a:hover {
    color: #333333;
}
    
.returnto .link a:before {
    position: absolute;
    top: 2.5px;
    right: 100px;
    font-family: 'df-icomoon';
    content:"\e62d";
    font-size: 12px;
    opacity: 0;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	text-decoration: none;
    transition: all .6s ease;
}
       
.returnto .link a:hover:before  {
    right: 110px;
    opacity: 1;
    color: var(--brand-main-color);
    background-color:#ffffff;
	margin-right: 8px;
    transition: all .4s ease;
    } 

/* =====================================================================
	FOOTER / NON-RESPONSIVE ELEMENTS 
===================================================================== */  
.footer {
    position: relative;
    clear: both; 
    width: 100%;
    font-size: 14px;
    color: var(--clr-blue);
    background-color: #F4F5F5;
    z-index: 101;
	letter-spacing: .04em;
    border-top: 1px solid var(--clr-red);
}

.footergrid {
  position: relative;
  display: grid;
  grid-template-columns: 49% 49%;
  justify-content: space-between;
    max-width: 1800px;
    width: 90%;
}

.footergrid .footergriditem {
  position: relative;
  padding: 24px 3% 84px 3%;
  text-align: left;
  box-sizing: border-box;
}

.footergrid .footergriditem.rightcol {
  text-align: right;
}

.footercopyright {
    text-transform: uppercase;
}

.footeraddress {
	display: block;
	padding: 12px 0;
	line-height: 22px;
}

.footeraddress a {
	display: block;
	padding: 8px 0;
	line-height: 16px;
	letter-spacing: .04em;
    color: var(--clr-blue);
    text-transform: uppercase;
    font-weight: 700;
}

.footeraddress span {
    text-transform: uppercase;
    font-weight: 700;
}

.footercontact {
	display: block;
    clear: both;
	padding: 0 0 50px 0;
}

.footercontact a {
	display: block;
	padding: 2px 0;
	line-height: 16px;
	letter-spacing: .04em;
    color: var(--clr-blue);
    font-weight: 700;
}

a.dflink {
    font-size: 12px;
    position: relative;
    text-transform: uppercase;
    color: var(--clr-blue);
    text-decoration: none;
    transition: all .4s ease;
    }

a.dflink:hover, a.dflink:hover:before {
    color: var(--clr-blue);
    transition: all .4s ease;
    }
