.@charset "utf-8";
/* CSS Document */
/* --- 1. CSS Reset --- */
*, *::before, *::after {
		box-sizing: border-box;
		margin: 0;
		padding: 0;
}
img, picture, video, canvas, svg {
		display: block;
		max-width: 100%;
}
body {
		font-size: 16px;
		line-height: 1.5;
		font-family: Roboto, sans-serif;
}
ul, ol {
		list-style: none;
}
a {
		text-decoration: none;
		color: inherit;
}
/* --- 2. Global Typography & Body --- */
body {
		width: 100%;
		max-width: 1080px;
		background-color: #093A60;
		font-family: Roboto, sans-serif;
		font-size: 16px;
		line-height: 1.5em;
		margin: 10px auto 20px;
		padding: 0px;
}
p {
		padding-bottom: 6px;
		margin: 0;
}
a:link {
		color: #0974C4;
		text-decoration: none;
}
a:visited {
		color: #0974C4;
		text-decoration: none;
}
a:hover {
		color: #8099FF;
		text-decoration: none;
}
a:active {
		color: #D5EDFF;
		text-decoration: none;
}
h1 {
		color: #5b5656;
		font-family: 'Roboto Condensed', sans-serif;
		font-size: 18px;
		font-weight: 600;
		line-height: 1.25em;
		margin: 0.5em 0;
		padding: 0.25em 0;
		width: 85%;
}
h2 {
		color: #5b5656;
		font-family: 'Roboto Condensed', sans-serif;
		font-size: 18px;
		font-weight: 600;
		line-height: 1.25em;
		margin: 0.25em 0;
		padding: 0.25em 0;
}
h3 {
		color: #5b5656;
		font-family: 'Roboto Condensed', sans-serif;
		font-size: 17px;
		font-weight: 600;
		line-height: 1.25em;
		margin: 0.5em 0;
		padding: 0.25em 0;
}
/* --- 3. Header & Navigation --- */
.hdr {
		background-color: #FFF;
		display: flex;
		justify-content: flex-start; /* left align tout */
		flex-wrap: nowrap;
		align-items: center;
		width: 100%;
}
.hdr-logo {
		flex: 1 1 460px; /* Grow, shrink, and base width */
		max-width: 100%;
}
.hdr-banner {
		flex: 1 1 620px; /* Grow, shrink, and base width */
		max-width: 100%;
}
.nav {
		background-color: #0078Cd;
		margin: 0;
		padding: 0;
		clear: both;
}
.nav ul {
		display: flex;
		justify-content: flex-start;
		margin: 0 30px;
		padding: 0;
}
.nav li {
		display: inline;
		font-size: 16px;
		font-family: 'Roboto Condensed', sans-serif;
		line-height: 30px;
		padding: 4px 19px;
}
.nav a:link, .nav a:visited {
		color: #FFF;
		text-decoration: none;
}
.nav a:hover {
		color: #D5EDFF;
		text-decoration: none;
}
/* --- 4. Main Wrappers --- */
.wraptout-container {
		width: 100% !important;
		max-width: 1080px;
		background-color: #fff;
		margin: 0 !important;
		padding-bottom: 10px;
		overflow: hidden;
}
.wraptout1-container {
		width: 100%;
		max-width: 1080px;
		background-color: #fff;
		margin: 0;
		padding-bottom: 0px;
		/*	overflow: hidden;*/
}
/* --- 5. Home Page Specifics --- */
.columns-hm-gr {
		display: grid;
		grid-template-columns: 2fr 1fr;
		gap: 60px;
		background-color: #fff;
		padding: 0 60px;
}
.content-hm-container {
		background-color: #FFF;
		margin: 0;
		padding: .5em 3em;
		clear: both;
}

