html,
body {
  overflow-x: hidden;
}

img,
svg,
video {
  max-width: 100%;
  height: auto;
}

@media (max-width: 820px) {
  .elementor .e-con,
  .elementor .e-parent,
  .elementor .e-child {
    min-width: 0 !important;
  }

  .aa-unified-nav {
    padding: 10px 0 !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    border-bottom-color: rgba(128, 129, 132, 0.24) !important;
  }

  .aa-unified-nav .aa-unified-nav__inner {
    width: calc(100vw - 28px) !important;
    min-height: 64px !important;
    gap: 14px !important;
  }

  .aa-unified-nav .aa-unified-logo {
    width: clamp(170px, 48vw, 232px) !important;
  }

  .aa-unified-nav .wpr-mobile-toggle,
  .aa-unified-nav .mobile-toggle {
    width: 40px !important;
    height: 40px !important;
    font-size: 32px !important;
  }

  .aa-unified-nav .wpr-mobile-nav-menu,
  .aa-unified-nav .mobile-nav {
    top: 100% !important;
    left: 0 !important;
    right: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 22px 14px !important;
    border-radius: 0 !important;
  }

  .aa-unified-nav .wpr-mobile-nav-menu .menu-item > a,
  .aa-unified-nav .wpr-mobile-sub-menu .menu-item > a,
  .aa-unified-nav .mobile-nav > a {
    padding: 18px 6px !important;
    font-size: 17px !important;
  }

  .aa-nav-hero-band {
    min-height: 104px !important;
  }

  .elementor-page-199 .aa-nav-hero-band,
  .elementor-page-57 .aa-nav-hero-band {
    min-height: 100svh !important;
    background-position: center center !important;
  }

  .elementor-page-106 .elementor-element.elementor-element-35d727b,
  .elementor-page-106 .elementor-element.elementor-element-db1b9d8,
  .elementor-page-106 .elementor-element.elementor-element-926bc06,
  .elementor-page-106 .elementor-element.elementor-element-3fb47d4 {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

  .elementor-page-106 .elementor-element.elementor-element-1b2cb0c,
  .elementor-page-106 .elementor-element.elementor-element-d783255,
  .elementor-page-106 .elementor-element.elementor-element-88f54a6,
  .elementor-page-106 .elementor-element.elementor-element-2f6efe5,
  .elementor-page-106 .elementor-element.elementor-element-82a5da3,
  .elementor-page-106 .elementor-element.elementor-element-8d549e2,
  .elementor-page-106 .elementor-element.elementor-element-63a07e5,
  .elementor-page-106 .elementor-element.elementor-element-8fa2c87,
  .elementor-page-106 .elementor-element.elementor-element-60c4d83 {
    width: min(100%, calc(100vw - 40px)) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 24px !important;
  }

  .elementor-page-106 .elementor-element.elementor-element-ddf664c,
  .elementor-page-106 .elementor-element.elementor-element-03a31ca,
  .elementor-page-106 .elementor-element.elementor-element-db92254 {
    width: min(100%, calc(100vw - 40px)) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 20px !important;
  }

  .elementor-page-106 .elementor-element.elementor-element-296dc40,
  .elementor-page-106 .elementor-element.elementor-element-6c949bd,
  .elementor-page-106 .elementor-element.elementor-element-615f039,
  .elementor-page-106 .elementor-element.elementor-element-ec8aabc,
  .elementor-page-106 .elementor-element.elementor-element-258390b,
  .elementor-page-106 .elementor-element.elementor-element-2d76698,
  .elementor-page-106 .elementor-element.elementor-element-c5b1c73,
  .elementor-page-106 .elementor-element.elementor-element-1ced8ce,
  .elementor-page-106 .elementor-element.elementor-element-8e16dd2,
  .elementor-page-106 .elementor-element.elementor-element-c4ff8cb,
  .elementor-page-106 .elementor-element.elementor-element-20d3678,
  .elementor-page-106 .elementor-element.elementor-element-faf5eb4,
  .elementor-page-106 .elementor-element.elementor-element-85efb76,
  .elementor-page-106 .elementor-element.elementor-element-70a22a2,
  .elementor-page-106 .elementor-element.elementor-element-8c8b39a,
  .elementor-page-106 .elementor-element.elementor-element-6b99e66,
  .elementor-page-106 .elementor-element.elementor-element-662abff,
  .elementor-page-106 .elementor-element.elementor-element-8400ca9,
  .elementor-page-106 .elementor-element.elementor-element-5470e2e,
  .elementor-page-106 .elementor-element.elementor-element-67ebad1 {
    width: 100% !important;
    max-width: none !important;
    flex: 1 1 auto !important;
  }

  .elementor-page-106 .elementor-element.elementor-element-03a31ca img,
  .elementor-page-106 .elementor-element.elementor-element-85efb76 img,
  .elementor-page-106 .elementor-element.elementor-element-8c8b39a img,
  .elementor-page-106 .elementor-element.elementor-element-e728aec img {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    margin: 0 auto !important;
  }

  .elementor-page-106 .elementor-element.elementor-element-8fa2c87,
  .elementor-page-106 .elementor-element.elementor-element-60c4d83,
  .elementor-page-106 .elementor-element.elementor-element-5470e2e,
  .elementor-page-106 .elementor-element.elementor-element-67ebad1 {
    align-items: center !important;
    text-align: center !important;
  }

  .elementor-page-106 .elementor-element.elementor-element-bb1ed34 {
    text-align: center !important;
  }

  .elementor-page-199 .obras-section {
    margin: 0 !important;
    padding: 40px 20px !important;
  }

  .elementor-page-199 .obras-grid {
    gap: 28px !important;
    margin-top: 34px !important;
  }

  .elementor-page-199 .obras-grid .obra-card {
    min-width: 0 !important;
    width: 100% !important;
    flex-basis: 100% !important;
  }

  .elementor-page-199 .card-header {
    min-height: 220px !important;
  }

  .elementor-page-199 .card-title {
    font-size: 22px !important;
    line-height: 1.15 !important;
  }

  .elementor-page-199 .sep {
    margin: 36px 0 0 !important;
  }

  .elementor-page-199 .js-popup.is-mobile .popup-inner {
    padding: 24px 20px !important;
  }

  .elementor-page-199 .popup-sup {
    font-size: 28px !important;
  }

  .elementor-page-199 .popup-unidades {
    font-size: 18px !important;
  }

  .elementor-page-199 .elementor-element.elementor-element-7034ac6 {
    padding: 40px 20px !important;
  }

  .elementor-page-199 .elementor-element.elementor-element-1fbc983 {
    width: 100% !important;
    gap: 12px !important;
    align-items: flex-start !important;
  }

  .elementor-page-199 .elementor-element.elementor-element-781dac2 .elementor-heading-title {
    font-size: 28px !important;
  }

  .elementor-page-199 .elementor-element.elementor-element-60f36d1,
  .elementor-page-199 .elementor-element.elementor-element-4cbefa1,
  .elementor-page-199 .elementor-element.elementor-element-da9ecd7,
  .elementor-page-199 .elementor-element.elementor-element-556ab70 {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 18px !important;
    text-align: center !important;
  }

  .elementor-page-199 .elementor-element.elementor-element-60f36d1 {
    padding-inline: 20px !important;
  }

  .elementor-page-199 .elementor-element.elementor-element-0d55a05,
  .elementor-page-199 .elementor-element.elementor-element-6a34388 {
    text-align: center !important;
  }

  .aa-footer-contact-form {
    padding: 40px 20px 36px !important;
  }

  .aa-footer-contact-box {
    padding: 24px 20px 20px !important;
    border-radius: 16px !important;
  }

  .aa-footer-contact-title {
    font-size: 30px !important;
  }

  .aa-footer-contact-subtitle {
    font-size: 20px !important;
  }

  .footer-inner {
    width: calc(100vw - 40px) !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
  }

  .footer-links {
    justify-content: center !important;
  }
}

@media (max-width: 767px) {
  .home .elementor-element-57ef9e8 {
    gap: 34px !important;
    padding-top: 52px !important;
    padding-bottom: 52px !important;
  }

  .home .elementor-element-0dae307 {
    gap: 18px !important;
    align-items: center !important;
    text-align: center !important;
  }

  .home .elementor-element-73ae186,
  .home .elementor-element-45ba555,
  .home .elementor-element-69de7bf,
  .home .elementor-element-55fc7ad {
    align-items: center !important;
    text-align: center !important;
  }

  .home .elementor-element-48981d8 h2.elementor-heading-title,
  .home .elementor-element-b2e8d11 h2.elementor-heading-title {
    font-size: 28px !important;
    line-height: 1.02 !important;
  }

  .home .elementor-element-acb50c0 h3.elementor-heading-title {
    font-size: 24px !important;
    line-height: 1.1 !important;
  }

  .home .elementor-element-13b80dd,
  .home .elementor-element-13b80dd p {
    max-width: 29ch !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: 16px !important;
    line-height: 1.58 !important;
    text-align: center !important;
    color: #4d4d4d !important;
  }

  .home .elementor-element-13b80dd p + p {
    margin-top: 18px !important;
  }

  .home .elementor-element-69de7bf {
    margin-top: 0 !important;
  }

  .home .elementor-element-77bcbec {
    width: calc(100% + 40px) !important;
    margin-left: -20px !important;
    margin-right: -20px !important;
    padding: 32px 28px 34px !important;
    gap: 24px !important;
  }

  .home .elementor-element-b2e8d11 {
    width: 100% !important;
    text-align: left !important;
  }

  .home .elementor-element-b2e8d11 h2.elementor-heading-title {
    text-align: left !important;
  }

  .home .elementor-element-dfc5bab {
    gap: 22px !important;
  }

  .home .elementor-element-77bcbec h4.elementor-heading-title {
    font-size: 18px !important;
    line-height: 1.1 !important;
  }

  .home .elementor-element-77bcbec p.elementor-heading-title {
    font-size: 16px !important;
    line-height: 1.28 !important;
  }

  .home .elementor-element-77bcbec .elementor-widget-divider {
    margin: 6px 0 6px !important;
  }

  .home .elementor-element-e825f7e,
  .home .elementor-element-7f0f934 {
    width: 100% !important;
    align-items: flex-start !important;
    text-align: left !important;
  }

  .home .elementor-element-7f0f934 h2.elementor-heading-title {
    font-size: 27px !important;
    line-height: 1.12 !important;
    text-align: left !important;
  }

  .home .obras-timeline {
    overflow: hidden !important;
  }

  .home .tl-stats {
    justify-content: flex-start !important;
    gap: 30px !important;
    margin: 18px 0 24px !important;
  }

  .home .stat-label {
    font-size: 18px !important;
  }

  .home .stat-value {
    font-size: 28px !important;
  }

  .home .tl-rail {
    width: 100% !important;
    gap: 6px !important;
    align-items: center !important;
  }

  .home .tl-track {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    padding: 10px 22px 0 !important;
  }

  .home .tl-item {
    flex-basis: 72px !important;
    height: 108px !important;
    padding: 0 12px !important;
  }

  .home .tl-item.current {
    flex-basis: 72px !important;
  }

  .home .tl-detail {
    margin-top: 14px !important;
    padding-top: 14px !important;
    padding-bottom: 14px !important;
  }

  .home .tl-detail .t {
    font-size: 19px !important;
    line-height: 1.15 !important;
  }

  .home .tl-detail .c {
    font-size: 16px !important;
  }

  .home .tl-detail .d,
  .home .tl-detail .o {
    font-size: 14px !important;
    line-height: 1.45 !important;
  }

  .home .elementor-element-6512cea {
    gap: 24px !important;
    padding-top: 8px !important;
    align-items: center !important;
    text-align: center !important;
  }

  .home .elementor-element-23512ac,
  .home .elementor-element-e3010cf {
    align-items: center !important;
    text-align: center !important;
  }

  .home .elementor-element-bf4b786 img {
    width: 210px !important;
  }

  .home .elementor-element-70d1457,
  .home .elementor-element-70d1457 p {
    max-width: 31ch !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
    text-align: center !important;
  }

  .home .elementor-element-f481cfb {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    margin-top: 4px !important;
    padding: 46px 26px 52px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    background:
      linear-gradient(180deg, rgba(15, 15, 15, 0.54) 0%, rgba(15, 15, 15, 0.72) 100%),
      url("assets/images/Home/portada-3-mob.jpg") center center / cover no-repeat !important;
  }

  .home .elementor-element-d49aa6e,
  .home .elementor-element-0fccb65 {
    flex-direction: column !important;
    gap: 42px !important;
    align-items: center !important;
    text-align: center !important;
  }

  .home .elementor-element-25b6757,
  .home .elementor-element-cbc989b,
  .home .elementor-element-7ecb622,
  .home .elementor-element-7f15da9 {
    flex-direction: column !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    gap: 4px !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    min-height: 0 !important;
  }

  .home .elementor-element-f481cfb .elementor-widget-heading,
  .home .elementor-element-f481cfb .elementor-widget-counter {
    width: 100% !important;
  }

  .home .elementor-element-f481cfb h3.elementor-heading-title {
    color: #faae40 !important;
    font-size: 26px !important;
    line-height: 1.08 !important;
    font-weight: 300 !important;
  }

  .home .elementor-element-f481cfb .elementor-counter {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    text-align: center !important;
  }

  .home .elementor-element-f481cfb .elementor-counter-number-wrapper {
    display: inline-flex !important;
    width: auto !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    margin: 0 auto !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 0.12em !important;
    font-size: 22px !important;
    line-height: 1.1 !important;
    color: #ffffff !important;
  }

  .home .elementor-element-f481cfb .elementor-counter-number {
    flex: 0 0 auto !important;
    font-size: inherit !important;
    color: #ffffff !important;
  }

  .home .elementor-element-f481cfb .elementor-counter-number-prefix,
  .home .elementor-element-f481cfb .elementor-counter-number-suffix {
    flex: 0 0 auto !important;
    font-size: 0.92em !important;
    text-align: center !important;
    white-space: normal !important;
    color: #ffffff !important;
  }

  .home .elementor-element-6e80c69 .elementor-counter-number-wrapper,
  .home .elementor-element-e9ac95c .elementor-counter-number-wrapper,
  .home .elementor-element-f1ecf72 .elementor-counter-number-wrapper {
    font-size: 13px !important;
    line-height: 1.2 !important;
    opacity: 0.92 !important;
  }

  .home .elementor-element-6cc9b75 .elementor-counter-number-wrapper,
  .home .elementor-element-075a558 .elementor-counter-number-wrapper,
  .home .elementor-element-b956f95 .elementor-counter-number-wrapper,
  .home .elementor-element-0f98d0c .elementor-counter-number-wrapper {
    font-size: 20px !important;
  }

  .home .elementor-element-6e80c69 .elementor-counter-number,
  .home .elementor-element-e9ac95c .elementor-counter-number,
  .home .elementor-element-f1ecf72 .elementor-counter-number,
  .home .elementor-element-6e80c69 .elementor-counter-number-prefix,
  .home .elementor-element-e9ac95c .elementor-counter-number-prefix,
  .home .elementor-element-f1ecf72 .elementor-counter-number-prefix,
  .home .elementor-element-6e80c69 .elementor-counter-number-suffix,
  .home .elementor-element-e9ac95c .elementor-counter-number-suffix,
  .home .elementor-element-f1ecf72 .elementor-counter-number-suffix {
    color: #ffffff !important;
  }

  .home .elementor-element-9e2ce70 {
    padding-top: 50px !important;
    gap: 18px !important;
  }

  .home .elementor-element-cb96c3a img {
    width: min(100%, 720px) !important;
  }

  .home .elementor-element-ca2ccb7 {
    padding-top: 6px !important;
  }

  .home .elementor-element-ca2ccb7 .elementor-button-link {
    font-size: 18px !important;
    line-height: 1.1 !important;
    color: #4d4d4d !important;
  }

  .home .aa-footer-contact-form {
    padding: 42px 20px 34px !important;
  }

  .home .aa-footer-contact-box {
    max-width: 100% !important;
    padding: 26px 20px 20px !important;
    border-radius: 18px !important;
  }

  .home .aa-footer-contact-title {
    font-size: 28px !important;
    font-weight: 300 !important;
  }

  .home .aa-footer-contact-subtitle {
    font-size: 20px !important;
  }
}
