html, body {margin: 0; padding: 0;}

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

@font-face {font-family: 'Archivo'; font-style: normal; font-weight: 700; font-display: block;
  src: local(''), url('fonts/archivo-narrow-700.woff2') format('woff2'), url('fonts/archivo-narrow-700.woff') format('woff');
}

body {font-family: 'Mazin', Arial, Verdana, Geneva; font-variant-ligatures: none; font-size: 100%;}

#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 {outline: none; color: #2E3FE1;} a {text-decoration: underline; text-decoration-thickness: 1px; text-decoration-style: dotted; text-underline-offset: .1em; cursor: pointer;}
* {-webkit-tap-highlight-color: transparent; -webkit-tap-highlight-color: transparent; -webkit-touch-callout: none;}
img {border: 0; image-rendering: -webkit-optimize-contrast;} #phone a {white-space: nowrap;}
.phlink {color: inherit !important; text-decoration: none !important; white-space: nowrap;} .phlink:hover {cursor: text;}

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

/*HEADER*/

/*#headback {border: 1px solid blue} header {border: 1px solid green} .headtext {border: 1px solid orange} .headtext h1 {border: 1px solid #666;} .hrs {border: 1px solid green} #phosoc {border: 1px solid #999;} #phosoc {border: 2px solid magenta} #phone {border: 2px solid green;} #social {border: 1px solid red} #social a {border: 1px solid #444} #logo {border: 1px solid blue} #logo img {border: 1px solid orange} #logo a {border: 1px solid cyan}*/

header {width: 100%; margin: 0 auto; z-index: 1;}
header section:first-child {display: table; height: 100%; position: relative; margin: auto; text-align: center; width: 95%; max-width: 1650px;}
header div {display: table-cell;} header div:not(.navback div) {vertical-align: middle;}

.headtext h1 {text-align: center; margin: 0 auto; font-style: italic; font-weight: 400; line-height: 1.4;}
.hrs table {margin: auto;} .hrs td {text-align: left; font-size: .88em; line-height: 1.3; white-space: nowrap;}
#logo img {display: block; width: 280px; height: auto; /*sdf*/} #phone {font-size: 1.4em; font-weight: 600;} #phone, #social {white-space: nowrap;}

#social img {height: 28px; width: 28px; display: inline-block; margin: 0 1px -5px 1px;}
@keyframes shake {20% {-webkit-transform: rotateZ(-8deg);} 80% {-webkit-transform: rotateZ(8deg);}}
#social img:hover {-webkit-animation: shake .16s 5;}

#phosoc {width: 170px;}

@media (min-width: 1121px) {.headtext h1 {font-size: 1.25em;}}
@media (max-width: 1120px) {.headtext h1 {font-size: 1.8vw;}}
@media (max-width: 1020px) {.headtext {padding: 0 30px;} .hrs {display: none;} .headtext h1 {font-size: calc(1.5vw + 5px);}}
@media (min-width: 791px) {.headtext h1 span {display: block;}}
@media (max-width: 700px) {
header section:first-child {width: 93%;} #logo img {width: 240px; height: auto; /*sdf*/;}
.headtext h1 {font-size: calc(1.7vw + 5px);}
}
@media (max-width: 670px) {.headtext h1 {visibility: hidden; width: 0; padding: 0; font-size: 0;}}
@media (min-width: 501px) {
header section:first-child {padding: 0; overflow: hidden;} #logo {padding: 23px 0; width: 183px;} #logo a {display: table-cell;}
#phosoc > div {display: table; height: 100%; width: 100%; margin-left: 0; box-sizing: border-box; border: 0px solid #000}
/*if social:*/ #phone {position: absolute; right: 0; padding-top: 17px;}
#social {text-align: right; padding-bottom: 8px; vertical-align: bottom; border: 0px solid blue !important}
}
@media (max-width: 500px) {
header {-webkit-display: flex; display: flex; -webkit-flex-direction: column; flex-direction: column; /*border-bottom: 6px solid var(--divback);*/}
header section:first-child {-webkit-order: 2; order: 2;} header section:last-child {-webkit-order: 1; order: 1;}
header div {display: block;} #logo img {margin: 18px auto 0 auto; padding: 0 15px;}
#logo, #phosoc {width: auto; text-align: center;} #logo a {display: inline-block;} #phone {margin: 15px auto; font-size: 1.45em;}
#social {position: absolute; right: 0; bottom: 14px;}
}

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

