:root { --green:#6abf1e; --green-dark:#52a012; --black:#111; --dark:#2e2420; --gray:#f9f9f7; --gray2:#ebebeb; --text:#333; --text-light:#666; --white:#fff; }
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Barlow',sans-serif; color:var(--text); background:var(--white); font-size:15px; line-height:1.6; }

/* BANNER + HERO */
.img-banda { width:100%; height:140px; object-fit:cover; object-position:center; display:block; background:#cccccc; display:flex; align-items:center; justify-content:center; }
.img-banda span { font-size:11px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:#999; }
.hero { background:var(--dark); color:var(--white); padding:16px 20px 20px; }
.hero-content { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; }
.hero h1 { font-family:'Barlow Condensed',sans-serif !important; font-size:38px; font-weight:800; line-height:0.95; margin-bottom:10px; }
.hero h1 span { font-family:'Barlow Condensed',sans-serif !important;color:var(--green); }
.hero-sub {font-family:'Barlow',sans-serif !important; font-size:13px; color:rgba(255,255,255,0.7); max-width:340px; line-height:1.4; }
.hero-badge { display:inline-flex; align-items:center; gap:8px; background:rgba(106,191,30,0.12); border:1px solid rgba(106,191,30,0.35); border-radius:6px; padding:8px 12px; flex-shrink:0; }
.hero-badge-num { font-family:'Barlow Condensed',sans-serif; font-size:26px; font-weight:800; color:var(--green); line-height:1; }
.hero-badge-text { font-size:11px; color:rgba(255,255,255,0.8); line-height:1.3; }

/* NAV SERVICIOS */
.srv-nav { background:#fff; border-bottom:1px solid var(--gray2);border-top:1px solid var(--gray2); padding:0 20px; display:flex; gap:0; overflow-x:auto; position:sticky; top:0; z-index:100; }
.srv-nav a { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#999; text-decoration:none; padding:14px 16px; border-bottom:2px solid transparent; white-space:nowrap; transition:color .2s,border-color .2s; flex-shrink:0; }
.srv-nav a:hover { color:var(--text); }
.srv-nav a.on { color:var(--green-dark); border-bottom-color:var(--green); }
/*mobile*/
@media (max-width: 768px) {

    .srv-nav .anchoMaximoContenido{
        display:flex;
        flex-wrap:wrap;
    }

    .srv-nav a{
        width:33.33%;
        text-align:center;
        white-space:normal;
    }

}

/* SECCIONES GENÉRICAS */
.section { padding:20px 20px; }
.section-tag { font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--green-dark); margin-bottom:5px; }
.section-title { font-family:'Barlow Condensed',sans-serif; font-size:34px; font-weight:800; color:var(--black); line-height:1.05; margin-bottom:16px; }
.divider { height:1px; background:var(--gray2); margin:0 20px; }

/* SERVICIO CARD — dos columnas imagen + texto */
.srv-card { background:var(--white); border-radius:10px; border:1px solid var(--gray2); overflow:hidden; margin-bottom:12px; }
.srv-card-inner { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; min-height:440px; }
.srv-card-img { background:#d0cfc8; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.srv-card-img span { font-size:10px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:rgba(0,0,0,.28); text-align:center; padding:12px; }
.srv-card-body { padding:28px 26px; display:flex; flex-direction:column; justify-content:center; }
.srv-card.img-right .srv-card-img { order:2; }
.srv-card.img-right .srv-card-body { order:1; }
.srv-card-header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
.srv-num { font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#bbb; }
.srv-problema-tag { font-size:10px; font-weight:700; letter-spacing:1px; text-transform:uppercase; background:var(--green); color:var(--white); padding:3px 9px; border-radius:3px; }
.srv-card h3 { font-family:'Barlow Condensed',sans-serif; font-size:28px; font-weight:800; color:var(--black); line-height:1.0; margin-bottom:4px; }
.srv-card h3 span { color:var(--green-dark); }
.srv-card .srv-subtitulo { font-size:13px; color:var(--text-light); margin-bottom:12px; font-style:italic; }
.srv-card .srv-desc { font-size:14px; color:var(--text); line-height:1.65; margin-bottom:14px; }

/* INCLUYE chips */
.incluye-lbl { font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#aaa; margin-bottom:7px; }
.incluye-chips { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px; }
.chip { font-size:12px; font-weight:500; color:var(--green-dark); background:rgba(106,191,30,.1); border:1px solid rgba(106,191,30,.25); padding:4px 10px; border-radius:4px; }

/* BENEFICIO / DIFERENCIAL box */
.beneficio-box { border-radius:6px; padding:12px 14px; margin-bottom:14px; }
.beneficio-box.verde { background:#f4fbea; border:1px solid rgba(106,191,30,.35); }
.beneficio-box.dark { background:var(--dark); border:none; }
.beneficio-box .bx-lbl { font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; margin-bottom:4px; }
.beneficio-box.verde .bx-lbl { color:var(--green-dark); }
.beneficio-box.dark .bx-lbl { color:#ffffff; }
.beneficio-box .bx-txt { font-size:13px; line-height:1.55; }
.beneficio-box.verde .bx-txt { color:var(--text); }
.beneficio-box.dark .bx-txt { color:#ffffff; }

/* CTA por servicio */
.srv-cta { display:inline-flex; align-items:center; gap:6px; align-self:flex-start; background:var(--green); color:var(--white); font-family:'Barlow',sans-serif; font-size:14px; font-weight:600; padding:10px 20px; border-radius:6px; text-decoration:none; transition:background .2s; }
.srv-cta:hover { background:var(--green-dark); }

/* DIFERENCIAL STRIP */
.dif-strip { background:var(--dark); padding:28px 20px; color:var(--white); }
.dif-strip .section-tag { color:var(--green); }
.dif-strip .section-title { color:var(--white); }
.rec-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:16px; }
.rec-item { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.09); border-radius:6px; padding:14px; }
.rec-n { font-family:'Barlow Condensed',sans-serif; font-size:34px; font-weight:800; color:var(--green); line-height:1; }
.rec-n.dim { color:rgba(255,255,255,.2); }
.rec-l { font-size:12px; color:rgba(255,255,255,.4); margin-top:3px; line-height:1.4; }
.dif-list { list-style:none; margin-top:14px; }
.dif-list li { font-size:13px; color:rgba(255,255,255,.6); padding:8px 0; border-bottom:1px solid rgba(255,255,255,.07); display:flex; gap:8px; align-items:flex-start; }
.dif-dot { width:5px; height:5px; background:var(--green); border-radius:50%; margin-top:6px; flex-shrink:0; }

/* CLIENTES */
.logos-section { background:#fff; padding:28px 20px 0; text-align:center; border-top:1px solid var(--gray2); }
.logos-title { font-size:15px; font-weight:700; color:var(--black); margin-bottom:20px; }
.logos-carousel { position:relative; overflow:hidden; }
.logos-track { display:flex; transition:transform .4s ease; align-items:center; }
.logos-slide { min-width:100%; display:flex; justify-content:center; align-items:center; gap:28px; padding:0 12px; }
.logo-item { font-size:13px; font-weight:600; color:#555; white-space:nowrap; }
.logos-dots { display:flex; justify-content:center; gap:8px; margin-top:16px; padding-bottom:20px; }
.logos-dot { width:8px; height:8px; border-radius:50%; background:#ccc; border:none; cursor:pointer; padding:0; }
.logos-dot.active { background:#555; }

/* FORMULARIO */
.form-section { background:#fff; padding:28px 20px; }
.form-title { font-family:'Barlow Condensed',sans-serif; font-size:36px; font-weight:800; color:var(--black); margin-bottom:6px; }
.form-sub { font-size:13px; color:var(--text-light); margin-bottom:22px; }
.form-steps-chips { display:flex; gap:8px; margin-bottom:20px; flex-wrap:wrap; }
.fchip { display:flex; align-items:center; gap:7px; background:var(--gray); border-radius:6px; padding:8px 12px; flex:1; min-width:0; }
.fchip-num { width:22px; height:22px; border-radius:50%; background:var(--green); color:var(--white); font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.fchip span { font-family:'Barlow',sans-serif !important; font-size:13px; color:var(--text); }

/* CHECKBOXES SITUACIÓN */
.chk-lbl { font-family:'Barlow',sans-serif !important; font-size:12px; font-weight:600; color:var(--text); margin-bottom:8px; display:block; }
.chk-grid { display:grid; grid-template-columns:1fr; gap:6px; margin-bottom:16px; }
.chk-item { display:flex; align-items:flex-start; gap:10px; padding:12px 14px; background:var(--gray); border:1px solid var(--gray2); border-radius:6px; cursor:pointer; transition:background .15s,border-color .15s; user-select:none; }
.chk-item:hover { background:#f0fae6; border-color:rgba(106,191,30,.35); }
.chk-item.checked { background:#f0fae6; border-color:rgba(106,191,30,.5); }
.chk-item input[type=checkbox] { width:15px; height:15px; margin-top:1px; accent-color:var(--green); cursor:pointer; flex-shrink:0; }
.chk-txt { font-family:'Barlow',sans-serif !important;font-size:14px; color:var(--text); line-height:1.3; font-weight:500; }
.chk-txt small { display:block; font-size:12px; color:var(--text-light); font-weight:400; margin-top:2px; }

.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-group { display:flex; flex-direction:column; gap:5px; }
.form-group.full { grid-column:1 / -1; }
.form-label { font-family:'Barlow',sans-serif !important;font-size:12px; font-weight:600; color:var(--text); }
.form-input,.form-select,.form-textarea { border:1.5px solid #ccc; border-radius:5px; padding:10px 12px; font-family:'Barlow',sans-serif; font-size:14px; color:var(--text); background:var(--white); outline:none; width:100%; }
.form-input:focus,.form-select:focus,.form-textarea:focus { border-color:var(--green); }
.form-input::placeholder,.form-textarea::placeholder { color:#bbb; }
.form-textarea { resize:none; height:80px; }
.btn-submit { width:100%; background:var(--green); color:var(--white); font-family:'Barlow',sans-serif; font-size:15px; font-weight:600; padding:16px; border-radius:6px; border:none; cursor:pointer; margin-top:8px; transition:background .2s; }
.btn-submit:hover { background:var(--green-dark); }

/* Validación frontend */
.form-group.has-error .form-label,
.form-group.has-error .chk-lbl { color:#c0392b; }
.form-group.has-error .form-input,
.form-group.has-error .form-select,
.form-group.has-error .form-textarea,
.form-group.has-error .chk-grid {
  border-color:#c0392b;
}
.form-group.has-error .form-input,
.form-group.has-error .form-select,
.form-group.has-error .form-textarea {
  box-shadow:0 0 0 2px rgba(192,57,43,.12);
}
.form-group.has-error .chk-grid {
  border:1px solid rgba(192,57,43,.45);
  border-radius:6px;
  padding:4px;
}
.field-error {
  display:block;
  font-family:'Barlow',sans-serif !important;
  font-size:12px;
  color:#c0392b;
  margin-top:4px;
  line-height:1.35;
}
.field-error:empty { display:none; }

.landing-form-alert .modal-dialog {
  margin:80px auto 0;
  max-width:360px;
}
.landing-form-alert .modal-content {
  border:1px solid var(--gray2);
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 4px 16px rgba(0,0,0,.1);
}
.landing-form-alert .modal-header {
  background:#c2c0c1 !important;
  background-color:#c2c0c1 !important;
  color:#fff !important;
  padding:14px 16px;
  border-bottom:none;
  position:relative;
  min-height:48px;
}
.landing-form-alert .modal-header .close {
  color:#fff !important;
  opacity:1 !important;
  font-size:26px !important;
  font-weight:400 !important;
  line-height:1 !important;
  margin:0;
  background-color:var(--green) !important;
  border-radius:50% !important;
  padding:0 !important;
  filter:none;
  text-shadow:none;
  float:right;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  border:none;
  box-shadow:none;
}
.landing-form-alert .modal-header .close span {
  font-family:Arial, sans-serif !important;
  font-size:26px !important;
  font-weight:400 !important;
  line-height:1 !important;
  color:#fff !important;
  display:block;
  margin-top:-1px;
}
.landing-form-alert .modal-title {
  font-family:'Barlow Condensed',sans-serif;
  font-size:22px;
  font-weight:700;
  color:#fff !important;
}
.landing-form-alert .modal-body {
  padding:20px 18px;
  font-family:'Barlow',sans-serif;
  font-size:14px;
  color:#555;
  line-height:1.55;
}
.landing-form-alert .modal-footer {
  border-top:1px solid var(--gray2);
  padding:12px 16px 16px;
  text-align:center;
}
.landing-form-alert .btn-landing-alert {
  background:var(--green);
  border:none;
  color:#fff;
  font-family:'Barlow',sans-serif;
  font-size:14px;
  font-weight:700;
  padding:11px 28px;
  border-radius:6px;
  min-width:140px;
}
.landing-form-alert .btn-landing-alert:hover,
.landing-form-alert .btn-landing-alert:focus {
  background:var(--green-dark);
  color:#fff;
}

/* FOOTER 
.footer { background:#2e2420; padding:16px 24px 12px; border-top:1px solid #3e3430; }
.footer-item { font-size:13px; color:#fff; line-height:1.5; }
.footer-item a { color:#fff; text-decoration:none; }
.footer-bottom { padding-top:8px; border-top:1px solid #2e2e2e; font-size:12px; color:#fff; text-align:center; line-height:1.4; }
*/
/* GRILLA COMPACTA DE SERVICIOS */
.srv-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:0; }
.srv-mini { background:var(--white); border-radius:10px; border:1px solid var(--gray2); overflow:hidden; display:flex; flex-direction:column; isolation:isolate; }
.srv-mini-img { aspect-ratio:16/9; width:100%; background:#d0cfc8; display:flex; align-items:center; justify-content:center; position:relative; flex-shrink:0; overflow:hidden; z-index:0; }
.srv-mini-img span { font-size:10px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:rgba(0,0,0,.28); text-align:center; padding:8px; }
.srv-mini-body { padding:18px 16px; display:flex; flex-direction:column; flex:1; position:relative; z-index:1; background:var(--white); }
.srv-mini-header { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px; }
.srv-mini-num { font-family:'Barlow',sans-serif !important;font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#bbb; }
.srv-mini-tag { font-family:'Barlow',sans-serif !important; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; background:var(--green); color:var(--white); padding:2px 8px; border-radius:3px; }
.srv-mini h3 { font-family:'Barlow Condensed',sans-serif; font-size:22px; font-weight:800; color:var(--black); line-height:1.0; margin-bottom:6px; }
.srv-mini h3 span { font-family:'Barlow Condensed',sans-serif !important;color:var(--green-dark); }
.srv-mini .srv-mini-desc { font-family:'Barlow ',sans-serif !important;font-size:13px; color:var(--text-light); line-height:1.55; margin-bottom:12px; flex:1; }
.srv-mini .incluye-chips { margin-bottom:14px; }
.srv-mini .chip {font-family:'Barlow',sans-serif !important; font-size:11px; padding:3px 8px; }
.srv-mini .srv-cta { font-size:13px; padding:9px 16px; }
.srv-mini-tag--cierre { background:#E30613 !important; }

@media (min-width: 769px) {
  .srv-mini-header { padding:14px 16px 0; margin-bottom:0; }
  .srv-mini-body { padding-top:10px; }
}

/* Form toggle (mobile) */
.form-cta-bar { display:none; }
.form-cta-btn {
  width:100%; background:var(--green); color:var(--white); font-family:'Barlow',sans-serif;
  font-size:15px; font-weight:700; padding:15px; border-radius:8px; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center; gap:8px; transition:background .15s;
}
.form-cta-btn:hover { background:var(--green-dark); }
.form-cta-arrow { font-size:18px; transition:transform .25s; }
.form-cta-btn.open .form-cta-arrow { transform:rotate(180deg); }

/*@media(max-width:900px){ .srv-grid { grid-template-columns:repeat(2,1fr); } }*/

/* Compensar header fijo (navbar-fixed-top) en tablet */
@media (min-width: 769px) and (max-width: 991px) {
  .margin-header { margin-top: 58px; }
}

@media (max-width: 768px) {
  .margin-header { margin-top: 0; }
  .img-banda--hero { display:none; }

  /* Fondo oscuro desde arriba; el padding evita que el contenido quede bajo la topbar */
  .hero { padding: calc(58px + 26px) 22px 24px; }
  .hero-content {
    flex-direction:column;
    align-items:flex-start;
  }
  .hero-badge {
    display:inline-flex !important;
    order:-1;
    margin-bottom:18px;
    background:var(--green);
    border:none;
    box-shadow:0 4px 12px rgba(0,0,0,.16);
  }
  .hero-badge-num { color:var(--white); }
  .hero-badge-text { color:var(--white); font-weight:800; font-size:10px; letter-spacing:.04em; text-transform:uppercase; }
  .hero h1 { font-size:33px; line-height:.98; margin-bottom:14px; }
  .hero-sub { max-width:none; font-size:13.5px; color:rgba(255,255,255,.84); line-height:1.58; }

  .srv-nav { display:none; }

  .divider { display:none; }

  .section { padding:22px 16px 44px; }

  .srv-grid{
    grid-template-columns: 1fr;
    gap:18px;
  }
  .srv-mini{
    width:100%;
    position:relative;
    border:none;
    border-radius:14px;
    box-shadow:0 6px 16px rgba(0,0,0,.10);
  }
  .srv-mini-img {
    aspect-ratio:auto;
    height:170px;
  }
  .srv-mini-img::after {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(to top, rgba(0,0,0,.52) 0%, transparent 55%);
    pointer-events:none;
  }
  .srv-mini-header {
    position:absolute;
    top:12px;
    left:12px;
    right:auto;
    z-index:2;
    margin:0;
    justify-content:flex-start;
  }
  .srv-mini-num { display:none; }
  .srv-mini-tag {
    font-size:9.5px;
    padding:4px 9px;
    border-radius:4px;
    letter-spacing:.06em;
  }
  .srv-mini-body { padding:16px 16px 18px; }
  .srv-mini h3 { font-size:24px; line-height:1.02; margin-bottom:9px; }
  .srv-mini .srv-mini-desc { font-size:13.5px; line-height:1.56; margin-bottom:14px; }
  .srv-mini .incluye-chips { display:none; }
  .srv-mini .srv-cta { margin-top:0; }

  .form-cta-bar {
    display:block;
    padding:18px 16px;
    background:var(--white);
    border-top:1px solid var(--gray2);
  }
  .form-section { padding:0; }
  .form-section:not(.form-section--open) form { display:none; }
  .form-section.form-section--open { padding:0 0 28px; background:#f7f7f5; }
  .form-section.form-section--open form { display:block; padding:24px 16px 32px; }
}
@media (max-width: 768px) {
  .form-steps-chips{
    flex-direction: column;
  }
  .fchip{
    width: 100%;
    flex: none;
  }
}
@media(max-width:700px){
  .srv-card-inner { grid-template-columns:1fr; }
  .srv-card-img { min-height:200px; }
  .srv-card.img-right .srv-card-img { order:unset; }
  .srv-card.img-right .srv-card-body { order:unset; }
  .form-grid { grid-template-columns:1fr; }
  .form-group.full { grid-column:span 1; }
  .rec-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width:390px) {
  .hero { padding: calc(58px + 25px) 16px 20px; }
  .hero h1 { font-size:29px; }
  .section { padding:20px 14px 40px; }
  .srv-grid { gap:17px; }
  .srv-mini-img { height:155px; }
  .srv-mini-body { padding:14px 14px 16px; }
  .srv-mini h3 { font-size:22px; line-height:1.04; }
  .srv-mini .srv-mini-desc { font-size:13px; line-height:1.52; }
  .srv-mini .srv-cta { width:100%; justify-content:center; padding:11px 16px; }
  .form-cta-bar,
  .form-section.form-section--open form { padding-left:14px; padding-right:14px; }
}

@media (max-width:360px) {
  .hero { padding: calc(58px + 22px) 14px 18px; }
  .hero h1 { font-size:26px; }
  .hero-sub { font-size:12.5px; line-height:1.5; }
  .section { padding:18px 12px 36px; }
  .srv-grid { gap:15px; }
  .srv-mini { border-radius:12px; }
  .srv-mini-img { height:140px; }
  .srv-mini-header { top:10px; left:11px; }
  .srv-mini-tag { font-size:8.8px; }
  .srv-mini-body { padding:13px 12px 15px; }
  .srv-mini h3 { font-size:20px; line-height:1.06; }
  .srv-mini .srv-mini-desc { font-size:12.5px; line-height:1.48; }
}

@media print {
  .img-banda { height: 140px !important; overflow: hidden !important; display: block !important; }
  .img-banda img { width: 100% !important; height: 140px !important; object-fit: cover !important; display: block !important; }
  .srv-nav { display: none !important; }
  .section { padding: 12px 20px !important; }
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  body { font-size: 13px; }
  .srv-nav { display: none; }
  .srv-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; page-break-inside: avoid; }
  .srv-mini { page-break-inside: avoid; overflow: visible; border: 1px solid #ddd; }
  .srv-mini-img { aspect-ratio: 16/9; overflow: hidden; position: relative; z-index: 0; }
  .srv-mini-img img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
  .srv-mini-body { position: relative; z-index: 2; background: #fff; padding: 12px; }
  .incluye-chips { display: flex; flex-wrap: wrap; gap: 4px; position: relative; z-index: 2; }
  .chip { font-size: 10px; padding: 2px 6px; position: relative; z-index: 2; background: rgba(106,191,30,.1); border: 1px solid rgba(106,191,30,.25); color: #52a012; border-radius: 3px; }
  .srv-mini-header { position: relative; z-index: 2; }
  .srv-mini h3 { position: relative; z-index: 2; }
  .srv-mini .srv-mini-desc { position: relative; z-index: 2; }
  .srv-mini .srv-cta { position: relative; z-index: 2; }
  .dif-strip { page-break-inside: avoid; }
  .form-section { page-break-inside: avoid; }
  .img-banda img { height: 120px; width: 100%; object-fit: cover; }
  .hero { padding: 12px 20px; }
  .section { padding: 12px 20px; }
}

/*
.fhint {
  font-size: 11px;
  color: var(--light);
  margin-top: 5px;
  line-height: 1.4;
}
.green-hint { color: var(--green); font-weight: 600; }
*/