:root {
  --green-1: #3dae2b;
  --green-2: #3ba329;
  --gray-1: #76777a;
  --section-space: 40px;
  --gris-2: #efefef;
  --white: white;
  --green-3: #389b27;
  --black: black;
}

.no-underline {
  text-decoration: none;
}

.w-layout-hflex {
  flex-direction: row;
  align-items: flex-start;
  display: flex;
}

.w-layout-vflex {
  flex-direction: column;
  align-items: flex-start;
  display: flex;
}

.header {
  z-index: 999;
  background-color: var(--green-1);
  padding-top: 0;
  padding-bottom: 0;
  position: -webkit-sticky;
  position: sticky;
  top: 0;
}

.menu {
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  justify-content: center;
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 0;
  list-style-type: none;
  display: flex;
}

.menu-item-link {
  padding: 20px;
  text-decoration: none;
}

.menu-item-link:hover {
  background-color: var(--green-2);
  text-decoration: none;
}

.menu-item-link-text {
  color: #fff;
  text-transform: uppercase;
  font-weight: 600;
  text-decoration: none;
}

.body {
  color: var(--gray-1);
  font-family: Montserrat, sans-serif;
}

.hero {
  height: 750px;
  background-image: url('../images/gb-desktop_imagen-1.png');
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: cover;
  justify-content: center;
  align-items: center;
  display: flex;
}

.hero-logo {
  width: 400px;
  margin-left: 500px;
}

.section-nosotros {
  margin-top: 0;
  padding-top: 100px;
  padding-bottom: 40px;
}

.grid {
  max-width: 1183px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
}

.grid.lamina {
  margin-top: var(--section-space);
  margin-bottom: var(--section-space);
  padding-top: 40px;
}

.grid.section-solar-contact {
  padding-top: var(--section-space);
  padding-bottom: var(--section-space);
  display: flex;
}

.grid.horizontal {
  display: flex;
}

.grid.horizontal.footer {
  border: 1px #000;
}

.grid._4mil {
  margin-top: 0;
  padding-top: 20px;
  padding-bottom: 20px;
}

.section-title {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 45px;
  font-weight: 300;
  line-height: 50px;
}

.section-title.laminas-mobile {
  display: none;
}

.text-color-green-1 {
  color: var(--green-1);
}

.section-paragraph {
  max-width: 766px;
  margin-left: auto;
  font-size: 28px;
  line-height: 38px;
}

.section-paragraph.verde {
  color: var(--green-1);
}

.section-arquitectura {
  height: 400px;
  margin-top: var(--section-space);
  background-image: url('../images/gb-desktop_imagen-2.png');
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: cover;
  justify-content: center;
  align-items: center;
  display: flex;
}

.section-arquitectura.mobile {
  display: none;
}

.section-arquitectura-text {
  color: #fff;
  text-transform: uppercase;
  font-size: 32px;
  font-weight: 700;
  line-height: 38px;
}

.section-solar {
  padding-top: 0;
}

.text-color-white {
  color: #fff;
}

.section-solar-hero {
  height: 600px;
  background-image: url('../images/gb-desktop_imagen-3.png');
  background-position: 50% 0;
  background-repeat: no-repeat;
  background-size: cover;
  margin-bottom: 50px;
  padding-top: 100px;
  padding-bottom: 0;
}

.section-solar-cards {
  grid-column-gap: 8px;
  margin-top: 50px;
  display: flex;
}

.section-solar-card-item {
  width: 368px;
  position: relative;
}

.card-item-img {
  display: block;
}

.card-item-img.mobile {
  display: none;
}