/*MENU*/

/*.navback {border: 1px solid #DDD;} nav {border: 1px solid magenta;} nav div {border: 1px solid blue;}
nav a {border: 1px solid cyan !important;} .ham {border: 1px solid black;}*/
.navback {z-index: 1;} #navcheck {display: none;} nav, nav a {-webkit-user-select: none; user-select: none;}
nav .selected {cursor: text; pointer-events: none;} nav a {text-decoration: none; font-size: 18px; line-height: 1.35;}

@media (min-width: 516px) {
.ham {display: none;} nav {display: table; text-align: center; margin: auto;}
nav div, nav a {display: table-cell; vertical-align: middle; white-space: nowrap;}
nav a {height: 50px; padding: 2px 22px 4px 22px; transition: .2s; border-right: 1px solid var(--menuline);}
nav div:first-child a {border-left: 1px solid var(--menuline);}
}
@media (min-width: 921px) {nav a {height: 50px;}}
@media (max-width: 920px) and (min-width: 516px) {nav a {height: 60px; font-size: 1.05em;} nav span {display: block;}}
@media (max-width: 685px) {
nav a {font-size: 1em; width: 100px; padding: 2px 15px 4px 15px; white-space: normal;} nav span {display: inline;}
}

@media (max-width: 515px) {
nav {text-align: center; visibility: hidden; margin: 0 0 0 -1px; border-bottom: 1px solid var(--menuline); font-size: 0; line-height: 0;}
nav div {max-height: 0; display: inline-block; width: 50%; transition: .2s ease-in-out; font-size: 0; line-height: 0; padding: 0;}
nav a {width: 1%; height: 0; display: table-cell; vertical-align: middle; opacity: 0; font-size: 0; padding: 0; -webkit-transition: .15s background, .3s font-size ease-out, .2s opacity ease-out, .3s padding ease-out, .25s height; border-top: 1px solid var(--menuline); border-left: 1px solid var(--menuline);}

#navcheck:checked ~ nav {visibility: visible;}
#navcheck:checked ~ nav div {max-height: 100px;}
#navcheck:checked ~ nav a {height: 65px; font-size: 20px; opacity: 1; padding: 0 0 1px 0;}

#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;}

.ham {position: relative; display: table; height: 30px; width: 45px; margin: auto; padding: 10px;} .ham:hover {cursor: pointer;}
.ham div {top: 23px; left: 10px; -webkit-transition: -webkit-transform 0.4s ease-out;}
.ham div, .ham div:before, .ham div:after {position: absolute; display: block; content: ""; height: 4px; width: 44px; opacity: 1; background: #FFF; border-radius: 2px;} .ham div:before {top: -11px;} .ham div:after {top: 11px;}
}

@media (max-width: 515px) {nav div:first-child {width: 100%;} #navcheck:checked ~ nav div:first-child a {height: 55px;}}
@media (max-width: 480px) {#navcheck:checked ~ nav a {height: 70px;} nav span {display: block;}}
@media (max-width: 500px) {.navback {margin-top: 2px;}} /*always stays 500px*/
@media (max-width: 320px) {#navcheck:checked ~ nav a {font-size: 19px;}}


:root {--menuline: #72AFCF; --divback: #007BBD; --menuhover: #01558B; --menuselect: #C00000;}
.navback, nav {background-image: url(images/flagback1.png); background-repeat: repeat; background-color: #444; /*background-color: var(--divback);*/} nav a {color: #FFF !important;}
nav div {background-color: var(--divback);}
nav .selected {background-color: var(--menuselect);} nav a:hover:not(.selected) {background-color: var(--menuhover);}


/*Flag border*/
.caption, .homecap {top: 51% !important;} .navback {position: relative !important;}
#navbackbord {position: absolute; bottom: -24px; z-index: -1; width: 100%; height: 25px; background-image: url(images/flagbord.png); background-repeat: repeat-x;}
@media (max-width: 500px) {#navbackbord {top: auto; bottom: -175px;}}

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

/*Top Pic*/

#toppic {position: relative; height: 40vw; max-height: 280px; overflow: hidden; display: flex; align-items: center; border-bottom: 4px solid #D00000; background-color: #4F4136; /*sdf*/}
#toppic img {width: 500px; height: 300px; width: 100vw; height: auto; filter: brightness(65%);}

.caption {position: absolute; display: table-cell; left: 5%; right: 5%; text-align: center; top: 47%; -webkit-transform: translateY(-48%); transform: translateY(-48%); z-index: 1; margin: 0 auto; color: #FFF;}
.caption h1 {font-family: 'Archivo', Arial, Helvetica, sans-serif; font-size: 6em; line-height: 1; font-weight: 700 !important; text-shadow: 1px 1px 2px #000;}

@media (max-width: 800px) {.caption h1 {font-size: 12vw;}}
@media (max-width: 600px) {.caption {top: 45%} .caption h1 {font-size: 14vw;} #toppic {height: 51vw;}}
@media (max-width: 500px) {.caption h1 {font-size: 16vw;} #toppic {height: 55vw;}}

.tpnewroof {background-color: #8A643B;}
.tprepair {background-color: #6A4722;}
.tpreplace {background-color: #4F4136;}
.tpinspect {background-color: #333;}

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

/*BODY AREA*/

#bread {font-size: .84em; line-height: 1.4; margin-bottom: 20px;}

.bodyarea {position: relative; padding: 10px 0 35px 0; margin: auto; width: 85%; max-width: 1500px;}
.bodyarea, h2 {font-size: 1.12em; line-height: 1.5; font-weight: 400 !important;}
.bodyhead {font-weight: 600 !important; font-size: 1.7em; line-height: 1.3; text-align: center;}
h1, h2, h3 {margin: 0 !important;}

@media (max-width: 800px) {.bodyhead {font-size: 1.82em;}}
@media (max-width: 360px) {.bodyarea {width: 88%;} .bodyhead {font-size: 1.68em;}}

.heading, .heading2 {font-weight: 600; line-height: 1.35; display: table;} .heading {font-size: 1.6em;} .heading2 {font-size: 1.4em;}

/*don't show bodyhead for service pages due to service name in top pic*/
.svchead {visibility: hidden; line-height: 0; padding: 0;}

/*Section shading on services pages*/
.divide:nth-child(even) {background-color: #EEE;} .divide:nth-child(odd) {background-color: #FFF;} .divide .bodyarea {padding: 40px 0 25px 0;}
.divide:last-of-type {padding-bottom: 20px;}

ul.thislist {margin-left: -15px;} ul.thislist li:not(ul.thislist li:last-child) {padding-bottom: 15px;} ul.thislist span {font-weight: 600;}

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

/*Page Pics*/

.pagepic img {border-radius: 3px; width: 500px; height: 300px; width: 100%; height: auto; display: block;}
.picwide {max-width: 500px;} .pictall {max-width: 350px;}
.picleft {float: left; margin: 10px 40px 30px 0;} .picright {float: right; margin: 10px 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: 30px auto 35px auto;} .pictall {max-width: 400px;}}

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

/*BOTTOM AREA*/

/*.btmarea section {background-color: green; border: 1px solid red}*/

.btmareaback {background-color: #073A5F;} .btmarea, .btmarea a {color: #FFF;}
.btmarea {display: grid; justify-content: center; padding: 50px 0; margin: auto; max-width: 1150px;}
.btmarea .btmlogo p {font-size: .82em;}
.btmarea .btmhrs tr:first-child td {font-size: 1.1em; font-weight: 600;} .btmarea .btmhrs td {white-space: nowrap;}
.btmarea .btmlogo img {display: block; width: 250px; height: auto /*sdf*/; margin: 0 auto 15px auto;}
.btmarea .btmlinks ul {margin-left: -20px;} .btmarea .btmlinks a {text-decoration: none;}
.btmarea .btmlinks a:hover {text-decoration: underline;}
.btmarea .btmlinks li:not(.btmlinks li:last-child) {padding-bottom: 8px;} .btmarea .btmlinks ul {margin-bottom: 0;}
.btmarea .btmhead {display: block; font-size: 1.5em; font-weight: 600;}
.btmarea .btmcont {font-size: .95em; line-height: 1.45;}
.btmarea .btmicons {margin: 20px 0 10px 0;} .btmarea .btmicons img {margin: 2px 8px 15px 0; vertical-align: top;}
.btmarea .btmicons a:not(.btmarea .phlink) {font-size: 18px;} .btmarea .phlink {font-size: 1.2em; font-weight: 500;}
.btmarea .btmsoc img {width: 36px; height: 36px; margin: 0 3px;}
@keyframes shake {20% {-webkit-transform: rotateZ(-8deg);} 80% {-webkit-transform: rotateZ(8deg);}}
.btmarea .btmsoc img:hover {-webkit-animation: shake .16s 5;}

@media (min-width: 921px) {.btmarea {grid-template-columns: 33% 33% 27%;}}
@media (max-width: 920px) and (min-width: 816px) {.btmarea {grid-template-columns: 35% 37% 22% !important;}}
@media (min-width: 816px) {
.btmarea .btmlogo {grid-column: 1 / 1;} .btmarea .btmhrs {margin-top: 20px;}
.btmarea .btmlinks {grid-column: 2 / 2;} .btmarea .btmcont {grid-column: 3 / 3;}
}
@media (max-width: 815px) {.btmarea .btmhrs {margin-top: 30px;}}
@media (max-width: 815px) and (min-width: 441px) {
.btmarea section {margin: 0 40px;}
.btmarea .btmlogo {grid-column: 1 / 3; grid-row: 1 / 1; margin-bottom: 30px;}
.btmarea .btmlinks {grid-column: 1 / 1; grid-row: 2 / 2;}
.btmarea .btmcont {grid-column: 2 / 2; grid-row: 2 / 2;}
}
@media (max-width: 505px) and (min-width: 441px) {.btmarea section {margin: 0 30px;}}

@media (min-width: 441px) {.btmarea {justify-items: center;}}
@media (max-width: 440px) {.btmarea section {grid-column: 2 / 2;} .btmarea section:nth-child(2) {margin: 40px 0;}}
@media (max-width: 310px) {
.btmarea {display: block; width: 85%; padding: 30px 0;} .btmarea .btmlinks {margin: 50px 0;}
}

/*Bottom Area - flag border*/
#btmareabord {width: 100%; height: 25px; background-image: url(images/flagbord.png); background-repeat: repeat-x;}
.btmarea {padding: 55px 0 50px 0;} @media (max-width: 310px) {.btmarea {padding: 40px 0 35px 0;}}

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

/*Bottom*/

/*#serving {font-size: .7em; line-height: 1.4; color: #BBB; font-family: Arial, Helvetica, sans-serif;}
#serving a, .nolink {color: inherit !important; text-decoration: none !important; pointer-events: none !important;}*/

footer {font-size: .9em; line-height: 1.6; padding: 25px 25px 22px 25px; text-align: center;}
.web, .web a {font-size: 12px; font-family: Arial, Helvetica, sans-serif; color: #BBB !important;}
.web a {font-style: italic; text-decoration: none; white-space: nowrap;} .web a:hover {text-decoration: underline;}

#totop {position: fixed; height: 18px; width: 18px; right: 14px; bottom: 12px; z-index: 100; padding: 8px 9px 8px 10px; border: 2px solid rgba(155, 155, 155, .4); background-color: rgba(80, 80, 80, 0.45); border-radius: 4px;}
#totop div {font-family: Arial, Helvetica, sans-serif; display: inline-block; -webkit-transform: rotate(90deg); transform: rotate(90deg); font-size: 2em; line-height: 18px; color: #FFF;}
#totop:hover {-webkit-transform: scale(1.05);}
@media (min-width: 481px) {#totop {-webkit-transition: .15s;}}

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

/*COLORS*/

body {color: #111; background-color: #FFF;} .headtext, .hrs td, #phone a {color: #000;}
.bodyhead, .heading {color: var(--divback);} .heading2 {color: #000;}
footer {background-color: #111;} footer, footer a {color: #FFF;}
