:root { --main-bg: #fff; --light: #f6f3f1; --light-comp: #4d4d4d; --dark: #333; --dark-comp: #fff; --primary: #7F7266; --primary-comp: #fff; --secondary: #af9d90; --secondary-comp: #fff; --accent: #1ba2b6; --dark-accent: #1ba2b6; }
/* GENERAL */
* {scroll-behavior:smooth}
body { font-family: 'Montserrat', Arial, Helvetica, sans-serif; font-size: 18px; line-height: 1.5; text-align: center; min-width: 320px; }
body, .services .grid a, .cta a { color: var(--light-comp); }
body, header ul, footer ul, .hero h1, .hero p, .services h3 { padding: 0; margin: 0; }
h1, h2, h3, h4, h5, h6, p, th, td, dd, dt, li, blockquote { text-align: left; }
img, iframe { max-width: 100%; height: auto; }
iframe { display: block; aspect-ratio: auto 16 / 9; width: 100%; margin: 1em auto; }
.fullwidth { width: 100%; }
a img, iframe { border: none; }
a, form input[type=submit], .btn, .services svg { transition: ease-in-out .3s; }
a, header a:hover, footer a:hover, form input[type=submit]:hover, .btn:hover, .services a:hover { text-decoration: none; }
a, .services svg { color: var(--secondary); }
a:hover { text-decoration: underline; }
hr { border-width: 1px; border-color: var(--light); border-style: none none solid; margin: 40px 0; }
.imgLeft, .imgRight { max-width: 45%; }
.imgLeft { float: left; margin: 10px 4% 2% 0; }
.imgCenter { display: block; margin: 0 auto; }
.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, .services h2, .services h3, .services p, .cta h2, .cta p, .quote p { text-align: center; }
.wrap { display: block; max-width: 1080px; margin: 0 auto; position: relative; }
.bg-dark, .bg-dark a, .bg-primary, .bg-primary a, header a, .hero h1, .hero p, .partner .btn:hover { color: var(--primary-comp); }
.bg-dark { background-color: var(--dark); }
.bg-primary { background-color: var(--primary); }
.bg-light { background-color: var(--light); color: var(--dark); }
.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); }
.bgimg { position: relative }
.bgimg > img:first-of-type { position: absolute; width: 100%; height: 100%; inset: 0; object-fit: cover; z-index: 0; object-position: 50% 45% }
.bgimg:before, .bgimg:after { z-index: 1 }
.bgimg .wrap{z-index:2}
/* HEADER & NAVIGATION */
header, .hero { position: relative; }
header { z-index: 9 }
header .wrap, footer .wrap { padding: 20px 10px; }
header, .hero { text-shadow: 0 0 5px rgba(0,0,0,.5); }
header .grid { grid-template-columns: 250px 1fr; }
header .logo { font-size: 36px; font-weight: bold; line-height: 1.2; letter-spacing: 1px; text-transform: uppercase; }
header .logo span { display: block; font-size: 24px; }
.top, footer, footer h3, .services .grid { font-size: 16px; }
.top { display: block; padding: 10px; text-shadow: none; }
.top:hover { background-color: var(--secondary); }
nav { text-align: right; }
nav li { display: inline-block; }
nav a { display: block; margin-left: 20px; border-bottom: 2px solid transparent; }
nav a:hover { border-color: var(--secondary); }
nav a:hover, form input[type=submit]:hover, .btn:hover { transform: scale(1.05); }
/* HERO */
.hero:before, .new:before, .cta:before { content: ""; width: 100%; height: 100%; background-color: rgba(0,0,0,.3); position: absolute; top: 0; left: 0;}
.hero { width: 100%; height: 600px;   }
.hero > .wrap { top: 20%; transform: translateY(-50%); }
.hero h1, .hero p { max-width: 600px; padding: 10px; margin: 0 auto; }
.hero h1 { font-size: 36px; line-height: 1; }
.hero p { font-size: 20px }
/* 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=submit], form textarea, .btn { font-family: 'Montserrat', sans-serif; font-size: 16px; }
form input[type=text], form input[type=email], form input[type=tel], form textarea { background-color: transparent; margin-bottom: 10px; border: none; border-bottom: 1px solid var(--light-comp); }
form input[type=text], form input[type=email], form input[type=tel] { height: 45px; }
form input[type=text], form input[type=email], form input[type=tel], form textarea { width: 100%; box-sizing: border-box; }
form textarea { height: 120px; padding: 15px 0; }
form input[type=submit], .btn { display: inline-block; min-width: 120px; text-align: center; line-height: 1.6; background-color: var(--primary); color: var(--primary-comp); padding: 10px 40px; margin: 10px 0; border: none; border-radius: 3px; }
form input[type=submit] { min-width: 200px; margin: 0; }
form input[type=submit]:hover, .btn:hover { cursor: pointer; background-color: var(--secondary); transform: scale(1.05); box-shadow: 0 0 10px rgba(0,0,0,.1); }
form input, form textarea, ::placeholder { color: var(--dark); }
form input[type=submit]:hover, .btn:hover { color: var(--primary-comp); }
form input, form textarea { outline: none; }
/* FOOTER */
.cta:before, .new:before { background-color: rgba(246,243,241,.9); }
.cta .wrap { padding: 40px 10px 50px; }
.cta p { max-width: 900px; margin: auto; }
.cta .grid { grid-template-columns: 350px 1fr; padding: 20px 0; }
.cta .grid h3 { margin: 40px 0 5px; }
.cta .grid li span { display: inline-block; width: 60px; }
.subfoot .grid { grid-template-columns: 1fr 150px }
.ccpaNotice { text-align: center !important; }
.subfoot a:hover{color: var(--primary-comp);text-decoration:underline;text-underline-offset:4px}
/* termageddon */
#policy * { text-align: left }
#policy :is(.accordion-section) { padding: 0 10px }
#policy :is(ul,ol) { padding-left: 35px }
#policy :is(a[href*=aanp]) { word-break: break-all }
.policies li { display: inline-block }
.policies a { display: block; margin: 5px; padding: 5px 10px }
/* EVERYTHING ELSE */
.services .wrap { padding: 50px 10px 40px; }
.services p { max-width: 1000px; margin: 20px auto; }
.services a:hover svg { transform: scale(1.2) }
.services .grid, .contact .grid { padding: 20px 0; }
.new .wrap, .partner .wrap { padding: 40px 10px; }
.quote .wrap { padding: 50px 10px; }
.partner h2, .partner p { text-align: right; }
.partner .btn, footer a:hover { color: var(--primary); }
.partner .btn { background-color: var(--main-bg); }
.partner .btn:hover { background-color: var(--secondary); }
main { padding: 30px 10px 40px; }
main h1, main h2, .cta h2 { font-size: 24px; }
main h3, .quote { font-size: 20px; }
main h4, .services h3, .cta p { font-size: 18px; }
main ul, main ol { padding-left: 25px; }
main li, footer .grid li { margin: 5px 0; }
.nolist, .cta ul { list-style: none; padding-left: 0; }
.emphasis { padding: 20px 40px; margin: 40px 0; }

