/*
 * INFISAD Enterprise · 11.9.42
 * Responsive Professional Shield
 * Corrige cortes, wrapping agresivo y proporciones en portada/servicios.
 */

/* Base segura: ningún bloque público debe provocar scroll horizontal. */
html,body.public-site{max-width:100%;overflow-x:hidden}
body.public-site *,body.public-site *::before,body.public-site *::after{box-sizing:border-box}
body.public-site main,body.public-site section,body.public-site article,body.public-site div{min-width:0}

/* Las frases normales nunca deben partir palabras arbitrariamente. */
body.public-site h1,
body.public-site h2,
body.public-site h3,
body.public-site h4,
body.public-site .eyebrow,
body.public-site .metrics-grid span,
body.public-site .hero-trust small,
body.public-site .service-card p{
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
}
body.public-site h1,
body.public-site h2,
body.public-site h3{
  text-wrap:balance;
  max-width:100%;
}
body.public-site p{max-width:100%;overflow-wrap:break-word}
body.public-site img{max-width:100%;height:auto}

/* ------------------------------- */
/* PORTADA · HERO SOFTWARE A MEDIDA */
/* ------------------------------- */
.public41-software-hero{
  min-height:720px!important;
  height:auto!important;
  overflow:hidden!important;
}
.public41-software-hero .corporate-hero-content.hero-with-news{
  width:min(1240px,calc(100% - 48px))!important;
  grid-template-columns:minmax(0,1.08fr) minmax(340px,.78fr)!important;
  gap:clamp(28px,4vw,56px)!important;
  min-height:720px!important;
  height:auto!important;
  padding-top:58px!important;
  padding-bottom:58px!important;
}
.public41-software-hero .hero-copy{
  width:100%!important;
  min-width:0!important;
  max-width:720px!important;
}
.public41-software-hero .hero-copy h1,
.hero-with-news .hero-copy h1{
  margin:14px 0 20px!important;
  max-width:720px!important;
  font-size:clamp(48px,4.5vw,72px)!important;
  line-height:1.01!important;
  letter-spacing:-.035em!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
  text-wrap:balance!important;
}
.public41-software-hero .hero-copy>p:not(.eyebrow){
  max-width:690px!important;
  font-size:clamp(15px,1.35vw,18px)!important;
  line-height:1.62!important;
}
.public41-software-hero .hero-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:11px!important;
}
.public41-software-hero .hero-actions a{
  max-width:100%;
  white-space:normal!important;
  text-align:center;
}
.public41-software-hero .hero-trust{
  min-width:0!important;
}
.public41-software-hero .hero-news-panel{
  min-width:0!important;
  width:100%!important;
  max-width:480px!important;
}
.public41-software-hero .hero-news-copy h2{
  overflow-wrap:normal!important;
  word-break:normal!important;
  text-wrap:balance!important;
}

