.elementor-753 .elementor-element.elementor-element-e4a802b{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-753 .elementor-element.elementor-element-dde5940{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}:root{--page-title-display:none;}@media(min-width:768px){.elementor-753 .elementor-element.elementor-element-e4a802b{--width:100%;}.elementor-753 .elementor-element.elementor-element-dde5940{--width:100%;}}/* Start custom CSS for html, class: .elementor-element-df09279 *//* Reset básico */
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    /* Contenedor Principal */
    .gallery-container {
      display: flex;
      width: 100%;
      max-width: 100%;
      height: 100vh; /* Desktop */
      gap: 0;
    }

    /* Estilos de las Tarjetas (Columnas) */
    .card {
      position: relative;
      flex: 1; /* Todas empiezan igual */
      border-radius: 0;
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
      cursor: pointer;
      overflow: hidden;
      transition: flex 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
      display: flex;
      align-items: flex-end;
      box-shadow: none;
      border-right: 1px solid rgba(255,255,255,0.1);
      min-width: 0;
    }

    .card:last-child {
      border-right: none;
    }

    /* Imágenes de fondo para cada columna */
    .card:nth-child(1) {
      background-image: url('/wp-content/uploads/2025/09/home-servicios-1.webp');
    }
    .card:nth-child(2) {
      background-image: url('/wp-content/uploads/2025/09/home-servicios-2.webp');
    }
    .card:nth-child(3) {
      background-image: url('/wp-content/uploads/2025/09/home-servicios-3.webp');
    }

    /* Overlay */
    .card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0.1) 100%);
      opacity: 0.6;
      transition: opacity 0.3s ease;
    }

    .card:hover::before {
      opacity: 0.8;
    }

    /* Expansión en desktop */
    .card:hover {
      flex: 1.4;
    }

    /* --- Tipografía y espaciados fluid (mejor responsive) --- */
    :root{
      --title-max: 2.3rem;
      --title-min: 1.35rem;

      --desc-max: 1rem;
      --desc-min: 0.92rem;

      --pad-max: 2rem;
      --pad-min: 1.1rem;
    }

    /* Contenido interno */
    .content {
      position: relative;
      z-index: 2;
      width: 100%;
      color: white;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding: clamp(var(--pad-min), 3vw, var(--pad-max));
      padding-bottom: clamp(5rem, 16vh, 18vh);
      opacity: 1;
      transition: all 0.5s ease;
    }

    /* Icono + */
    .icon-plus {
      font-size: 3rem;
      font-weight: 300;
      background: rgba(255,255,255,0.2);
      width: 50px;
      height: 50px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 10px;
      backdrop-filter: blur(5px);
      transition: transform 0.3s ease, opacity 0.3s ease;
      user-select: none;
    }

    /* Título */
    .title {
      font-size: clamp(var(--title-min), 3.5vw, var(--title-max)) !important;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 1px;
      margin-bottom: 0;
      white-space: normal; /* mejor para móvil */
      line-height: 1.05;
      transition: font-size 0.3s ease, margin-bottom 0.3s ease;
    }

    /* Descripción y Botón (Ocultos por defecto) */
    .hidden-content {
      max-height: 0;
      opacity: 0;
      overflow: hidden;
      transition: all 0.5s ease 0.1s;
      transform: translateY(20px);
    }

    .description {
      font-size: clamp(var(--desc-min), 2.4vw, var(--desc-max));
      margin-bottom: 15px;
      line-height: 1.45;
      color: #ddd;
      max-width: 42ch;
    }

    .btn {
      display: inline-block;
      padding: 10px 25px;
      background-color: #fff;
      color: #1a1a1a;
      text-decoration: none;
      border-radius: 30px;
      font-weight: 600;
      font-size: 0.9rem;
      transition: background-color 0.3s, transform 0.2s;
      width: fit-content;
    }

    .btn:hover {
      background-color: #f0f0f0;
      transform: scale(1.05);
    }

    /* Hover desktop: icono y reveal */
    .card:hover .icon-plus {
      transform: rotate(45deg);
      background: rgba(255,50,50,0.8);
      opacity: 0;
      display: none;
    }

    .card:hover .title {
      font-size: clamp(1.25rem, 2.8vw, 2rem) !important;
      margin-bottom: 10px;
    }

    .card:hover .hidden-content {
      max-height: 240px;
      opacity: 1;
      transform: translateY(0);
    }

    /* --- Móvil: full screen + swipe por secciones --- */
    @media (max-width: 768px) {
      .gallery-container {
        flex-direction: column;
        height: 100svh;                 /* mejor que 100vh en móvil */
        overflow-y: auto;
        scroll-snap-type: y mandatory;  /* swipe vertical por pantallas */
        -webkit-overflow-scrolling: touch;
      }

      .card {
        flex: none;
        width: 100%;
        height: 100svh;                 /* 1 pantalla */
        scroll-snap-align: start;
        scroll-snap-stop: always;
        border-right: none;
        border-bottom: 1px solid rgba(255,255,255,0.1);
      }

      .card:last-child {
        border-bottom: none;
      }

      /* En móvil el hover no aplica bien */
      .card:hover {
        flex: none;
      }

      .content {
        padding-bottom: 30vh;
      }

      .icon-plus {
        font-size: 2.2rem;
        width: 44px;
        height: 44px;
      }

      /* Por defecto oculto */
      .hidden-content {
        max-height: 0;
        opacity: 0;
        transform: translateY(16px);
      }

      /* Estado activo por tap */
      .card.is-active::before {
        opacity: 0.85;
      }

      .card.is-active .icon-plus {
        display: none;
      }

      .card.is-active .title {
        font-size: clamp(1.25rem, 5vw, 1.7rem) !important;
        margin-bottom: 10px;
      }

      .card.is-active .hidden-content {
        max-height: 260px;
        opacity: 1;
        transform: translateY(0);
      }
    }

    /* Reduce motion si el usuario lo pide */
    @media (prefers-reduced-motion: reduce){
      .card, .content, .hidden-content, .card::before{
        transition: none !important;
      }
    }/* End custom CSS */