/* OSM original animated hero — retained from supplied source. */


#osm-corporate{
  --osm-main:#2f4f4f;
  --osm-main-2:#456a6a;
  --osm-ink:#101515;
  position:relative;
  width:100%;
  overflow:hidden;
  background:#fff;
  color:var(--osm-ink);
  font-family:Arial,Helvetica,sans-serif;
}
#osm-corporate *{box-sizing:border-box;}
#osm-corporate .osm-wrap{
  position:relative;
  z-index:5;
  width:min(1320px,calc(100% - 36px));
  margin:auto;
}

/* Fondo técnico */
#osm-corporate .osm-global-grid{
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(47,79,79,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(47,79,79,.06) 1px,transparent 1px);
  background-size:86px 86px;
  animation:osmGrid 22s linear infinite;
  z-index:1;
}
@keyframes osmGrid{to{background-position:86px 86px,86px 86px;}}

#osm-corporate .osm-brand{
  position:relative;
  min-height:560px;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 78% 18%,rgba(47,79,79,.11),transparent 34%),
    radial-gradient(circle at 16% 80%,rgba(47,79,79,.07),transparent 30%),
    #fff;
  border-bottom:1px solid rgba(47,79,79,.14);
}

/* Fondo constructivo */
#osm-corporate .osm-construction-bg{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  overflow:hidden;
  opacity:.96;
}
#osm-corporate .osm-construction-bg::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-3%;height:108%;
  background:linear-gradient(to top,rgba(47,79,79,.14),transparent 58%);
  clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%);
  animation:osmSiteBuild 9s ease-in-out infinite;
}
@keyframes osmSiteBuild{
  0%,8%{clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%);opacity:.3;}
  48%,82%{clip-path:polygon(0 100%,100% 100%,100% 8%,0 22%);opacity:.75;}
  100%{clip-path:polygon(0 100%,100% 100%,100% 0,0 10%);opacity:.22;}
}
#osm-corporate .osm-build-base{position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(47,79,79,.35);}

#osm-corporate .osm-tower{
  position:absolute;
  bottom:0;
  width:11%;
  min-width:96px;
  border:1px solid rgba(47,79,79,.38);
  border-bottom:0;
  background:linear-gradient(to top,rgba(47,79,79,.14),rgba(47,79,79,.035));
  transform-origin:bottom;
  animation:osmBuildRise 7.5s cubic-bezier(.16,1,.3,1) infinite;
  overflow:hidden;
}
#osm-corporate .osm-tower::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    repeating-linear-gradient(to top,transparent 0 30px,rgba(47,79,79,.28) 30px 31px),
    repeating-linear-gradient(to right,transparent 0 38px,rgba(47,79,79,.23) 38px 39px);
}
#osm-corporate .osm-tower::after{
  content:"";
  position:absolute;
  left:-15%;right:-15%;top:-2px;height:2px;
  background:linear-gradient(90deg,transparent,rgba(47,79,79,.68),transparent);
  animation:osmFloorScan 3s ease-in-out infinite;
}
#osm-corporate .osm-t1{left:1%;height:34%;animation-delay:0s;}
#osm-corporate .osm-t2{left:13%;height:49%;animation-delay:-1s;}
#osm-corporate .osm-t3{left:26%;height:28%;animation-delay:-2s;}
#osm-corporate .osm-t4{left:39%;height:61%;animation-delay:-3s;}
#osm-corporate .osm-t5{left:52%;height:39%;animation-delay:-4s;}
#osm-corporate .osm-t6{left:65%;height:54%;animation-delay:-5s;}
#osm-corporate .osm-t7{left:78%;height:31%;animation-delay:-6s;}
#osm-corporate .osm-t8{left:90%;height:45%;animation-delay:-7s;}
@keyframes osmBuildRise{
  0%,14%{transform:scaleY(.05);opacity:.12;}
  42%,78%{transform:scaleY(1);opacity:.82;}
  100%{transform:scaleY(1);opacity:.30;}
}
@keyframes osmFloorScan{0%,100%{transform:translateY(0);opacity:.18;}50%{transform:translateY(230px);opacity:.72;}}

