* {
  margin: 0;
  padding: 0;
  box-sizing: border-box; }

img {
  max-width: 100%; }

body {
  font-family: serif;
  background-color: white;
  color: #2f2f2f;
  padding: 0 30px;
  max-width: 1500px;
  margin: auto; }

@keyframes flash {
  0% {
    background-color: #ea1d24; }
  100% {
    background-color: white; } }
#pagehead {
  border-bottom: 1px solid #ea1d24;
  padding: 10px 0;
  width: 100%;
  text-align: center; }
  @media (min-width: 750px) {
    #pagehead {
      display: table; } }

@media (min-width: 750px) {
  #logo {
    display: table-cell;
    text-align: left; } }
#logo img {
  max-height: 8em; }

#mainnav {
  vertical-align: middle; }
  @media (min-width: 750px) {
    #mainnav {
      display: table-cell;
      text-align: right; } }
  #mainnav ul {
    display: inline-table;
    border-collapse: collapse;
    border-style: hidden; }
  #mainnav li {
    display: table-cell;
    border: 1px solid #e0e0e0;
    width: 6em;
    height: 6em;
    line-height: 6em;
    text-align: center;
    text-transform: uppercase;
    transition: .5s; }
    #mainnav li:hover {
      color: white;
      background-color: #ee4c51; }
  #mainnav .self {
    background-color: #ea1d24;
    color: white;
    border-color: white; }
  #mainnav a {
    color: inherit;
    background-color: inherit;
    text-decoration: none;
    display: block;
    width: 100%;
    height: 100%; }

#pagefoot {
  background-color: #ededed;
  color: #666666;
  text-align: center;
  padding: 50px; }
  #pagefoot p {
    padding: .25em; }

#copyright {
  font-weight: bold;
  font-size: 125%; }

section {
  display: flex;
  width: 100%;
  /*justify-content: space-between;*/
  flex-wrap: wrap-reverse;
  align-items: start; }
  @media (min-width: 750px) {
    section {
      flex-wrap: nowrap; } }
  section > div {
    margin: 15px;
    min-width: 30%; }

p,
blockquote {
  color: #666666;
  margin-bottom: 1em;
  font-size: 90%; }

blockquote {
  line-height: 2;
  position: relative;
  left: 40px;
  margin-right: 40px; }
  blockquote::before {
    content: "\201C";
    color: #e0e0e0;
    font-size: 500%;
    display: block;
    position: absolute;
    left: -40px;
    top: -.5ex; }
  blockquote .byline {
    display: block;
    color: #ea1d24;
    font-weight: bold; }

h1, h2 {
  margin-bottom: 1em;
  font-weight: normal; }

b, strong {
  color: #2f2f2f;
  font-weight: inherit; }

a:not(.button) {
  color: #ea1d24;
  text-decoration: none; }
  a:not(.button):hover {
    text-decoration: underline; }

.button {
  white-space: nowrap;
  display: inline-block;
  text-decoration: none;
  padding: 10px;
  transition: .5s;
  color: white;
  background-color: #2f2f2f; }
  .button:hover {
    background-color: #666666; }

:target {
  animation: flash 1s ease-out .5s; }

#subheader {
  margin-bottom: 15px; }
  #subheader h1 {
    margin: 1em 0; }
  #subheader nav {
    background-color: #ededed;
    padding: 5px; }
  #subheader a.self {
    color: #666666; }

#home #subheader {
  text-align: center;
  text-transform: uppercase;
  padding: 15px; }
  #home #subheader h1 {
    color: #ea1d24;
    margin-bottom: 0; }
  #home #subheader h2 {
    font-style: italic;
    color: #666666;
    padding: 15px; }

@media (min-width: 750px) {
  #home_services_overview {
    max-width: 40%; } }
.imglinks {
  display: none;
  flex-wrap: nowrap;
  justify-content: space-between; }
  @media (min-width: 450px) {
    .imglinks {
      display: flex; } }

.imglink {
  position: relative;
  display: inline-block;
  margin: 10px; }
  .imglink img {
    transition: 0.5s;
    filter: grayscale(100%); }
  .imglink figcaption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: #ededed;
    background-color: rgba(237, 237, 237, 0.75);
    padding: 10px;
    color: #2f2f2f;
    font-weight: bold;
    border-bottom: 1px solid #2f2f2f;
    transition: 0.5s; }
  .imglink:hover img {
    filter: none; }
  .imglink:hover figcaption {
    background-color: #bababa;
    transform: translate(0, 10px); }

@media (min-width: 750px) {
  #testimonial {
    max-width: 60%; } }
#appointments {
  background-color: #ea1d24;
  text-align: center;
  flex-grow: 2; }
  #appointments h1 {
    background-color: white;
    white-space: nowrap;
    margin-bottom: 0; }
  #appointments .button {
    margin: 40px; }

#map {
  height: 300px; }

#contact_form {
  min-width: 65%; }
  #contact_form form {
    color: #666666; }
  #contact_form .longtext_input {
    width: 100%;
    margin: 10px 0;
    border: 1px solid #a2a2a2;
    padding: 5px; }
  #contact_form textarea {
    width: 100%;
    color: inherit;
    font: inherit;
    border: none;
    height: 100px;
    resize: vertical; }
  #contact_form .field {
    border: 1px solid #a2a2a2;
    margin: 10px 0;
    display: table;
    padding: 5px;
    width: 100%; }
  @media (min-width: 500px) {
    #contact_form .container {
      display: flex;
      justify-content: space-between; }
      #contact_form .container .field {
        width: 30%; } }
  #contact_form label {
    display: table-cell;
    width: 1px;
    white-space: nowrap; }
  #contact_form input:not([type='submit']), #contact_form select {
    display: table-cell;
    border: none;
    width: 100%;
    color: inherit;
    font: inherit; }

#team {
  display: block; }

#teammembers {
  text-align: justify;
  text-align-last: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  font-family: sans-serif; }

.teammember {
  background: #ededed;
  display: inline-block;
  width: 300px;
  margin: 10px;
  padding: 10px;
  text-align: left;
  text-align-last: left; }
  .teammember h2 {
    font-size: inherit;
    margin: 10px 0; }
  .teammember img {
    display: block;
    margin: auto; }
  .teammember p {
    padding: 0; }

#principles ol {
  list-style-type: none;
  counter-reset: listitem; }
#principles li:before {
  counter-increment: listitem;
  content: counter(listitem);
  font-size: 300%;
  color: white;
  background-image: linear-gradient(-45deg, #2f2f2f, #2f2f2f 45%, transparent 50%), linear-gradient(200deg, #666666, #2f2f2f 50%);
  border-radius: 5px;
  display: block;
  float: left;
  width: 1em;
  height: 1em;
  line-height: 1em;
  margin-bottom: 1em;
  margin-right: .5em;
  text-align: center; }
#principles li {
  clear: both;
  color: #666666; }
  
  #services section > div {
  min-width: 10%; }

/*# sourceMappingURL=main.css.map */

.service_sub_list_align {
  padding-left: 50px;
}
.service_top_list_align {
  padding-left: 50px;
  color: #666666;
  margin-bottom: 1em;
  font-size: 90%;
}
.font_to_90 {
  color: #666666;
  margin-bottom: 1em;
  font-size: 90%;
}
.pretend_theres_no_ul {
color: #666666;
  margin-bottom: 1em;
  font-size: 90%;
  list-style-type: none;
}
.make_it_bolder {
  font-weight: bold;
}
.no_bottom_margin {
  margin-bottom: 0;
}