.intro {
		margin: 16px 0 0 0;
}
.intro p:first-line {
		color: #5b5656;
		font-size: 18px;
		font-family: 'Roboto Condensed', sans-serif;
		font-weight: 600;
		line-height: 1.5em;
}
.view_hm, .read-more_hm a:link {
		font-family: 'Roboto Condensed', sans-serif;
		font-size: 15px;
}
/* --- 6. Services & Hub Page Intros --- */
.content-services-container {
		padding: 20px 60px 40px 60px;
		background-color: #FFF;
		clear: both;
}
.content1-container {
		background-color: #fff;
		padding: .5em 3em;
		margin: 0;
		clear: both;
		display: flow-root; /* Add this line! */
}
.projects-intro, .services-intro {
		display: flex;
		column-gap: 40px;
		justify-content: space-between;
		margin-bottom: 20px;
}
.projects-intro p, .services-intro p {
		flex-basis: 50%;
}
/* --- 7. Badges & Labels --- */
.hdbx {
		font-family: 'Roboto Condensed', sans-serif;
		font-size: 15px; /* retenir ou 16 */
		background-color: #CE4012;
		color: #FFF;
		padding: 4px 8px 4px 8px;
}
.hdbxblue {
		font-family: 'Roboto Condensed', sans-serif;
		background-color: #0078Cd;
		color: #FFF;
		padding: 4px 8px 4px 8px;
}
/* --- 8. Project Detail Pages --- */
.projdetail-container {
		margin: 0px;
		padding: 20px 60px;
		background-color: #FFF;
		display: flow-root;
}
.projdetail-container p {
	margin-bottom: 0.8em; 
}
.projectdetail-cols-grid {
		display: grid;
		grid-template-columns: 4fr 1fr;
		gap: 60px;
}
.projdetail-container h1 {
		color: #000;
		font-family: 'Roboto Condensed', sans-serif;
		font-size: 18px;
		font-weight: 600;
		line-height: 1.25em;
		margin: 0.25em 0;
		padding: 0.25em 0;
		width: 78%;
}
.projphotobx {
		margin: 0;
		padding: 0;
}
.projphotobx p {
		margin: .35em 0;
		padding: 0;
}
.enlarge {
		font-family: 'Roboto Condensed', sans-serif;
		font-size: 14px;
		line-height: 1.25em;
		color: #999;
}
/* --- 9. Image Floats (Community Page) --- */

.columns-gr {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 40px;
		margin-top: 0.5rem;
		margin-bottom: 1em; 		
}
.columns-gr-community-news {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 50px;
		margin-top: 6px;
}
h2.news {
		margin: 0.5em 0; /* headers breathing room */
		width: 90%;
}
/* --- 10. Projects Hub Grid (projects.html) --- */

.projtout1080-container {
		display: grid;
		clear: both;
		grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
		gap: 2em .5em;
}
.proj {
		display: flex;
		flex-direction: column;
		padding: 5px 16px 10px 16px;
		border: 1px solid #999;
		background-color: #FFFBF9;
		max-width: 400px;
}
.proj p:last-of-type {
		margin-top: auto;
		padding-top: 15px;
}
.proj-images {
		display: flex;
		gap: 12px;
		padding-top: 12px;
		align-items: flex-start;
}
.proj-images img {
		height: auto;
		max-width: 136px;
		width: auto;
		margin: 0;
		padding: 0;
		display: block;
}
.view {
		font-family: Roboto, sans-serif;
		font-size: 16px;
}

.view a:link, .view a:visited {
    color: #DF480F;
    text-decoration: none;
    border: 1px solid #DF480F;
    padding: .25em .5em;
    display: inline-block;
    transition: all 0.25s ease-in-out; /* fade */
}
.view a:hover {
    color: #FFFFFF;
    background-color: #DF480F;
}
/*.view a:link {
		color: #DF480F;
		text-decoration: none;
		border: 1px solid #DF480F;
		padding: .25em .5em;
}*/
/*.view a:visited {
		color: #DF480F;
}
.view a:hover {
		color: #FFFFFF;
		background-color: #DF480F;
}*/

.location-client-name-container {
		font-family: 'Roboto Condensed', sans-serif;
		margin-bottom: 8px;
}
.location-client-name {
	font-family: 'Roboto Condensed', sans-serif;
	font-weight:600; 
}

/* --- 11. Footer & Utilities --- */

.ftr-hm {
    clear: both;
    margin: 0;
    padding: 10px 60px 20px 60px;
}