#osm-corporate .osm-beam{
  position:absolute;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(47,79,79,.25),transparent);
  transform-origin:left center;
  animation:osmBeamPulse 5.5s ease-in-out infinite;
}
#osm-corporate .osm-beam.b1{width:58vw;left:-4vw;top:24%;transform:rotate(17deg);}
#osm-corporate .osm-beam.b2{width:50vw;right:-5vw;top:32%;transform:rotate(-16deg);animation-delay:-2s;}
#osm-corporate .osm-beam.b3{width:72vw;left:14vw;bottom:14%;transform:rotate(-7deg);animation-delay:-4s;}
@keyframes osmBeamPulse{0%,100%{opacity:.16;}50%{opacity:.58;}}

/* Menos aire arriba y abajo */
#osm-corporate .osm-brand-inner{
  position:relative;
  width:100%;
  padding:17px 0 13px;
}

#osm-corporate .osm-brand-kicker{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin-bottom:24px;
  color:var(--osm-main);
  text-transform:uppercase;
  font-size:10px;
  font-weight:900;
  letter-spacing:5px;
  text-align:center;
}
#osm-corporate .osm-brand-kicker::before,
#osm-corporate .osm-brand-kicker::after{
  content:"";
  width:58px;
  height:2px;
  background:var(--osm-main);
  animation:kicker 3s ease-in-out infinite;
}
@keyframes kicker{0%,100%{transform:scaleX(.45);opacity:.3;}50%{transform:scaleX(1);opacity:1;}}

/* Marca: cabe completa y con animación continua sin desplazar el texto */
#osm-corporate .osm-brand-title{
  position:relative;
  max-width:none;
  width:100%;
  margin:0 auto;
  padding:0 8px;
  text-align:center;
  font-size:clamp(68px,9.15vw,142px);
  line-height:.80;
  letter-spacing:-7px;
  text-transform:uppercase;
  font-weight:900;
  color:var(--osm-ink);
  animation:osmTitleGlow 4.8s ease-in-out infinite;
}
#osm-corporate .osm-brand-title .osm-green-word{
  position:relative;
  display:inline-block;
  color:var(--osm-main);
  overflow:visible;
  padding-right:.03em;
  animation:osmManagementGlow 4.8s ease-in-out infinite;
}
#osm-corporate .osm-brand-title .osm-green-word::after{
  content:"";
  position:absolute;
  inset:-5% -2%;
  pointer-events:none;
  background:linear-gradient(100deg,transparent 0 38%,rgba(255,255,255,.86) 49%,transparent 60%);
  transform:translateX(-120%);
  mix-blend-mode:screen;
  animation:osmWordSweep 4.3s ease-in-out infinite;
}
@keyframes osmTitleGlow{
  0%,100%{text-shadow:0 0 0 rgba(47,79,79,0);}
  50%{text-shadow:0 14px 34px rgba(47,79,79,.18);}
}
@keyframes osmManagementGlow{
  0%,100%{filter:drop-shadow(0 0 0 rgba(47,79,79,0));}
  50%{filter:drop-shadow(0 10px 18px rgba(47,79,79,.20));}
}
@keyframes osmWordSweep{
  0%,48%{transform:translateX(-120%);opacity:0;}
  60%{opacity:.95;}
  88%,100%{transform:translateX(120%);opacity:0;}
}
#osm-corporate .osm-brand-title::before,
#osm-corporate .osm-brand-title::after{
  content:"";
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(47,79,79,.58),transparent);
  animation:osmTitleRail 4.3s ease-in-out infinite;
}
#osm-corporate .osm-brand-title::before{top:-13px;width:68%;}
#osm-corporate .osm-brand-title::after{bottom:-17px;width:84%;animation-delay:-2.15s;}
@keyframes osmTitleRail{
  0%,100%{opacity:.18;transform:translateX(-50%) scaleX(.30);}
  50%{opacity:.78;transform:translateX(-50%) scaleX(1);}
}

/* Slogan estático */
#osm-corporate .osm-claim-wrap{
  position:relative;
  display:flex;
  justify-content:center;
  margin:44px auto 0;
  max-width:980px;
}
#osm-corporate .osm-brand-claim{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  text-align:center;
}
#osm-corporate .osm-brand-claim div{
  position:relative;
  display:inline-block;
  overflow:hidden;
  padding:2px 12px 8px;
  font-size:clamp(25px,3.05vw,43px);
  line-height:1.02;
  letter-spacing:-1.5px;
  font-weight:400;
}
#osm-corporate .osm-brand-claim div:first-child{color:var(--osm-ink);}
#osm-corporate .osm-brand-claim div:last-child{color:var(--osm-main);font-weight:600;}

