/* Index */
    :root {
      --black: #151515;
      --gray: #f1f1f1;
      --text: #252525;
      --soft-text: #777;
      --border: #b8b8b8;
      --whatsapp: #25d366;
    }

    * {
      box-sizing: border-box;
    }

    body {
      margin: 0;
      font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
      color: var(--text);
      letter-spacing: 1.2px;
      background: #fff;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

    img {
      max-width: 100%;
      display: block;
    }

    /* HEADER */

    .page-home .site-header {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      z-index: 20;
      padding: 28px 0 18px;
      border-bottom: 1px solid rgba(0, 0, 0, 0.25);
    }
    
    .page-vision .site-header, 
    .page-servicios .site-header,
    .page-proyectos .site-header,
	.page-contacto .site-header {
      width: 100%;
      background: #fff;
      padding: 28px 0 18px;
      border-bottom: 1px solid rgba(0, 0, 0, 0.12);
      z-index: 20;
    }

    .header-inner {
      width: 92%;
      max-width: 1180px;
      margin: 0 auto;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .logo {
      width: 135px;
    }

    .main-nav {
      display: flex;
      align-items: center;
      gap: 34px;
      font-size: 13px;
      font-weight: 500;
    }
    
    .main-nav a.active {
      font-weight: 700;
    }

    .social-header {
      display: flex;
      align-items: center;
      gap: 15px;
      margin-left: 18px;
      font-size: 17px;
    }

    /* HERO */

    .home-hero {
      min-height: 510px;
      background-image: url("../img/hero.jpg");
      background-size: cover;
      background-position: center;
      position: relative;
    }

    .home-hero::after {
      content: "";
      position: absolute;
      inset: 0;
      background: rgba(255, 255, 255, 0.08);
      pointer-events: none;
    }
    
    .vision-hero {
      position: relative;
      min-height: 390px;
      background-image: url("../img/vision-hero.jpg");
      background-size: cover;
      background-position: center;
      display: flex;
      align-items: flex-end;
    }
    
    .vision-hero::before {
      content: "";
      position: absolute;
      inset: 0;
      background: rgba(0, 0, 0, 0.12);
    }

    .vision-hero-content {
      position: relative;
      width: 92%;
      max-width: 1180px;
      margin: 0 auto;
      padding-bottom: 34px;
      display: flex;
      justify-content: flex-end;
      color: #fff;
    }

    .vision-hero-text {
      width: 380px;
    }

    .vision-hero-text h1 {
      margin: 0;
      font-size: 26px;
      line-height: 1.1;
      font-weight: 400;
      letter-spacing: 2px;
    }

    .vision-hero-text p {
      margin: 4px 0 0;
      font-size: 15px;
      font-weight: 300;
      letter-spacing: 1.6px;
    }

    .services-hero {
      width: 100%;
      height: 315px;
      background-image: url("../img/servicios-hero.jpg");
      background-size: cover;
      background-position: center;
    }
    
    

    /* SIMULADOR */

    .simulator {
      padding: 58px 0 66px;
      text-align: center;
      background: #fff;
    }
	
	.simulator .visible {
		display: block;
	}
	
	.simulator .hide {
		display: none;
	}

    .section-title {
      font-size: 32px;
      font-weight: 300;
      margin-bottom: 30px;
      letter-spacing: 4px;
    }

    .small-line {
      width: 86px;
      height: 4px;
      background: var(--black);
      margin: 0 auto 34px;
    }

    .simulator h2 {
      font-size: 26px;
      line-height: 1.25;
      font-weight: 700;
      margin-bottom: 62px;
      letter-spacing: 1.5px;
    }

    .simulator-question {
      font-size: 18px;
      font-weight: 700;
      margin-bottom: 48px;
      letter-spacing: 1px;
    }
	
    .hidden-550 {
      display: inherit;
    }

    .option-card {
      cursor: pointer;
      transition: transform 0.2s ease;
    }

    .option-card:hover {
      transform: translateY(-4px);
    }

    .plan-box {
      border: 1px solid #8d8d8d;
      min-height: 292px;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 22px;
      background: #fff;
    }
	
    .plan-box.selected {
      border: 5px solid #29abe2;
    }

    .plan-box img {
      width: 100%;
      height: auto;
      max-height: 240px;
      object-fit: contain;
    }

    .option-card p {
      margin-top: 20px;
      margin-bottom: 0;
      font-size: 17px;
      color: #555;
      letter-spacing: 1px;
    }
	
    .cantidadBox {
      margin-top: 10px;
    }

    .cantidadBox a {
      display: inline-block;
      width: 22px;
      text-align: center;
      background: #000000;
      color: #ffffff;
    }

    .cantidadBox .count {
      display: inline-block;
      width: 30px;
      border: 1px solid #000;
      text-align: center;
    }

    .simulator-actions {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-top: 70px;
    }

    .btn-outline,
    .btn-dark {
      min-width: 150px;
      height: 52px;
      border-radius: 0;
      font-size: 16px;
      text-transform: none;
      letter-spacing: 1px;
      line-height: 50px;
      padding: 0 28px;
    }

    .btn-outline {
      border: 1px solid #999;
      color: var(--text);
      background: #fff;
    }

    .btn-dark {
      background: var(--black);
      color: #fff;
      border: 1px solid var(--black);
    }

    .btn-dark:hover,
    .btn-dark:focus {
      background: #000;
      color: #fff;
    }
	
	.btn-wait {
		cursor: not-allowed;
		background: #888;
	}
	
	.btn-wait:hover,
	.btn-wait:focus {
		background: #888;
	}

    .whatsapp-float {
      position: fixed;
      right: 48px;
      top: 49%;
      width: 62px;
      height: 62px;
      background: var(--whatsapp);
      color: #fff;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 37px;
      z-index: 50;
      box-shadow: 0 5px 14px rgba(0, 0, 0, 0.2);
    }
	
	/* FORM */
	
	.result-form {
	  width: 100%;
	  max-width: 880px;
	  margin: 0 auto;
	}

	.result-form input {
	  width: 100%;
	  height: 31px;
	  margin-bottom: 10px;
	  padding: 4px 13px;
	  border: 1px solid #555;
	  border-radius: 0;
	  background: #fff;
	  box-shadow: none;
	  font-size: 15px;
	  font-weight: 300;
	  letter-spacing: 0.8px;
	  color: #222;
	}

	.result-form input::placeholder {
	  color: #555;
	  opacity: 1;
	}

	.result-form input:focus {
	  border-color: #111;
	  outline: none;
	  box-shadow: none;
	}

	/* SLIDER CON TEXTO HTML */

	.image-slider {
	  position: relative;
	  width: 100%;
	  min-height: 545px;
	  overflow: hidden;
	  background: #111;
	}

	.slider-track {
	  position: relative;
	  width: 100%;
	  height: 545px;
	}

	.slide {
	  position: absolute;
	  inset: 0;
	  opacity: 0;
	  transition: opacity 0.8s ease;
	  z-index: 1;
	}

	.slide.active {
	  opacity: 1;
	  z-index: 2;
	}

	.slide img {
	  width: 100%;
	  height: 100%;
	  object-fit: cover;
	  object-position: center;
	}

	.slide::before {
	  content: "";
	  position: absolute;
	  inset: 0;
	  background: rgba(0, 0, 0, 0.22);
	  z-index: 1;
	}

	.slide-content {
	  position: absolute;
	  z-index: 2;
	  left: 7%;
	  top: 50%;
	  transform: translateY(-50%);
	  max-width: 690px;
	  color: #fff;
	}

	.slide-content h2 {
	  font-size: 36px;
	  line-height: 1.25;
	  font-weight: 800;
	  letter-spacing: 2px;
	  margin: 0 0 18px;
	}

	.slide-content p {
	  font-size: 18px;
	  line-height: 1.6;
	  font-weight: 300;
	  letter-spacing: 1.4px;
	  margin: 0;
	  max-width: 520px;
	}

	.slider-arrow {
	  position: absolute;
	  top: 50%;
	  transform: translateY(-50%);
	  z-index: 5;
	  width: 48px;
	  height: 48px;
	  border: none;
	  background: transparent;
	  color: #fff;
	  font-size: 48px;
	  font-weight: 100;
	  line-height: 1;
	  cursor: pointer;
	}

	.slider-arrow.prev {
	  left: 0px;
	}

	.slider-arrow.next {
	  right: 10px;
	}

	.slider-dots {
	  position: absolute;
	  left: 0;
	  right: 0;
	  bottom: 28px;
	  z-index: 6;
	  display: flex;
	  justify-content: center;
	  gap: 12px;
	}

	.slider-dot {
	  width: 10px;
	  height: 10px;
	  border-radius: 50%;
	  border: 1px solid #fff;
	  background: transparent;
	  cursor: pointer;
	  padding: 0;
	}

	.slider-dot.active {
	  background: #fff;
	}

    /* ACCESOS */
	
	.only-desktop {
		display: block;
	}
	
	.only-mobile {
		display: none;
	}

    .quick-links {
      padding: 62px 0 70px;
      background: #fff;
      text-align: center;
    }

    .quick-card {
      border: 1px solid #8d8d8d;
      min-height: 300px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      color: var(--text);
      transition: transform 0.2s ease, background 0.2s ease;
    }

    .quick-card:hover {
      transform: translateY(-4px);
      background: #fafafa;
    }

    .quick-card i {
      font-size: 52px;
      margin-bottom: 34px;
    }

    .quick-card h3 {
      font-size: 29px;
      line-height: 1.15;
      font-weight: 300;
      margin-bottom: 24px;
      letter-spacing: 4px;
    }

    .quick-card .small-line {
      width: 70px;
      height: 3px;
      margin-bottom: 0;
    }

    /* CONTACTO */

    .contact {
      padding: 76px 0 68px;
      background: #f1f1f1;
    }

    .contact h2 {
      text-align: center;
      font-size: 28px;
      font-weight: 300;
      margin-bottom: 52px;
      letter-spacing: 4px;
    }

    .contact-form {
      border: 1px solid #d1d1d1;
      padding: 44px 28px 28px;
      background: #f5f5f5;
    }

    .contact-form label {
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 1px;
      margin-bottom: 8px;
    }

    .contact-form input,
    .contact-form textarea {
      width: 100%;
      border: none;
      border-bottom: 1px solid #e4e4e4;
      border-radius: 0;
      background: transparent;
      box-shadow: none;
      padding-left: 0;
      margin-bottom: 12px;
    }

    .contact-form textarea {
      min-height: 95px;
      resize: vertical;
    }

    .form-submit {
      display: flex;
      justify-content: flex-end;
      margin-top: 20px;
    }
    
    .result-form input.has-error {
      border-color: #b00020;
      background: #fff7f7;
    }

    .result-form-message {
      display: none;
      margin-top: 24px;
      padding: 18px 22px;
      font-size: 16px;
      line-height: 1.45;
      letter-spacing: 0.6px;
      border: 1px solid transparent;
    }

    .result-form-message.is-visible {
      display: block;
    }

    .result-form-message.is-success {
      color: #155724;
      background: #d4edda;
      border-color: #c3e6cb;
    }

    .result-form-message.is-error {
      color: #721c24;
      background: #f8d7da;
      border-color: #f5c6cb;
    }

    .result-form-message ul {
      margin: 8px 0 0 18px;
      padding: 0;
    }

    .result-form-message li {
      margin-bottom: 4px;
    }
    
    /* VISION */
    
    .vision-content {
      padding: 48px 0 42px;
      background: #fff;
    }

    .vision-text {
      max-width: 970px;
      margin: 0 auto;
    }

    .vision-text h2,
    .vision-text h3 {
      font-size: 22px;
      line-height: 1.45;
      font-weight: 700;
      margin: 0 0 36px;
      letter-spacing: 1.1px;
    }

    .vision-text p {
      font-size: 21px;
      line-height: 1.45;
      font-weight: 300;
      margin: 0 0 26px;
      letter-spacing: 1.3px;
    }

    .vision-text strong {
      font-weight: 700;
    }

    .full-image {
      width: 100%;
      height: 385px;
      overflow: hidden;
    }

    .full-image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
    }

    .full-image.image-surf-1 img {
      object-position: center 44%;
    }

    .full-image.image-surf-2 {
      height: 495px;
    }

    .full-image.image-surf-2 img {
      object-position: center;
    }

    .vision-block {
      padding: 70px 0 42px;
      background: #fff;
    }
    
    /* SERVICIOS */
    
    /* INTRO */

    .services-intro {
      padding: 32px 0 42px;
      text-align: center;
      background: #fff;
    }

    .services-intro h1 {
      margin: 0 0 34px;
      font-size: 34px;
      font-weight: 300;
      letter-spacing: 2px;
    }

    .services-intro p {
      margin: 0;
      font-size: 18px;
      font-weight: 700;
      line-height: 1.45;
    }

    /* VIDEO */

    .video-section {
      padding: 0 0 44px;
      background: #fff;
    }

    .video-box {
      position: relative;
      width: 100%;
      height: 495px;
      overflow: hidden;
    }
	
	.video-box.visible {
		display: block;
	}
	
	.video-box.hide {
		display: none;
	}

    .video-box img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
    }

    .video-play {
      position: absolute;
      left: 50%;
      top: 50%;
      width: 78px;
      height: 78px;
      transform: translate(-50%, -50%);
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.92);
      display: flex;
      align-items: center;
      justify-content: center;
      color: #111;
      font-size: 30px;
      padding-left: 6px;
      transition: transform 0.25s ease, background 0.25s ease;
    }

    .video-play:hover {
      transform: translate(-50%, -50%) scale(1.08);
      background: #fff;
    }

    /* PROCESS */

    .process-section {
      padding: 0 0 72px;
      background: #fff;
      text-align: center;
    }

    .process-section h2 {
      margin: 0 0 42px;
      font-size: 28px;
      font-weight: 700;
      letter-spacing: 1.2px;
    }

    .process-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 14px;
      margin-bottom: 92px;
    }

    .process-grid:last-child {
      margin-bottom: 0;
    }

    .flip-card {
      position: relative;
      min-height: 320px;
      background: var(--gray);
      perspective: 1000px;
    }

    .flip-card-inner {
      position: relative;
      width: 100%;
      height: 100%;
      min-height: 320px;      
    }

    .flip-face {
      position: absolute;
      inset: 0;
      padding: 28px;
      backface-visibility: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .flip-front {
      background: var(--gray);
    }

    .flip-back {
      background: var(--black);
      color: #fff;
	  opacity: 0%;
    }
	
	.flip-card .flip-card-inner .flip-back {
		opacity: 0%;
		transition: opacity 0.8s;
	}
	
	.flip-card:hover .flip-card-inner .flip-back {
		opacity: 100%;
		transition: opacity 0.8s;
	}

    .flip-frame {
      width: 100%;
      min-height: 100%;
      border: 1px solid #222;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
    }

    .flip-back .flip-frame {
      border-color: #fff;
      align-items: flex-start;
      text-align: left;
      padding: 16px;
    }

    .stage-number {
      font-size: 15px;
      font-weight: 700;
	  margin-top: 28px;
      margin-bottom: 28px;
      letter-spacing: 1.5px;
    }

    .stage-line {
      width: 70%;
      max-width: 185px;
      height: 2px;
      background: #222;
      margin-bottom: 30px;
    }

    .stage-title {
      font-size: 21px;
      line-height: 1.45;
      font-weight: 300;
	  height: 95px;
      text-transform: uppercase;
      letter-spacing: 2px;
    }

    .flip-back ul {
      list-style: none;
      margin: 0;
      padding: 0;
    }

    .flip-back li {
      font-size: 15px;
      line-height: 1.35;
      font-weight: 300;
      letter-spacing: 1px;
      margin-bottom: 15px;
    }

    .flip-back li:last-child {
      margin-bottom: 0;
    }

    /* ADDITIONAL SERVICES */

    .additional-services {
      padding: 18px 0 72px;
      background: #fff;
      text-align: center;
    }

    .additional-services h2 {
      margin: 0 0 50px;
      font-size: 28px;
      font-weight: 700;
    }

    .services-icons-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 70px;
      max-width: 760px;
      margin: 0 auto;
    }

    .service-icon-card img,
    .associate-card img {
      width: auto;
      height: 72px;
      margin: 0 auto 24px;
      object-fit: contain;
    }

    .associate-card img {
      height: 68px;
    }

    .service-icon-card h3,
    .associate-card h3 {
      margin: 0;
      font-size: 22px;
      line-height: 1.12;
      font-weight: 700;
      letter-spacing: 1px;
    }

    .associate-card h3 {
      font-size: 20px;
    }

    /* ASSOCIATES */

    .associates {
      padding: 70px 0 64px;
      background: #ededed;
      text-align: center;
    }

    .associates h2 {
      margin: 0 0 72px;
      font-size: 28px;
      line-height: 1.35;
      font-weight: 700;
    }

    .associates-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 54px;
      max-width: 920px;
      margin: 0 auto;
    }

    .associate-card h3 {
      font-size: 20px;
    }
    
    /* PROYECTOS */
    
    /* PROYECTO DESTACADO */

    .featured-project {
      background: #fff;
      padding: 0;
    }

    .featured-slider {
      position: relative;
      width: 100%;
      height: 470px;
      overflow: hidden;
      background: #111;
    }

    .featured-slide {
      position: absolute;
      inset: 0;
      opacity: 0;
      transition: opacity 0.75s ease;
    }

    .featured-slide.active {
      opacity: 1;
      z-index: 2;
    }

    .featured-slide img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
    }

    .featured-arrow {
      position: absolute;
      top: 50%;
      z-index: 5;
      transform: translateY(-50%);
      width: 44px;
      height: 44px;
      border: none;
      background: rgba(255, 255, 255, 0.45);
      color: #111;
      border-radius: 50%;
      font-size: 34px;
      font-weight: 100;
      line-height: 40px;
      cursor: pointer;
      padding: 0;
      transition: background 0.25s ease;
    }

    .featured-arrow:hover {
      background: rgba(255, 255, 255, 0.8);
    }

    .featured-arrow.prev {
      left: 16px;
    }

    .featured-arrow.next {
      right: 16px;
    }

    .featured-info {
      background: var(--black);
      color: #fff;
      text-align: center;
      padding: 34px 20px 36px;
    }

    .featured-info h1 {
      margin: 0 0 4px;
      font-size: 19px;
      line-height: 1.25;
      font-weight: 700;
      letter-spacing: 1.1px;
    }

    .featured-info p {
      margin: 0;
      font-size: 15px;
      line-height: 1.45;
      font-weight: 300;
      letter-spacing: 1px;
    }

    .featured-info strong {
      font-weight: 700;
    }

    /* GALERÍA */

    .projects-gallery {
      padding: 34px 0 54px;
      background: #fff;
    }

    .gallery-container {
      width: 98%;
      max-width: 1180px;
      margin: 0 auto;
    }

    .project-row {
      display: grid;
      gap: 14px;
      margin-bottom: 14px;
    }

    .project-row.two {
      grid-template-columns: repeat(2, 1fr);
    }

    .project-row.one {
      grid-template-columns: 1fr;
    }

    .project-row.three {
      grid-template-columns: repeat(3, 1fr);
    }

    .project-card {
      position: relative;
      width: 100%;
      min-height: 310px;
      border: 0;
      padding: 0;
      background: #111;
      overflow: hidden;
      cursor: pointer;
      text-align: left;
    }

    .project-row.one .project-card {
      min-height: 355px;
    }

    .project-row.three .project-card {
      min-height: 285px;
    }

    .project-card img {
      width: 100%;
      height: 100%;
      min-height: inherit;
      object-fit: cover;
      object-position: center;
      transition: transform 0.45s ease;
    }

    .project-card::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 1;
      background: rgba(0, 0, 0, 0);
      transition: background 0.3s ease;
    }

    .project-card:hover img {
      transform: scale(1.04);
    }

    .project-card:hover::before {
      background: rgba(0, 0, 0, 0.22);
    }

    .project-card-content {
      position: absolute;
      inset: 0;
      z-index: 2;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: 42px;
      color: #fff;
      background: rgba(0, 0, 0, 0.48);
      opacity: 0;
      transition: opacity 0.3s ease;
    }

    .project-card.has-visible-text .project-card-content,
    .project-card:hover .project-card-content {
      opacity: 1;
    }

    .project-card-content h2 {
      margin: 0 0 20px;
      font-size: 15px;
      line-height: 1.5;
      font-weight: 700;
      letter-spacing: 1px;
	  text-transform: none;
	  text-wrap-mode: wrap;
    }

    .project-card-content p {
      margin: 0;
      font-size: 12px;
      line-height: 1.55;
      font-weight: 300;
	  text-transform: none;
	  text-wrap-mode: wrap;
    }

    .project-card-content strong {
      font-weight: 700;
    }
    
    /* MODAL */

    .project-modal {
      position: fixed;
      inset: 0;
      z-index: 100;
      display: none;
      align-items: flex-start;
      justify-content: center;
      padding: 430px 24px 80px;
      background: rgba(0, 0, 0, 0.64);
      overflow-y: auto;
    }

    .project-modal.active {
      display: flex;
    }

    .modal-window {
      position: absolute;
      width: auto;
	  max-width: 940px;
	  margin: 1.75rem auto;
	  top: 0;
      background: #fff;
      animation: modalIn 0.25s ease;
    }

    @keyframes modalIn {
      from {
        opacity: 0;
        transform: translateY(14px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    .modal-close {
      position: absolute;
      top: 22px;
      right: 28px;
      z-index: 20;
      border: none;
      background: transparent;
      color: #111;
      font-size: 15px;
      font-weight: 700;
      cursor: pointer;
      padding: 0;
      text-transform: none;
      letter-spacing: 0.5px;
    }

    .modal-slider-wrap {
      position: relative;
      padding: 64px 48px 0;
    }

    .modal-slider {
      position: relative;
      width: 100%;
      height: 50dvh;
	  max-height: 480px;
      overflow: hidden;
      background: #111;
    }

    .modal-slide {
      position: absolute;
      inset: 0;
      opacity: 0;
      transition: opacity 0.65s ease;
    }

    .modal-slide.active {
      opacity: 1;
      z-index: 2;
    }

    .modal-slide img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
    }

    .modal-arrow {
      position: absolute;
      top: 50%;
      z-index: 12;
      transform: translateY(-50%);
      width: 48px;
      height: 58px;
      border: none;
      background: transparent;
      color: #111;
      font-size: 56px;
      font-weight: 100;
      line-height: 1;
      cursor: pointer;
      padding: 0;
    }

    .modal-arrow.prev {
      left: 0px;
    }

    .modal-arrow.next {
      right: 0px;
    }

    .modal-info {
      padding: 30px 82px 52px;
      color: #222;
    }

    .modal-info h2 {
      margin: 0 0 24px;
      font-size: 19px;
      line-height: 1.35;
      font-weight: 700;
      letter-spacing: 0.9px;
    }

    .modal-info p {
      margin: 0;
      font-size: 15px;
      line-height: 1.55;
      font-weight: 300;
      letter-spacing: 0.7px;
    }

    .modal-info strong {
      font-weight: 700;
    }

    /* FOOTER */

    .site-footer {
      background: var(--black);
      color: #fff;
      padding: 56px 0;
    }

    .footer-inner {
      width: 92%;
      max-width: 1180px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 185px 1fr 1fr;
      align-items: center;
      gap: 42px;
    }

    .footer-logo img {
      width: 150px;
    }

    .footer-nav {
      border-left: 1px solid #fff;
      border-right: 1px solid #fff;
      padding: 20px 42px;
      display: flex;
      gap: 28px;
      font-size: 15px;
      letter-spacing: 2px;
    }

    .footer-social {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 27px;
      font-size: 20px;
      letter-spacing: 2px;
    }

    .footer-social span {
      font-size: 15px;
      margin-right: 2px;
    }

    /* RESPONSIVE */

    @media (max-width: 900px) {
      .page-home .site-header {
        position: relative;
        background: #fff;
      }
      
      .page-vision .site-header,
      .page-servicios .site-header,
      .page-proyectos .site-header,
	  .page-contacto .site-header {
        padding-top: 22px;
      }

      .header-inner {
        flex-direction: column;
        gap: 20px;
      }

      .main-nav {
        flex-wrap: wrap;
        justify-content: center;
        gap: 18px;
      }

      .hero {
        min-height: 360px;
      }

      .section-title {
        font-size: 27px;
      }

      .simulator h2 {
        font-size: 23px;
      }

      .plan-box {
        min-height: 240px;
        margin-bottom: 36px;
      }

      .option-card {
        margin-bottom: 38px;
      }

	  .image-slider,
	  .slider-track {
		min-height: 390px;
		height: 390px;
	  }

	  .slide-content {
		left: 8%;
		max-width: 520px;
	  }

	  .slide-content h2 {
		font-size: 31px;
	  }

	  .slide-content p {
		font-size: 16px;
	  }

	  .slider-arrow.prev {
		left: 4px;
	  }

	  .slider-arrow.next {
		right: 14px;
	  }

      .quick-card {
        margin-bottom: 34px;
      }

      .footer-inner {
        grid-template-columns: 1fr;
        text-align: center;
      }

      .footer-logo img {
        margin: 0 auto;
      }

      .footer-nav {
        border-left: none;
        border-right: none;
        border-top: 1px solid #fff;
        border-bottom: 1px solid #fff;
        justify-content: center;
        flex-wrap: wrap;
      }

      .footer-social {
        justify-content: center;
        flex-wrap: wrap;
      }

      .whatsapp-float {
        right: 24px;
        top: auto;
        bottom: 24px;
      }
      
      .vision-hero {
        min-height: 330px;
        background-position: center;
      }

      .vision-hero-content {
        justify-content: center;
        text-align: center;
      }

      .vision-hero-text {
        width: auto;
      }

      .vision-content,
      .vision-block {
        padding-left: 20px;
        padding-right: 20px;
      }

      .vision-text h2,
      .vision-text h3 {
        font-size: 20px;
      }

      .vision-text p {
        font-size: 18px;				
      }

      .full-image {
        height: 300px;
      }
      
      .full-image.image-surf-2 {
        height: 360px;
      }

      .services-hero {
        height: 260px;				   
      }

      .services-intro h1 {
        font-size: 30px;
      }

      .services-intro p {
        font-size: 16px;					
      }

      .video-box {
        height: 360px;					
      }

      .process-grid {
        grid-template-columns: 1fr;
        max-width: 520px;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 70px;
      }

      .services-icons-grid {
        grid-template-columns: 1fr;
        gap: 48px;
      }

      .associates-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 54px 34px;
      }
    }
    
    @media (max-width: 768px) {
        .project-card {
            margin-bottom: 0px;
	}
		
	.modal-slider {
            height: 40dvh;
	}
    }

    @media (max-width: 550px) {
      .simulator {
        padding: 44px 0 48px;
      }

      .section-title {
        font-size: 23px;
        letter-spacing: 2px;
      }

      .simulator h2 {
        font-size: 20px;
      }

      .simulator-question {
        font-size: 16px;
      }

      .simulator-actions {
        margin-top: 24px;
        gap: 15px;
      }
	  
	  .hidden-550 {
		display: none;
	  }
	  
      .plan-box {
        padding: 0px;
		margin: 0 auto;
		max-width: 75%;
		min-height: 210px;
      }
	  
	  .plan-box img {
		max-height: 210px;
	  }

      .btn-outline,
      .btn-dark {
        min-width: auto;
        width: 48%;
        padding: 0 10px;
      }
	  
	  .result-form input {
		height: 36px;
		font-size: 14px;
	  }

	  .image-slider,
	  .slider-track {
		min-height: 330px;
		height: 330px;
	  }

	  .slide-content {
		left: 7%;
		right: 7%;
		max-width: none;
	  }

	  .slide-content h2 {
		font-size: 23px;
		letter-spacing: 2px;
	  }

	  .slide-content p {
		font-size: 14px;
		line-height: 1.5;
	  }

	  .slider-arrow {
		font-size: 36px;
		top: 89%;
	  }

	  .slider-arrow.prev {
		left: 2px;
	  }

	  .slider-arrow.next {
		right: 12px;
	  }

	  .slider-dots {
		bottom: 18px;
	  }
	  
	  .only-desktop {
		display: none;
	  }
	
	  .only-mobile {
		display: block;
	  }
	  
	  .quick-card {
		  float: left;
		  width: 48%;
		  min-height: 210px;
	  }
	  
	  .quick-card:first-child {
		  margin-right: 4%;  
	  }

      .quick-card h3 {
        font-size: 20px;
      }

      .footer-nav {
        flex-direction: column;
        gap: 14px;
      }
      
      .logo {
        width: 120px;
      }

      .main-nav {
        font-size: 12px;
        gap: 14px;
      }

      .vision-hero {
        min-height: 300px;
      }

      .vision-hero-text h1 {
        font-size: 22px;
      }

      .vision-hero-text p {
        font-size: 13px;		  
      }

      .vision-content {
		padding-top: 38px;
        padding-bottom: 32px;					
      }
  
      .vision-block {
        padding-top: 46px;				   
        padding-bottom: 34px;
      }
   
      .vision-text h2,
      .vision-text h3 {
        font-size: 18px;
        margin-bottom: 26px;
      }

      .vision-text p {
        font-size: 16px;
        line-height: 1.55;  
      }

      .full-image,
      .full-image.image-surf-2 {   
        height: 260px;					
      }
      
     .services-hero {
        height: 215px;
      }

      .services-intro {
        padding-top: 28px;
      }

      .services-intro h1 {
        font-size: 27px;
      }

      .video-box {
        height: 260px;					 
      }

      .video-play {
        width: 62px;
        height: 62px;
        font-size: 24px;
      }

      .process-section h2,
      .additional-services h2,
      .associates h2 {
        font-size: 23px;
      }

      .flip-card,
      .flip-card-inner {
        min-height: 320px;
      }

      .stage-title {
        font-size: 18px;					
      }

      .flip-back li {
        font-size: 15px;					  
      }

      .associates-grid {
        grid-template-columns: 1fr;				  
      }
      
      .featured-slider {
        height: 270px;
      }

      .featured-info h1 {
        font-size: 17px;
      }

      .featured-info p {
        font-size: 13px;
      }

      .projects-gallery {
        padding-top: 18px;
      }

      .project-card,
      .project-row.one .project-card,
      .project-row.three .project-card {
        min-height: 250px;
      }

      .project-card-content {
        padding: 24px;
      }

      .project-card-content h2 {
        font-size: 17px;
      }

      .project-card-content p {
        font-size: 13px;
      }

      .project-modal {
        padding: 80px 12px 40px;					
      }

      .modal-slider-wrap {
        padding: 58px 20px 0;		  
      }

      .modal-slider {
        height: 240px;
      }

      .modal-arrow {
        font-size: 42px;
      }

      .modal-arrow.prev {
        left: -14px;
      }

      .modal-arrow.next {
        right: -14px;
      }

      .modal-info {
        padding: 26px 28px 36px;
      }

      .modal-info h2 {
        font-size: 17px;
      }

      .modal-info p {
        font-size: 14px;
      }
    }
	
    @media (max-width: 400px) {
      .quick-card h3 {
        font-size: 18px;
      }		
	}
    @media (max-width: 320px) {	
	  .slide-content h2 {
		font-size: 17px;
	  }
	}