.ftr {
		clear: both;
		margin: 0;
		padding: 10px 0 20px 0;
}
.ftr a:link {
		color: #0d49a3;
		text-decoration: none;
}
.ftr a:visited {
		color: #6881A6;
		text-decoration: none;
}
.ftr a:hover {
		color: #4694D2;
		text-decoration: none;
}
.ftr a:active {
		color: #4694D2;
		text-decoration: none;
}
.superscript {
		font-family: Roboto, sans-serif;
		font-size: 10px;
		color: #000;
}
.smnote {
		font-family: Roboto, sans-serif;
		font-size: 12px;
		letter-spacing: .05em;
}
.padtop4 {
		margin: 0;
		padding-top: 4px;
}
.padtop6 {
		margin: 0;
		padding-top: 6px;
}
.padtop12 {
		margin: 0;
		padding-top: 12px;
}
/* --- 12. contact news community  --- */
.columns-contact-gr {
		display: grid;
		grid-template-columns: 2fr 1fr;
		gap: 60px;
		background-color: #fff;
		padding: 1em 3em;
}
.columns-contact-gr p {
    margin-bottom: 0.8em; /* Or 1em, depending on what you settled on */
    padding: 0;
}
.ftr-contact {
    clear: both;
    margin: 0;
    padding: 10px 3em 20px 3em;
}

.container-contact-info {
		display: flex;
		flex-direction: column;
		gap: 10px;
}
.contact-item {
		display: flex;
		align-items: center; /* Center-align vertically */
}
.contact-label {
		margin-right: 10px;
		width: 55px;
}
.contact-info {
		flex: 1;
		text-align: left;
}

.audroite {
		float: right;
		margin: 0;
		padding: 3px 0 6px 16px; /* Keeps the text from bumping into the floated image */
}
.agauche {
		float: left;
		margin: 0;
		padding: 3px 14px 6px 0; /* Keeps the text from bumping into the floated image */
}
.bxd {
		border: 1px solid #DF480F;
		padding: 2px 4px 2px;
		font-family: 'Roboto Condensed', sans-serif;
		font-size: 13px;
		line-height: 1.5em;
		color: #DF480F;
}
.bxd a:link, .bxd a:visited {
		color: #DF480F; /* orange button */
}
.bxd2 {
		border: 1px solid #0974C4;
		padding: 2px 4px 2px;
		font-family: 'Roboto Condensed', sans-serif;
		font-size: 13px;
		line-height: 1.5em;
		color: #DF480F;
}

.quote {
		font-family: 'Roboto Condensed', sans-serif;
		font-weight: 400;
		font-size: 16px;
		line-height: 1.5em;
}
.quote-by {
		font-family: 'Roboto Condensed', sans-serif;
		font-weight: 600;
		font-size: 16px;
		line-height: 1.5em;
}
/* --- Global P7 Styles (Desktop) --- */
.p7GP02 .p7GPtwrapper ul a {
		font-family: 'Roboto Condensed', sans-serif !important;
		font-size: 16px !important; /* Forces desktop to stay at 16px */
		font-weight: 400;
}
.p7GP02 .p7GPcwrapper, .p7GP02 .p7GPcontent p {
		font-family: 'Roboto', sans-serif !important;
}

/* --- 13. Project 7 Image Rotator Quarantine --- */
.p7IRM02, .p7IRM02 * {
    box-sizing: content-box !important;
}
.p7IRM02 img {
    max-width: none !important;
    width: auto !important;
    height: auto !important;
    display: block !important; /* Changed this line to fix the gap */
}