/*** mobile ***/
@media(max-width:999px) {
    .back { display: block }
}

@media(max-width:767px) {
    .grid.fourth { grid-template-columns: 1fr 1fr }
}

@media(max-width:700px) {
    header .grid, .new .grid { grid-template-columns: 1fr !important }
    .new .grid > div { order: unset !important }
    nav ul, .new h2, .new p { text-align: center !important }
    .logo img { margin: 0 auto }
}

@media(max-width:600px) {
    .grid.half, .grid.third, footer .cta .grid, .new .grid, .subfoot .grid { grid-template-columns: 1fr }
    .subfoot p, .new h2, .new h3 { text-align: center }
    .imgRight { float: none; margin: 0 auto; max-width: 100%; }
    .services .grid > div:nth-of-type(2) { border: none }
    main { margin-bottom: 50px }
    .hero .home h1, .hero .home p { text-align: center; max-width: unset; margin-left: unset }
    .hero > .wrap { top: unset !important; transform: none !important }
    .hero h1 { margin-top: 50px }
    .hero { height: auto !important; padding-bottom: 50px }
    .partner p, .partner h2, .cta h3, .cta li { text-align: center; }
     {}
}

@media(max-width:500px) {
    .grid.fourth { grid-template-columns: 1fr }
    .jump { left: unset; right: 0 }
}

@media(max-width:400px) {
    form input[type=submit] { max-width: unset; display: block; width: 100% }
    
}
