/* Site-specific overrides on top of the Pivot "emerald" theme. */

.footer-lower-plus{margin-top:10px}
/* Logos carry width/height attributes (no layout shift); the theme's max-height sets the size. */
.logo{width:auto}
/* The theme hides every <br> on phones; the site's line breaks are meaningful (phone numbers, addresses). */
@media all and (max-width:767px){br{display:inline}}

/* Project filters: the theme styles the <li>, the <button> inside only makes it operable. */
.filters li{padding:0}
.filters li button{display:block;width:100%;padding:8px 16px;background:none;border:0;color:inherit;font:inherit;cursor:pointer}

/* Buttons and inline links in the accessible green; links inside text are underlined. */
.btn{color:#1b7a54;border-color:#1b7a54}
.btn:hover,input[type="submit"].btn:hover{background:#1b7a54;border-color:#1b7a54;color:#fff}
.project-planner .btn:hover{color:#145c3f}
.main-container p a,.form-notice a{text-decoration:underline}
/* Dark fallback behind white text until (or if) the banner image loads. */
.page-header{background-color:#2f3a32}

/* ---- Accessibility: readable colours (WCAG AA, >= 4.5:1 on #fff and #f7f7f7) ---- */
body{color:#666}
a,.text-link,.uppercase,.wide-feature h2,.contained-projects .project h2,.action-strip-1 .alt-font,.action-strip-1 .title{color:#1b7a54}
.text-link{border-color:#1b7a54}
.text-link:hover{color:#145c3f}
.filters li{color:#767676;border-color:#767676}
.filters li.active,.filters li:hover,.planner-option.active{color:#1b7a54;border-color:#1b7a54}
.footer-2 .copyright{opacity:1;color:#666}

/* ---- Accessibility: keyboard focus ---- */
.skip-link{position:absolute;left:-10000px;top:0;z-index:1000;background:#fff;color:#1b7a54;padding:12px 16px}
.skip-link:focus{left:16px;top:16px}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible,.input-standard:focus-visible,.btn:focus-visible{outline:2px solid #1b7a54;outline-offset:2px}
.nav-1 a:focus-visible,.mobile-toggle:focus-visible{outline-color:#fff}
.nav-1 ul li:focus-within > ul{max-height:400px;opacity:1;visibility:visible;max-width:400px}
.planner-option:focus-within,.planner-radio:focus-within .radio-outer{outline:2px solid #1b7a54;outline-offset:2px}

/*
 * Heading look-alikes: the theme styles h1-h5 by tag, but the document outline
 * needs different levels. .as-hN reproduces the theme's hN style on any element.
 */
.as-h1,.as-h3,.as-h4,.as-h5,p.as-h1,p.as-h3,p.as-h4,p.as-h5{font-family:'Lato','Roboto',"Helvetica Neue",Helvetica,Arial,sans-serif;color:#333;margin-top:0}
.as-h1,p.as-h1{font-size:48px;line-height:56px;font-weight:300;margin-bottom:32px}
.as-h3,p.as-h3{font-size:28px;line-height:34px;font-weight:300;margin-bottom:24px;color:#1b7a54}
.as-h4,p.as-h4{font-size:24px;line-height:32px;font-weight:300;margin-bottom:24px}
.as-h5,p.as-h5{font-size:18px;line-height:28px;font-weight:400;margin-bottom:24px}
@media all and (max-width:767px){
	.as-h1,p.as-h1{font-size:28px;line-height:36px;margin-bottom:24px}
	.as-h3,p.as-h3{font-size:20px;line-height:28px}
	.as-h4,p.as-h4{font-size:18px;line-height:26px}
}
.large-image .as-h1{margin-bottom:16px}
.text-block .as-h4{margin-bottom:48px}
.contact-1 .text-block .as-h4{margin-bottom:24px}
.page-header .as-h4{font-weight:400}
.hover-content .as-h4{margin-bottom:8px}
.contained-projects .project .as-h5{margin:0}

/* ---- Hero slider: show only the first slide until FlexSlider takes over (avoids layout shift) ---- */
.hero-slider .slides > li:not(:first-child){display:none}

/* ---- Project grids: start each row on a new line whatever the tile heights ---- */
@media all and (min-width:992px){.contained-projects .project:nth-child(3n+1){clear:left}}
@media all and (min-width:768px) and (max-width:991px){.contained-projects .project:nth-child(2n+1){clear:left}}

/* ---- Project planner: options are <label>s wrapping a real (visually hidden) input ---- */
.planner-option,.planner-radio{font-weight:400;cursor:pointer}
.planner-option{margin-bottom:20px}
.planner-radio .mock-radio,.planner-radio .radio-outer{display:block}
.planner-option input,.planner-radio input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.planner-sub[hidden]{display:none}

/* ---- Forms ---- */
.form-notice{clear:both;font-size:12px;line-height:18px;margin-bottom:15px}

/* ---- Anti-spam field: off-screen for humans ---- */
.hp-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

/* ---- Google Maps loads only after consent (click) ---- */
.map-consent{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;background:#e9efe9;text-align:center;z-index:2}
.map-consent p{max-width:520px;margin:0;color:#333}
.map-consent .btn{color:#1b7a54;background:#fff}
.map-consent .btn:hover{color:#fff;background:#1b7a54}
.fullwidth-map .map-holder.is-loaded{z-index:auto}

/* ---- Mentions légales ---- */
.legal{padding:80px 0}
.legal h2{margin-top:40px}
.legal h2:first-child{margin-top:0}
.legal ul{list-style:disc;padding-left:20px;margin-bottom:24px}
.legal li{line-height:24px}
