.elementor-7 .elementor-element.elementor-element-d36f3db{--e-image-carousel-slides-to-show:10;}.elementor-7 .elementor-element.elementor-element-d36f3db .elementor-swiper-button.elementor-swiper-button-prev, .elementor-7 .elementor-element.elementor-element-d36f3db .elementor-swiper-button.elementor-swiper-button-next{font-size:35px;color:#3ED34D;}.elementor-7 .elementor-element.elementor-element-d36f3db .elementor-swiper-button.elementor-swiper-button-prev svg, .elementor-7 .elementor-element.elementor-element-d36f3db .elementor-swiper-button.elementor-swiper-button-next svg{fill:#3ED34D;}.elementor-7 .elementor-element.elementor-element-d36f3db .swiper-wrapper{display:flex;align-items:center;}.elementor-7 .elementor-element.elementor-element-bc55395{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + -40px) 0px;}:root{--page-title-display:none;}@media(max-width:767px){.elementor-7 .elementor-element.elementor-element-d36f3db .elementor-swiper-button.elementor-swiper-button-prev, .elementor-7 .elementor-element.elementor-element-d36f3db .elementor-swiper-button.elementor-swiper-button-next{font-size:24px;}}/* Start custom CSS for image-carousel, class: .elementor-element-d36f3db */@media (max-width: 768px) {
  .elementor-image-carousel img {
    width: 150px !important;
    height: auto !important;
  }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-bd43ccf */body {
  font-family: 'Nunito Sans', sans-serif;
  margin: 0;
  background-color: #fff;
  color: #333;
}

/* HERO */
.hero {
  background: url('hero.jpg') center/cover no-repeat;
  text-align: center;
  padding: 4rem 1rem;
}
.hero h1 {
  font-size: 1.8rem;
  color: #2e7d32;
}
.hero p {
  font-size: 1rem;
  margin: 1rem 0;
}
.btn-primary {
  background-color: #2e7d32;
  color: #fff;
  padding: 0.8rem 1.2rem;
  border-radius: 8px;
  text-decoration: none;
}

/* SECCIONES */
section {
  padding: 3rem 1rem;
}
h2 {
  text-align: center;
  color: #2e7d32;
  margin-bottom: 2rem;
}

/* GRID */
.grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* PRODUCTOS Y SERVICIOS */
.servicio, .producto {
  background-color: #f4f4f4;
  border-radius: 10px;
  padding: 1rem;
  text-align: center;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.servicio img, .producto img {
  width: 80%;
  border-radius: 8px;
}
.btn-secondary {
  background-color: #2e7d32;
  color: #fff;
  border: none;
  padding: 0.6rem 1rem;
  border-radius: 6px;
  cursor: pointer;
}

/* CONTACTO */
.contacto form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 400px;
  margin: 0 auto;
}
.contacto input, .contacto textarea {
  padding: 0.8rem;
  border: 1px solid #ccc;
  border-radius: 6px;
}
.contacto button {
  background-color: #2e7d32;
  color: #fff;
  border: none;
  padding: 0.8rem;
  border-radius: 6px;
}

.contacto button:hover {
  background-color: #ffffff !important;
  color: #2e7d32 !important;
  border: 2px solid #2e7d32 !important; /* borde visible SIEMPRE */
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(46,125,50,0.35);
}

/* BOTÓN OUTLINE INSTITUCIONAL */
.btn-outline {
  display: inline-block;
  margin-top: 1rem;
  padding: 0.6rem 1.2rem;
  background-color: #ffffff;
  color: #2e7d32;
  border: 2px solid #2e7d32;
  border-radius: 6px;
  font-weight: 600;
  text-decoration: none;
  transition: 0.2s ease;
}

/* HOVER */
.btn-outline:hover {
  background-color: #ffffff !important;
  color: #2e7d32 !important;
  border: 2px solid #2e7d32 !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(46,125,50,0.35);
}

.contacto {
  padding: 2rem 1rem;
  max-width: 600px;
  margin: 0 auto;
}

.contacto h2 {
  text-align: center;
  color: #2e7d32;
  margin-bottom: 1.5rem;
}

/* INFO DE LA EMPRESA */
.info-contacto {
  text-align: center;
  margin-bottom: 1.5rem;
}
.info-contacto a {
  color: #2e7d32;
  font-weight: 600;
  text-decoration: none;
}

/* FORMULARIO COMPACTO */
.form-contacto {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.form-contacto input,
.form-contacto textarea,
.form-contacto select {
  padding: 0.8rem;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 1rem;
}

/* BOTÓN INSTITUCIONAL */
.contacto button {
  background-color: #ffffff;
  color: #2e7d32;
  border: 2px solid #2e7d32;
  padding: 0.8rem;
  border-radius: 6px;
  font-weight: 600;
  cursor: pointer;
  transition: 0.2s ease;
}

/* HOVER */
.contacto button:hover {
  background-color: #ffffff !important;
  color: #2e7d32 !important;
  border: 2px solid #2e7d32 !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(46,125,50,0.35);
}

/* VALIDACIÓN DE FORMULARIO (solo después del envío) */
.form-contacto.was-validated input:invalid,
.form-contacto.was-validated select:invalid,
.form-contacto.was-validated textarea:invalid {
  border: 2px solid #e53935;
  background-color: #ffebee;
}

.form-contacto.was-validated input:valid,
.form-contacto.was-validated select:valid,
.form-contacto.was-validated textarea:valid {
  border: 2px solid #2e7d32;
  background-color: #e8f5e9;
}

/* Estado neutro */
.form-contacto input,
.form-contacto select,
.form-contacto textarea {
  border: 1px solid #ccc;
  background-color: #fff;
}

/* Campo válido */
.form-contacto input.valid,
.form-contacto select.valid,
.form-contacto textarea.valid {
  border: 2px solid #2e7d32;
  background-color: #e8f5e9;
}

/* Campo inválido */
.form-contacto input.invalid,
.form-contacto select.invalid,
.form-contacto textarea.invalid {
  border: 2px solid #e53935;
  background-color: #ffebee;
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-bc55395 */.acceso-empleados-wrapper {
    text-align: center;
    margin: 3rem 0 2rem 0;
}

.btn-acceso-empleados {
    display: inline-block;
    background-color: #2e7d32; /* Verde institucional */
    color: #fff;
    padding: 0.9rem 1.6rem;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    font-size: 1rem;
    box-shadow: 0 3px 8px rgba(0,0,0,0.15);
    transition: background 0.3s ease, transform 0.2s ease;
}

.btn-acceso-empleados:hover {
    background-color: #3fa043;
    transform: translateY(-3px);
}

/* Móvil */
@media (max-width: 768px) {
    .btn-acceso-empleados {
        width: 80%;
        padding: 1rem;
        font-size: 1.1rem;
    }
}/* End custom CSS */