
:root {
    --content_width: 48%;
}

@media (min-width: 720px) {
    :root {
        overflow-x: hidden;
    }
}
@media (max-width: 600px) {
    :root {
        --content_width: 98%;
    }

    body {
        overflow-x: auto;
    }
}

@media (min-width: 601px ) and ( max-width: 900px) {
    :root {
        --content_width: 60%;
    }
}



/* ----------- begin css reset ---------------- */

    /* http://meyerweb.com/eric/tools/css/reset/ 
    v2.0 | 20110126
    License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
/* ----------- end css reset ---------------- */


html {
    /* scrollbar-gutter: stable; */
    box-sizing: border-box;
}

body {
    display: grid;
    font: normal normal 400 16px/170% 'Lora';
    overflow-y: auto;
    scrollbar-gutter: stable;
    width: calc(100vw - (100vw - 100%));
}



p {
    margin: 1em 0;
}

h2 + p, h3 + p, h4 + p {
    margin-top: 0;
}

h1, h2, h3, h4, h5, h6 {
    font: normal normal 700 1em Montserrat, sans-serif;
    margin-bottom: .5em;
}

h1 {
    font-size: 2.5em !important;
    margin-bottom: .5em;
}

h2 {
    font-size: 1.5em;
}
/* 
h2 + ol > li:first-child {
    margin-top: 0;
} */

ol li {
    margin-bottom: 2em;
}

ol li h3 {
    margin-bottom: 0;
}



header {
    position: sticky;
    top: 0px;
    background-color: rgba( 255, 255, 255, .95 );
}



/* A simple, css only, (some-what) responsive menu */
nav.mainmenu {
    position: relative;
    /* background: #2B2B2B;
    background-image: -webkit-linear-gradient(bottom, #2B2B2B 7%, #333333 100%);
    background-image: -moz-linear-gradient(bottom, #2B2B2B 7%, #333333 100%);
    background-image: -o-linear-gradient(bottom, #2B2B2B 7%, #333333 100%);
    background-image: linear-gradient(bottom, #2B2B2B 7%, #333333 100%); */
    text-align: center;
    letter-spacing: 1px;
    /* text-shadow: 1px 1px 1px #0E0E0E;
    -webkit-box-shadow: 2px 2px 3px #888;
    -moz-box-shadow: 2px 2px 3px #888;
    box-shadow: 2px 2px 3px #888; */
    /* border-bottom-right-radius: 8px;
    border-bottom-left-radius: 8px; */
}


.mainmenu a {
    text-decoration: none;
    color: #222;
    display: block;
    font-size:80%;
}

.mainmenu ul {
    list-style: none;
    position: relative;
    text-align: left;
}

.mainmenu li {
    float: left;
}

/* clear'n floats */
.mainmenu ul:after {
    clear: both;
}

.mainmenu ul:before,
.mainmenu ul:after {
    content: " ";
    display: table;
}

/* prime */
.mainmenu ul.primary li a {
    display: block;
    padding: 5px 20px;
}

.mainmenu ul.primary li a:hover {
    /* background-color: #aaa; */
    color: #000;
    font-weight: bold;
    background: #ccc;
}

/*  this is so that the primary menu item keeps it's backgeound hover color when you move down to the submenu */
.mainmenu ul.primary li:hover a {
    background: #ccc;
}


/* submenus */
.mainmenu ul.sub {
    position: absolute;
    display: none; 
    z-index: 200;
    width: 30%;
}

.mainmenu ul.sub li {
    float: none;
    margin: 0;
}


.mainmenu ul.sub li a:hover {
    background: #ddd !important;
}

.mainmenu ul.primary li:hover ul.sub {
    display: block;
    border: 1px black solid;
    border-top: 0;
}

/*
@media only screen and (max-width: 600px) {
    .mainmenu li {
        float: none;
    }

    .mainmenu ul.primary li:hover a {
        background: none;
    }

    .mainmenu ul.primary li:hover ul.sub {
        display: block;
        border: none;
    }
    

    .mainmenu ul.sub {
        display: block;
        position: static;
        box-shadow: none;
        width: 90%;
        margin-left: 10%;
        border: none;
    }

    .mainmenu ul.sub li a {
        border: none;
    }

    .mainmenu ul.sub li a:hover {
        background: none;
    }
} */
/* ----------------------  End of css menu ------------------------  */




main {
    display: grid;
    justify-items: center;
}

section {
    display: grid;
    margin: 1rem 0;
    padding: 1rem;
    width: var( --content_width );

}

section.one {
    width: 100%;
    height: max-content;
    /* grid-template-columns: 1fr 50% 1fr;
    grid-template-rows: 0.5fr 2fr 0.5fr; */
    justify-items: center;
    background: #ffffff url('../images/roof.png')  no-repeat 50% 90%;
    background-size: cover;    
}