@media(max-width:900px){
  #osm-corporate .osm-wrap{width:calc(100% - 24px);}
  #osm-corporate .osm-brand{min-height:520px;}
  #osm-corporate .osm-brand-inner{padding:13px 0 10px;}
  #osm-corporate .osm-brand-title{font-size:clamp(58px,13vw,112px);letter-spacing:-5px;}
  #osm-corporate .osm-construction-bg{opacity:.78;}
}
@media(max-width:600px){
  #osm-corporate .osm-wrap{width:calc(100% - 16px);}
  #osm-corporate .osm-brand{min-height:470px;}
  #osm-corporate .osm-brand-inner{padding:9px 0 7px;}
  #osm-corporate .osm-brand-title{font-size:15vw;line-height:.84;letter-spacing:-3px;padding-left:4px;padding-right:4px;}
  #osm-corporate .osm-brand-title .osm-green-word{
    font-size:.90em;
    letter-spacing:-3.4px;
    white-space:nowrap;
    padding-left:.02em;
    padding-right:.10em;
  }
  #osm-corporate .osm-brand-kicker{font-size:8px;letter-spacing:3px;gap:8px;margin-bottom:18px;}
  #osm-corporate .osm-brand-kicker::before,#osm-corporate .osm-brand-kicker::after{width:26px;}
  #osm-corporate .osm-claim-wrap{margin-top:32px;}
  #osm-corporate .osm-brand-claim div{font-size:6.9vw;padding-left:6px;padding-right:6px;}
  #osm-corporate .osm-construction-bg{opacity:.62;}
}
@media(prefers-reduced-motion:reduce){
  #osm-corporate *,#osm-corporate *::before,#osm-corporate *::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }
}


/* Ajuste final: base difuminada + sin padding inferior */
#osm-hero,
#osm-corporate .osm-brand{
  padding-bottom:0 !important;
}

/* Evita una “línea base” dura y hace que la construcción se pierda en blanco */
#osm-hero::after,
#osm-corporate .osm-brand::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:24%;
  z-index:4;
  pointer-events:none;
  background:linear-gradient(
    to bottom,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.20) 28%,
    rgba(255,255,255,.62) 64%,
    #ffffff 100%
  ) !important;
  transform:none !important;
  animation:none !important;
}

/* Mantiene el contenido por encima del fade */
#osm-hero .osm-wrap,
#osm-corporate .osm-wrap,
#osm-hero .hero-content,
#osm-corporate .osm-brand-inner{
  position:relative;
  z-index:6;
}

/* Si existe una base/borde inferior en el hero, se elimina */
#osm-hero,
#osm-corporate .osm-brand{
  border-bottom:none !important;
}


/* V10 — eliminar por completo cualquier línea horizontal inferior */
#osm-hero,
#osm-corporate,
#osm-corporate .osm-brand{
  border-bottom:0 !important;
  box-shadow:none !important;
  outline:none !important;
}

/* Mata pseudo-elementos que pudieran estar dibujando una línea/base */
#osm-hero::before,
#osm-corporate::before{
  border-bottom:0 !important;
  box-shadow:none !important;
}

/* Capa de máscara más alta para borrar cualquier base visual */
#osm-hero::after,
#osm-corporate .osm-brand::after{
  content:"";
  position:absolute;
  left:-2px;
  right:-2px;
  bottom:-2px;
  height:34%;
  z-index:999;
  pointer-events:none;
  background:linear-gradient(
    to bottom,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.18) 22%,
    rgba(255,255,255,.55) 52%,
    rgba(255,255,255,.88) 78%,
    #fff 100%
  ) !important;
  border:0 !important;
  box-shadow:none !important;
  transform:none !important;
  animation:none !important;
}

/* contenido por encima de la máscara */
#osm-hero .osm-wrap,
#osm-corporate .osm-wrap,
#osm-hero .hero-content,
#osm-corporate .osm-brand-inner,
#osm-corporate .osm-tech-wheel{
  position:relative;
  z-index:1000;
}

/* elimina cualquier línea propia de elementos del fondo cerca de la base */
#osm-hero [class*="base"],
#osm-hero [class*="ground"],
#osm-corporate [class*="base"],
#osm-corporate [class*="ground"]{
  border-bottom:0 !important;
  box-shadow:none !important;
}

