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

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

body {font-family: 'OpenSans', Arial, Verdana, Geneva; font-variant-ligatures: none;}

#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: .13em; cursor: pointer;}
a:focus-visible {outline: 2px solid #66AFE9; outline-offset: 2px;}
a, .ham {-webkit-tap-highlight-color: transparent;} img {border: 0;}
.phlink {color: inherit !important; text-decoration: none !important; white-space: nowrap;} .phlink:hover {cursor: text;}

hr {height: 1px; border: none; color: #CCC; background-color: #CCC; margin: 35px 0;}

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

/*HEADER*/

/*#headerback {border: 1px solid magenta} header {border: 1px solid orange} header table {border: 1px solid yellow} header td {border: 1px solid black} #social {border: 1px solid yellow} #logo, #logo img {border: 1px solid red} #phone {border: 1px solid green} #logo a {border: 1px solid orange}*/

#headtopback, #headtop {height: 40px;} #headtop {display: table; width: 100%; margin: auto; z-index: 1;}

#headerback, header {height: 135px; margin: 0 auto; padding: 0; top: 0;} #headerback {position: relative; /*width: 100%;*/ z-index: 2;}
header table {position: relative; margin: auto; padding: 10px 0 0 0; width: 100%;} header td {vertical-align: middle;}

@media (min-width: 1426px) {#headtop, header {padding: 0 5%;}} @media (max-width: 1425px) {#headtop, header {padding: 0 1%;}}

#logo {text-align: center;} #logo img {width: 505px; height: 114px;} #head1, #head2 {width: 23% !important;} #head1 {text-align: center; margin: 0 auto;}

#phone {display: table-cell; text-align: right; font-size: 20px; line-height: 1; vertical-align: middle; right: 0; top: 10px;}
#phone a {margin-left: 5px; font-size: 21px; color: #FF0 !important;}
#phone span:nth-child(3) {display: inline-block; padding: 0 0 0 5px;}
#phone, #phone a {font-weight: 600;}
#phone span {font-size: .9em; font-weight: 400; color: #FFF;}
#social {position: absolute; top: 6px;}
#social img {display: block; width: 26px; height: 26px; transition: .3s;} #social img:hover {-webkit-transform: scale(1.15);}

@media (min-width: 1241px) {#head1 img {width: 146px; height: 106px; z-index: 50 !important} #head2 img {width: 250px; height: 52px;}}
@media (max-width: 1240px) {
#headerback, header {height: 115px;} #logo img {width: 420px; height: 95px;}
#head1 img {width: 117px; height: 85px;} #head2 img {width: 210px; height: 44px;}
}
@media (max-width: 1195px) {header {border-bottom: 3px solid #0063B1;}}
@media (max-width: 1055px) {
#headerback, header {height: 103px;} #logo img {width: 360px; height: 81px;}
#head1 img {width: 103px; height: 75px;} #head2 img {width: 190px; height: 40px;}
}
@media (max-width: 1195px) {
#head2 {display: none;} #logo {display: inline-block; margin-left: 25px;}
#headerback, header {width: auto;} header table {text-align: left; margin: 0;}
}
@media (max-width: 680px) {#head1, #head2 {display: none;} #logo {margin: 0 0 0 5px;} #headerback, header {height: 100px;}}
@media (max-width: 480px) {#phone span:first-child {display: none;}}
@media (max-width: 470px) {#headerback, header {height: 90px;} #logo {margin: 3px 0 0 5px;} #logo img {width: 300px; height: 68px;}}
@media (max-width: 405px) {
#headerback, header {height: 95px;} header table {text-align: center; margin: 0 auto;}
#logo {margin-top: 2px; width: auto; text-align: center;} #logo img {width: 300px; height: 68px; width: 98%; max-width: 300px;}
#phone {display: table; margin: 4px 0 0 40px;} #phone span:nth-child(3) {display: none;}
#headtopback {height: 70px} #phone a:last-child {display: block; margin-top: 9px;}
}

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

/*MENU*/

/*nav {border: 1px solid magenta;} nav div {border: 1px solid blue;} nav a {border: 1px solid cyan !important;} nav li {border: 1px solid green;}*/

#navcheck {display: none;}

nav a {display: block; position: relative; text-decoration: none !important; cursor: pointer; font-size: 20px; line-height: 1.35; font-weight: 400; vertical-align: middle;}
nav a.selected {cursor: text; -webkit-user-select: none; -webkit-touch-callout: none;}

@media (min-width: 1711px) {nav a {padding: 3px 25px 5px 25px;}}
@media (max-width: 1710px) {nav a {font-size: 18px; padding: 3px 18px 5px 18px;}}
@media (min-width: 1426px) {header {border-bottom: 50px solid #0063B1;} nav div, nav a {height: 42px;} #topspacer {height: 48px;}}
@media (max-width: 1425px) and (min-width: 1196px) {
nav a {padding: 3px 20px 5px 20px; font-size: 18px;} nav span {display: block;}
#topspacer, nav, nav div, nav a {height: 56px;} header {border-bottom: 64px solid #0063B1;}
}

@media (max-width: 1280px) {nav a {font-size: 18px; padding: 3px 16px 5px 16px;}}

@media (min-width: 1196px) {
nav {position: absolute; left: 50%; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); display: table; text-align: center; margin: auto; z-index: 2;}
nav div, nav a {display: table-cell; vertical-align: middle; white-space: nowrap;} .ham {display: none;}
}

@media (max-width: 1195px)  {
nav {position: relative; text-align: center; transition: .15s; height: 0; box-shadow: 0 8px 10px -9px #000; box-sizing: border-box; z-index: -1; top: 0;}
nav div {width: 33.3%; margin: 0 -2.4px; text-align: center; left: 0; right: 0; height: 0; opacity: 0; transition: height .3s, opacity .6s; display: inline-block;}
nav a {text-align: center; font-size: 0; opacity: 0; height: 0; border: 1px solid transparent; white-space: nowrap; padding: 3px 10px 3px 10px;}
nav a {width: 1%; display: table-cell; height: 0; vertical-align: middle;}
#topspacer {display: none;}

#navcheck:checked ~ nav {height: 100%; z-index: 2;} #navcheck:checked ~ nav div {opacity: 1; height: 73px;}
#navcheck:checked ~ nav a {font-size: 22px; border: 1px solid #DDD; opacity: 1; height: 72px;}

/*ham*/
.ham, .ham * {-webkit-touch-callout: none; -webkit-user-select: none; user-select: none; touch-action: manipulation;}
.ham {position: absolute; z-index: 6; height: 35px; width: 45px; top: 45px; right: 10px; margin: auto; text-align: center; padding: 10px;}
.ham:hover {cursor: pointer;} .ham > div {top: 25px; left: 10px;}
.ham > div, .ham > div::before, .ham > div::after {display: block; content: ""; position: absolute; height: 4px; width: 44px; opacity: 1; background: #BF2222; -webkit-transition: 0.15s ease-in-out; transition: 0.15s ease-in-out; -webkit-transition: transform 0.2s ease-out; -webkit-transition: -webkit-transform 0.2s ease-out;}
.ham > div::before {top: -11px;} .ham > div::after {top: 11px;}
#navcheck:checked ~ .ham > div {width: 0; background: rgba(18, 18, 18, 0);}
#navcheck:checked ~ .ham > div::before {-webkit-transform: rotateZ(45deg); transform: rotateZ(45deg); top: 0;}
#navcheck:checked ~ .ham > div::after {-webkit-transform: rotateZ(-45deg); transform: rotateZ(-45deg); top: 0;}
}
@media (max-width: 1195px) and (min-width: 501px) {nav div:nth-child(10), nav div:nth-child(11) {width: 49.9%;}}
@media (max-width: 825px) {nav span {display: block;}}
@media (max-width: 600px) and (min-width: 501px)  {#navcheck:checked ~ nav a {font-size: 20px;}}
@media (max-width: 500px) {nav div {width: 50%;} #navcheck:checked ~ nav a {font-size: 22px;} nav div:last-child {width: 100%;}}
@media (min-width: 481px) {nav a {-webkit-transition: background .3s, border .4s, font-size .4s;}}
@media (max-width: 480px) {nav a {-webkit-transition: border .4s, font-size .4s;}}
@media (max-width: 405px) {
.ham {top: 8px;} .ham > div, .ham > div::before, .ham > div::after {background: #FFF;} nav span {display: block;}
}
@media (max-width: 330px) {#navcheck:checked ~ nav a {font-size: 20px;}}

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

/*Top Pic*/

#toppic {position: relative; height: calc(90px + 25vw); max-height: 300px; overflow: hidden; display: flex; align-items: center;}
#toppic img {width: 500px; height: 300px; width: 100vw; height: auto;}

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

/*BODY AREA*/

.bodyarea {margin: auto; padding: 40px 0 35px 0; width: 90%; max-width: 1500px;}

.bodyarea, h2 {font-size: 20px !important; line-height: 1.75 !important; font-weight: 400 !important;} .bodyhead {text-transform: none; text-align: center;}
.bodyhead, .bodyhead h1 {font-size: 32px !important; line-height: 1.3 !important; font-weight: 600 !important;}
.heading, .heading2, .heading4 {font-weight: 600; line-height: 1.4;} .heading {font-size: 1.35em;} .heading2, .heading4 {font-size: 1.2em;}
.heading3 {font-weight: 400; font-style: italic; font-size: 1.1em;} .heading4 {color: #777; font-style: italic;}

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

@media (max-width: 480px) {
.bodyarea, h2 {font-size: 19px !important;} .bodyarea {padding: 30px 0 25px 0;}
.bodyhead, .bodyhead h1 {font-size: 29px !important;} .heading {font-size: 1.25em;}
}
@media (max-width: 360px) {.bodyarea, h2 {font-size: 18px !important;}}

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

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

/*Page Pics*/

.pagepic img {width: 100%; display: block; border-radius: 3px;}
.picwide {max-width: 500px;} .picleft {float: left; margin: 10px 30px 20px 0;} .picright {float: right; margin: 30px 0 20px 30px;}
@media (max-width: 900px) and (min-width: 751px) {.picwide {max-width: 430px;}}
@media (max-width: 750px) {.picleft, .picright {text-align: center; float: none; margin: 35px auto;}}

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

/*Services for Plumbing pages*/

#svcs {margin-bottom: 40px;} #svcs div {display: inline-block; font-size: .95em;}
@media (min-width: 531px) {
#svcs {text-align: center;}
#svcs div {margin: 0 auto 5px auto; padding: 8px 12px; line-height: 1.35; border-radius: 5px; background-color: #9A2514; color: #FFF;}
}
@media (max-width: 530px) {#svcs div {background: none; padding: 8px 0; line-height: 1.5; font-weight: 600; color: #B00;}}

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

/*Related Blogs*/

/*rb-1col: 1 column for 6 or less bloglinks;   rb-2col: 2 cols for 7-12 bloglinks;
rb-3col: 3 cols for over 12 bloglinks;    rb-4col: 4 cols for over 12 bloglinks;    rb-5col: 5 cols;*/

#relatedblogs {max-width: 700px; margin: 45px auto 15px auto; padding: 10px 20px 15px 20px; background-color: #EEE; border: 3px solid #AE1819; border-radius: 10px;}
#relatedblogs.rb-1col {max-width: 350px;} #relatedblogs.rb-4col {max-width: 1100px;} #relatedblogs.rb-5col {max-width: 100%;}

#relatedblogs span {display: block; margin-bottom: 15px; text-align: center; font-size: 1.15em; font-weight: 500; line-height: 1.35; color: #AE1819;}

#relatedblogs a {display: block; padding: 10px 0; font-size: .82em; line-height: 1.4; text-decoration: none; border-bottom: 1px solid #CCC; break-inside: avoid;}
#relatedblogs a:last-child {border-bottom: none;} #relatedblogs a:hover {text-decoration: underline;}

@media (min-width: 1091px) {#relatedblogs.rb-4col div {column-count: 4;} #relatedblogs.rb-5col div {column-count: 5;}}
@media (max-width: 1090px) and (min-width: 751px) {#relatedblogs.rb-4col div {column-count: 3;} #relatedblogs.rb-5col div {column-count: 4;}}
@media (max-width: 850px) and (min-width: 501px) {#relatedblogs.rb-5col div {column-count: 3;}}
@media (min-width: 751px) {#relatedblogs.rb-2col div, #relatedblogs.rb-3col div {column-count: 3; column-gap: 40px;}}
@media (max-width: 750px) and (min-width: 501px) {#relatedblogs:not(.rb-1col) div {column-count: 2; column-gap: 30px;}}
@media (max-width: 500px) and (min-width: 441px) {#relatedblogs div {column-gap: 20px;}}
@media (max-width: 440px) {#relatedblogs {border: 2px solid #AE1819;} #relatedblogs div {display: block; column-gap: 30px;} #relatedblogs span {font-size: 1.1em;}}

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

/*Ready*/

#ready {clear: both; text-align: center; padding: 40px 20px; font-size: 2em; line-height: 1.4; font-weight: 600; color: #FFF;}

.border {position:absolute; width:0; height:0;}
.buttonBox {position: relative; display: block; text-align: center; margin: 20px auto 0 auto; width: 150px; padding: 4px;}
button {width:100%; height:50px; background-color: #ffd800; border:none; outline:none; cursor: pointer; border-radius: 4px;}
button a {font-size: 18px; line-height: 1; text-decoration: none !important; color: #000 !important; display: table-cell; height: 48px; width: 1%; vertical-align: middle;}

.border:nth-of-type(1){top:0; left:0; border-top:1px solid #FFF;}
.border:nth-of-type(2){top:0; right:0; border-right:1px solid #FFF;}
.border:nth-of-type(3){bottom:0; right:0; border-bottom:1px solid #FFF;}
.border:nth-of-type(4){bottom:0; left:0; border-left:1px solid #FFF;}
.buttonBox:hover .border:nth-of-type(1), .buttonBox:hover .border:nth-of-type(3){width:100%;}
.buttonBox:hover .border:nth-of-type(2), .buttonBox:hover .border:nth-of-type(4){height:100%;}

.hvr-rectangle-out {display: inline-block; vertical-align: middle; box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; -webkit-transform: perspective(1px);}
.hvr-rectangle-out:before {content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: #FF0; -webkit-transform: scale(0);}
.hvr-rectangle-out:hover:before, .hvr-rectangle-out:focus:before, .hvr-rectangle-out:active:before {-webkit-transform: scale(1); border-radius: 4px;}
@media (min-width: 481px) {.border {transition: .25s ease-in-out;}
.hvr-rectangle-out {-webkit-transition: color 0.25s;} .hvr-rectangle-out:before {-webkit-transition: transform 0.25s ease-out;}}

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

/*BOTTOM AREA*/

footer {text-align: center; padding: 20px 15px 20px 15px; font-size: 15px; line-height: 1.6;}
footer a, footer a:hover {text-decoration: none !important;}
#lic {font-size: 13px; margin: 15px auto;}
#serving {font-size: 11px; line-height: 1.5; color: #888 !important;} #serving a, #serving span {white-space: nowrap;}
#web {margin: 20px auto 0 auto;} #web a:hover {text-decoration: underline !important;}

@media (max-width: 820px) {#lic span {display: block;}} @media (max-width: 520px) {.copyco span, #web a {display: block;}}

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

.nolink, #serving a {color: inherit !important; text-decoration: none !important; cursor: text;}


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


/*COLORS*/

body {color: #333;} .bodyhead {color: #B00;} .heading {color: #0063B1;}
#headtopback, #headtop, #ready {background-color: #0063B1;} header {background-color: #FFF;}

nav, nav a {background-color: #0063B1; color: #FFF !important;}
@media (max-width: 1195px) and (min-width: 401px) {nav a.selected, nav a.selected:hover {background-color: #034981;} nav a:hover {background-color: #208CE1;}}
@media (min-width: 401px) {nav a:hover {background-color: #208CE1;} nav a.selected, nav a.selected:hover {color: #DDD; background-color: #034981;}}
@media (max-width: 400px) {nav a:hover {color: yellow;} nav a.selected, nav a.selected:hover {color: #BBB !important;}}

#btminfoback, footer {background-color: #000; color: #BBB;} #serving {color: #AAA;} .tb, .tb a {color: #FFF !important;}
