@charset "UTF-8";

html, body{
  margin: 0 !important;
  padding: 0 !important;
  height: 100% !important;
  background: #0F3D36 !important;
  overflow-x: hidden !important;
  font-family: "Montserrat", sans-serif !important;
}

main, .layout-content, .ui-layout-content, .content, #content,
.container, .container-fluid, .ui-g, .ui-grid, .ui-panelgrid, .ui-panelgrid-content{
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

.hero-portal{
  position: relative;
  width: 100%;
  min-height: 100vh;
  overflow: hidden;
  background: #0F3D36;
}

.hero-frame{
  position: relative;
  max-width: 1280px;
  margin: 0 auto;
  min-height: 100vh;
  overflow: hidden;
  background: #0F3D36;
  --sW: clamp(600px, 48%, 740px);
  --contentStart: calc(var(--sW) - 240px);
}

.hero-bg-verde{
  position: absolute;
  inset: 0;
  background: #0F3D36;
  z-index: 1;
  pointer-events: none !important;
}

.bg-pattern-right {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 60%; 
    z-index: 2;
    pointer-events: none;
    opacity: 0.15;
    background: radial-gradient(circle at 100% 50%, rgba(255,255,255,0.2) 0%, transparent 70%);
}

.hero-image-clipped{
  position: absolute;
  left: 0px;
  top: 0;
  bottom: 0;
  width: calc(var(--sW) + 300px);
  margin-left: -100px; 
  z-index: 2;
  pointer-events: none !important;
  overflow: hidden;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 520 1000' preserveAspectRatio='none'><path d='M0 0 L260 0 C240 170, 200 300, 260 480 C320 660, 260 820, 240 1000 L0 1000 Z' fill='white'/></svg>");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  -webkit-mask-position: left top;
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 520 1000' preserveAspectRatio='none'><path d='M0 0 L260 0 C240 170, 200 300, 260 480 C320 660, 260 820, 240 1000 L0 1000 Z' fill='white'/></svg>");
  mask-repeat: no-repeat;
  mask-size: 100% 100%;
  mask-position: left top;
}

.hero-image-clipped img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left center;
  transform-origin: left center;
  transform: translateX(-40%);
  filter: saturate(1.02) contrast(1.02);
}

