html, body {margin: 0; padding: 0;} html {font-size: 100%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%;}

@font-face {font-family: 'Tofino'; font-style: normal; font-weight: 400; font-display: block;
  src: local(''), url('fonts/tofino-400.woff2') format('woff2'), url('fonts/tofino-400.woff') format('woff');
}
@font-face {font-family: 'Tofino'; font-style: normal; font-weight: 500; font-display: block;
  src: local(''), url('fonts/tofino-500.woff2') format('woff2'), url('fonts/tofino-500.woff') format('woff');
}

@font-face {font-family: 'NotoSerif'; font-style: normal; font-weight: 400; font-display: block;
  src: local(''), url('fonts/noto-serif-400.woff2') format('woff2'), url('fonts/noto-serif-400.woff') format('woff');
}

body {font-family: 'Tofino', Arial, Verdana, Geneva; font-variant-ligatures: none; letter-spacing: .2px;}

#width {position: fixed; top: 0; z-index: 20; padding: 0 3px; font-size: 11px; line-height: 14px; font-family: Arial, Helvetica, sans-serif; background-color: #FF0;}
a, a:visited, a:hover {color: #2E3FE1;}
a {text-decoration: underline; text-decoration-thickness: 1px; text-decoration-style: dotted; text-underline-offset: .1em; cursor: pointer;}
a:focus-visible {outline: 2px solid #66AFE9; outline-offset: 2px;}
* {-webkit-tap-highlight-color: transparent;} img {border: 0;}
.phlink {color: inherit !important; text-decoration: none !important; white-space: nowrap;} .phlink:hover {cursor: text;}

/*------------------------------------*/

/*HEADER*/

/*header {border: 1px solid yellow;} #phone {border: 2px solid green} #logo {border: 3px solid red} #logo img {border: 1px solid magenta}*/

header {position: absolute; display: table; width: 100%; margin: auto; z-index: 2; text-align: center; box-sizing: border-box;}
.header1 {background-color: #111;}

#logo {padding-top: 20px; padding-bottom: 8px; z-index: 1;} #logo img {display: block;}

@media (min-width: 2321px) {header, #navheader {padding: 0 15%;}}
@media (max-width: 2320px) and (min-width: 1986px) {header, #navheader {padding: 0 10%;}}
@media (max-width: 1985px) and (min-width: 1816px) {header, #navheader {padding: 0 6%;}}
@media (max-width: 1815px) and (min-width: 1491px) {header, #navheader {padding: 0;} header {padding-left: 25px; padding-right: 25px;}}
@media (max-width: 1490px) and (min-width: 1116px) {header, #navheader {padding: 0 2%;}}

#phone {display: block; font-size: 20px; line-height: 1; right: 0; vertical-align: middle;}
#phone, #phone a {font-weight: 400; white-space: nowrap;}

@media (min-width: 1411px) {header {height: 165px;} #logo, #phone {width: 170px;} #logo img {width: 160px; height: auto /*sdf*/;}}
@media (max-width: 1410px) {
header {height: 160px;} #logo {padding-top: 23px; padding-bottom: 15px;} #logo img {width: 150px; height: auto /*sdf*/}
#logo, #phone {width: 170px;}
}
/*@media (max-width: 1410px) and (min-width: 1116px) {#logo, #phone {width: 170px;}}
@media (max-width: 1315px) {#phone {width: 140px;} #logo {width: 300px;}}*/
@media (max-width: 1115px) and (min-width: 441px) {#logo {padding-left: 20px;} #phone {padding-right: 20px;}}
@media (min-width: 661px) {header {display: table;} #logo, #navheader, #phone {display: table-cell;}}
@media (max-width: 660px) and (min-width: 441px) {
/*header {height: 170px;} header, #logo, #navheader, #phone {display: block;}*/
#phone {position: absolute; bottom: 15px; font-size: 22px}
}
@media (min-width: 441px) {#phone {text-align: right;}}
@media (max-width: 440px) {
header {height: 270px;} #logo img {margin: auto; width: 170px; height: auto /*sdf*/;}
#logo {margin: auto; width: auto; padding-top: 20px; text-align: center;} #phone {margin: 5px auto 0 auto; font-size: 22px;}
}

/*----------------*/

/*MENU*/

/*#navheader {border: 1px solid orange} nav {border: 1px solid red} nav div {border: 1px solid cyan} nav a {border: 1px solid var(--color2);}
nav article {border: 1px solid red;}*/

#navcheck {display: none;}
nav a.selected {cursor: text; pointer-events: none; -webkit-user-select: none; -webkit-touch-callout: none;}
nav a {text-decoration: none; cursor: pointer; line-height: 1.3; font-weight: 400; -webkit-transition: background .2s, color .1s, font-size .3s; color: #FFF !important;}

@media (min-width: 1321px) {nav a {height: 40px;}}
@media (max-width: 1320px) and (min-width: 701px) {nav span {display: block;} nav a {height: 50px;}}
@media (min-width: 1116px) {
.ham {display: none;} #navheader {position: relative; left: 0; right: 0; text-align: center; justify-content: center; justify-items: center; justify-self: center; height: 100%; border: 1px solid transparent} /*transparent border fixes position error in old Safari*/
nav {position: absolute; display: inline-block; margin: auto; left: 0; right: 0; vertical-align: middle; text-align: center; height: 100%; width: 100%; align-content: center;}
nav div {display: inline-grid; align-content: center; align-self: center; align-items: center; vertical-align: middle; height: 100% /*for old Safari*/; white-space: nowrap;}
nav a {display: inline-block /*table-cell won't work in old Safari*/; font-size: 18px; line-height: 1.4; text-align: center; align-content: center; align-self: center; align-items: center; vertical-align: middle; border-radius: 4px; padding: 5px 15px 3px 15px;}
nav article {display: table-cell; width: 1%; vertical-align: middle; height: inherit;} /*article required for old Safari*/
}

@media (max-width: 1115px) {
#navheader {top: 159px; left: 0; right: 0; position: absolute;}
nav {position: relative; text-align: center; transition: .15s; height: 0; font-size: 0; box-sizing: border-box; z-index: -1; overflow: hidden;}
nav div {display: inline-block; text-align: center; left: 0; right: 0; /*width: 20%; margin: 0 -2px;*/ width: 155px; margin: 0 3px; font-size: 0; height: 0; opacity: 0; transition: .15s; border: 1px solid transparent;}
nav a {display: table-cell; text-align: center; font-size: 0; opacity: 0; height: 0; white-space: nowrap; padding: 4px 8px 2px 8px; pointer-events: none; border-radius: 5px;}

#navcheck:checked ~ nav {z-index: 2; height: 100%; padding: 5px 0 10px 0;}
#navcheck:checked ~ nav div {opacity: 1; height: 60px;}
#navcheck:checked ~ nav a {font-size: 18px; line-height: 1.4; opacity: 1; pointer-events: auto; height: 60px; vertical-align: middle; width: 1%;}
#navcheck:checked ~ nav div:first-child a {border-left: none;} #navcheck:checked ~ nav div:last-child a {border-right: none;}

.ham, .ham * {-webkit-touch-callout: none; -webkit-user-select: none; user-select: none; touch-action: manipulation;}
.ham {position: absolute; z-index: 600; height: 35px; width: 45px; top: -102px; left: 0; right: 0; margin: auto; text-align: center; padding: 0 10px 12px 10px;}
.ham:hover {cursor: pointer;}
.ham div {top: 24px; left: 10px; -webkit-transition: -webkit-transform 0.35s ease-out;}
.ham div, .ham div:before, .ham div:after {position: absolute; display: block; content: ""; height: 3px; width: 38px; opacity: 1; background: #FFF; border-radius: 1px;}
.ham div:before {top: -10px;} .ham div:after {top: 10px;}

#navcheck:checked ~ .ham div {width: 0; transform: rotateX(180deg); transition-timing-function: ease;}
#navcheck:checked ~ .ham div:before {-webkit-transform: rotateZ(37deg); top: 0;}
#navcheck:checked ~ .ham div:after {-webkit-transform: rotateZ(-37deg); top: 0;}
}

/*@media (max-width: 800px) and (min-width: 661px) {.ham {left: calc(100% - 470px);}}*/
@media (max-width: 860px) {
nav div {width: 155px;} nav div:first-child {width: 645px; display: table; margin: 0 auto 5px auto;}
#navcheck:checked ~ nav div:first-child, #navcheck:checked ~ nav div:first-child a {height: 50px;}
#navcheck:checked ~ nav div:nth-child(even) a {border-left: none;}
#navcheck:checked ~ nav div:nth-child(odd) a {border-right: none;}
}
@media (max-width: 700px) {
nav div {width: 47%; margin-bottom: 8px;} nav div:nth-last-of-type(-n+2) {margin-bottom: 0;}
nav div:first-child {width: 95.3%;}
}
@media (max-width: 660px) {.ham {top: -140px; left: auto; right: 20px;}}
@media (max-width: 525px) {
nav span {display: block;} #navcheck:checked ~ nav div, #navcheck:checked ~ nav a {height: 70px;} nav div:first-child {width: 95.5%;}
}
@media (max-width: 440px) {#navheader {top: 268px;} .ham {top: -58px; left: 0; right: 0;} nav div:first-child {width: 96.2%;}}
@media (max-width: 310px) {#navcheck:checked ~ nav a {font-size: 18px;}}

@media (min-width: 1116px) {
nav .selected {background-color: var(--color1);} nav a:hover:not(.selected) {background-color: var(--color2);}}
@media (max-width: 1115px) {
nav {background-color: #111;} nav a {background-color: var(--color1);} nav .selected {background-color: var(--color1-dark);}
nav a:hover:not(.selected) {background-color: var(--color2);}
}

/*-----------------------------------------------*/

/*BODY AREA*/

#bread {font-size: 14px; line-height: 1.4; margin-bottom: 30px;}
#bread span {font-weight: 500; color: #555;}

.bodyarea {padding: 10px 0 35px 0; margin: auto; width: 85%; max-width: 1500px;}
.bodyarea, h2 {font-size: 18px; line-height: 1.65; font-weight: 400 !important;}
.bodyhead {font-family: 'NotoSerif', "Times New Roman", Times, serif; padding-bottom: 10px; font-weight: 500 !important; font-size: 2em; line-height: 1.35; text-align: center; letter-spacing: 0;}

h1 {margin: 0 auto 20px auto;} h2 {margin: 0 0 20px 0;} h3 {margin: 20px 0;}

/*Contact page doesn't have image on top*/
@media (min-width: 1411px) {.bacont {padding-top: 131px;}} @media (max-width: 1410px) {.bacont {padding-top: 126px;}}
@media (max-width: 660px) {.bacont {padding-top: 174px;}} @media (max-width: 440px) {.bacont {padding-top: 216px;}}

@media (max-width: 800px) {.bodyhead {font-size: 1.65em;}}
@media (max-width: 600px) {.bahome {padding-top: 0;}}
@media (max-width: 360px) {.bodyarea {width: 88%;} .bodyhead {font-size: 1.6em;}}

.heading, .heading2 {font-weight: 500; line-height: 1.35; display: table;} .heading {font-size: 1.55em;} .heading2 {font-size: 1.45em;}

.divide:nth-of-type(even) {background-color: var(--litegrey);} .divide:not(:first-of-type) {padding-top: 20px;}
.divide:last-of-type {padding-bottom: 10px;}

ul.thislist {margin-left: -19px;} ul.thislist li:not(ul.thislist li:last-child) {padding-bottom: 15px;}
ul.thislist span {font-weight: 500; color: var(--color2); font-size: 1.15em;}


/*-----------------------------------------------*/

/*Top Pic*/

#toppic {position: relative; overflow: hidden; z-index: 0;}
#toppic img {width: 500px; height: 300px; width: 100%; height: 40vw; max-height: 420px; object-fit: cover; display: block;}

@media (min-width: 1411px) {#toppic {padding-top: 165px;}}
@media (max-width: 1410px) and (min-width: 660px) {#toppic {padding-top: 159px;}}
@media (max-width: 660px) and (min-width: 440px) {#toppic {padding-top: 158px;} #toppic img {height: 50vw;}}
@media (max-width: 440px) {#toppic {padding-top: 269px;} #toppic img {height: 60vw;}}

#toppic.s1 {background-color: #FFF;} #toppic.s1 img {object-position: 50% 50%;} /*sdf*/


/*-----------------------------------------------*/

/*Page Pics*/

.pagepic img {border-radius: 5px; width: 500px; height: 300px; width: 100%; height: auto; display: block;}
.picwide {max-width: 500px;} .pictall {max-width: 350px;}
.picleft {float: left; margin: 30px 40px 30px 0;} .picright {float: right; margin: 30px 0 30px 40px;}
@media (max-width: 1050px) and (min-width: 871px) {.picwide {max-width: 430px;}}
@media (max-width: 870px) {.picleft, .picright {text-align: center; float: none; margin: 20px auto 40px auto;} .pictall {max-width: 400px;}}

/*-----------------------------------------------*/

/*SERVICE PAGE BOXES*/

#blocks {margin: 30px auto 25px auto; text-align: center;} #blocks * {box-sizing: border-box;}
.blk {color: #FFF; font-size: .95em; line-height: 1.5; border-radius: 5px; text-align: left;}

.blk h4 {width: 100%; margin: 0; line-height: 1.3; font-weight: 400; color: #FFF; display: block; font-family: 'NotoSerif', "Times New Roman", Times, serif; letter-spacing: 0; background-color: var(--color2); border-radius: 5px 5px 0 0;}


/*Our Services*/

.aof {background-color: var(--color1-dark);}

@media (min-width: 1351px) {
.aof {flex: 1 1 23%; margin: 8px;} .aof h4 {padding: 10px 25px 13px 25px; font-size: 1.45em;} .aof div {padding: 20px 25px 25px 25px;}
}
@media (max-width: 1350px) {
.aof {flex: 1 1 26%; margin: 5px;} .aof h4 {padding: 10px 20px 13px 20px; font-size: 1.35em;} .aof div {padding: 20px;}
}
@media (max-width: 990px) {.aof {flex: 1 1 33%;}}
@media (min-width: 671px) {.aofblock {display: flex; flex-wrap: wrap; justify-content: center;}}
@media (max-width: 670px) {.aof {margin: 10px auto;}}


/*Performance Page - How Works*/

.howperf {background-color: var(--color1-dark); position: relative;}
.howperf span {display: block; height: 32px; width: 30px; padding-top: 1px; text-align: center; vertical-align: center; position: absolute; top: 0; left: 0; border-radius: 5px 0 1px 0; font-size: 1.3em; font-weight: 500; background-color: var(--color1); color: #FFF;}

/*flex: 1 1 30% makes boxes extend 100%*/

.howperf {flex: 1 1 26%; margin: 5px;} .howperf h4 {padding: 10px 10px 13px 45px; font-size: 1.35em;} .howperf div {padding: 20px;}

/*@media (min-width: 1686px) {.howperf {flex: 1 1 14%;}}
@media (max-width: 1685px) {.howperf {flex: 1 1 18%;}}
@media (min-width: 1446px) {
.howperf {margin: 8px;} .howperf h4 {padding: 10px 15px 13px 45px; font-size: 1.45em;}
.howperf div {padding: 20px 25px 25px 25px;}
}
@media (max-width: 1445px) {
.howperf {flex: 1 1 26%; margin: 5px;} .howperf h4 {padding: 10px 10px 13px 45px; font-size: 1.35em;} .howperf div {padding: 20px;}
}*/
@media (max-width: 880px) {.howperf {flex: 1 1 33%;}}
@media (min-width: 601px) {.howperfblock {display: flex; flex-wrap: wrap; justify-content: center;}}
@media (max-width: 600px) {.howperf {margin: 10px auto;}}


/*-----------------------------------------------*/

/*BOTTOM AREA*/

.btmareaback {background-color: #FFF } .btmareaback.bacont {background-color: var(--litegrey);}
.btmarea {display: grid; box-sizing: border-box; margin: 0 auto;}
#btmtxt {margin-top: 20px;}

.block {box-sizing: border-box;} .block1 {font-size: 17px; line-height: 1.5;}
.block1 img {display: block; width: 160px; height: auto /*sdf*/; width: 100%; max-width: 160px; height: auto; margin: auto;}
.block2 {background-color: #CCC;} /*line separator*/

.block3 {font-size: .85em; line-height: 1.7;} .block3 a:hover {text-decoration: underline;} .block3 span {white-space: nowrap;}
.btmicons {margin: 10px 0 0 0;} .btmarea .phlink {font-size: 1.25em; font-weight: 500; color: var(--color2) !important;}
.btmicons img {margin: 0 8px 15px 0; vertical-align: top;}
.btmicons img:first-of-type {margin-top: 5px;} .btmicons img:last-of-type {margin-top: 3px;}

.btmsoc {margin-top: 10px;} .btmsoc img {width: 32px; height: 32px; opacity: .8;} .btmsoc a:nth-child(2) img {margin: 0 8px;}
@keyframes shake {20% {-webkit-transform: rotateZ(-8deg);} 80% {-webkit-transform: rotateZ(8deg);}}
.btmsoc img:hover {-webkit-animation: shake .16s 5;}

@media (min-width: 1001px) {.btmarea {max-width: 750px; grid-template-columns: repeat(5, 1fr) 50px 1px 35px repeat(3, 1fr);}}
@media (max-width: 1000px) and (min-width: 821px) {.btmarea {grid-template-columns: repeat(5, 1fr) 35px 1px 35px repeat(3, 1fr); max-width: 700px;}}
@media (min-width: 821px) {
.block1 {grid-column: span 5;} .block2 {width: 1px; justify-self: center;} .block3 {grid-column: span 3; justify-self: flex-end;}
}
@media (max-width: 820px) {
.block {text-align: center;} .block1 {padding-bottom: 30px;} .block2 {height: 1px;} .btmsoc {margin-top: 20px;}
.block2a, .block2b {display: none;} .block3 {justify-self: center; padding-top: 30px;} .btmicons img {display: none;}
}
@media (max-width: 820px) and (min-width: 451px) {.block1 {text-align: center; }.block1 img {margin: auto;}}
@media (min-width: 451px) {.btmareaback {padding: 35px 50px;}}
@media (max-width: 450px) {.btmareaback {padding: 35px 30px;}}

/*-----------------------------------------------*/

/*Footer*/

#serving {font-size: 11px; line-height: 1.4; color: #BBB; font-family: Arial, Helvetica, sans-serif;}
#serving a, .nolink {color: inherit !important; text-decoration: none !important; cursor: text; white-space: nowrap;}

footer {font-size: 14px; line-height: 1.6; padding: 25px 25px 22px 25px; text-align: center; background-color: #222; color: #FFF;}
.copy {line-height: 1.5;}

.web {margin-top: 20px; font-size: 13px; font-family: Arial, Helvetica, sans-serif; color: #DDD;}
.web a {text-decoration: none; color: inherit; white-space: nowrap;} .web a:hover span {color: #F65246;}
.web img {vertical-align: top; margin: 1px 0 0 0; width: 23px; height: 15px;}

#totop {position: fixed; bottom: 25px; right: 25px; display: inline-block; z-index: 9999; opacity: .7; transition: 0.15s;}
#totop img {width: 32px; height: 32px; display: block; filter: drop-shadow(0 0 4px rgba(0,0,0,0.55)); cursor: pointer;}
#totop:hover {opacity: 1;}

/*====================================================*/

/*COLORS*/

body {background-color: #FFF; color: #333;} #phone, #phone a {color: #FFF;}
.bodyhead {color: var(--color2);} .heading {color: var(--color1);}
:root {--color1: #C11E00; --color1-dark: #851400 ; --grey: #D5D5D5; --litegrey: #E5E5E5; --color2: #006DB4;}