section.one .box {
    /* grid-column: 2;
    grid-row: 2; */

    display: grid;
    /*grid-template-rows: .4fr 1fr .8fr;*/
    align-items: center;
    justify-items: center;

    /* width: 92%; */
    width: max-content;
    padding: 2.5em 2em;
    border-radius: 3px;
    background-color: rgba(42, 42, 42, 0.8);

    text-align: center;
    margin: 2em 0;
}


section.one .box h1 {
    font: normal normal 600 76px Montserrat, sans-serif;
    color: #eee;
}

section.one .box h2 {
    font-size: 15px;
    letter-spacing: 3px;
    color: #eee;
    margin: 1.8em 0 2.2em 0;
}


a.call_button {
    background-color: white;
    width: max-content;
    height: max-content;
    text-decoration: none;
    font: normal normal 700 14px 'Maven Pro', serif;
    color: black;
    
    padding: 10px 20px;
    border: 2px #3f91fd solid;
    border-radius: 4px;
    margin-top: 1cqb;
}




section.two h2 {
    text-align: center;
    font: normal normal 600 36px 'Maven Pro', sans-serif;
}


section.two .tagline, section.two .contactinfo  {
    text-align: center;
    font: normal normal 400 28px 'Maven Pro', sans-serif;
    margin-bottom: .8em;
}




section.three {
    /* display: grid;
    grid-template-rows: 1.6fr 1fr;
    grid-template-columns: 1fr 1fr; */
    display: block;
}

section.three .textContainer {
    /* grid-row: 1;
    grid-column: 1; */
    visibility: visible;  /* ust to have a rule so isual Studio Code doesn't complain  */
}

section.three .textContainer ul {
    margin: 1em 0 2em 0;
}


section.three .textContainer h3 {
    margin: 1em 0 0 0;
}

section.three .serviceareas .contact {
    margin-top: 20px;
}

section.three .formContainer {
    /* grid-row: 1;
    grid-column: 2; */
    float: right;
    margin: 20px;
    display: grid;
}

section.three .formContainer form {
    border: 4px black solid;
    padding: 5px;
    justify-content: center;
}

section.three .formContainer form .note {
    text-align: center;
    font-weight: bold;
    margin: -.2em 0 1em 0;
}

section.three .formContainer .contact_info label {
    display: grid;
    grid-template-columns: .5fr 1.2fr;
    grid-column-gap: 1em;
    margin: .5em .3em .5em .1em;
}

section.three .formContainer .contact_info label span  {
    grid-column: 1;
    text-align: right;
}

section.three .formContainer .contact_info label input  {
    grid-column: 2;
}


section.three .formContainer label[for="description"] {
    margin-top: 1em;
    display: grid;
    grid-template-columns: 1fr;
}


section.three .formContainer label[for="description"] > span  {
    visibility: visible;
}

section.three .formContainer label[for="description"] > textarea  {
    height: 6em;
}


.form-required {
    font-size: 120%;
    color: red;
}

fieldset.name {
    display: grid;
    grid-template-rows: .2fr 1fr;
    grid-template-columns: 1fr 1fr;
    grid-column-gap: 10px;
    border:1px #999 solid;
}

fieldset.name legend{
    grid-row: 1;
}

fieldset.name label[for="firstName"] {
    grid-row: 2;
    grid-column: 1;
    margin: .5em;
}

fieldset.name label[for="lastName"] {
    grid-row: 2;
    grid-column: 2;
    margin: .5em;
}


fieldset.email {
    border: 1px #999 solid;
}

fieldset.email label {
    margin: .5em;
}


section.three .serviceareas {
    grid-row: 2;
    grid-column: 1 / span 2;
    width: 100%;
}

section.three .serviceareas ul, section.three .serviceareas li {
    margin: 0;
    padding: 0;
}

section.four {
    width: 100%;
    background-image: url('../images/workers_on_roof.png');
    background-attachment: fixed;
    background-size: cover;
    justify-items: center;
}

section.four h2, section.four ul, section.four > p {
    width: var( --content_width );
}


section.four h2 {
    font-size: 32px;
    text-align: center;
    padding: 10px 0 30px 0;
}


section.four ul, section.four > p {
    background-color: rgba( 255, 255, 255, .7 );
    padding: 0 15px 20px 15px;
}




section.four ul li {
    margin-bottom: 2em;
}


section.four ul li h3 {
    text-align: center;
    margin: 1em 0 .4em 0;
}


section.five h2 {
    margin: .75em 0 0 0;
    color: #000;
    text-align: center;
    font-size: 2em;
    line-height: 100%;
}

section.five > p {
    margin: 2em 0;
}


