body,
html {
  margin: 0;
  padding: 0;
  font-family: Arial, sans-serif;
  height: 100%;
}

.container {
  min-height: 100vh;
  background: linear-gradient(to bottom, #0347bf, #90caf9);
  display: flex;
  justify-content: center;
  align-items: center;
  padding: clamp(1rem, 5vw, 2rem);
}

.content {
  background-color: #f0f8ff;
  border-radius: 8px;
  padding: clamp(1rem, 3vw, 2rem);
  max-width: min(800px, 95vw);
  width: 100%;
}

.logo {
  display: block;
  margin: auto;
  max-width: min(250px, 80vw);
  height: auto;
  margin-bottom: clamp(-2rem, -4vw, -1rem);
}

.outline {
  text-shadow: -1.5px -1.5px 0 #0347bf, 1.5px -1.5px 0 #0347bf,
    -1.5px 1.5px 0 #0347bf, 1.5px 1.5px 0 #0347bf;
}

.fill {
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.fill img {
  flex-shrink: 0;
  min-width: 100%;
  min-height: 100%;
}

img {
  width: 100%;
  height: auto;
}

h1 {
  font-size: clamp(1.75rem, 5vw, 2.25rem);
  color: #0347bf;
  text-align: center;
  margin-bottom: clamp(1.5rem, 4vw, 2rem);
  margin-top: clamp(1rem, 3vw, 2.5rem);
}

h2 {
  display: block;
  font-size: clamp(1.5rem, 4vw, 1.75rem);
  color: white;
  text-align: center;
}

.logo-bg {
  background-color: #0347bf;
  border-radius: 8px 8px 0 0;
  position: relative;
  overflow: hidden;
}

.logo-bg::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to bottom, #0347bf, #1e5fd7);
  z-index: 0;
}

.hero-container {
  width: 50%;
  /*border-radius: 0 8px 0 0;*/
  text-align: center;
  position: relative;
  z-index: 1;
}

.tag-line {
  color: white;
  font-size: clamp(0.875rem, 2.5vw, 1rem);
}

.hero-content {
  display: flex;
  flex-direction: row;
}

.topchampplumbingheater {
  width: 100%;
  height: 100%;
  object-fit: cover;
  overflow: hidden;
  border-radius: 0 8px 0 0;
  display: block;
}

.description {
  text-align: center;
  color: #333;
  margin-bottom: clamp(1.5rem, 4vw, 2rem);
  font-size: clamp(0.875rem, 2.5vw, 1rem);
}

.contact-info {
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 3vw, 1.25rem);
  margin-bottom: clamp(1.5rem, 4vw, 2rem);
  background: linear-gradient(to bottom, #3d7ae0, #5a8de6);
  border-radius: 8px;
}

.contact-info a {
  color: white;
  text-shadow: -1px -1px 0 #0347bf, 1px -1px 0 #0347bf, -1px 1px 0 #0347bf,
    1px 1px 0 #0347bf;
  text-decoration: none;
  transition: all 0.3s ease;
  font-size: clamp(0.875rem, 2.5vw, 1rem);
}

.contact-info a:hover {
  color: #023a8f;
  text-shadow: -1px -1px 0 white, 1px -1px 0 white, -1px 1px 0 white,
    1px 1px 0 white;
  transform: translateX(4px);
}

.contact-header {
  display: block;
  width: 100%;
}

.contact-row {
  margin: auto;
  display: flex;
  justify-content: space-evenly;
  flex-wrap: wrap;
  gap: clamp(1rem, 3vw, 1.25rem);
  padding: clamp(1.5rem, 4vw, 2.5rem);
}

.contact-links {
  display: flex;
  flex-direction: column;
  gap: clamp(0.75rem, 2vw, 1rem);
  width: 100%;
  padding: 0 clamp(1rem, 3vw, 1.25rem);
}

@media (min-width: 640px) {
  .contact-links {
    flex-direction: row;
    justify-content: space-around;
    align-items: center;
  }
}

.contact-item {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: clamp(0.5rem, 1.5vw, 0.75rem);
}

.icon {
  width: clamp(1.25rem, 3vw, 1.5rem);
  height: clamp(1.25rem, 3vw, 1.5rem);
  margin-right: clamp(0.5rem, 1.5vw, 0.75rem);
  color: white;
  transition: color 0.3s ease;
}

.contact-item:hover .icon {
  color: #023a8f;
}

.service-icon {
  width: clamp(1.75rem, 4vw, 2.25rem);
  height: clamp(1.75rem, 4vw, 2.25rem);
  margin-right: clamp(0.5rem, 1.5vw, 0.75rem);
  color: white;
}

.facebook-link {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: #0347bf;
  transition: all 0.3s ease;
}

.services {
  margin-bottom: clamp(1.5rem, 4vw, 2rem);
}

.service-area {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  background: linear-gradient(to bottom, #3d7ae0, #5a8de6);
  padding: clamp(1rem, 3vw, 2rem);
  position: relative;
  overflow: hidden;
  border-radius: 8px;
}

.area-block {
  width: 50%;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 1;
}

.services h3 {
  font-size: clamp(1rem, 3vw, 1.125rem);
  color: #0347bf;
  margin-bottom: clamp(0.75rem, 2vw, 1rem);
}

.services ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
  gap: clamp(0.5rem, 1.5vw, 0.75rem);
  padding-left: clamp(1rem, 3vw, 1.25rem);
}

.services li {
  color: #333;
  font-size: clamp(0.875rem, 2.5vw, 1rem);
}

.footer {
  text-align: center;
  font-size: clamp(0.75rem, 2vw, 0.875rem);
  color: #0347bf;
  padding: clamp(1rem, 3vw, 1.25rem) 0;
}

@media (max-width: 640px) {
  .hero-content {
    flex-direction: column;
    padding: 0px;
  }

  .hero-container {
    width: 100%;
    padding: 0px;
  }

  .service-area {
    flex-direction: column;
    gap: clamp(1rem, 3vw, 1.25rem);
  }

  .area-block {
    width: 100%;
  }

  .contact-row {
    text-align: center;
  }

  .contact-item {
    justify-content: center;
  }

  .tag-line {
    margin: 20px;
  }

  .topchampplumbingheater {
    border-radius: 0px 0px 0px 0px;
    padding: 0px;
    margin: 0px;
  }
}

@media (min-width: 641px) and (max-width: 1024px) {
  .hero-container {
    /*padding: clamp(1rem, 3vw, 1.25rem);*/
    padding: 0;
  }
}

@media (hover: hover) {
  .contact-info a:hover,
  .services li:hover {
    transform: translateX(4px);
  }
}