/**********  MEDIA QUERY *******************/
@media (max-width: 768px) {
		body {
				margin-top: 0;
		}
		/* --- Header & Logo Fix --- */
		.hdr {
				flex-wrap: wrap;
				justify-content: flex-start;
		}
		.hdr-logo {
				flex: 1 1 100%;
				display: block;
				text-align: left;
		}
		/* ADDED !important here to force the 102px height swap */
		.hdr-logo img {
				margin-left: 0;
				max-width: 100%;
				height: auto !important;
		}
		.hdr-banner {
				flex: 1 1 100%;
				display: block;
				width: 100%;
		}
		.hdr-banner img {
				width: 100%;
				height: auto !important;
				display: block;
		}
/* --- h3 tag has properties of h2 when 1 column */
	h3 {
			color: #5b5656;
			font-family: 'Roboto Condensed', sans-serif;
			font-size: 18px;
			font-weight: 600;
			line-height: 1.25em;
			margin: 0.25em 0;
			padding: 0.25em 0;
	}
	
		/* --- Navigation Grid --- */
		.nav ul {
				display: grid;
				grid-template-columns: repeat(3, 1fr);
				margin: 0;
				padding: 0;
				border-top: 1px solid rgba(255, 255, 255, 0.5);
		}
		.nav li {
				display: block;
				width: 100%;
				text-align: center;
				padding: 5px;
				background-color: rgba(255, 255, 255, 0.05);
				border-bottom: 1.5px solid rgba(255, 255, 255, 0.3);
				border-right: 1.5px solid rgba(255, 255, 255, 0.3);
				line-height: 24px;
				font-family: 'Roboto Condensed', sans-serif;
				font-weight: 300;
		}
		.nav li:nth-child(3n) {
				border-right: none;
		}
		.nav li:nth-last-child(-n+3) {
				border-bottom: none;
		}
		.nav a {
				letter-spacing: 0.15;
				text-transform: uppercase;
				color: #FFFFFF;
		}
		/* --- Layout Spacing --- */
		.columns-hm-gr {
				display: block;
				padding: 1em;
		}

	.ftr-hm {
        padding: 10px 15px 20px 15px !important;
    }
	
		.content1-container, .content-services-container, .projdetail-container {
				padding-left: 15px !important;
				padding-right: 15px !important;
				padding-top: 10px;
		}
		.columns-gr {
				grid-template-columns: 1fr;
				gap: 20px;
		}
		.columns-gr-community-news {
				grid-template-columns: 1fr;
				gap: 20px;
		}
		.columns-contact-gr {
				display: block;
				padding: 1em;
		}
		.bio-photo {
				width: 125px !important;
				height: auto !important;
		}
		.contact-verplanck {
				margin-top: 1em;
		}
	.ftr-contact {
        padding: 10px 15px 20px 15px !important;
    }
		/* --- P7 Services Page (Consolidated) --- */
		.p7GP02 .p7GPtwrapper {
				float: left;
				margin: 0 !important;
				width: 35% !important;
		}
		.p7GP02 .p7GPcwrapper {
				background-color: #FFFFFF;
				margin: 0 !important;
				padding-left: 38% !important;
		}
		.p7GP02 .p7GPtwrapper ul a {
				font-family: 'Roboto Condensed', sans-serif !important;
				font-size: 14px !important; /* Set to 14px as requested */
				line-height: 1.2em;
				padding: 10px 4px !important;
				text-transform: uppercase;
				word-wrap: break-word;
		}
		.p7GP02 .p7GPcontent p {
				font-family: 'Roboto', sans-serif !important;
				font-size: 15px !important;
				line-height: 1.5;
				padding-top: 16px;
		}
		.p7GPcontent img {
				width: 100% !important;
				height: auto !important;
				margin-bottom: 15px;
				display: block;
		}
		.p7GP02 .p7GPcontent {
				width: 100% !important;
				padding-right: 10px !important;
		}
		/* --- Project Detail Pages --- */
		.projectdetail-cols-grid {
				/*      grid-template-columns: 1fr;*/
				display: block;
		}
		/* Remove top margin/padding from the image column */
		.projphotobx {
				margin: 1em 0 0 0;
				padding: 0;
		}
		/* Remove top margin from the first paragraph inside the image column */
		.projphotobx p:first-of-type {
				margin-top: 0;
		}

		/* Hide the "Click to enlarge" hint */
		.enlarge {
				display: none;
		}
		/* GLOBAL MOBILE LIGHTBOX KILL-SWITCH */
		/* Disables clicks on ANY prettyPhoto link across the entire site on mobile */
		a[rel^='prettyPhoto'] {
				pointer-events: none !important;
				cursor: default !important;
		}
		/* Ensure responsive <picture> hero graphics stretch to fill the mobile column */
		.columns-gr img {
				width: 100% !important;
				height: auto !important;
				margin-bottom: 15px;
		}
		/* Force image container to align flush with left edge of text */
		.projphotobx {
				margin-left: 0 !important;
				margin-right: 0 !important;
				padding-left: 0 !important;
				padding-right: 0 !important;
				width: 100% !important;
				max-width: none !important;
		}
		/* Remove any default paragraph spacing that could cause indentation */
		.projphotobx p {
				margin-left: 0 !important;
				margin-right: 0 !important;
				padding-left: 0 !important;
				padding-right: 0 !important;
		}
/* Make responsive picture wrappers and images full width, stacked, with no margins */
.projphotobx picture, 
.projphotobx img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
    margin: 0 0 15px 0 !important; /* Top, Right, Bottom, Left */
    padding: 0 !important;
}
		/* If the grid is still active, remove gap */
		.projectdetail-cols-grid {
				gap: 0 !important;
		}
} /* Correct single closing bracket for the Media Query */