/* ------------------------------- */
/* CONTADOR Y MÉTRICAS              */
/* ------------------------------- */
.public-site .corporate-metrics .metrics-grid{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:0!important;
}
.public-site .metrics-grid article{
  min-width:0!important;
  padding:12px clamp(14px,1.6vw,25px)!important;
}
.public-site .metrics-grid strong{
  flex:0 0 auto;
}
.public-site .metrics-grid span{
  min-width:0;
  line-height:1.28!important;
}
.public-site .public40-visit-counter{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  column-gap:13px!important;
  row-gap:2px!important;
  align-items:center!important;
  min-width:0!important;
  padding-right:20px!important;
}
.public-site .public40-visit-counter strong{
  grid-row:1 / 3!important;
  grid-column:1!important;
  align-self:center!important;
  margin:0!important;
  white-space:nowrap!important;
  font-size:clamp(28px,2.2vw,36px)!important;
}
.public-site .public40-visit-counter span{
  grid-column:2!important;
  grid-row:1!important;
  align-self:end!important;
  margin:0!important;
  white-space:normal!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
.public-site .public40-visit-counter small{
  grid-column:2!important;
  grid-row:2!important;
  align-self:start!important;
  margin:0!important;
  white-space:nowrap!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  color:rgba(255,255,255,.5)!important;
  font-size:8px!important;
  letter-spacing:.06em!important;
}

/* ------------------------------- */
/* IMPLEMENTACIÓN SOFTWARE          */
/* ------------------------------- */
.public41-build-copy h2{
  font-size:clamp(34px,3.4vw,54px)!important;
  line-height:1.06!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
.public41-tool-grid article,
.public41-system-modules article{
  min-width:0!important;
}
.public41-tool-grid b,
.public41-tool-grid span,
.public41-system-modules b,
.public41-system-modules span{
  overflow-wrap:normal!important;
  word-break:normal!important;
}

/* ------------------------------- */
/* SERVICIOS                        */
/* ------------------------------- */
.services-page{
  overflow-x:hidden!important;
}
.services-page .services-hero{
  height:auto!important;
}
.services-page .services-hero h1{
  max-width:850px!important;
  font-size:clamp(46px,5vw,78px)!important;
  line-height:1.01!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  text-wrap:balance!important;
}
.services-page .services-hero p:not(.eyebrow){
  max-width:760px!important;
}
.services-page .category-intro{
  min-width:0!important;
}
.services-page .category-intro>div,
.services-page .service-grid,
.services-page .service-card,
.services-page .service-card-content{
  min-width:0!important;
}
.services-page .category-intro h2{
  overflow-wrap:normal!important;
  word-break:normal!important;
  text-wrap:balance!important;
}
.services-page .service-card-content h3{
  min-height:0!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  text-wrap:balance!important;
}
.services-page .service-card-content p{
  overflow-wrap:normal!important;
  word-break:normal!important;
}

/* Topbar/menu: permite una transición limpia a móvil. */
.public-logo.image-logo{min-width:0!important}
.public-menu{min-width:0}

/* ------------------------------- */
/* TABLET / LAPTOP ESTRECHO         */
/* ------------------------------- */
@media(max-width:1180px){
  .public41-software-hero .corporate-hero-content.hero-with-news{
    grid-template-columns:minmax(0,1fr) minmax(320px,.72fr)!important;
    width:min(100% - 40px,1120px)!important;
    gap:28px!important;
  }
  .public41-software-hero .hero-copy h1,
  .hero-with-news .hero-copy h1{
    font-size:clamp(44px,5vw,62px)!important;
  }
  .public-site .corporate-metrics .metrics-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  .public-site .metrics-grid article:nth-child(3n){border-right:0!important}
  .public-site .metrics-grid article:nth-child(n+4){border-top:1px solid rgba(215,173,66,.17)}
  .services-page .category-intro{
    grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr)!important;
    gap:36px!important;
  }
}

/* ------------------------------- */
/* TABLET Y MÓVIL                   */
/* ------------------------------- */
@media(max-width:900px){
  .public41-software-hero{
    min-height:auto!important;
    overflow:hidden!important;
  }
  .public41-software-hero .corporate-hero-content.hero-with-news{
    grid-template-columns:minmax(0,1fr)!important;
    width:min(100% - 34px,760px)!important;
    min-height:auto!important;
    padding-top:52px!important;
    padding-bottom:52px!important;
    gap:30px!important;
  }
  .public41-software-hero .hero-copy{
    max-width:none!important;
  }
  .public41-software-hero .hero-copy h1,
  .hero-with-news .hero-copy h1{
    max-width:700px!important;
    font-size:clamp(38px,7vw,52px)!important;
    line-height:1.04!important;
    letter-spacing:-.025em!important;
  }
  .public41-software-hero .hero-news-panel{
    justify-self:stretch!important;
    max-width:680px!important;
  }
  .public41-software-hero .hero-news-track{
    min-height:410px!important;
  }
  .public41-software-hero .hero-news-slide{
    grid-template-rows:245px 1fr!important;
  }
  .public41-build-grid{
    grid-template-columns:minmax(0,1fr)!important;
    gap:34px!important;
  }
  .public41-build-visual{
    width:min(100%,680px)!important;
    margin-inline:auto!important;
  }
  .services-page .category-intro{
    grid-template-columns:minmax(0,1fr)!important;
    gap:24px!important;
  }
  .services-page .featured-services{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:700px){
  .public-wrap{
    width:min(100% - 28px,1180px)!important;
  }
  .public-topbar .topbar-inner{
    min-height:auto!important;
    padding:8px 0!important;
    gap:7px!important;
  }
  .public-topbar .topbar-inner>div:first-child{
    gap:10px!important;
    flex-wrap:wrap!important;
  }
  .public-topbar .topbar-inner>div:first-child span{
    display:none!important;
  }
  .public-topbar .topbar-inner>div:last-child{
    gap:11px!important;
  }
  .public-logo.image-logo{
    min-width:0!important;
    max-width:calc(100% - 64px)!important;
  }
  .public-logo.image-logo img{
    width:52px!important;
    height:52px!important;
    min-width:52px!important;
    min-height:52px!important;
    max-width:52px!important;
    max-height:52px!important;
  }
  .public-logo.image-logo b{
    font-size:21px!important;
  }
  .public-logo.image-logo small{
    display:none!important;
  }
  .public41-software-hero .corporate-hero-content.hero-with-news{
    width:min(100% - 28px,660px)!important;
    padding-top:42px!important;
    padding-bottom:42px!important;
  }
  .public41-software-hero .hero-copy h1,
  .hero-with-news .hero-copy h1{
    font-size:clamp(34px,8vw,44px)!important;
    line-height:1.06!important;
  }
  .public41-software-hero .hero-copy>p:not(.eyebrow){
    font-size:15px!important;
    line-height:1.58!important;
  }
  .public41-software-hero .hero-trust{
    grid-template-columns:1fr!important;
    gap:11px!important;
    padding-top:18px!important;
    margin-top:24px!important;
  }
  .public41-software-hero .hero-trust span{
    padding:0!important;
    border-right:0!important;
  }
  .public-site .corporate-metrics .metrics-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .public-site .metrics-grid article{
    min-height:92px!important;
    border-right:1px solid rgba(215,173,66,.17)!important;
    border-top:1px solid rgba(215,173,66,.17)!important;
  }
  .public-site .metrics-grid article:nth-child(2n){
    border-right:0!important;
  }
  .public-site .metrics-grid article:nth-child(-n+2){
    border-top:0!important;
  }
  .public-site .public40-visit-counter{
    grid-column:1 / -1!important;
    min-height:96px!important;
    border-right:0!important;
  }
  .public41-build-copy h2,
  .services-page .services-hero h1{
    font-size:clamp(34px,8vw,44px)!important;
    line-height:1.07!important;
  }
  .public41-tool-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .services-page .services-hero{
    min-height:auto!important;
    padding:74px 0 62px!important;
  }
  .services-page .service-category-showcase{
    padding:54px 0!important;
  }
  .services-page .featured-services{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .services-page .category-visual{
    height:210px!important;
  }
  .services-page .service-card-content p{
    min-height:0!important;
  }
}

@media(max-width:480px){
  .public-wrap{
    width:min(100% - 22px,1180px)!important;
  }
  .public-topbar .topbar-inner{
    justify-content:center!important;
  }
  .public-topbar .topbar-inner>div:first-child a:first-child{
    display:none!important;
  }
  .public41-software-hero .corporate-hero-content.hero-with-news{
    width:min(100% - 22px,440px)!important;
    padding-top:34px!important;
    padding-bottom:36px!important;
  }
  .public41-software-hero .hero-copy h1,
  .hero-with-news .hero-copy h1{
    font-size:clamp(31px,9.4vw,39px)!important;
    line-height:1.08!important;
    letter-spacing:-.02em!important;
    text-wrap:pretty!important;
  }
  .public41-software-hero .hero-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  .public41-software-hero .hero-actions a{
    width:100%!important;
  }
  .public41-software-hero .hero-news-track{
    min-height:365px!important;
  }
  .public41-software-hero .hero-news-slide{
    grid-template-rows:200px 1fr!important;
  }
  .public41-software-hero .hero-news-copy h2{
    font-size:18px!important;
    line-height:1.22!important;
  }
  .public-site .corporate-metrics .metrics-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .public-site .metrics-grid article,
  .public-site .public40-visit-counter{
    grid-column:auto!important;
    min-height:80px!important;
    border-right:0!important;
    border-top:1px solid rgba(215,173,66,.17)!important;
    border-bottom:0!important;
  }
  .public-site .metrics-grid article:first-child{
    border-top:0!important;
  }
  .public-site .public40-visit-counter small{
    white-space:normal!important;
  }
  .public41-build-copy h2,
  .services-page .services-hero h1{
    font-size:clamp(31px,9vw,39px)!important;
  }
  .public41-build-visual{
    min-height:520px!important;
    padding:18px!important;
  }
  .public41-system-modules{
    grid-template-columns:1fr!important;
  }
  .public41-system-modules article.wide{
    grid-column:auto!important;
  }
  .services-page .category-intro h2{
    font-size:clamp(28px,8vw,38px)!important;
  }
  .services-page .service-card-content{
    padding:22px!important;
  }
}
