:root { --main-bg: #fff; --light: #f5f5f5; --light-comp: #4d4d4d; --dark: #333; --dark-comp: #fff; --primary: #b5322f; --primary-comp: #fff; --secondary: #cf2e2e; --secondary-comp: #fff; }
/* GENERAL */
html, body { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 18px; line-height: 1.6; text-align: center; }
body, .row2 h3, footer a, .row2 .grid p, .row3 .grid p, .projects h3, .projects a { color: var(--light-comp, #4d4d4d); }
body, header ul, .hero h1, .hero p, .row1 h2, .row1 h3 { padding: 0; margin: 0; }
h1, h2, h3, h4, h5, h6, p, th, td, dd, dt, li, blockquote { text-align: left; }
h1, h2, h3, h4, h5, h6 { color: var(--primary, #b5322f); line-height: 1.4; }
h1, .home h2 { color: var(--dark, #333); }
img, iframe { max-width: 100%; height: auto; display: block; margin: 0 auto }
iframe { display: block; aspect-ratio: auto 16 / 9; width: 100%; margin: 1em auto; }
.fullwidth { width: 100%; }
a img, iframe { border: none; }
a, .row2 h3, .row4 img, .projects h3 { transition: ease-in-out .3s; }
a, header a:hover, form input[type=submit]:hover, .btn:hover, .row2 a:hover, .projects a:hover, footer a:hover { text-decoration: none; }
a, header a:hover, .row2 a:hover h3, .projects a:hover h3, footer a:hover { color: var(--secondary, #cf2e2e); }
a:hover { text-decoration: underline; }
hr { border-width: 1px; border-color: #eee; border-style: none none solid; margin: 40px 0; }
.imgLeft, .imgRight { max-width: 45%; }
.imgLeft { float: left; margin: 10px 4% 2% 0; }
.imgRight { float: right; margin: 10px 0 2% 4%; }
.clear { clear: both; }
.nowrap, a[href^=tel] { white-space: nowrap; }
sup { line-height: 0; }
.hide { display: none !important; }
.center, .hero h1, .hero p, .row1 h2, .row1 p, .row2 h2, .row2 p, .row3 h2, .row3 p, .row4 h2, .row4 p, .projects .grid h3, .projects .grid p { text-align: center; }
.wrap { display: block; max-width: 1080px; margin: 0 auto; position: relative; }
.bg-dark, .bg-primary { color: var(--dark-comp, #fff); }
.bg-dark { background-color: var(--dark, #333); }
.bg-primary { background-color: var(--primary, #b5322f); }
.bg-light, .row3 .grid > div, .projects .grid a { background-color: var(--light, #f5f5f5); color: var(--dark, #333); }
.mid { align-items: center; align-self: center; }
.grid { display: grid; grid-gap: 10px 40px; }
.grid.half { grid-template-columns: repeat(2,1fr); }
.grid.third { grid-template-columns: repeat(3,1fr); }
.grid.fourth { grid-template-columns: repeat(4,1fr); }
/* HEADER & NAVIGATION */
header, .hero { position: relative; }
header .wrap { padding: 0 10px; }
header img { max-width: 400px; margin: 10px auto; }
nav li { display: inline-block; margin: 0 10px; }
nav a { padding: 10px; display: block }
nav a, nav a:hover, .hero h1, .hero p { color: var(--dark-comp, #fff); }
nav a:hover { background-color: var(--secondary) }
/* HERO */
.hero { min-height: 250px; height: 26vw; max-height: 700px; }
.hero:before { content: ""; width: 100%; height: 100%; background-color: rgba(0,0,0,.5); position: absolute; top: 0; left: 0; z-index: 1 }
.hero { width: 100%; height: 400px; background-image: url(); border-bottom: 20px solid var(--primary, #448ccb); }
.hero > .wrap, .row1 .wrap, .row4 .wrap { top: 50%; transform: translateY(-50%); z-index: 1; }
.hero h1, .hero p, .row5 p { padding: 0 10px; text-shadow: 1px 1px 5px rgba(0,0,0,.8); }
.hero h1, .hero p { max-width: 800px; line-height: 1.5; margin: 0 auto; }
.hero h1 { font-size: 36px; }
.hero p { margin: 20px auto; }
.hero p, .row2 h3, .about h3 { font-size: 24px; }
.bgimg { position: relative }
.bgimg > img:first-of-type { position: absolute; width: 100%; height: 100%; inset: 0; object-fit: cover; z-index: 0 }
.hero.bgimg > img { object-position: 50% 50% }
.hero.bgimg.contact > img { object-position: 50% 5% }
.hero.bgimg.abp > img { object-position: 50% 35% }
/* HOME */
.row1 { height: 300px; }
.row1 .wrap { padding: 50px 10px; }
.row1 p, .row4 p { max-width: 1000px; margin: 20px auto; }
.row2 .wrap, .row3 .wrap { padding: 40px 10px 50px; }
.row2 .grid h3, .row2 .grid p { padding: 0 20px; }
.row2 .grid h3 { text-align: center }
.row2 .grid h3 span { display: block }
.row2 .grid, .row3 .grid, .projects .grid { grid-gap: 20px; margin: 20px 0 40px; }
.row2 .grid a { background-color: var(--dark-comp, #fff); }
.row2 .grid p, .row3 .grid p { text-align: left; padding-bottom: 20px; }
.row3 .grid > div { padding: 20px 40px 5px; }
.row3 svg { float: right; vertical-align: middle; }
.row4 { height: 400px; padding: 0 10px; }
/* FORMS */
form { text-align: left; margin: 40px 0; }
form .grid { grid-gap: 0 10px; }
form label { display: block; }
form input[type=text], form input[type=email], form input[type=tel], form input[type=file], form input[type=submit], form select, form textarea, form input[type=password], .btn { font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; }
form input[type=text], form input[type=email], form input[type=tel], form select, form textarea, form input[type=password] { background-color: var(--main-bg, #fff); margin-bottom: 10px; padding: 0 10px; border: 1px solid #eee; }
form input[type=text], form input[type=email], form input[type=tel], form select, form input[type=password] { height: 45px; }
form input[type=text], form input[type=email], form input[type=tel], form textarea, form input[type=password] { width: calc(100% - 20px); }
form select { width: 100%; }
form input[type=file] { margin-left: 10px; border-radius: 0; }
form textarea { height: 135px; padding: 15px 10px; }
form input[type=submit], .btn { display: inline-block; min-width: 120px; text-align: center; text-transform: uppercase; line-height: 1.6; background-color: var(--primary, #b5322f); color: var(--primary-comp, #fff); padding: 10px 40px; margin: 10px 0; border: none; transition: ease-in-out .3s; }
form input[type=submit] { min-width: 250px; margin: 0; }
form input[type=submit]:hover, .btn:hover { cursor: pointer; background-color: var(--secondary, #cf2e2e); color: var(--primary-comp, #fff); }
/* FOOTER */
footer .wrap { padding: 20px 10px; }
footer .grid.third { padding: 30px 0; }
footer .subfoot { border-top: 10px solid var(--primary, #448ccb); }
footer .subfoot .grid { grid-template-columns: 1fr 150px }
footer .subfoot .grid > div:last-of-type { text-align: right; }
footer .grid div:first-of-type li:last-of-type { margin-top: 1em }
.ccpaNotice { text-align: center !important; }
/* MAIN & EVERYTHING ELSE */
main { padding: 40px 10px 50px; }
main h1, main h2 { font-size: 30px; }
main h3, footer h3 { font-size: 20px; }
main h4 { font-size: 18px; }
main ul, main ol { padding-left: 25px; }
main li, footer li { margin: 5px 0; }
.nolist, footer ul, .contact ul { list-style: none; padding-left: 0; }
.about .grid { grid-gap: 0; }
.about .grid h3, .about .grid p { padding: 0 40px; }
.about .grid h3 { margin-top: 0; }
.about .grid img { display: block; object-fit: cover; width: 100%; height: 500px; }
.about .grid:nth-of-type(even) > *:first-child { order: 2; }
.about .grid:first-of-type { margin-top: 60px; }
.about .grid:last-of-type, .gallery { margin-bottom: 50px; }
#remodel img { object-position: bottom; }
.projects img, .gallery img { object-fit: cover; width: 100%; }
.projects img { height: clamp(200px, 43vw, 300px) }
.projects .bottom { object-position: bottom; }
.gallery { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-gap: 10px }
.gallery a { height: clamp(150px, 36vw, 250px); }
.gallery img { height: 100%; object-position: center; object-fit: cover }
#lightbox.lightbox div.lb-outerContainer, #lightbox.lightbox .lb-container, #lightbox.lightbox img.lb-image { border-radius: 0; }
#lightbox.lightbox div.lb-outerContainer, #lightbox.lightbox .lb-container { max-width: 1000px !important; max-height: auto !important; padding: 4px; }
#lightbox.lightbox img.lb-image { max-width: 982px !important; object-fit: fill; padding: 0; overflow: hidden; }
.contact .grid { grid-template-columns: 1fr 300px; }
.contact .grid > div:last-of-type { padding-top: 10px; }
.contact .grid ul { padding: 5px 0 5px 70px; position: relative; }
.contact li:first-of-type { position: absolute; top: 5px; left: 20px; }

@media(max-width:999px) {
}

@media(max-width:700px) {
    nav a { margin: 0 5px; }
    .grid.third, .row3 .grid.half, .about .grid.half, footer .subfoot .grid { grid-template-columns: 1fr }
    .gallery { grid-template-columns: 1fr 1fr }
    .row2 .grid h3 span { display: inline }
    .row2 .grid img { max-width: 500px; width: 100% }
    .row2 .grid a { padding: 50px 20px 10px }
    .about .grid:nth-of-type(even) > *:first-child { order: unset }
    .about .grid h3 { margin: 1em 0 }
    footer li, footer h3, footer p { text-align: center; margin: 15px; }
    .about .grid h3, .about .grid p { padding: 0 }
    .row1, .row4 { height: auto }
    .row1 .wrap, .row4 .wrap { top: unset; transform: none }
    .row4 .wrap { padding: 50px 10px }
}

@media(max-width:600px) {
    .contact .grid { grid-template-columns: 1fr }
    .gallery { grid-template-columns: 1fr }
    .contact ul { max-width: 220px; margin: 1em auto }
    form { text-align: center }
}

@media(max-width:400px) {
    .projects .grid.half { grid-template-columns: 1fr }
    .gallery { grid-template-columns: 1fr }
    .gallery a:last-of-type:nth-of-type(odd) { grid-column: unset }
}