section.six .service {
    display: grid;
    /*grid-template-columns: .9fr 1.1fr;
    grid-template-rows: .5fr 2fr .5fr;
    grid-column-gap: 1rem; */
    /* display: block; */
    margin: 20px 0 30px 0;
    /*border: 1px gray solid;*/
    font-size: 90%;}


section.six .service h2 {
    /* grid-column: 1 / span 2;
    grid-row: 1; */
    background-color: rgb( 42, 42, 42 );
    color: #fff;
    font-size: 33px;
    text-align: center;
    padding: .8em 0 1.4em 0;
    margin-bottom: .2rem;
}


section.six .service img {
    /* grid-column: 1;
    grid-row: 2; */
    width: 100%;
    margin-top: px;

  /*  padding-left: 1em; */
}

section.six .service p {
    /* grid-column: 2;
    grid-row: 2; */
    /*padding-right: 1em;*/
    margin: 1em 0;
}


section.six .service a {
    /* grid-column: 1 / span 2;
    grid-row: 3;
    justify-self: center; */
    text-align: center;
}

section.six a.call_button {
    background-color: #444;
    color: #eee;
    justify-self: center;
}


.final_cta {
    display: grid;
    justify-items: center;
    border-radius: 2px;
    padding: 1em;
    background-color: #eee;
}

.final_cta a.button {
    margin-top: 1em;
}


footer {
    background-color: #efefef;
    display: grid;
    justify-items: center;
    width: 100%;
    padding: 1rem;
    font-size: 75;
    margin-top: 1em; 
}

footer .footer_content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: var( --content_width );
}


footer .quicklinks {
    grid-column: 1;
}


footer ul li {
    line-height: 1em;
}

footer a {
    font-size: 80%;
}


footer .quicklinks ul h4 {
    font-size: 78%;
    margin: 0;
    font-weight: normal;
}

footer .quicklinks ul ul {
    padding-left: 1.5em;
}

footer .extra {
    grid-column: 2;
    text-align: right;
}



/*  --------------------  css for tab box ------------------------ */
/* ---------- from https://codepen.io/Wendy-Ho/pen/MWWBvmd ------- */

ul {
    margin-block-end: 0;
}

section.five .tabs_wrapper {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
}


section.five .tabs_wrapper .tabs {
    display: flex;
    flex-direction: row;
    /* align-items: stretch; */
    justify-content: space-between;
}

section.five .tab {
    cursor: pointer;
    padding: 10px 10px;
    margin: 0px 0px;
    font-size: 85%;
    background: #000;
    display: inline-block;
    color: #fff;
    border-radius: 6px 6px 0px 0px;
    border: 1px #888 solid
    /*box-shadow: 0 0.5rem 0.8rem #00000080;*/
}

section.five .panels {
    box-sizing: border-box;
    background: #fffffff6;
    /*box-shadow: 0 2rem 2rem #00000080;*/
    border: 1px black solid;
    min-height: 180px;
    width: 100%;
    /*max-width: 600px;*/
    border-radius: 3px;
    overflow: hidden;
    padding: 20px;
}

section.five .panel {
    display: none;
    animation: fadein .8s;
}

@keyframes fadein {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

section.five .panel-title {
    font-size: 1.5em;
    font-weight: bold
}

section.five .radio {
    display: none;
}

section.five #one:checked~.panels #one-panel,
section.five #two:checked~.panels #two-panel,
section.five #three:checked~.panels #three-panel,
section.five #four:checked~.panels #four-panel {
    display: block
}

section.five #one:checked~.tabs #one-tab,
section.five #two:checked~.tabs #two-tab,
section.five #three:checked~.tabs #three-tab,
section.five #four:checked~.tabs #four-tab {
    background: #bfdcff;
    font-weight: bold;
    color: #000;
  /*  border-top: 3px solid #000; */
}



/* --------------------------------   for the metal roofing page  -------------------------------- */
body.metal_roofing h1 {
    font-size: 24px;
    margin-bottom:.5em;
}

body.metal_roofing ul.topics {
    margin-top: 1.75em;
}

body.metal_roofing ul.topics li {
    margin-top: 1em;
}



/* --------------------------------   for the gutters page  --------------------------------
body.gutters h1 {
    font-size: 24px;
    margin-bottom:.5em;
}

body.gutters h2 {
    margin-top: 1.75em;
}

body.gutters ol li {
    margin-top: 1em;
}


body.gutters ol li h3 {
    margin-top: 1.75em;
} */




/* -----------------------   contact us   ----------------------------------  */

.contact section.three {
    display: grid;
}
.contact section.three .formContainer {
    justify-self: center;
}


/* -----------------------   thank_you   ----------------------------------  */
.thank_you .two {
    margin: 4em 
}

/* -----------------------   error_message   ----------------------------------  */
.error_message .two {
    margin: 4em 
}