.card-item-content {
  background-image: linear-gradient(#e5e5e5, #fff);
  flex-direction: column;
  padding: 0 20px 20px;
  display: flex;
  position: static;
}

.card-item-content.with-title {
  padding-top: 20px;
}

.card-item-content-text {
  color: var(--gray-1);
  font-size: 22px;
  line-height: 30px;
}

.text-span, .text-span-2, .text-span-3 {
  font-weight: 700;
}

.card-item-icon {
  width: 45px;
  margin-top: -22px;
  margin-bottom: 10px;
  margin-left: 0;
  position: static;
  top: 275px;
  left: 0;
}

.card-item-icon-extra {
  width: 142px;
  margin-top: -17px;
  margin-left: auto;
  margin-right: 20px;
  position: static;
  bottom: 0;
  left: auto;
  right: 0;
}

.section-subtitle {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 28px;
}

.card-item-content-title {
  height: 48px;
  text-transform: uppercase;
  align-items: center;
  margin-top: 0;
  margin-bottom: 30px;
  font-size: 22px;
  display: flex;
}

.text-span-4, .text-span-5, .text-span-6 {
  font-weight: 700;
}

.card-item-img-container {
  height: 146px;
  border-bottom: 1.5px solid var(--green-1);
  justify-content: center;
  align-items: stretch;
  padding-top: 0;
  padding-bottom: 40px;
  display: flex;
}

.paragraph {
  max-width: 695px;
  margin-bottom: 0;
  margin-left: auto;
  margin-right: auto;
  font-size: 28px;
  line-height: 38px;
}

.section-solar-contact {
  margin-top: var(--section-space);
  background-color: var(--green-1);
  padding-top: 20px;
}

.section-solar-contact-list {
  flex-direction: column;
  align-items: flex-end;
  margin-bottom: 0;
  margin-left: auto;
  padding-left: 0;
  list-style-type: none;
  display: flex;
}

.contact-list-item {
  width: 437px;
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
  padding-top: 20px;
  padding-bottom: 20px;
  font-size: 24px;
  font-weight: 700;
  display: block;
  position: relative;
}

.contact-list-item.last-child {
  margin-top: -1px;
}

.grid-column {
  width: 50%;
}

.grid-column.section-solar-left {
  margin-top: -30px;
}

.grid-column.section-solar-right {
  margin-top: 15px;
  margin-bottom: 0;
}

.grid-column.footer-right {
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-end;
  display: flex;
}

.section-contacto {
  margin-top: 0;
  padding-top: 100px;
  padding-bottom: 60px;
}

.paragraph-2 {
  width: auto;
  margin-top: 37px;
  margin-bottom: 37px;
  font-size: 28px;
  font-weight: 500;
  line-height: 38px;
}

.paragraph-2.form {
  width: 820px;
}

.image {
  width: 28px;
}

.contact-list-item-icon {
  width: 28px;
  position: absolute;
  bottom: 15px;
  left: -45px;
}

.form-2 {
  flex-direction: column;
  display: flex;
}

.flex-block {
  height: 219px;
  grid-column-gap: 40px;
  grid-row-gap: 40px;
  flex-direction: row;
  justify-content: center;
  align-items: stretch;
}

.flex-block-2 {
  width: 50%;
}

.flex-block-3 {
  width: 50%;
  align-items: stretch;
}

.inputs {
  width: 100%;
  justify-content: space-between;
  align-items: flex-start;
}

.textarea.text-field {
  height: 100%;
  color: var(--gray-1);
}

.submit-button {
  width: 124px;
  background-color: var(--green-1);
  margin-left: auto;
}

.text-field {
  background-color: var(--gris-2);
  border: 1px #000;
}

.text-field-2, .text-field-3 {
  background-color: var(--gris-2);
}

.field-label {
  color: var(--gray-1);
  font-weight: 600;
}

.footer {
  background-color: var(--gray-1);
  color: var(--gray-1);
  border-top: 1px solid #5d5d5d;
  padding-top: 30px;
  padding-bottom: 0;
}

.text-block {
  color: #fff;
  margin-bottom: 60px;
  font-weight: 600;
}

.link-block {
  color: var(--gris-2);
  border-top: 1px solid #5d5d5d;
  text-decoration: none;
}

.div-block {
  width: 230px;
  flex-direction: column;
  display: flex;
}

.text-block-2, .text-block-3 {
  padding-top: 10px;
}

.text-block-4 {
  padding-top: 10px;
  padding-bottom: 10px;
}

.lista-menu-footer {
  padding-top: 12px;
  padding-bottom: 12px;
  font-size: 16px;
}

.lista-menu-footer.contacto {
  border-bottom: 1px solid #5d5d5d;
}

.social-media {
  grid-column-gap: 20px;
  grid-row-gap: 20px;
  justify-content: center;
  align-items: center;
  margin-bottom: 60px;
  display: flex;
}

.social-media.mobile {
  display: none;
}

.image-2, .image-3 {
  width: 32px;
}

.image-4 {
  width: 168px;
}

.box-politicas {
  max-width: 1103px;
  grid-column-gap: 5px;
  grid-row-gap: 5px;
  border-top: 1px solid #5d5d5d;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  margin-top: 40px;
  margin-left: auto;
  margin-right: auto;
  padding: 30px 0;
  display: flex;
}

.text-block-5 {
  color: #fff;
  font-size: 10px;
}

.link {
  color: #fff;
  font-size: 10px;
  text-decoration: none;
}

.hamburger {
  display: none;
}

.success-message {
  margin-top: 10px;
  padding: 10px;
  background-color: var(--green-2);
  color: var(--white);
}

.error-message {
  margin-top: 10px;
  padding: 10px;
  background-color: #ffdede;
}

.success-message.hidden,
.error-message.hidden {
  display: none;
}

.submit-button.loading {
  pointer-events: none;
  opacity: 0.7;
}

@media screen and (max-width: 991px) {
  .hero {
    padding-right: 40px;
  }

  .hero-logo {
    width: 350px;
    margin-left: auto;
  }

  .section-nosotros {
    margin-top: 60px;
  }

  .grid.lamina {
    background-image: linear-gradient(#e6e7e8, #fff 31%);
    margin-top: 0;
    margin-bottom: 50px;
    padding-top: 60px;
  }

  .grid.section-solar-contact {
    flex-direction: column;
    align-items: center;
    margin-top: 50px;
    padding-top: 60px;
    padding-bottom: 60px;
  }

  .grid._4mil {
    width: 80%;
    text-align: center;
  }

  .section-title {
    margin-bottom: 0;
    font-size: 42px;
  }

  .section-title.laminas-mobile {
    display: none;
  }

  .section-paragraph {
    font-size: 24px;
  }

  .section-arquitectura {
    display: none;
  }

  .section-arquitectura.mobile {
    height: 300px;
    display: flex;
  }

  .text-color-white {
    line-height: 45px;
  }

  .section-solar-hero {
    background-image: url('../images/gb-mobile_imagen-2.png');
    background-position: 50%;
    margin-top: 60px;
    padding-top: 60px;
  }

  .section-solar-cards {
    flex-direction: column;
  }

  .section-solar-card-item {
    width: 100%;
    flex-direction: column;
    margin-bottom: 20px;
    display: block;
  }

  .card-item-img {
    display: block;
  }

  .card-item-img.mobile {
    width: 100%;
    display: block;
  }

  .card-item-img.desktop {
    display: none;
  }

  .card-item-content {
    background-image: linear-gradient(#e5e5e5, #fdfdfd);
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 30px;
    display: flex;
  }

  .card-item-content-text.garantia {
    width: 60%;
  }

  .card-item-icon {
    top: 322px;
  }

  .card-item-icon-extra {
    position: static;
  }

  .card-item-content-title {
    height: auto;
    margin-bottom: 20px;
  }

  .section-solar-contact {
    margin-top: 60px;
  }

  .grid-column.section-solar-left {
    width: auto;
    margin-top: 0;
  }

  .grid-column.section-solar-right {
    display: flex;
  }

  .grid-column.footer-right {
    grid-column-gap: 25px;
    grid-row-gap: 25px;
  }

  .paragraph-2.form {
    width: auto;
  }

  .contact-list-item-icon {
    bottom: 29px;
  }

  .form-2 {
    align-items: stretch;
  }

  .flex-block {
    height: auto;
    grid-column-gap: 10px;
    grid-row-gap: 10px;
    flex-direction: column;
    align-items: center;
  }

  .flex-block-2, .flex-block-3 {
    width: 100%;
  }

  .inputs {
    margin-bottom: 10px;
  }

  .textarea.text-field {
    height: 260px;
  }

  .text-block, .social-media {
    display: none;
  }

  .social-media.mobile {
    justify-content: flex-start;
    align-items: flex-start;
    margin-bottom: 40px;
    display: flex;
  }

  .icon-up {
    width: 50px;
    display: block;
  }
}

@media screen and (max-width: 767px) {
  .hero {
    height: 650px;
    padding-right: 40px;
  }

  .hero-logo {
    width: 250px;
    margin-left: auto;
  }

  .section-nosotros {
    margin-top: 60px;
    padding-bottom: 60px;
  }

  .grid.section-solar-contact {
    align-items: flex-start;
  }

  .section-title {
    margin-bottom: 0;
    font-size: 42px;
  }

  .section-title.laminas-mobile {
    display: none;
  }

  .section-paragraph {
    font-size: 24px;
  }

  .section-arquitectura {
    display: none;
  }

  .section-arquitectura.mobile {
    height: 250px;
  }

  .section-arquitectura-text {
    font-size: 27px;
  }

  .text-color-white {
    line-height: 45px;
    display: block;
  }

  .section-solar-hero {
    height: 400px;
    background-image: url('../images/gb-mobile_imagen-2.png');
    background-position: 50%;
    padding-top: 100px;
  }

  .card-item-content {
    flex-direction: column;
  }

  .card-item-icon {
    top: 217px;
  }

  .section-solar-contact {
    padding-top: 0;
  }

  .section-solar-contact-list {
    align-items: center;
    margin-left: 0;
  }

  .contact-list-item {
    width: 100%;
    grid-column-gap: 20px;
    display: flex;
  }

  .grid-column.section-solar-left {
    margin-bottom: 20px;
  }

  .grid-column.section-solar-right {
    width: auto;
    justify-content: center;
    margin-top: 0;
    padding-right: 0;
  }

  .contact-list-item-icon {
    position: static;
  }

  .hamburger {
    display: none;
  }
}

@media screen and (max-width: 479px) {
  .header {
    width: 100%;
    background-color: rgba(0, 0, 0, 0);
    flex-direction: column;
    align-items: stretch;
    display: flex;
    position: fixed;
  }

  .menu {
    background-color: rgba(0, 0, 0, .73);
    padding-top: 40px;
    padding-bottom: 40px;
    display: block;
  }

  .menu.menu-closed {
    display: none;
  }

  .menu-item-link {
    min-width: 170px;
    border-bottom: 1px solid var(--green-1);
  }

  .menu-item-link.up {
    border-top: 1px solid var(--green-1);
  }

  .menu-item-link-text {
    width: auto;
  }

  .hero-logo {
    width: 200px;
  }

  .section-nosotros {
    margin-top: 0;
  }

  .grid {
    padding-left: 30px;
    padding-right: 30px;
  }

  .grid.section-solar-contact {
    align-items: flex-start;
    margin-top: 0;
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .grid.horizontal.footer {
    grid-column-gap: 31px;
    grid-row-gap: 31px;
    border: 1px #000;
    padding-top: 0;
  }

  .grid._4mil {
    padding-left: 0;
    padding-right: 0;
    line-height: 16px;
  }

  .section-title {
    margin-bottom: 0;
    font-size: 30px;
    display: block;
  }

  .section-title.second-line {
    display: none;
  }

  .section-title.laminas-mobile {
    display: block;
  }

  .section-title.laminas-desktop {
    display: none;
  }

  .section-paragraph {
    font-size: 22px;
    line-height: 29px;
  }

  .section-arquitectura.mobile {
    height: 200px;
    margin-top: 0;
  }

  .section-arquitectura-text {
    font-size: 19px;
  }

  .text-color-white {
    line-height: 30px;
  }

  .text-color-white.info {
    font-size: 18px;
  }

  .section-solar-hero {
    margin-top: 0;
  }

  .card-item-content {
    flex-direction: column;
    margin-bottom: 10px;
  }

  .card-item-content-text {
    font-size: 16px;
    line-height: 24px;
  }

  .card-item-content-text.garantia {
    width: auto;
  }

  .card-item-icon {
    width: 34px;
    top: 112px;
  }

  .card-item-icon-extra {
    margin-top: 0;
  }

  .card-item-content-title {
    font-size: 18px;
    line-height: 22px;
    display: block;
  }

  .paragraph {
    line-height: 33px;
  }

  .section-solar-contact {
    margin-top: 60px;
    padding-top: 0;
  }

  .section-solar-contact-list {
    align-items: flex-start;
  }

  .contact-list-item {
    width: 100%;
    align-items: center;
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .grid-column.section-solar-left {
    margin-bottom: 20px;
  }

  .grid-column.section-solar-right {
    padding-right: 0;
  }

  .grid-column.footer-right {
    justify-content: space-between;
  }

  .section-contacto {
    margin-top: 60px;
    padding-top: 0;
  }

  .paragraph-2.form {
    font-size: 20px;
    line-height: 28px;
  }

  .contact-list-item-icon {
    bottom: 11px;
  }

  .footer {
    border: 1px #000;
    padding-top: 40px;
  }

  .div-block, .image-4 {
    width: auto;
  }

  .box-politicas {
    width: 83%;
    margin-top: 60px;
  }

  .hamburger {
    margin-left: auto;
    padding: 20px;
    display: block;
  }

  .image-5, .menu-icon-closed {
    width: 48px;
  }

  .menu-icon-closed.hidden {
    width: 48px;
    margin-left: 0;
    display: none;
  }

  .menu-icon-open {
    width: 48px;
  }

  .menu-icon-open.hidden {
    width: 48px;
    margin-left: 0;
    display: none;
  }

  .icon-up {
    width: auto;
  }

  .icon-up-link {
    width: 50%;
    margin-bottom: -30px;
  }
}