.hero-s-line{
  position: absolute;
  left: 30px;
  top: 0;
  bottom: 0;
  width: calc(var(--sW) + 300px);
  margin-left: -120px;
  z-index: 3;
  pointer-events: none !important;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-position: left top;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 520 1000' preserveAspectRatio='none'><path d='M260 0 C240 170, 200 300, 260 480 C320 660, 260 820, 240 1000' fill='none' stroke='%23C5A97D' stroke-width='8' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}

.hero-content{
  position: relative;
  z-index: 5;
  min-height: 100vh;
  padding: 96px 24px 24px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero-top{
  width: 100%;
  display: flex;
  justify-content: center;
}
.hero-logo{
  height: 48px;
  width: auto;
}

.hero-main{
  width: min(920px, calc(100% - var(--contentStart) - 24px));
  margin-top: 100px;
  margin-left: var(--contentStart);
  margin-right: 0;
  position: relative;
}

.hero-subtitle{
  font-family: "Montserrat", sans-serif !important;
  color: #FFFFFF;
  font-weight: 400;
  font-size: 32px;
  letter-spacing: 1px;
}

.hero-h1{
  font-family: "Montserrat", sans-serif !important;
  color: #FFFFFF;
  font-weight: 800;
  font-size: 56px;
  margin-top: 5px;
  line-height: 1.1;
}

.hero-underline{
  margin-top: 12px;
  width: 320px;
  height: 4px;
  background: #C5A97D;
  opacity: 1;
}

.hero-body-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 50px;
    gap: 30px;
    flex-wrap: wrap;
}

.hero-stepper{
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0;
  flex-grow: 1;
  max-width: 620px;
}

/* LÍNEA AJUSTADA */
.step-line{
  position: absolute;
  left: 12px;    
  right: 14px;    
  top: 14px;
  height: 3px;
  background: #b39666;
  border-radius: 2px;
  z-index: 0;
}

.step-item{
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 130px;
}

.step-dot{
  width: 30px;
  height: 30px;
  background: #C5A97D; 
  border-radius: 50%;
  margin-bottom: 12px;
  box-shadow: 0 0 0 6px #0F3D36; 
}

.step-text{
  font-family: "Montserrat", sans-serif !important;
  color: #FFFFFF;
  font-size: 15px;
  line-height: 19px;
  font-weight: 400;
}
.step-strong{
  font-weight: 800;
}

.step-item.is-check{
  width: auto;
  margin-left: 0; 
}

.step-check{
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #1D856F;
  border: 2px solid #FFFFFF;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  position: relative;
  z-index: 2;
  box-shadow: 0 0 0 6px #0F3D36; 
}

.hero-cta{
  position: relative;
  flex-shrink: 0;
}

.btn-iniciar-img-link{
  display: inline-block;
  pointer-events: auto !important;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.2s ease;
}
.btn-iniciar-img-link:hover{
    transform: translateY(-2px);
}

.btn-iniciar-img{
  display: block;
  width: 210px;
  height: auto;
  filter: none !important;
  opacity: 1 !important;
  pointer-events: none;
}

.hero-pill{
  margin-top: 50px;
  width: fit-content;
  background: #691C32;
  color: #FFFFFF;
  padding: 12px 30px;
  border-radius: 50px;
  font-size: 18px;
  font-family: "Montserrat", sans-serif !important;
  box-shadow: 0 4px 15px rgba(0,0,0,0.15);
}

.pill-strong{
  font-weight: 800;
  font-style: italic;
}

@media (max-width: 1100px){
  .hero-frame{
    --sW: clamp(540px, 55%, 700px);
    --contentStart: calc(var(--sW) - 150px);
  }
}

@media (max-width: 900px){
  .hero-main{
    margin: 90px auto 0;
    width: min(860px, 92%);
    margin-left: auto;
  }
  
  .hero-body-row{
    flex-direction: column;
    align-items: flex-start;
    margin-top: 30px;
  }
  
  .hero-stepper{
    width: 100%;
    padding-right: 0;
  }
  
  .step-line{
    width: 95%; 
    right: auto;
  }

  .hero-cta{
    width: 100%;
    display: flex;
    justify-content: flex-end;
    margin-top: 10px;
  }
}

@media (max-width: 640px){
  .hero-subtitle{ font-size: 20px; }
  .hero-h1{ font-size: 38px; }
  
  .hero-stepper{
    flex-direction: column;
    gap: 0;
  }
  .step-line{
    display: none;
  }
  .step-item{
    flex-direction: row;
    align-items: center;
    width: 100%;
    margin-bottom: 20px;
  }
  .step-dot{
    margin-bottom: 0;
    margin-right: 15px;
  }
  
  .hero-pill{
      width: 100%;
      text-align: center;
      font-size: 16px;
      padding: 10px;
  }
}

header .container,
header .container-fluid,
#header .container,
#header .container-fluid,
#topbar .container,
#topbar .container-fluid,
.layout-topbar .container,
.layout-topbar .container-fluid,
.topbar .container,
.topbar .container-fluid,
.barra-superior .container,
.barra-superior .container-fluid,
.encabezado .container,
.encabezado .container-fluid {
  padding-left: var(--bs-gutter-x, 1rem) !important;
  padding-right: var(--bs-gutter-x, 1rem) !important;

  margin-left: auto !important;
  margin-right: auto !important;
}

header .layout-topbar-wrapper,
.layout-topbar .layout-topbar-wrapper,
#topbar .layout-topbar-wrapper {
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--bs-gutter-x, 1rem) !important;
  padding-right: var(--bs-gutter-x, 1rem) !important;
}


@media (max-width: 768px){


  .hero-frame{
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto 1fr !important;

 
    --sW: 100% !important;
    --contentStart: 0px !important;
  }

  .hero-content{
    display: contents !important;
  }

  .hero-top{
    grid-row: 1 !important;
    position: relative !important;
    z-index: 6 !important;

    padding: 88px 20px 12px !important;
    justify-content: center !important;
  }


  .hero-image-clipped{
    grid-row: 2 !important;
    position: relative !important;
    z-index: 5 !important;

    width: 100% !important;
    height: 190px !important;     
    margin: 0 !important;

    overflow: hidden !important;

    -webkit-mask-image: none !important;
    mask-image: none !important;

    left: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    margin-left: 0 !important;
  }

  .hero-image-clipped img{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: none !important;
  }


  .hero-main{
    grid-row: 3 !important;
    position: relative !important;
    z-index: 6 !important;

    width: 100% !important;
    margin: 0 !important;
    margin-left: 0 !important;

    padding: 18px 20px 24px !important;
  }


  .hero-s-line,
  .bg-pattern-right{
    display: none !important;
  }

  
  .hero-stepper .step-item.is-check{
    display: none !important;
  }
}
@media (max-width: 768px){
  .hero-image-clipped img{
    object-position: center 18% !important;  
  }
}


